Tennis Occlusion Trainer

MVP loop: play → freeze before contact → A/B/C/D → cue feedback. Demo mode uses text scenarios until real clips are labeled.

Accuracy:
Avg RT:
Trials: 0
Streak: 0
diff — 1 / 8
Press Start
FROZEN — make your call

Question appears after freeze.

Schema + cue bank live under data/. Real clips should set occlusion_t = contact_t − 0.2s and 1–2 bank cues. This build loads scenarios from sample_scenarios.json when available.