Star-cruise: genre vector drives the shaders (post-fx + materials)

A per-genre renderStyle (derived from the 23-feature vector, drawn last so it perturbs no earlier rng) drives two rendering layers so each planet renders in its own visual language:

• post-fx (app/starcruise/postfx.js): one fragment pass parameterized by renderStyle.post — selectable dither (none/ordered/onebit), posterize, per-channel grade, cheap single-pass bloom, chromatic aberration…

• materials (alien.js + backdrop.js + ship.js): renderStyle.material selects flat/cel(toon)/iridescent(fresnel-hue)/wireframe/glitch(vertex-jitter+rgb-split) /matte — built once per style, reused (mobile-cheap).

Verified: traits-run (6 genres -> 6 distinct post bags, 4 materials, deterministic); starcruise-run ALL PASS incl RS1-RS3 (live uniforms match the landed genre, two genres render distinctly…

▶ Play it: Stationary Weather — a long-form genre — put the phone in your pocket and it keeps playing https://stellate.app/?genre=ambient&seed=2111&path=2103.13280,2122.13313,2084.13313&xdur=13.122

0907ad7 https://github.com/aboard-io/stellate/commit/0907ad7fc1cf7d38e5982a46796849082669c250