======================================================================
B. MODEL COMPARISON  (walk-forward: train day<80, test day>=80)
======================================================================
model                                 MAE   R2(oos)
B0 constant                        11.932    -0.001
B1 purity-only                     10.129     0.156
B2 blockers-only                   11.841     0.010
B3 wellness(phys+mental)           11.865     0.012
SAE-1.4 raw composite               7.831     0.584
SAE-1.4 components                  4.191     0.896
SAE-1.4 + interactions              5.217     0.842

======================================================================
C. BELIEF-REGIME STRATIFICATION  (the key insight)
======================================================================
POOLED (all)        corr(Purity,Aw)=+0.403   corr(Blockers,Aw)=-0.108   n=24000
POSITIVE belief     corr(Purity,Aw)=+0.489   corr(Blockers,Aw)=-0.132   n=16473
NEGATIVE belief     corr(Purity,Aw)=+0.244   corr(Blockers,Aw)=-0.078   n=7527
Note: pooling positive+negative regimes can flip/wash signs — must stratify.

======================================================================
D. CROSS-LAG / DIRECTIONALITY  (does Blockers(t) lead Awareness(t+1)?)
======================================================================
Blockers(t) -> Awareness(t+1): beta=-6.189 (p=3.4e-11)
Awareness(t) -> Blockers(t+1): beta=-0.000 (p=9.3e-01)
Purity(t) -> Blockers(t+1):    beta=+0.000 (p=9.1e-01)  (expect negative: purity reduces future blockers)

======================================================================
E. FAIRNESS CHECK  (does high constraint unfairly imply low awareness?)
======================================================================
High-constraint users, matched mean Awareness: 23.00
Low-constraint users,  matched mean Awareness: 25.69
Difference (lo-hi) after matching on Purity+Belief: +2.70
Ground truth was built so inner awareness does NOT depend on physical constraint.
If diff is small, SAE measurement layer is fair; if large, constraints leak into awareness.

DONE.
Structural invariant tests over 5000 trials
  blockers_monotone     : PASS
  purity_monotone       : PASS
  constraint_monotone   : PASS
  stage_gate            : PASS
  ranges                : PASS
OVERALL: PASS
