Lenis + GSAP ScrollTrigger

Scroll·scrubbed video

Scroll down. The clip doesn't play on its own — your scroll position is wired directly to the video's currentTime. Scroll up and it runs backwards.

scrub with scroll

Every frame mapped to scroll

Scroll progress 0 → 1 drives currentTime 0 → duration.

0.00s / 0.00s

The knob is video.currentTime

This is the same idea as the Mira hero — scroll drives playback position. Mira used an image sequence to keep it perfectly smooth; here it's a single real video file.