# US-08 — Handle hazards and pressure without losing control **As a** player in a late level, **I want to** deal with fires, spills, moving obstacles, and order surges, **so that** the escalation is a fair test of teamwork rather than random unfairness. ## Acceptance criteria 1. **Fire** starts on a station per level probability, spreads to an adjacent station after its burn timer unless dealt with, blocks its tile, and ruins items on it; it is extinguished by a sink-filled douse (carry water) with visible steam. 2. **Spill** makes its tile slippery (accel/brake reduced, cook slides ~0.5 tile) and is cleaned by a wipe action; a cook leaving the kitchen with a spill under a station does not propagate it. 3. **Moving obstacles** (cart, boat mast) follow their authored path and stun on contact for 0.6 s with a visible telegraph 0.5 s before entering a tile. 4. **Rush waves** spawn a burst of orders with a HUD "RUSH" banner and a wave counter. 5. Every hazard is data-driven (level YAML): type, location/station reference, rate, and mitigation — no hard-coded hazard placement in Python. 6. Hazard effects are deterministic under a fixed seed (replay test covers all four). 7. Client FX exist for each hazard and respect `prefers-reduced-motion` (reduced: static markers instead of flicker/shake). 8. Hazard penalties never soft-lock a round: the round always ends by timer or target. ## E2E suite `tests/e2e/test_us08_hazards.py` — level fixture with fire + spill: extinguish, clean, avoid a mover; asserts hazard states in the snapshot and reduced-motion rendering. ## Phases `10_hazards_and_escalation_mechanics`, `11_campaign_levels_and_progression`