DJ-mix seams: journeys and playlists mix like a set, not a CD

Paul: "songs should mix together like a DJ mix, not stop and start." The journey/playlist driver now emits a continuous DJ-mixed journey.mp3 (per-track mp3s + mix page unchanged).

• Alignment: the incoming track's beat 0 lands sample-accurately on an outgoing bar downbeat.

• Blend: equal-power cos/sin crossfade. Gap <= 8 bpm: 4-bar window with the outgoing tail VARISPED to the incoming tempo (the turntable pitch-nudge; build-time bpm ramps need a kernel time-model change

• The DJ slam: introMode:"off" incoming (gabber/breakcore) or gap > 40 = hard cut on the downbeat.

• Streaming overlap-add (one track in memory + the seam tail), so hours-long journeys stay flat in RAM. press.js untouched; renderState split into pressState + encodeMp3 in the driver.

Verified: playlist lofi->citypop->breakcore seed 5, measured on the lossless mix: seam 1 opens at exactly lofi bar 62.00, 2.00-bar overlap, smooth RMS through the boundary

▶ Play it: Dust Census → Neon Fiscal Year → Shrapnel Lullaby — the three genres this change names, as one path https://stellate.app/?genre=lofi&seed=9282&path=263.9071,1530.6221,1811.18518&xdur=0.06

a25ee61 https://github.com/aboard-io/stellate/commit/a25ee61a6079095fde01a94c2c61771f7936342a