Rebuild the web landing page to the blueprint spec

Ten dark cinematic sections: fixed glass nav with a hamburger sheet, hero
with the badge/dual CTA/stats bar, a pausable 35mm film-strip marquee, the
live preset tester (5 stocks, HUD, spec bars), the three-knob custom recipe
simulator, the 6-card feature grid, the QR sharing showcase, free-vs-Pro
pricing, reviews + FAQ accordion and the final CTA/footer.

The page owns its palette and its .lp-* styles, so it renders the same in
either workspace theme, and it pulls no CDN: Syne is bundled and the six
sample negatives are vendored (see docker/README.md). Store buttons raise a
toast instead of the old alert(). The now-dead landing CSS and the unused
land.* dictionary keys are gone.
This commit is contained in:
2026-09-17 18:26:18 +07:00
parent dace19aec4
commit 340f0374fc
14 changed files with 837 additions and 121 deletions
+6
View File
@@ -47,6 +47,12 @@ project (`@shopify/react-native-skia` is aliased to `src/engine/skiaShim.ts` in
`cinemaShader` `colorUtils` `defaultRecipes` `exifWrite` `frameUtils` `jpegDpi`
`paramDefs` `skiaImage` `toneShader`.
The landing page needs no CDN: `frontend/public/assets/Syne.woff2` is the
bundled display face and `frontend/public/assets/samples/s*.jpg` are the six
placeholder negatives the film strip, preset tester and QR card show (swap them
for real graded stills whenever we have them). Its one foreign request is the
QR image from `api.qrserver.com`, which degrades to an empty slot offline.
When the app changes one of them, copy it back in — the renderer is only
"parity" for as long as these stay in sync: