Deterministic per-frame grain, scanlines and a vignette, seeded on the frame index so it reproduces byte-for-byte
This is the format it was composed for. Switch above to see it lay itself out for another: same animation, re-arranged for the frame.
Everything below can be changed without touching the animation. Hand the list to an agent, or edit the values at the bottom of the component file.
Grain strength. Above ~0.7 it reads as texture rather than film.
now: 0.5
Grain cells across the frame. Higher is finer but costs render time.
now: 48
Add faint horizontal scanlines.
now: false
Corner darkening.
now: 0.55
Sample copy shown beneath the overlay, so the preview reads in context.
now: Shot on code
Brand token id, one of the keys of BRANDS.
now: slate
No Tailwind, no CSS, no asset files. Inline styles only.
An animated film grain and vignette overlay that changes every frame but renders identically every time, shown over a sample headline so the effect reads in context.