Background-WAV handoff: keep music playing on iOS background

iOS Safari suspends the AudioContext when the page is hidden, so the ring engine can't play in the background — the old behavior was mute-on-hidden (clean silence, resume on return).

• A third stream-worker renders a deterministic ~32s WAV (~2.8MB) of the current genre off the audio path (press-parity open()/renderChunk), refreshed debounced on genre/topology change

• On visibilitychange hidden: mute the live worklet synchronously (C_STATE=2 + master 0), then play the ready WAV blob in a pre-unlocked looping (silent-WAV data-URI unlock inside the play gesture so the…

• On visible: fade+pause the , resume ctx, unmute (20ms fade-in).

• MediaSession metadata/playbackState for lock-screen. Whole path gated on mobile/Safari; desktop/foreground byte-identical to before.

Verified: headless: valid RIFF/WAVE blob reaches a playing , worklet mutes/unmutes on the visibility transitions

▶ Play it: Food Court Eternity — the brightest, most processed corner of the space https://stellate.app/?genre=vaporwave&seed=3969&path=1679.4393,1698.4426,1660.4426&xdur=13.122

8c88b30 https://github.com/aboard-io/stellate/commit/8c88b3097e72380e8011521c0381af7099645de1