Handheld green palette

Four-shade pea-soup green of early handheld consoles, squeezed to two tones. Shadows land on #0f380f, highlights on #9bbc0f. Gaming throwbacks and 8-bit nostalgia. Preview approximates a gradient map with two screen and multiply tints.

Apply this to my video: "Handheld green palette" from the 24fps video editor library.
Preset JSON: https://24fps.dev/video-editor/effects/palette-handheld-green-l4/preset.json (pass its "preset" to the engine).
Engine (MIT, no dependencies, ES module): https://24fps.dev/editor/engine.js. Download the engine next to your page (curl -O) rather than importing cross-origin, then import { mount } from "./engine.js" in a <script type="module"> served over http.
Wiring: root = a position:relative box at the video's size. media = { main }: main is a wrapper holding my video, filling the root. Then const fx = mount(root, { kind: "effect", preset, media }) and call fx.render(seconds) every frame. It is seek-safe: drive it from the GSAP timeline in HyperFrames or call render(frame / fps) in Remotion. Before capturing frames, await (fx.ready ?? document.fonts.ready).
In HyperFrames, apply the real shader grade instead of the CSS preview: data-color-grading='{"palette":["#0f380f","#306230","#8bac0f","#9bbc0f"]}' on the <video> (see the media-use skill).
Field reference: https://24fps.dev/video-editor/llms.txt. Keep sizes as fractions of the frame height so it works at any resolution. Credit: 24fps.dev/video-editor
Technique
Palette from HyperFrames colour-grading presets (Apache-2.0)
Footage
Rainy street at night, Pexels

Similar effects & grades