/* A scroll-lit route tucked into the right page gutter. */
.scroll-journey{--journey-progress:0;--journey-energy:0;--journey-color:177 181 185;position:fixed;z-index:8;left:auto;right:clamp(6px,1vw,20px);top:106px;bottom:36px;width:30px;display:flex;flex-direction:column;align-items:center;gap:15px;pointer-events:none;opacity:.96;transition:opacity .2s;contain:layout style}
.scroll-journey[hidden]{display:none}
@media(min-width:761px){.hero .lunar-coordinate{translate:-32px 0}}
.journey-endpoint{position:relative;isolation:isolate;display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:0;padding:3px;border-radius:50%;background:transparent;cursor:pointer;pointer-events:auto;transition:filter .2s,background .2s}
.journey-endpoint svg{position:relative;display:block;width:28px;height:28px}
.journey-endpoint::before{content:'';position:absolute;z-index:-1;inset:6px;border-radius:50%;opacity:calc(.28 + var(--journey-near)*.72);transition:opacity .2s}
.journey-moon{--journey-near:clamp(0,calc(1 - var(--journey-progress)*6),1)}
.journey-earth{--journey-near:clamp(0,calc(var(--journey-progress)*6 - 5),1)}
.journey-moon::before{box-shadow:0 0 12px 3px #d9dfe52c}
.journey-earth::before{box-shadow:0 0 13px 3px #9aadb833}
.journey-endpoint::after{content:'';position:absolute;inset:-1px;border:1px solid transparent;border-top-color:#dbe8f04d;border-right-color:#dbe8f014;border-radius:50%;transform:rotate(calc(-40deg + var(--journey-progress)*160deg));pointer-events:none}
.journey-earth::after{border-top-color:#9aaab647;transform:rotate(calc(100deg - var(--journey-progress)*160deg))}
.journey-endpoint:hover{background:#d5e6f010;filter:brightness(1.25)}
.journey-endpoint:focus-visible{outline:1px solid #c4d7e5;outline-offset:4px}
.journey-track{position:relative;flex:1;min-height:20px;width:12px}
/* Keep section colors anchored to the full track while revealing progress. */
.journey-base,.journey-fill{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-.5px;border-radius:2px;background:var(--journey-spectrum,linear-gradient(#b1b5b9,#838d99))}
.journey-base{opacity:.4}
.journey-fill{clip-path:inset(0 0 calc((1 - var(--journey-progress))*100%) 0);opacity:.8;will-change:clip-path}
.journey-track::before{content:'';position:absolute;inset:0 3px;background:var(--journey-spectrum);filter:blur(5px);opacity:.08;pointer-events:none}
.journey-ticks{position:absolute;inset:0}
.journey-ticks i{position:absolute;left:50%;transform:translateX(-50%);display:block;width:7px;height:1px;background:rgb(var(--tick-color));opacity:.6;transition:opacity .2s,box-shadow .2s}
.journey-ticks i.passed{opacity:.75;box-shadow:0 0 4px rgb(var(--tick-color) / .18)}
.journey-marker{position:absolute;left:50%;top:calc(var(--journey-progress)*100%);width:6px;height:6px;transform:translate(-2.5px,-50%);border-radius:50%;background:rgb(var(--journey-color));box-shadow:0 0 0 3px rgb(var(--journey-color) / .07),0 0 8px rgb(var(--journey-color) / .38),0 0 16px rgb(var(--journey-color) / .16);transition:background .25s,box-shadow .25s}
.journey-marker::after{content:'';position:absolute;inset:-5px;border:1px solid rgb(var(--journey-color) / .4);border-radius:50%;box-shadow:0 0 10px rgb(var(--journey-color) / .2)}
.journey-marker::before{content:'';position:absolute;left:2px;bottom:50%;width:2px;height:46px;pointer-events:none;border-radius:2px;background:linear-gradient(transparent,rgb(var(--journey-color) / .35));box-shadow:0 0 8px rgb(var(--journey-color) / .4);opacity:var(--journey-energy);transition:opacity .18s}
.scroll-journey[data-direction=up] .journey-marker::before{bottom:auto;top:50%;background:linear-gradient(rgb(var(--journey-color) / .35),transparent)}
body:has(dialog[open]) .scroll-journey{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:760px){.scroll-journey{left:auto;right:3px;top:82px;bottom:max(24px,env(safe-area-inset-bottom));width:15px;gap:11px;opacity:.84}.journey-endpoint{width:24px;height:24px;flex-basis:24px;padding:3px}.journey-endpoint svg{width:18px;height:18px}.journey-endpoint::after{inset:2px}.journey-endpoint::before{inset:7px}.journey-marker{width:4px;height:4px;transform:translate(-1.5px,-50%);box-shadow:0 0 6px rgb(var(--journey-color) / .3),0 0 12px rgb(var(--journey-color) / .12)}.journey-marker::after{inset:-3px}.journey-marker::before{height:28px;left:1px}.journey-ticks i{width:4px}}
@media(max-height:500px){.scroll-journey{top:66px;bottom:16px;gap:6px}}
html[data-motion=off] .journey-marker::before{display:none}
html[data-motion=off] .journey-endpoint::after{transform:none}
@media(prefers-reduced-motion:reduce){.scroll-journey,.journey-endpoint,.journey-endpoint::before,.journey-ticks i,.journey-marker{transition:none}.journey-marker::before{display:none}.journey-endpoint::after{transform:none}}
