landonorris.com · Scroll flow · 09/10/2026 · Seed subject, second pass (the first pass never looked at the flow between sections)
landonorris.com, the whole scroll
The page is one continuous journey, not a stack of sections. A fixed layer sits under everything, the ground colour tweens instead of cutting, each scene's exit becomes the next scene's entrance, and something is always moving. Measured on the same instrument as our replication: no scroll step changes the picture by less than its idle drift.
Findings at a glance
9 of 9 findings
| Ref | ||||
|---|---|---|---|---|
| N7 | A progress tick, not a cue | Technique | Interaction | Recorded |
| N6 | A pinned horizontal track in the middle of a vertical pageReplicated in the scroll-chain specimen as the rail | Technique | Scroll | Recorded |
| N5 | A curtain panel with a rounded top climbs over the last sceneReplicated in the scroll-chain specimen as the door | Technique | Scroll | Recorded |
| N4 | Scenes overlap: nothing finishes before the next has begun | Technique | Scroll | Promoted |
| N3 | A scene's exit is the next scene's entrance (the baton) | Technique | Scroll | Promoted |
| N2 | The ground colour tweens across sections, it never cuts | Technique | Scroll | Promoted |
| N1 | One persistent layer under every section | Technique | Scroll | Promoted |
| I3 | Compare scroll feel by change per step, with an idle control | Instrument trap | Instrument | In the probe |
| F7 | A hidden off-screen state is the only way back from a deep scroll | Failure mode | Interaction | Recorded |
Captured and measured 09/10/2026 with full Chromium at 1440 by 900, real wheel events, 100 equal steps down
the whole page. Frames and numbers are internal evidence in captures/; nothing of theirs is copied.
The first analysis of this site (hero) looked at the first screen and left "does the page keep going the same way?" as an open question. Pete's note: "you completely forgot to look at site navigation … they have done a flow that when you scroll down everything works off that scroll down automatically and seamless from one animation to the next." This is that pass.
What the page is made of
| Measured | Value |
|---|---|
| Scroll library | Lenis (the root carries the lenis class); GSAP and ScrollTrigger are bundled, not on window |
| Page transitions | Taxi wrapper plus a fixed Rive-driven transition layer, for moving between pages, not within one |
| Document height | 13,579px, about 15 screens |
| A fixed full-screen layer | gl-background, under every section (the contour lines and ground) |
| Sticky pins | the hero, a horizontal track (3,143px tall, pinned over 900px), and a stacked pin |
A fixed scroll-indicator |
5.6px wide at the right edge, 72px bar, moves linearly with page progress (0 to 648px) |
| Sections | hero, marquee, statement, horizontal track, "on track / off track", helmets, store, partners, socials, footer |
What makes it read as one flow
N1 · One persistent layer under every section
The contour lines and the ground do not belong to any section. They sit in a fixed layer under all of them, so a section boundary never shows a seam: the layer you are looking at at the end of one scene is the layer under the next. Suits anything with a long story. Does not suit pages whose sections are independent products. Fails when the layer is heavy: ours is a 15-line canvas at 2D and costs nothing; a full-screen WebGL layer on a phone does not.
N2 · The ground tweens
Down the page the ground runs dark ink, grey, then cream, then ink again for the footer, as a continuous colour
change between sections and not at their edges (frames s006 to s012). Text colour follows it. Fails when
the mid-tween passes through a muddy middle where neither text colour has contrast. Ours passes through a mid
sage and was not contrast-checked pair by pair; treat that as open.
N3 · The baton: one thing travels across the join
The lime signature stroke draws across the page and ends as the lime bar under the next statement; the portrait that contracts becomes the card the marquee runs over; the full-bleed photograph fills the screen and is the ground of the next scene. In each case the last thing on screen in one scene is the first thing in the next. This is the device that makes the next scene feel inevitable, and it is the one our first pass missed.
N4 · Overlap: nothing finishes before the next begins
Not something their code states. In the frames from this pass, the end of one scene and the start of the next are on screen together at each join (for example the signature stroke still drawing while the next statement's words rise). The measurement below is the check that no stretch of scroll goes still.
N5, N6 · A curtain and a pinned horizontal track
The footer is a dark panel with a rounded top that climbs over the cream page (seen in the frames). The structure holds a horizontal-track section 3,143px tall with a sticky 900px stage, which is a pinned track. Both are how the page changes kind of movement (vertical, horizontal, rising) without a stop. Replicated in the scroll-chain specimen.
N7 · The indicator is a progress tick, not a cue
Nothing says "scroll", and the fixed tick does not ask you to: it reports where you are. The pull to continue comes from content already moving when each scene arrives.
The measurement: dead air
runbooks/tools/dead-air.mjs: step through the scroll in equal fractions and take the mean absolute difference
between consecutive small greyscale frames (0 to 255). A control with no scrolling gives the idle drift.
| landonorris.com | scroll-chain (ours) | |
|---|---|---|
| Scrollable length | 12,679px | about 7,200px |
| Mean change per step (100 equal steps) | 39.4 | 8.6 |
| Mean change per 100px scrolled | about 29 | about 12 |
| Quietest scrolled step | 10.2 | 1.0 (the last four steps rest at 3, 3, 2, 1) |
| Idle drift, no scrolling (mean / max) | 4.1 / 9.7 | 2.7 / 3.3 |
| Steps below 0.5 | 0 of 100 | 0 of 100 |
Their quietest scrolled step is above their loudest idle frame: the scroll alone is always moving the picture more than the page moves by itself. That is the testable form of "no dead air".
Ours is never dead but it is a third as busy, and the last 4% rests on the finished door, by design. Our first build had a dead run of seven steps at the end and a weak stretch of five while the rail slid; the meter found both, and extending the climbing curtain to the end and adding a second, faster layer under the rail closed them. The remaining gap is real: their pictures are photographs full of detail, ours are flat drawn shapes, so the same movement changes fewer pixels. It does not mean ours reads as less continuous, only that this instrument cannot tell those apart.
Failure modes
F7 · Deep in the page, the only way back is the top. There is no section navigation: the fixed nav carries the store and a menu, and the scroll tick cannot be dragged. On a 13,579px page that is a long way up. Ours adds scene buttons and Play.
I3 · Instrument trap
Comparing two pages by "how much changes per step" needs the same step in fractions of the scroll, not pixels, and an idle control. Our first run compared 136px steps against 72px steps and understated ours by half.