Scroll-scrub: scroll becomes the video's timeline
GSAPScrollTriggerLenis
[ 2026 ]

A video fills the whole screen and stays pinned while a tall section is scrolled through. Scroll position becomes the clip's timeline: scrolling down advances the frames, scrolling up rewinds. No player and no controls — the video's time is the page's position. The clip is abstract, generated in the study's palette (charcoal → amber → cream).
What it explores
- Scroll drives `video.currentTime` directly, with the section pinned full-screen (ScrollTrigger pin + scrub).
- Smoothed seek — scroll sets a target time and the loop eases currentTime toward it each frame (lerp), because seeking straight to every frame stutters.
- Muted video with `playsinline` so currentTime can be set without a user gesture; Lenis keeps the scrubbing buttery.
- Clip encoded with dense keyframes, since seeking is smoother the more keyframes a video has — swapping the source is just pointing at another file.
States
[ Pin ] the video locks full-screen while the tall section is scrolled through
[ Scrub ] scroll position becomes currentTime, frame by frame
[ Rewind ] scrolling up moves back in time — nothing is linear