From 93a3e6241a83b321e21d565195281f8cb8535b4a Mon Sep 17 00:00:00 2001 From: Andrew Moore Date: Mon, 10 Aug 2026 02:47:12 -0700 Subject: [PATCH] Merge nucleic/frosty-grove-shrew-pb0i into main Mirrored from corpo 0ef9133. --- src/pages/index.astro | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/pages/index.astro b/src/pages/index.astro index 47cf9ce..f181ee1 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -536,7 +536,7 @@ const canonical = new URL('/', Astro.site); right — the way the sentence reads, the way the verb points — then resting for the balance of the cycle. What separates this from a loading shimmer is everything quantitative: the light is the gradient's own mint rather than - white, it happens exactly once — a single ~1.2s pass as the line arrives, + white, it happens exactly once — a single ~0.65s dash as the line arrives, never repeating — and the band is asymmetric — a long dim tail behind a crisp leading edge — so it reads as something moving through, not a surface effect. @@ -583,8 +583,8 @@ const canonical = new URL('/', Astro.site); 100deg, transparent 20%, rgb(234 248 240 / 12%) 38%, - rgb(234 248 240 / 42%) 48%, - rgb(234 248 240 / 42%) 62%, + rgb(234 248 240 / 46%) 48%, + rgb(234 248 240 / 46%) 62%, rgb(234 248 240 / 8%) 68%, transparent 71% ); @@ -597,12 +597,13 @@ const canonical = new URL('/', Astro.site); /* The delay is set against the line's entrance, not the page's. The park sits just off the first glyph, and the sweep is linear, so the light enters almost the moment the delay ends — the delay IS the arrival time. - 0.85s starts the light while the line is still completing its rise - (opacity full at ~1.38s), so the two emerge together: the sheen's first - moments inherit the line's last moments of fade-in. One iteration, by - design — the light passes through once as the words land, and the line - owns its stillness afterward. */ - animation: sheen-pass 1.2s 0.85s linear; + 0.7s launches the dash mid-rise: the line is about half faded-in when + the light takes off, the light outruns it down the length of the word, + and the sprint finishes right as the line settles (~1.38s) — the words + land and the light is already gone. Riding inside the still-fading line + also softens the dash's first frames for free. One iteration, by design: + a sprint run twice is choreography; run once it is an event. */ + animation: sheen-pass 0.65s 0.7s linear; } .line-runs .that { @@ -746,12 +747,12 @@ const canonical = new URL('/', Astro.site); } /* The whole animation is the sweep — one iteration, no dwell keyframe — so - the page pays for paint during a single 1.2s window at load and never + the page pays for paint during a single ~0.65s window at load and never again. The sweep is linear on purpose: an eased segment read as the light accelerating through the middle of the line (it was — ease-in-out is - fastest at its midpoint, which lands mid-word), and a runner holds a pace. - The softness at entry and exit comes from the band's own gradient profile, - not from the curve. */ + fastest at its midpoint, which lands mid-word), and a sprinter at full + speed holds a pace. The softness at entry and exit comes from the band's + own gradient profile, not from the curve. */ @keyframes sheen-pass { from { background-position: -115% 0; } to { background-position: 235% 0; }