@font-face{font-family:Bricolage;src:url('assets/BricolageGrotesque-Regular.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Bricolage;src:url('assets/BricolageGrotesque-ExtraBold.ttf') format('truetype');font-weight:800;font-display:swap}@font-face{font-family:Plex;src:url('assets/IBMPlexMono-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--ink:#1b1b19;--paper:#f5f3eb;--yellow:#ffe449;--rust:#a8462c;--line:#c8c7bf;--p:0;--sans:Bricolage,Arial,sans-serif;--mono:Plex,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper);scroll-padding-top:25px}body{margin:0;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}::selection{background:var(--yellow);color:var(--ink)}img,svg{max-width:100%}img{display:block;height:auto}h1,h2,h3,p,figure{margin:0}a{color:inherit}a:focus-visible{outline:3px solid var(--rust);outline-offset:5px}.shell{width:min(1280px,calc(100% - 112px));margin-inline:auto}.skip{position:fixed;left:15px;top:-90px;background:var(--yellow);padding:15px;z-index:10}.skip:focus{top:15px}.reading-progress{height:3px;position:fixed;inset:0 auto auto 0;width:0;background:var(--rust);z-index:30}.masthead{display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--ink);height:96px}.masthead img{width:155px}.masthead>span{font-size:13px;color:#66665e}.masthead .edition{margin-left:auto;font:10px var(--mono);letter-spacing:.07em}.hero{padding-top:36px}.meta{display:flex;justify-content:space-between;font:11px var(--mono);letter-spacing:.05em;gap:20px}.meta>span:before{content:'';display:inline-block;width:8px;height:8px;background:var(--rust);border-radius:50%;margin-right:10px}h1{font-size:clamp(44px,5.3vw,78px);line-height:1.02;letter-spacing:-.055em;font-weight:800;max-width:1250px;margin:28px 0 27px}mark{color:inherit;background:var(--yellow);padding:0 .035em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.deck{font-size:clamp(20px,2vw,27px);line-height:1.42;max-width:940px;letter-spacing:-.02em}.byline{font-size:13px;margin-top:26px;padding-bottom:30px}.hero-art{margin-top:7px}.collage{height:580px;background:#20231e;position:relative;overflow:hidden;isolation:isolate}.collage:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E");z-index:5}.sun-cut{position:absolute;left:-95px;top:-80px;width:530px;height:530px;border-radius:50%;overflow:hidden;background:var(--yellow)}.sun-cut img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.4);mix-blend-mode:multiply}.swift-cut{position:absolute;width:650px;right:40px;top:70px;transform:rotate(-13deg)}.swift-cut svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(1px 1px 0 #f5f3eb)}.orbit-ring{width:800px;height:390px;border:1px solid #d1d3c2;border-radius:50%;position:absolute;transform:rotate(-32deg);left:200px;top:115px;opacity:.35}.ring-two{width:1050px;height:460px;left:85px;top:130px;opacity:.2}.tag{position:absolute;font:10px var(--mono);letter-spacing:.06em;border:1px solid currentColor;padding:9px 12px;color:var(--paper);z-index:6}.sun-tag{left:35px;top:36px;background:var(--yellow);color:var(--ink);transform:rotate(-4deg)}.swift-tag{right:35px;bottom:105px;transform:rotate(-3deg)}.hero-note{position:absolute;left:45px;bottom:57px;color:var(--paper);z-index:6}.hero-note>span{font:12px var(--mono);color:var(--yellow)}.hero-note b{display:block;margin-top:15px;font-size:43px;line-height:1.02;letter-spacing:-.04em}.collage-arrow{position:absolute;width:180px;right:80px;top:35px;fill:none;stroke:var(--yellow);stroke-width:3;transform:rotate(12deg)}.paper-edge{position:absolute;left:0;right:0;bottom:-1px;height:23px;background:var(--paper);clip-path:polygon(0 40%,3% 64%,5% 25%,8% 63%,11% 40%,15% 72%,19% 36%,25% 65%,31% 39%,36% 60%,43% 25%,49% 62%,56% 31%,60% 64%,65% 34%,71% 66%,76% 35%,83% 68%,89% 25%,93% 66%,97% 35%,100% 55%,100% 100%,0 100%);z-index:8}figcaption{font-size:11px;line-height:1.55;color:#74736b;padding-top:13px}.reading{max-width:740px;margin:48px auto;font-size:21px;line-height:1.75;letter-spacing:-.015em}.reading p+p{margin-top:25px}.intro p:first-child:first-letter{float:left;font-size:82px;font-weight:800;line-height:.8;padding:12px 11px 0 0}.chapter{padding-top:48px}.chapter-heading{display:flex;gap:28px;align-items:flex-start;border-top:1px solid var(--ink);padding-top:25px;margin-bottom:45px}.section-number{font:14px var(--mono);padding-top:2px;color:var(--rust)}.eyebrow{font:10px/1.5 var(--mono);letter-spacing:.06em}h2{font-size:clamp(40px,4.8vw,65px);line-height:1.02;letter-spacing:-.045em;font-weight:800;margin-top:13px}h3{font-size:34px;line-height:1.1;letter-spacing:-.035em;font-weight:800;margin:17px 0 22px}.scrolly{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:70px;align-items:start;position:relative}.visual{position:sticky;top:30px;overflow:hidden;min-width:0;background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.visual-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:23px 25px}.badge{font:9px var(--mono);border:1px solid #65675d;padding:5px 7px;white-space:nowrap}.visual svg{display:block;width:100%;font-family:var(--sans)}.visual>figcaption{padding:14px 25px 18px;border-top:1px solid #55584c;color:#b8b9ad;font-size:10px}.scene-caption{padding:2px 25px 23px;min-height:115px}.scene-caption b{font-size:23px;letter-spacing:-.02em;line-height:1.14;display:block;max-width:490px}.scene-caption p{font-size:14px;line-height:1.5;color:#babcae;margin-top:9px;max-width:460px}.step{min-height:70vh;display:flex;flex-direction:column;justify-content:center;padding:60px 0}.step p{font-size:19px;line-height:1.68}.step p+p{margin-top:20px}.step .eyebrow{color:var(--rust)}.atmo-shell{transform:none}.solar-rays{opacity:calc(.2 + var(--p)*.8)}.drag-arrow{opacity:calc(var(--p))}.satellite{opacity:1}.solar-comparison{display:grid;grid-template-columns:1fr 300px;gap:45px;align-items:end;margin-top:30px;margin-bottom:85px}.solar-comparison img{width:100%;filter:grayscale(1)}.solar-comparison figcaption{font-size:13px;line-height:1.7;border-top:1px solid var(--ink);padding-top:22px}.orbital-section{background:#e9e6dd;padding:65px 0 40px}.orbit-chart{background:var(--paper);color:var(--ink)}.orbit-chart .scene-caption p{color:#62635a}.orbit-chart>.visual-top .badge{border-color:#b5b4a8}.orbit-chart>figcaption{border-color:var(--line);color:#69695f}.orbit-trail{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p))}.orbit-point{opacity:0}.p0{opacity:1}.scrolly[data-stage="1"] .p1,.scrolly[data-stage="2"] .p1,.scrolly[data-stage="2"] .p2{opacity:1}.rescue-intro{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding-bottom:50px}.rescue-intro>p{font-size:21px;line-height:1.65}.contract{padding-top:12px}.contract strong{display:block;font-size:78px;line-height:.92;letter-spacing:-.07em;margin-top:23px}.contract strong>span{font-size:43px;display:block;letter-spacing:-.04em;margin-top:5px}.hardware-photo{position:relative;margin-bottom:85px}.hardware-photo>img{width:100%;max-height:550px;object-fit:cover;object-position:50% 42%;filter:grayscale(1) contrast(1.1)}.photo-note{position:absolute;bottom:60px;left:35px;background:var(--yellow);padding:23px 30px;transform:rotate(-2deg)}.photo-note>b{display:block;font-size:32px;line-height:1.05;margin-top:10px;letter-spacing:-.03em}.hardware-photo figcaption{text-align:right}.rescue-diagram{background:#e8e6dc;color:var(--ink)}.rescue-diagram .scene-caption p{color:#62635a}.rescue-diagram>figcaption{color:#65665c;border-color:#c5c5b8}.rescue-diagram .badge{border-color:#b5b4a8}.wheel-area{display:flex;gap:28px;justify-content:center;padding:45px 20px 20px}.wheel{width:110px;height:110px;border:2px solid var(--ink);border-radius:50%;position:relative;display:grid;place-items:center}.wheel i{position:absolute;inset:10px;border:1px dashed #585b4e;border-radius:50%;transform:rotate(calc(var(--p)*300deg))}.wheel i:after{content:'';width:5px;height:100%;background:#a8ab9c;display:block;margin:auto;transform:rotate(45deg)}.wheel span{width:38px;height:38px;background:var(--yellow);z-index:1;border-radius:50%;display:grid;place-items:center;font:12px var(--mono)}.wheel-status{text-align:center;padding:20px 20px 35px}.wheel-status-text{font-weight:800;display:block;font-size:30px;letter-spacing:-.03em}.wheel-status>.eyebrow{display:block;margin-top:12px;font-size:9px}.fuel-route{display:flex;align-items:center;gap:15px;margin:0 25px 40px;padding-top:25px;border-top:1px solid #b7b9a9;min-height:70px}.fuel-a{font:11px var(--mono)}.fuel-route svg{max-width:130px;fill:none;stroke:var(--ink);stroke-width:2}.fuel-b{font-size:22px;letter-spacing:-.02em}.scrolly[data-stage="1"] .wheel:nth-child(-n+2),.scrolly[data-stage="2"] .wheel:nth-child(-n+2){border-color:#a8462c;opacity:.6}.scrolly[data-stage="1"] .wheel:nth-child(-n+2) span,.scrolly[data-stage="2"] .wheel:nth-child(-n+2) span{background:#a8462c;color:white}.scrolly[data-stage="1"] .wheel:nth-child(-n+2):after,.scrolly[data-stage="2"] .wheel:nth-child(-n+2):after{content:'';position:absolute;width:125%;height:2px;background:var(--rust);transform:rotate(-45deg);z-index:2}.approach-section{background:var(--ink);color:var(--paper);padding:75px 0 60px;margin-top:65px}.approach-section .chapter-heading{border-color:#64665c}.approach-section .section-number{color:var(--yellow)}.approach-section h2 mark{color:var(--ink);padding:0 7px;background:var(--yellow)}.approach-copy{max-width:740px;margin:0 0 42px auto;font-size:21px;line-height:1.7}.approach-copy p+p{margin-top:20px}.approach-photo{max-width:850px;margin:auto}.photo-canvas{border:1px solid #4c4d45;background:#080808}.photo-canvas>img{width:100%;max-height:620px;object-fit:contain}.approach-photo figcaption{color:#b5b7a8;text-align:right}.closing{padding-top:75px;padding-bottom:80px}.closing .reading{margin-bottom:0}.end-dates{display:grid;grid-template-columns:1fr 60px 1fr;gap:35px;align-items:center;margin:65px auto 10px;max-width:1000px;border-block:1px solid var(--ink);padding:35px 0}.end-dates strong{font-size:100px;line-height:1.2;letter-spacing:-.07em;display:block}.end-dates strong>span{font:17px var(--mono);letter-spacing:0;margin-left:15px}.end-dates p{font-size:15px}.date-connector{font-size:45px;color:var(--rust)}footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--ink);padding:30px 0 40px}footer span{font:10px var(--mono)}
/* Everything is readable without scripting. JS adds scroll state, not content. */
body:not(.enhanced) .orbit-trail{stroke-dashoffset:0}body:not(.enhanced) .orbit-point{opacity:1}body:not(.enhanced) .atmo-shell{ry:435px}body:not(.enhanced) .drag-arrow{opacity:1}
@media(min-width:1500px){.step{min-height:630px}.visual{top:45px}}
@media(max-width:1000px){.shell{width:calc(100% - 64px)}h1{font-size:58px}.collage{height:470px}.sun-cut{width:430px;height:430px}.swift-cut{width:500px;right:-30px;top:65px}.hero-note b{font-size:35px}.scrolly{gap:35px;grid-template-columns:1.1fr 1fr}h3{font-size:29px}.step p{font-size:18px}.visual-top{padding:18px 18px}.visual-top .eyebrow{font-size:8px}.scene-caption{padding-inline:18px}.scene-caption b{font-size:20px}.wheel-area{gap:15px}.wheel{width:85px;height:85px}.rescue-intro{gap:40px}.contract strong{font-size:65px}.fuel-b{font-size:18px}.solar-comparison{grid-template-columns:1fr 220px;gap:25px}.reading{width:calc(100% - 64px)}}
@media(max-width:700px){.shell{width:calc(100% - 40px)}.masthead{height:76px;gap:20px}.masthead img{width:124px}.masthead>span{font-size:10px;margin-left:auto}.masthead .edition{display:none}.hero{padding-top:25px}.meta{font-size:8px;gap:12px;letter-spacing:0}.meta>span:before{width:6px;height:6px;margin-right:7px}h1{font-size:clamp(37px,9.2vw,57px);line-height:1.04;letter-spacing:-.05em;margin:24px 0}.deck{font-size:19px;line-height:1.48}.byline{font-size:12px;margin-top:22px;padding-bottom:25px}.hero-art{width:100%}.collage{height:450px}.sun-cut{width:335px;height:335px;left:-110px;top:-35px}.swift-cut{width:350px;right:-5px;top:120px;transform:rotate(-13deg)}.tag{font-size:7px;padding:7px}.sun-tag{left:20px;top:20px}.swift-tag{right:20px;bottom:126px;transform:rotate(-4deg)}.hero-note{left:23px;bottom:42px}.hero-note>span{font-size:9px}.hero-note b{font-size:29px;margin-top:10px}.collage-arrow{width:100px;right:20px;top:25px}.orbit-ring{width:520px;height:270px;left:20px;top:60px}.ring-two{width:650px;height:330px;left:-60px;top:80px}.hero-art figcaption{padding-inline:20px;font-size:10px}.reading{width:calc(100% - 40px);font-size:19px;line-height:1.72;margin:35px auto}.reading p+p{margin-top:22px}.intro p:first-child:first-letter{font-size:70px}.chapter{padding-top:35px}.chapter-heading{gap:17px;margin-bottom:30px;padding-top:20px}.section-number{font-size:11px}.eyebrow{font-size:9px}h2{font-size:39px;line-height:1.05;margin-top:10px}.scrolly{display:block}.visual{z-index:3;top:8px;box-shadow:0 8px 20px #00000015;margin-bottom:25px}.visual-top{padding:12px 14px;min-height:40px}.visual-top .eyebrow{font-size:7px}.badge{font-size:7px;padding:4px 5px}.visual>svg{height:clamp(165px,28vh,240px)}.scene-caption{min-height:78px;padding:4px 14px 13px}.scene-caption b{font-size:18px;line-height:1.15}.scene-caption p{font-size:12px;line-height:1.4;margin-top:6px}.visual>figcaption{font-size:8px;padding:8px 14px 10px}.steps{position:relative;z-index:1}.step{min-height:72vh;padding:45px 0 55px;justify-content:center}.step h3{font-size:30px;margin:13px 0 18px}.step p{font-size:19px;line-height:1.65}.step .eyebrow{font-size:9px}.solar-comparison{display:block;margin:0 auto 45px}.solar-comparison figcaption{font-size:11px;line-height:1.6;border-top:0;padding-top:13px}.orbital-section{padding:40px 0 0}.orbit-chart>svg{height:clamp(175px,28vh,240px)}.orbit-chart .scene-caption{min-height:78px}.rescue-intro{display:block;padding-bottom:35px}.contract{margin-bottom:27px}.contract strong{font-size:70px}.contract strong>span{font-size:38px}.rescue-intro>p{font-size:19px;line-height:1.65}.hardware-photo{margin-bottom:45px}.hardware-photo>img{height:300px;object-position:45%}.photo-note{left:12px;bottom:45px;padding:15px 19px}.photo-note b{font-size:25px}.hardware-photo figcaption{font-size:10px}.wheel-area{padding:15px 15px 10px;gap:24px}.wheel{width:64px;height:64px}.wheel i{inset:7px}.wheel span{width:28px;height:28px;font-size:9px}.wheel-status{padding:5px 14px 12px}.wheel-status-text{font-size:22px}.wheel-status>.eyebrow{font-size:6.5px;margin-top:6px}.fuel-route{margin:0 14px 15px;padding-top:12px;min-height:42px;gap:10px}.fuel-route svg{width:70px;height:30px}.fuel-a{font-size:8px}.fuel-b{font-size:16px}.rescue-diagram .scene-caption{min-height:82px}.approach-section{margin-top:25px;padding:40px 0}.approach-section h2{font-size:36px}.approach-copy{font-size:19px;margin-bottom:28px;line-height:1.65}.approach-photo figcaption{font-size:10px;text-align:left}.closing{padding-top:40px;padding-bottom:45px}.closing .reading{width:100%;margin-top:30px}.end-dates{gap:15px;grid-template-columns:1fr 20px 1fr;padding-block:25px;margin-top:35px}.end-dates .eyebrow{font-size:7px;display:block;max-width:130px;min-height:24px}.end-dates strong{font-size:70px;letter-spacing:-.06em}.end-dates strong>span{font-size:12px;margin-left:7px}.end-dates p{font-size:12px;line-height:1.5;min-height:36px}.date-connector{font-size:25px}footer{gap:20px}footer img{width:115px}footer span{font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reading-progress{display:none}.visual{position:relative;top:auto}.step{min-height:0;padding:30px 0}.scrolly{align-items:start}.orbit-trail{stroke-dashoffset:0!important}.orbit-point{opacity:1!important}.atmo-shell{ry:435px}.drag-arrow{opacity:1}.solar-rays{opacity:1}.wheel i{transform:none}.wheel:nth-child(-n+2){border-color:var(--rust)}.wheel:nth-child(-n+2) span{background:var(--rust);color:white}}
@media print{.reading-progress{display:none}.shell{width:100%}.scrolly{display:block}.visual{position:static;break-inside:avoid}.step{min-height:0;padding:20px 0}.hero-art{max-width:80%}.orbit-point{opacity:1}.orbit-trail{stroke-dashoffset:0}.chapter{break-before:auto}.reading{width:100%}body{background:white}}

@media(max-width:700px){.orbit-chart svg text{font-size:23px}.orbit-chart svg .orbit-point text:first-of-type{font-size:32px}.orbit-chart svg .orbit-point text:last-of-type{font-size:21px}.orbit-chart svg>text{font-size:21px}}
@media(max-width:360px), (max-width:700px) and (max-height:700px){.visual>svg{height:145px}.scene-caption{min-height:0;padding-bottom:12px}.scene-caption p{display:none}.visual>figcaption{font-size:8px;line-height:1.4}.wheel-area{padding:8px 12px 0;gap:22px}.wheel{width:48px;height:48px}.wheel span{width:24px;height:24px;font-size:8px}.wheel-status{padding-bottom:10px}.wheel-status-text{font-size:19px}.fuel-route{margin-bottom:10px;padding-top:8px;min-height:35px}.fuel-b{font-size:14px}.rescue-diagram .scene-caption{min-height:0}.step{min-height:65vh}}
@media(max-width:1000px) and (min-width:701px) and (max-height:740px){.visual{top:12px}.visual>svg{max-height:330px}.scene-caption{min-height:100px}.visual-top{padding-block:14px}}
.scrolly[data-stage="1"] .wheel:nth-child(-n+2) i,.scrolly[data-stage="2"] .wheel:nth-child(-n+2) i{transform:rotate(110deg)}

/* Atmosphere illustration — editorial collage, isolated to chapter 01. */
.atmosphere{background:#20231e}
.atmosphere .atmo-art{height:auto;aspect-ratio:760/520;background:#20231e}
.atmosphere .atmo-art text{font-family:var(--mono);font-size:20px;letter-spacing:.06em}
.atmosphere .atmo-art .atmo-small{font-size:15px;letter-spacing:.02em}
.atmosphere .atmo-energy{opacity:calc(.24 + var(--p)*.76)}
.atmosphere .atmo-drag{opacity:calc(.25 + var(--p)*.75)}
.atmosphere .atmo-drag text{font-size:17px}
.atmosphere .atmo-envelope{r:calc(660px + var(--p)*110px)}
.atmosphere .visual-top{position:relative;z-index:1}
.atmosphere .scene-caption{padding-top:18px;border-top:1px solid #56584b;min-height:128px;background:var(--ink)}
.atmosphere>figcaption{background:var(--ink)}
body:not(.enhanced) .atmosphere{--p:1}
@media(max-width:700px){
 .atmosphere .atmo-art{height:auto;max-height:none}
 .atmosphere .scene-caption{padding-top:14px;min-height:94px}
 .atmosphere .atmo-art text{font-size:23px;letter-spacing:.02em}
 .atmosphere .atmo-art .atmo-small{font-size:18px}
 .atmosphere .atmo-drag text{font-size:20px}
}
@media(max-width:360px), (max-width:700px) and (max-height:700px){
 .atmosphere .scene-caption{min-height:0;padding-top:12px}
}
@media(prefers-reduced-motion:reduce){.atmosphere{--p:1!important}}
@media print{.atmosphere{--p:1!important}}

.hero-art figcaption{font-size:13px;line-height:1.65;max-width:1050px}
@media(max-width:700px){.hero-art figcaption{font-size:12px}}
