:root{color-scheme:dark;--ink:#080f19;--paper:#d4d7db;--muted:#a3adb9;--gold:#ddbd81;--line:rgba(221,189,129,.22);font-family:Arial,Helvetica,sans-serif;background:var(--ink);color:var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0}a{color:inherit}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}::selection{background:#ddbd8145;color:#fff}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:7px}.skip-link{position:fixed;top:10px;left:10px;z-index:20;transform:translateY(-160%);padding:12px;background:var(--ink)}.skip-link:focus{transform:none}.masthead{height:82px;display:flex;justify-content:space-between;align-items:center;padding:0 5.2%;position:absolute;inset:0 0 auto;z-index:10;border-bottom:1px solid #ffffff17;color:#eadac0}.wordmark{text-decoration:none;font-size:13px;letter-spacing:.24em;display:flex;align-items:center;gap:12px}.wordmark span{font-size:30px;font-weight:normal}.masthead-note{font-size:11px;letter-spacing:.23em;color:#b8bcc3}.chapters-toggle{font-size:12px;letter-spacing:.18em;text-decoration:none;display:flex;gap:19px;align-items:center}.chapters-toggle span{font-size:23px;font-weight:200}.cover{height:max(760px,100svh);max-height:1100px;position:relative;overflow:hidden;background:#091321}.cover-art,.cover-shade{position:absolute;inset:0}.cover-art img{position:absolute;width:100%;height:150%;top:-50%;object-fit:cover;object-position:65% bottom;opacity:.86}.cover-shade{background:linear-gradient(90deg,rgba(5,12,21,.92) 0%,rgba(5,12,21,.63) 33%,rgba(5,12,21,.1) 70%),linear-gradient(0deg,var(--ink),transparent 25%,transparent 80%,#08101baa)}.cover-copy{position:relative;padding:clamp(180px,23vh,260px) 8.5% 140px;max-width:940px}.eyebrow{font-size:12px;letter-spacing:.19em;line-height:1.6;font-weight:400;text-transform:uppercase;color:var(--gold)}.fiction-label{font-size:12px;letter-spacing:.1em;text-transform:none;margin:0 0 31px}h1,h2,p{margin-top:0}h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.19;letter-spacing:.15em;color:#eed8af;margin-bottom:24px}h1 span{display:block;font-size:clamp(36px,3.7vw,59px)}h1 em{display:block;font-weight:400;font-style:normal;font-size:clamp(49px,5.3vw,83px);letter-spacing:.085em;white-space:nowrap;margin-top:8px}.cover-line{font-family:Georgia,serif;font-size:18px;line-height:1.65;color:#c1c6ce}.begin{display:inline-flex;align-items:center;gap:48px;border-bottom:1px solid #ddbd8180;text-decoration:none;padding:16px 0 13px;font-size:14px;color:#eed8af;transition:color .2s,gap .2s}.begin span{font-size:22px}.begin:hover{gap:60px;color:white}.cover-bottom{position:absolute;bottom:32px;left:5.2%;right:5.2%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.19em;color:#a9b0bb}.cover-bottom span{display:flex;align-items:center;gap:13px}.cover-bottom i{width:17px;height:1px;background:#929b9e}.chapter{padding:120px 24px 65px;position:relative;scroll-margin-top:0}.chapter-heading{max-width:640px;margin:0 auto 42px;position:relative}.chapter-number{font-family:Georgia,serif;font-size:98px;line-height:1;color:#86765d;position:absolute;left:-125px;top:-12px}.chapter-heading .eyebrow{margin-bottom:18px;font-size:11px}.chapter h2{font-family:Georgia,serif;font-size:clamp(38px,4.7vw,62px);font-weight:400;line-height:1.1;color:#eee3d0;letter-spacing:-.045em;margin:0 0 27px}.heading-rule{width:48px;height:1px;background:var(--gold);opacity:.6}.prose{max-width:640px;margin:auto;font-family:Georgia,'Times New Roman',serif;font-size:1.1875rem;line-height:1.85;color:#c9cdd3}.prose p{margin-bottom:23px}.prose .opening:first-letter{float:left;font-size:72px;line-height:.91;padding:8px 10px 0 0;color:var(--gold)}.prose em{color:#e4d2b1}
@media(min-width:1700px){.cover-copy{max-width:1100px}.cover-art img{object-position:center bottom}}@media(max-width:900px){.masthead-note{display:none}.chapter-number{left:-75px;font-size:70px}.chapter-heading,.prose{max-width:560px}}@media(max-width:720px){html{scroll-padding-top:90px}.masthead{height:68px;padding:0 6%}.wordmark{font-size:11px;gap:8px}.chapters-toggle{font-size:11px;gap:9px}.cover{height:850px;min-height:100svh;max-height:1000px}.cover-art{inset:68px -20% 190px -65%}.cover-art img{height:150%;top:-50%;object-position:74% bottom;opacity:.8}.cover-shade{background:linear-gradient(0deg,var(--ink) 0%,#080f19 12%,rgba(8,15,25,.82) 35%,rgba(8,15,25,.08) 80%),linear-gradient(90deg,#080f1933,transparent)}.cover-copy{padding:340px 7% 95px;max-width:none}.fiction-label{font-size:11px;letter-spacing:.035em;margin-bottom:23px}h1 span{font-size:34px;line-height:1.25;letter-spacing:.15em}h1 em{font-size:45px;letter-spacing:.045em;margin-top:3px}.cover-line{font-size:16px;line-height:1.65}.begin{font-size:14px;padding-top:8px;gap:45px}.cover-bottom{bottom:25px;left:7%;right:7%;font-size:9px;letter-spacing:.12em}.cover-bottom>span:last-child{display:none}.chapter{padding:83px 7% 32px}.chapter-number{font-size:52px;left:auto;right:0;top:-5px;color:#86765d}.chapter-heading{margin-bottom:32px}.chapter-heading .eyebrow{padding-right:45px;font-size:10px}.chapter h2{font-size:40px;max-width:90%;letter-spacing:-.035em}.prose{font-size:1.125rem;line-height:1.82}.prose p{margin-bottom:22px}.prose .opening:first-letter{font-size:65px}}
.masthead{position:fixed;transition:background .25s,height .25s}.has-scrolled .masthead{background:rgba(8,15,25,.94);backdrop-filter:blur(15px);height:68px}.chapter-menu{position:relative}.chapter-menu summary{cursor:pointer;list-style:none;min-height:44px}.chapter-menu summary::-webkit-details-marker{display:none}.chapter-menu[open] .menu-icon{transform:rotate(45deg)}.menu-icon{transition:transform .2s}.chapter-menu nav{position:absolute;top:54px;right:0;width:350px;max-width:calc(100vw - 36px);padding:25px;background:#0c1622;border:1px solid var(--line);box-shadow:0 20px 55px #0007}.chapter-menu nav>.eyebrow{font-size:11px;margin:0 0 12px}.chapter-menu nav a{display:flex;gap:16px;text-decoration:none;font-family:Georgia,serif;font-size:17px;line-height:1.4;padding:13px 0;border-bottom:1px solid #ffffff0c;color:#c4cbd3}.chapter-menu nav a:last-child{border-bottom:none}.chapter-menu nav a span{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.1em;color:#a9997f;padding-top:3px}.chapter-menu nav a:hover,.chapter-menu nav a[aria-current]{color:var(--gold)}.reading-track{height:2px;position:fixed;top:0;left:0;right:0;z-index:15;pointer-events:none}.reading-fill{height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}.chapter-rail{position:fixed;right:3.4%;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:5px;z-index:5;opacity:0;visibility:hidden;transition:opacity .3s}.is-reading .chapter-rail{opacity:1;visibility:visible}.chapter-rail a{font-size:11px;letter-spacing:.1em;text-decoration:none;color:#85909f;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;position:relative}.chapter-rail a[aria-current]{color:var(--gold)}.chapter-rail a::after{content:'';position:absolute;width:12px;height:1px;background:var(--gold);right:-12px;opacity:0}.chapter-rail a[aria-current]::after{opacity:1}.scene-break{display:flex;gap:22px;align-items:center;justify-content:center;color:#cfb78180;padding:28px 0 0;font-size:23px}.scene-break span{width:55px;height:1px;background:linear-gradient(90deg,transparent,var(--line))}.scene-break span:last-child{transform:rotate(180deg)}.chapter-forts{background:radial-gradient(ellipse at 50% 55%,#10253666,transparent 65%)}.fort-figure{margin:58px auto;max-width:830px;padding:42px 32px 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:radial-gradient(ellipse at center,#162a3645,transparent 65%)}.fort-figure figcaption{text-align:center}.fort-figure figcaption .eyebrow{font-size:10px;color:#95a3b3}.fort-figure h3{font:normal 30px/1.2 Georgia,serif;color:#e8dcc7;margin:14px 0 12px}.fort-figure figcaption p{font-size:13px;color:#a3adba;line-height:1.5}.fort-map{position:relative;max-width:590px;margin:18px auto 3px;aspect-ratio:1}.fort-map svg{width:100%;height:100%;display:block}.map-guide{fill:none;stroke:#b6c8d2;stroke-opacity:.2;stroke-width:.7;stroke-dasharray:3 6}.moat{fill:#13293970;stroke:#4d7a92;stroke-opacity:.45;stroke-width:1}.fort-outline{fill:#0b1924;stroke:#e4c590;stroke-opacity:.8;stroke-width:1.4}.sector{fill:#cfac640b;stroke:#cfac643d;stroke-width:1;transition:fill .35s}.sector.is-selected{fill:#dbbb8045;stroke:#e4c590;stroke-width:1.3}.map-path{fill:none;stroke:#d6bc865c;stroke-width:1;stroke-dasharray:3 5}.courtyard{fill:#102331;stroke:#d4b98288;stroke-width:1.2}.fort-map text{font-family:Arial,sans-serif;font-size:12px;letter-spacing:2px;fill:#b4bfc8}.station{position:absolute;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:8px 12px;background:#0b1721e8;color:#c7cdd4;border:1px solid #69757840;font-size:13px;cursor:pointer;transition:border-color .2s,color .2s;white-space:nowrap}.station:hover,.station[aria-pressed=true]{border-color:#d8ba8180;color:var(--gold)}.station-dot{width:5px;height:5px;border:1px solid currentColor;border-radius:50%;background:transparent}.station[aria-pressed=true] .station-dot{background:var(--gold);box-shadow:0 0 12px #ddbd8177}.station-materials{left:-4%;top:50%;transform:translateY(-50%)}.station-energy{right:-4%;top:50%;transform:translateY(-50%)}.station-observatory{top:-1%;left:50%;transform:translateX(-50%)}.station-archives{bottom:-1%;left:50%;transform:translateX(-50%)}.station-description{max-width:470px;min-height:126px;margin:36px auto 0;text-align:center}.station-description h4{font:normal 22px/1.3 Georgia,serif;margin:0 0 10px;color:var(--gold)}.station-description p{font-family:Georgia,serif;font-size:17px;line-height:1.7;color:#b8c3cf;margin:0}.story-illustration{max-width:1380px;margin:85px auto 0;padding:0 5.2%;position:relative}.story-illustration img{width:100%;height:auto;display:block;aspect-ratio:1672/941;object-fit:cover;border:1px solid #ffffff0d}.story-illustration figcaption{display:flex;justify-content:space-between;padding-top:16px;font-size:10px;letter-spacing:.16em;color:#95a0ae}.signal-message{text-align:center;max-width:940px;margin:65px auto 65px;padding:50px 20px 35px;position:relative;background:radial-gradient(ellipse,#24323b52,transparent 67%)}.signal-message .eyebrow{font-size:10px;letter-spacing:.21em;color:#b9a37b}.signal-message p{font-family:Georgia,serif;color:#ead8b6;font-size:clamp(35px,5.2vw,64px);line-height:1.25;font-weight:400;letter-spacing:-.025em;margin:23px 0 0}.chapter-world{padding-bottom:70px}.ending{font:normal clamp(24px,3.1vw,42px)/1.6 Georgia,serif;text-align:center;max-width:980px;margin:70px auto 45px;color:#b8bdc5;letter-spacing:-.025em}.ending em{display:inline-block;font-weight:400;font-style:normal;color:#e5c99a;font-size:1.45em;line-height:1.4;margin-top:6px}.end-mark{text-align:center;font-size:33px;color:var(--gold)}.end-label{text-align:center;font-size:10px;letter-spacing:.3em;margin:18px 0 0;color:#a79980}footer{display:flex;align-items:center;justify-content:space-between;gap:25px;max-width:1220px;margin:25px auto 0;border-top:1px solid var(--line);padding:32px 32px 38px}footer p{font-size:12px;line-height:1.8;color:#919daa;margin:0}footer a{font-size:12px;text-decoration:none;line-height:1.7;color:#d6bb8d;white-space:nowrap}footer a span{margin-left:18px}section[tabindex]:focus{outline:none}
@media(max-width:1020px){.chapter-rail{display:none}.fort-figure{max-width:700px}.fort-map{max-width:540px}}
@media(max-width:720px){.has-scrolled .masthead{height:62px}.chapter-menu nav{top:48px;padding:20px}.chapter-menu nav a{font-size:16px;padding:12px 0}.fort-figure{margin:40px -2%;padding:30px 0 23px}.fort-figure h3{font-size:27px}.fort-figure figcaption .eyebrow{font-size:9px;letter-spacing:.12em}.fort-figure figcaption p{font-size:12px}.fort-map{width:100%;margin:27px auto 4px}.station{font-size:12px;min-height:44px;padding:8px 9px;gap:6px}.station-materials{left:-2%}.station-energy{right:-2%}.station-observatory{top:-4%}.station-archives{bottom:-4%}.station-description{min-height:143px;padding:0 16px;margin-top:31px}.station-description h4{font-size:21px}.station-description p{font-size:16px;line-height:1.7}.story-illustration{margin-top:54px;padding:0}.story-illustration img{aspect-ratio:4/3;object-position:41% center}.story-illustration figcaption{padding:14px 7% 0;font-size:8px;letter-spacing:.13em}.scene-break{padding-top:24px}.signal-message{margin:30px -3% 43px;padding:38px 10px 20px}.signal-message p{font-size:38px}.ending{font-size:24px;line-height:1.65;margin:55px auto 40px;max-width:355px}.ending em{font-size:1.5em;margin-top:14px}.chapter-world{padding-bottom:50px}footer{display:block;margin:15px 7% 0;padding:25px 0 32px}footer p{font-size:11px;line-height:1.8}footer a{display:inline-block;margin-top:20px;min-height:44px;font-size:12px}}
@media(max-width:360px){h1 span{font-size:30px}h1 em{font-size:39px}.wordmark{font-size:10px}.cover-copy{padding-top:345px}.station{padding:7px;font-size:11px}.station-dot{display:none}.chapter h2{font-size:35px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.header-actions { display: flex; align-items: center; gap: 28px; }
.sound-menu[hidden] { display: none; }
.sound-menu summary { display: flex; align-items: center; gap: 9px; min-height: 44px; cursor: pointer; list-style: none; color: #b8bcc3; font-size: .875rem; }
.sound-menu summary::-webkit-details-marker { display: none; }
.sound-menu.sound-on summary, .sound-menu[open] summary { color: var(--gold); }
.sound-panel { position: fixed; right: 5.2%; top: 82px; width: 290px; max-width: calc(100vw - 32px); padding: 25px; background: #0c1622; border: 1px solid var(--line); box-shadow: 0 20px 55px #0007; }
.sound-title { font: normal 1.5rem/1.3 Georgia, serif; color: #eee3d0; margin-bottom: 8px; }
.sound-description { font-size: .875rem; line-height: 1.6; color: #b8c3cf; margin-bottom: 20px; }
#sound-toggle { display: block; width: 100%; min-height: 44px; border: 1px solid #ddbd8170; background: #ddbd8110; color: var(--gold); cursor: pointer; font-size: .9375rem; margin-bottom: 22px; }
#sound-toggle:hover { background: #ddbd8120; }
.sound-panel label { display: block; font-size: .875rem; color: #b8c3cf; }
#sound-volume { display: block; width: 100%; height: 44px; margin: 0; accent-color: var(--gold); cursor: pointer; }
#sound-volume:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
#sound-status { font-size: .875rem; line-height: 1.6; color: #b8c3cf; margin: 8px 0 0; }
#sound-status:empty { display: none; }
@media (max-width: 720px) { .header-actions { gap: 17px; } .sound-panel { top: 74px; right: 6%; } }
@media (max-width: 380px) { .sound-menu summary { justify-content: center; width: 44px; } .sound-menu summary span { display: none; } .header-actions { gap: 8px; } }

/* Chapter artwork stays uncropped so the story is readable on small screens. */
.chapter-art { max-width: 960px; margin: 0 auto 46px; }
.chapter-art img { display: block; width: 100%; height: auto; border: 1px solid #ddbd8120; background: #10202e; }
.chapter-art figcaption { margin-top: 14px; color: #aeb8c4; font: normal .875rem/1.65 Arial, sans-serif; }
.chapter-heading .eyebrow { font-size: .75rem; }
.cover-line { max-width: 520px; }
@media (max-width: 720px) {
  .chapter-art { margin-bottom: 32px; }
  .chapter-art figcaption { margin-top: 10px; }
  .chapter-heading .eyebrow { font-size: .75rem; letter-spacing: .12em; }
  .cover-line { max-width: 340px; }
}

/* Quiet, optional layers within the reading flow. */
.fort-map { max-width: 500px; }
.archive-network {
  max-width: 720px;
  margin: 42px auto 46px;
  padding: 30px 32px 23px;
  border-block: 1px solid var(--line);
  background: radial-gradient(ellipse at center, #12233255, transparent 70%);
}
.archive-network figcaption { text-align: center; }
.archive-network .eyebrow { font-size: .625rem; color: #a99a7c; margin-bottom: 12px; }
.archive-network h3 { font: normal 1.875rem/1.2 Georgia, serif; color: #e8dcc7; margin: 0; }
.network-map { position: relative; margin: 15px auto 13px; padding-bottom: 23px; }
.network-map svg { display: block; width: 100%; height: auto; overflow: visible; }
.route { fill: none; stroke: #799bae; stroke-width: 1.2; opacity: .65; transition: opacity .5s; }
.network-fort { color: #d3b57d; transition: color .5s, opacity .5s; }
.network-fort circle { fill: #0a1420; stroke: currentColor; stroke-opacity: .2; stroke-width: .8; }
.network-fort path { fill: #0e1c28; stroke: currentColor; stroke-width: 1.2; }
.network-name { position: absolute; font-size: .8125rem; line-height: 1.3; color: #bdc5cc; transform: translateX(-50%); white-space: nowrap; }
.name-west { left: 14.84%; top: 33%; }
.name-north { left: 85.15%; top: 33%; color: #ddbd81; }
.name-south { left: 29.69%; top: 86%; }
.name-east { left: 70.31%; top: 86%; }
.archive-network[data-age="1"] .route-west,
.archive-network[data-age="1"] .route-central { opacity: .14; stroke-dasharray: 3 6; }
.archive-network[data-age="1"] .fort-west { opacity: .4; }
.archive-network[data-age="2"] .route { opacity: .08; stroke-dasharray: 3 6; }
.archive-network[data-age="2"] .network-fort:not(.fort-north) { color: #80909b; }
.era-controls { max-width: 520px; margin: 0 auto; }
.era-controls[hidden] { display: none; }
.era-controls label { display: block; text-align: center; font-size: .875rem; color: #c0c7cf; margin-bottom: 2px; }
#archive-era { appearance: none; -webkit-appearance: none; display: block; width: 100%; height: 44px; margin: 0; padding: 0; background: transparent; cursor: ew-resize; color: var(--gold); }
#archive-era::-webkit-slider-runnable-track { height: 2px; background: #8e826761; }
#archive-era::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 20px; height: 20px; border-radius: 50%; background: #ddbd81; border: 5px solid #17222c; outline: 1px solid #c4a56d; margin-top: -9px; }
#archive-era::-moz-range-track { height: 2px; background: #8e826761; }
#archive-era::-moz-range-thumb { box-sizing: border-box; width: 20px; height: 20px; border-radius: 50%; background: #ddbd81; border: 5px solid #17222c; outline: 1px solid #c4a56d; }
#archive-era:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 3px; }
.era-labels { display: flex; justify-content: space-between; gap: 10px; font-size: .75rem; color: #a3adba; line-height: 1.4; }
.era-labels span { flex: 1; }
.era-labels span:nth-child(2) { text-align: center; }
.era-labels span:last-child { text-align: right; }
.era-description { max-width: 525px; min-height: 80px; margin: 24px auto 0; text-align: center; color: #bcc5cf; font: normal 1rem/1.75 Georgia, serif; }
.receiver-comparison { max-width: 580px; margin: -32px auto 45px; }
.receiver-comparison summary { display: flex; justify-content: center; align-items: center; gap: 12px; min-height: 44px; width: fit-content; max-width: 100%; margin: auto; cursor: pointer; list-style: none; color: #c6b18a; font-size: .8125rem; line-height: 1.6; border-bottom: 1px solid #ddbd8130; }
.receiver-comparison summary::-webkit-details-marker { display: none; }
summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.receiver-light { width: 5px; height: 5px; border-radius: 50%; background: #ddbd81; box-shadow: 0 0 9px #ddbd8140; }
.detail-indicator { font-size: 1.125rem; margin-left: 9px; transition: transform .2s; }
.receiver-comparison[open] .detail-indicator { transform: rotate(45deg); }
.receiver-evidence { padding: 25px 14px 22px; margin-top: 15px; border-bottom: 1px solid var(--line); }
.receiver-evidence .eyebrow { text-align: center; font-size: .625rem; color: #b4a285; margin-bottom: 20px; }
.signal-row { display: flex; align-items: center; gap: 22px; }
.signal-row > span { flex: 0 0 84px; font-size: .8125rem; color: #b4bfca; }
.signal-row svg { min-width: 0; flex: 1; width: 100%; height: auto; overflow: visible; }
.wave-guide { fill: none; stroke: #718391; stroke-width: .5; stroke-opacity: .25; }
.wave-recorded, .wave-received { fill: none; stroke-width: 1.4; stroke-linejoin: round; }
.wave-recorded { stroke: #9dabb6; }
.wave-received { stroke: var(--gold); }
.receiver-comparison[open] .wave-received { stroke-dasharray: 1; animation: receive-trace 1.6s ease-out both; }
.receiver-copy { font: normal 1rem/1.75 Georgia, serif; color: #bac4ce; margin: 22px 0 0; }
@keyframes receive-trace { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@media(max-width:720px) {
  .archive-network { padding: 26px 10px 17px; margin: 35px -2% 36px; }
  .archive-network h3 { font-size: 1.625rem; }
  .network-map { margin-top: 22px; margin-bottom: 8px; padding-bottom: 33px; }
  .network-name { font-size: .75rem; }
  .name-west, .name-north { top: 30%; }
  .name-south, .name-east { top: 78%; }
  .era-controls { margin-inline: 4px; }
  .era-controls label { font-size: .8125rem; }
  .era-labels { font-size: .75rem; }
  .era-description { min-height: 114px; margin-top: 22px; padding-inline: 4px; font-size: 1rem; }
  .receiver-comparison { margin: -20px auto 35px; }
  .receiver-comparison summary { font-size: .8125rem; }
  .receiver-evidence { padding: 20px 0; }
  .signal-row { gap: 12px; }
  .signal-row > span { flex-basis: 70px; font-size: .75rem; }
  .receiver-copy { font-size: 1rem; }
}
@media(prefers-reduced-motion:reduce) {
  .route, .network-fort, .detail-indicator { transition: none; }
  .receiver-comparison[open] .wave-received { animation: none; stroke-dashoffset: 0; }
}

/* Paginated reading: one page on phones, a two-page spread on wide screens. */
.reader-title { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.reading-hint { display: none; }
.book-mode .reading-hint { display: block; max-width: 300px; margin-top: 19px; color: #aab3be; font-size: .6875rem; line-height: 1.6; }
.book-navigation[hidden], .book-mode .chapter[hidden], .book-mode #cover[hidden], .reader-shell[hidden] { display: none !important; }
.book-mode .reader-shell { --page-height: max(450px, min(780px, calc(100svh - 200px))); max-width: 1160px; margin: 0 auto; padding: 108px 42px 0; }
.book-mode .book-viewport { height: var(--page-height); overflow: hidden; position: relative; touch-action: pan-y; outline: none; }
.book-mode #story { height: 100%; }
.book-mode .chapter { box-sizing: border-box; width: 100%; height: 100%; padding: 0; margin: 0; columns: 2; column-gap: 74px; column-fill: auto; column-rule: 1px solid #ddbd8115; background: none; transition: transform .22s ease-out; }
.book-mode .chapter-heading { max-width: none; margin: 0 0 27px; padding-top: 8px; break-inside: avoid; break-after: avoid; }
.book-mode .chapter-art { display: flex; flex-direction: column; justify-content: center; gap: 20px; break-inside: avoid; break-after: column; width: 100%; height: calc(var(--page-height) - 3px); margin: 0; }
.book-mode .chapter-art img { width: 100%; height: auto; max-height: calc(var(--page-height) - 110px); object-fit: contain; }
.book-mode .chapter-art figcaption { margin: 0; font-size: .8125rem; line-height: 1.65; color: #aeb8c4; }
.book-mode .chapter-number { position: static; float: right; font-size: 54px; line-height: 1; color: #81735d; margin: 0 0 15px 15px; }
.book-mode .chapter-heading .eyebrow { font-size: .625rem; padding: 0; margin-bottom: 18px; }
.book-mode .chapter h2 { font-size: 2.7rem; line-height: 1.12; letter-spacing: -.04em; max-width: 100%; margin-bottom: 22px; clear: both; }
.book-mode .prose { display: contents; font-size: 1.125rem; line-height: 1.85; }
.book-mode .prose p { margin: 0 0 1.15em; orphans: 3; widows: 3; overflow-wrap: break-word; }
.book-mode .prose .opening:first-letter { font-size: 65px; }
.book-mode .fort-figure { box-sizing: border-box; break-before: column; break-after: column; break-inside: avoid; width: 100%; max-width: none; height: calc(var(--page-height) - 3px); padding: 22px 6px 14px; margin: 0; display: flex; flex-direction: column; justify-content: center; }
.book-mode .fort-figure h3 { font-size: 1.5rem; margin: 10px 0 9px; }
.book-mode .fort-figure figcaption .eyebrow { font-size: .56rem; letter-spacing: .09em; }
.book-mode .fort-figure figcaption p { font-size: .75rem; margin-bottom: 12px; }
.book-mode .fort-map { flex: 0 0 auto; width: min(calc(100% - 24px), calc(var(--page-height) - 240px)); max-width: 440px; margin: 12px auto 0; }
.book-mode .station { font-size: .75rem; min-height: 44px; padding: 7px 9px; gap: 6px; }
.book-mode .station-materials { left: -2%; }
.book-mode .station-energy { right: -2%; }
.book-mode .station-observatory { top: -2%; }
.book-mode .station-archives { bottom: -2%; }
.book-mode .station-description { min-height: 96px; max-width: 100%; padding-inline: 6px; margin: 22px auto 0; }
.book-mode .station-description h4 { font-size: 1.2rem; margin-bottom: 7px; }
.book-mode .station-description p { font-size: .9375rem; line-height: 1.6; }
.book-mode .archive-network { break-before: column; break-inside: avoid; break-after: column; margin: 0; padding: 22px 8px 15px; max-width: none; }
.book-mode .archive-network h3 { font-size: 1.6rem; }
.book-mode .network-map { margin-top: 18px; padding-bottom: 25px; }
.book-mode .network-name { font-size: .75rem; }
.book-mode .era-description { min-height: 104px; font-size: .9375rem; line-height: 1.65; }
.book-mode .story-illustration { break-inside: avoid; break-after: column; display: flex; flex-direction: column; height: calc(var(--page-height) - 3px); width: 100%; max-width: none; padding: 0; margin: 0; }
.book-mode .story-illustration img { flex: 1; min-height: 0; height: 1px; aspect-ratio: auto; object-position: 40% center; }
.book-mode .story-illustration figcaption { flex: 0 0 auto; font-size: .56rem; line-height: 1.7; padding: 15px 0 0; letter-spacing: .08em; }
.book-mode .signal-message { break-inside: avoid; padding: 25px 0 20px; margin: 18px 0 25px; }
.book-mode .signal-message p { font-size: 2.45rem; line-height: 1.3; }
.book-mode .receiver-comparison { break-inside: avoid; margin: 0 0 28px; }
.book-mode .receiver-evidence { padding: 15px 0; }
.book-mode .receiver-copy { font-size: .9375rem; line-height: 1.65; margin-top: 14px; }
.book-mode .ending { break-inside: avoid; font-size: 1.6rem; line-height: 1.5; max-width: 100%; margin: 35px 0 28px; }
.book-mode .ending em { font-size: 1.45em; }
.book-mode .end-mark, .book-mode .end-label { break-inside: avoid; }
.book-mode footer { display: block; break-inside: avoid; margin: 25px 0 0; padding: 18px 0 0; }
.book-mode footer p { font-size: .6875rem; }
.book-mode footer a { margin-top: 14px; display: inline-block; min-height: 44px; }
.book-mode .book-navigation { display: grid; grid-template-columns: 120px 1fr 120px; align-items: center; gap: 20px; min-height: 92px; border-top: 1px solid var(--line); margin-top: 22px; padding: 14px 0; }
.book-navigation button { display: inline-flex; align-items: center; justify-content: flex-start; gap: 15px; background: transparent; border: 0; padding: 12px 0; min-height: 48px; color: var(--gold); font-size: .875rem; cursor: pointer; }
.book-navigation button:last-child { justify-content: flex-end; }
.book-navigation button:disabled { color: #747f8b; cursor: default; }
.book-navigation button span[aria-hidden] { font-size: 1.375rem; }
.book-position { text-align: center; line-height: 1.5; }
#book-chapter-label { display: block; font: normal .875rem/1.4 Georgia, serif; color: #c4cbd3; }
#book-page-label { display: block; font-size: .6875rem; letter-spacing: .08em; color: #a59678; margin-top: 6px; }
.book-mode .chapter-menu nav { max-height: calc(100svh - 110px); overflow-y: auto; }
@media(max-width:1099px) {
  .book-mode .reader-shell { max-width: 710px; }
  .book-mode .chapter { column-count: 1; column-gap: 48px; }
}
@media(max-width:720px) {
  .book-mode .reader-shell { --page-height: max(440px, calc(100svh - 178px)); padding: 85px 7% 0; }
  .book-mode .chapter { column-gap: 36px; }
  .book-mode .chapter h2 { font-size: 2.35rem; }
  .book-mode .chapter-number { font-size: 44px; }
  .book-mode .chapter-heading { padding-top: 0; margin-bottom: 23px; }
  .book-mode .prose { font-size: 1.125rem; line-height: 1.8; }
  .book-mode .book-navigation { grid-template-columns: 86px 1fr 72px; min-height: 77px; gap: 9px; margin-top: 16px; padding: 9px 0; }
  .book-navigation button { gap: 8px; font-size: .8125rem; }
  #book-chapter-label { font-size: .75rem; }
  #book-page-label { font-size: .625rem; letter-spacing: .03em; }
  .book-mode .fort-figure { padding-top: 16px; padding-bottom: 8px; }
  .book-mode .fort-map { width: min(calc(100% - 24px), calc(var(--page-height) - 240px)); }
  .book-mode .station { font-size: .6875rem; padding: 6px; }
  .book-mode .station-description { margin-top: 22px; }
  .book-mode .signal-message p { font-size: 2.1rem; }
  .book-mode .ending { font-size: 1.45rem; }
}
@media(prefers-reduced-motion:reduce) { .book-mode .chapter { transition: none; } }

/* A small reading desk for language, type size, and the saved place. */
.wordmark .wordmark-name { font: inherit; letter-spacing: inherit; }
.reading-menu summary { display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; font: 1.25rem Georgia, serif; color: #d9c9ab; cursor: pointer; list-style: none; }
.reading-menu summary::-webkit-details-marker { display: none; }
.reading-panel { position: fixed; top: 82px; right: 5.2%; width: 310px; max-width: calc(100vw - 32px); max-height: calc(100svh - 108px); overflow-y: auto; padding: 25px; background: #0c1622; border: 1px solid var(--line); box-shadow: 0 20px 55px #0007; }
.settings-title { font: 1.5rem/1.3 Georgia, serif; color: #eee3d0; margin-bottom: 24px; }
.settings-label, .size-control label { display: block; font-size: .875rem; color: #bdc5ce; margin-bottom: 10px; line-height: 1.5; }
.language-options { display: flex; gap: 12px; margin-bottom: 27px; }
.language-options a { flex: 1; text-align: center; padding: 13px 8px; min-height: 44px; border: 1px solid #ddbd8135; text-decoration: none; font-size: .875rem; }
.language-options a[aria-current] { color: var(--gold); border-color: #ddbd8190; background: #ddbd8110; }
#reading-size { width: 100%; height: 44px; margin: 0; accent-color: var(--gold); cursor: pointer; }
#reading-size:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
#reading-size-label { display: block; color: #ddbd81; font-size: .875rem; margin-top: 4px; }
.settings-note { font-size: .8125rem; line-height: 1.65; color: #9aa6b4; margin: 20px 0 0; }
.book-mode .prose { font-size: var(--story-size, 1.125rem); }
.restart-reading { display: block; width: fit-content; min-height: 44px; padding: 14px 0 8px; font-size: .8125rem; color: #b7c0ca; text-underline-offset: 5px; }
.restart-reading[hidden], .size-control[hidden] { display: none; }
.cover-languages { display: flex; align-items: center; gap: 3px; }
.cover-languages a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 10px; font-size: .8125rem; letter-spacing: .02em; text-decoration: none; color: #b9c2ce; }
.cover-languages a[aria-current] { color: #ddbd81; text-decoration: underline; text-underline-offset: 7px; }
.cover-bottom { align-items: center; flex-wrap: wrap; gap: 0 15px; bottom: 17px; }
@media (max-width: 720px) {
  .reading-panel { top: 74px; right: 6%; }
  .has-bookmark .cover { height: max(930px, 100svh); }
  .header-actions { gap: 9px; }
  .cover-languages a { padding-inline: 7px; }
}
@media (max-width: 520px) {
  .wordmark .wordmark-name { display: none; }
  .cover-bottom { bottom: 10px; }
}

/* Let small screens and touch tablets read the complete chapter in normal flow. */
.scroll-hint { display: none; }
.scroll-reading .scroll-hint { display: inline; }
.scroll-reading .paged-hint { display: none; }
html { -webkit-text-size-adjust: 100%; }
.book-mode.scroll-reading .reader-shell {
  width: 100%; max-width: 760px;
  padding: 100px max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
}
.book-mode.scroll-reading .book-viewport,
.book-mode.scroll-reading #story,
.book-mode.scroll-reading .chapter {
  height: auto; min-height: 0; max-height: none; overflow: visible;
}
.book-mode.scroll-reading .chapter {
  columns: auto; column-rule: none; transform: none !important; transition: none;
}
.book-mode.scroll-reading .chapter-art,
.book-mode.scroll-reading .fort-figure,
.book-mode.scroll-reading .story-illustration {
  height: auto; min-height: 0; max-height: none;
  break-before: auto; break-after: auto; break-inside: auto;
}
.book-mode.scroll-reading .chapter-art { margin: 0 0 42px; gap: 16px; }
.book-mode.scroll-reading .chapter-art img { height: auto; max-height: none; }
.book-mode.scroll-reading .chapter-heading { margin-bottom: 30px; }
.book-mode.scroll-reading .prose { display: block; max-width: none; }
.book-mode.scroll-reading .chapter h2 { font-size: clamp(2rem, 6vw, 3rem); overflow-wrap: anywhere; }
.book-mode.scroll-reading .fort-figure,
.book-mode.scroll-reading .archive-network { margin: 36px 0; padding: 24px 0; }
.book-mode.scroll-reading .fort-map { width: calc(100% - 24px); max-width: 440px; }
.book-mode.scroll-reading .station { font-size: .875rem; }
.book-mode.scroll-reading .station-description { min-height: 0; }
.book-mode.scroll-reading .story-illustration { margin: 32px 0; }
.book-mode.scroll-reading .story-illustration img { flex: none; height: auto; width: 100%; }
.book-mode.scroll-reading .ending { overflow-wrap: break-word; }
.book-mode.scroll-reading .book-navigation { grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; }
.book-mode.scroll-reading #book-page-label { font-size: .875rem; }
.book-mode.scroll-reading .book-navigation button { font-size: .875rem; }
@media (max-width: 720px) {
  .book-mode.scroll-reading .reader-shell { padding-top: 90px; padding-inline: max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right)); }
  h1 em { white-space: normal; overflow-wrap: normal; font-size: clamp(2rem, 10.5vw, 2.8125rem); }
  h1 span { font-size: clamp(1.75rem, 8vw, 2.125rem); }
}
@media (max-width: 360px) {
  .book-mode.scroll-reading .book-navigation { grid-template-columns: 1fr 1fr; }
  .book-mode.scroll-reading .book-position { grid-column: 1 / -1; grid-row: 1; }
}
/* Oversized figures can scroll vertically in desktop page mode as well. */
.book-mode:not(.scroll-reading) .book-viewport { overflow-x: hidden; overflow-y: auto; scrollbar-gutter: stable; }
.book-mode .fort-figure, .book-mode .chapter-art { justify-content: safe center; }
