How it works
Frames are decoded up-front into ImageBitmaps; a scrubbed tween on {frame} redraws the canvas with object-fit: cover math.
96 pre-rendered frames drawn to canvas and scrubbed by scroll position, with text beats.
Frames are decoded up-front into ImageBitmaps; a scrubbed tween on {frame} redraws the canvas with object-fit: cover math.
createImageBitmap decodes off the main thread; only drawImage runs per frame. Low tier loads every 2nd frame.
Reduced mode shows a single key frame; text beats are real headings.
{
"lerp": 0.1,
"scrub": 0.5,
"markers": false
}