Manifest-driven video/poster/procedural backdrop — zero API calls at runtime, graceful fallback chain
Loads /gen/demo-hero/manifest.json. Poster renders immediately; video fades in
when the element enters the viewport.
Hero content goes here
Overlay: none
When no manifest exists, the component self-heals with a slow CSS multi-stop gradient drift
built from the DaisyUI theme palette. In DEV mode it also logs an intent to localStorage.
No manifest — procedural drift active
| Tier | Trigger | Behaviour |
|---|---|---|
| 1 — CSS gradient | Always (0ms) | Palette from manifest or DaisyUI theme fallback |
| 2 — Poster img | Manifest present | AVIF + JPG fallback; loads eagerly |
| 3 — Video | Manifest + IntersectionObserver + no reduced-motion | WebM → MP4; muted autoplay loop; pauses offscreen |
| Procedural | Missing/failed manifest | Animated multi-stop gradient drift from theme colors |