What problem does it solve? Adding or changing game sounds without breaking the arcade's audio invariants: the lazy AudioContext unlock on iOS, the exponential ramp that prevents clicks, the per-frame cue cap that stops cascades becoming noise, and the mute preference that must cost nothing. ## Core Features & Use Cases - Sound vocabulary reference: Documents every cue in src/ui/audio.ts (trigger, split, spring, skid, seized, bank, roundWon, runLost) with its frequency, waveform, and gameplay meaning. - AudioContext lifecycle rules: Explains why the context is built lazily on first blip, resumed when suspended, and returns null when muted. - Density and accessibility constraints: Covers the two-cues-per-frame cap in usePayloadRun.ts, the measured effect of skip on sound timing, and why reduced-motion must not mute audio. - Use Case: When a new part type needs a sound, use this Skill to pick a cue that communicates something no existing cue does, wire it through the per-frame cap, and avoid re-adding an iOS unlock that already exists. ## Quick Start Use the game-audio skill to add a sound cue for the new Tuning Fork part firing in the drop simulation.