Accessibility preview

The contract: motion is optional, meaning is never motion-only. Under prefers-reduced-motion: reduce the engine freezes the simulation (dt = 0) — but the field's state still reads, because it lives in CSS variables, not in travel.

Showing: motion on
Motion on

mass

particles travel; the headline pulses

Reduced motion

mass

no travel — the lit state still reads

Reduced-motion fallbacks

Full modeReduced mode
particles travelparticles freeze or fade
sparksstatic highlight
fieldflow ribbonsstatic field lines
heat trailssoft wash
body motionCSS state only
turbulencecontour snapshot