Each word sits in an overflow:hidden box and slides up from 110%. The mask is the parent, not a gradient — so the letters are genuinely clipped by the line above, the way a printed slug would be. Staggered by index, eased on a long expo curve.
Characters resolve from random glyphs, left to right, each settling at its own moment. One requestAnimationFrame loop over a string — no library, no per-character DOM node churn.
It inverts itself.
mix-blend-mode: difference on a sticky headline. Four panels scroll underneath and the type inverts against each one — white over ink, ink over paper, and the exact complement over the accent. No colour swapping, no scrim, no JavaScript touching it. Three lines of CSS.
Weight, opacity and offset move together on scroll. The eye reads the heaviest line first regardless of where it sits — which is why a weight ramp beats a size ramp when vertical space is tight.