01 / Intro

Scroll is captured,
not native.

One gesture moves exactly one section. A scroll-lock with an 8-delta trigger and a 1000ms cooldown swallows momentum spam. Try flicking the wheel hard - it still advances one panel.

02 / Easing

Linear lerp.
No curve.

Every transition tweens translate3d with t = elapsed / 700ms, straight through. The deliberate flatness is the restraint - no spring, no overshoot, no bounce.

03 / Stagger

Items cascade
by duration.

Children start together but each takes duration*(1 + i*0.1), so later lines arrive later. The cascade is in the timing ramp, not a per-item delay.

04 / Reuse

Zero dependencies.

No three.js, no GSAP, no Lenis. Wheel + touch + arrow keys, the original tuning values, driving plain DOM transforms. Drop the module in and mark sections.

scroll / arrows / swipe