MVP loop: play → freeze before contact → A/B/C/D → cue feedback. Demo mode uses text scenarios until real clips are labeled.
Question appears after freeze.
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.