:root{--ink:#0e2a36;--paper:#fbf7f0;--sand:#e8ddc9;--teal:#1a6877;--muted:#4f626a;--line:#c9d6da;--bg:#fbf7f0;--text:#0e2a36;--surface:#f0eade;--surface-active:#e7ece8;--sel:#c9e1df;--plate-bg:#d9dfe0;--dots:#9fb2b8;--band:#0e2a36;--img:1;color-scheme:light;--display:"Cormorant Garamond",Georgia,serif;--ui:"Work Sans",system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-padding-top:7rem}
body{margin:0;background:var(--bg);color:var(--text);font:20px/1.8 Georgia,serif;font-size:calc(20px*var(--scale,1))}
a{color:var(--teal);text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--teal);outline-offset:5px}
[hidden]{display:none!important}
.skip-link{position:fixed;top:-8rem;left:1rem;z-index:5;background:var(--bg);color:var(--text);padding:1rem}
.skip-link:focus{top:1rem}
.reader-header{height:5rem;position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 2rem;background:var(--ink);color:var(--paper);font:14px/1.4 var(--ui)}
.reader-header a{color:inherit;text-decoration:none}
.reader-header :focus-visible{outline-color:var(--paper)}
.brand{display:flex;gap:.75rem;align-items:center;font:22px/1 var(--display)}
.brand img{object-fit:contain}
.brand-sub{display:block;font:9px/1.8 var(--ui);text-transform:uppercase;letter-spacing:.3em}
.draft-badge{font-size:11px;letter-spacing:.1em;text-transform:uppercase;border:1px solid #69808a;padding:.35rem .6rem}
progress{position:absolute;bottom:0;left:0;width:100%;height:3px;border:0;appearance:none;background:#294956;color:#2a9db3}
progress::-webkit-progress-bar{background:#294956}progress::-webkit-progress-value{background:#2a9db3}progress::-moz-progress-bar{background:#2a9db3}
.reader-layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:300px minmax(0,1fr);gap:clamp(2rem,5vw,5rem);padding:0 3rem 0 2rem}
.contents-panel{position:sticky;top:5rem;align-self:start;max-height:calc(100dvh - 5rem);overflow:auto;padding:2rem 1.5rem 2rem 0;font:13px/1.5 var(--ui);scrollbar-width:thin}
summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:44px}
summary::-webkit-details-marker{display:none}
nav ol{list-style:none;padding:0;margin:1rem 0}
nav a{display:block;min-height:44px;padding:.55rem .75rem;border-left:2px solid transparent;text-decoration:none;color:var(--text)}
nav a span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.1rem}
nav a:hover{background:var(--surface)}
nav a[aria-current="location"]{border-left-color:var(--teal);background:var(--surface-active);font-weight:600}
.back-to-site{display:inline-block;margin:.75rem;min-height:44px}
main{min-width:0;max-width:760px;width:100%;margin:0 auto}
.book-cover{padding:5rem 0 4rem;border-bottom:1px solid var(--line)}
.eyebrow,.edition,.bookmark-note,.author,.cover-actions,.chapter-label,.section-end,.book-footer{font-family:var(--ui)}
.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);margin:0 0 2rem}
h1{font:500 clamp(4rem,7vw,7rem)/.94 var(--display);letter-spacing:-.035em;margin:0 0 2rem}
h1 em{font-weight:400}
.cover-rule{width:4rem;border-top:2px solid var(--teal);margin:2rem 0}
.author{font-size:15px;letter-spacing:.05em}
.cover-description{max-width:33ch;font-size:calc(22px*var(--scale,1));line-height:1.55}
.edition,.bookmark-note{font-size:12px;color:var(--muted)}
.cover-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem;font-size:14px;margin:2rem 0 1rem}
.begin{background:var(--ink);color:var(--paper);padding:.75rem 1.25rem;text-decoration:none;display:inline-flex;gap:2rem}
.book-section{padding:4rem 0 1rem;overflow-wrap:break-word}
.book-section h2{font:500 calc(clamp(2.4rem,4vw,3.4rem)*var(--hscale,1))/1.1 var(--display);margin:0 0 2.5rem;letter-spacing:-.02em}
.chapter-label{display:block;font-size:11px;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:1.25rem}
.book-section h3{font:600 calc(1.6rem*var(--hscale,1))/1.3 var(--display);margin:2.75rem 0 1rem}
.book-section p{margin:0 0 1.25rem}
.book-section ul{padding-left:1.5rem}
.book-section li{margin:.75rem 0}
.introduction{font-size:calc(17px*var(--scale,1));line-height:1.75;padding-bottom:2rem;border-bottom:1px solid var(--line)}
.introduction h2{font-size:calc(2rem*var(--hscale,1));margin-bottom:1.5rem}
.section-end{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.5rem;font-size:13px;text-align:right}
.section-end a{display:inline-block;padding:.5rem 0}
.book-footer{border-top:1px solid var(--line);margin-top:3rem;padding:2rem 0 4rem;font-size:12px;color:var(--muted)}
::selection{background:var(--sel)}
@media(max-width:1000px){.reader-layout{grid-template-columns:240px minmax(0,1fr);gap:2rem;padding:0 1.5rem}.contents-panel{padding-right:0}body{font-size:calc(19px*var(--scale,1))}}
@media(max-width:760px){html{scroll-padding-top:9rem}.reader-header{height:4rem;padding:0 1rem}.brand{font-size:19px}.brand img{width:20px}.book-home{display:none}.reader-layout{display:block;padding:0 1.25rem}.contents-panel{position:sticky;top:4rem;z-index:2;background:var(--bg);margin:0 -1.25rem;padding:0 1.25rem;max-height:calc(100dvh - 4rem);border-bottom:1px solid var(--line)}.contents-panel summary{min-height:3.5rem}.contents-panel nav{max-height:55dvh;overflow:auto;padding-bottom:.75rem}.back-to-site{display:none}.book-cover{padding:3rem 0}.book-section{padding-top:3rem}.book-section h2{font-size:calc(2.5rem*var(--hscale,1))}.book-section h3{font-size:calc(1.6rem*var(--hscale,1))}.introduction h2{font-size:calc(2rem*var(--hscale,1))}.cover-description{font-size:calc(21px*var(--scale,1))}h1{font-size:clamp(3.9rem,12vw,6rem)}body{font-size:calc(18px*var(--scale,1));line-height:1.8}}
@media(prefers-reduced-motion:no-preference){.begin{transition:background .2s}.begin:hover{background:var(--teal)}}
@media print{.reader-header,.contents-panel,.cover-actions,.bookmark-note,.section-end,.skip-link{display:none}body{background:white;color:black;font-size:11pt}.reader-layout{display:block;padding:0}main{max-width:none}.book-cover{break-after:page}.book-section{padding:0;break-before:page}.book-section h2,.book-section h3{break-after:avoid}a{color:inherit}p{orphans:3;widows:3}}

/* ===== Image plates (added 2026-10-28) ===== */
.plate{margin:2.75rem 0 3rem}
.plate-frame{position:relative;overflow:hidden;background:var(--plate-bg)}
.plate-frame img{display:block;width:100%;height:auto;filter:brightness(var(--img,1))}
.plate-frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(26,104,119,.22),rgba(14,42,54,.28));mix-blend-mode:soft-light}
.plate figcaption{font:calc(13px*var(--scale,1))/1.6 var(--ui);color:var(--muted);margin-top:.75rem}
.plate-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2.75rem 0 3rem}
.plate-pair .plate{margin:0}
.plate-quiet{margin:3rem 0 1rem}
.plate-cycle{font:inherit;color:var(--teal);background:none;border:0;padding:.5rem 0;min-height:44px;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.plate-reading{font-style:italic;color:var(--text);margin-left:.25rem}

/* Title page: the carrier deck dissolves into the ink panel */
.book-cover.has-plate{padding:0;background:var(--ink);color:var(--paper);border-bottom:0;margin-top:1.5rem;overflow:hidden}
.cover-plate{position:relative;aspect-ratio:3/2;overflow:hidden;background:#1b2f3a}
.cover-plate img{display:block;width:100%;height:100%;object-fit:cover;transform-origin:34% 48%}
.cover-plate::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(14,42,54,0) 42%,rgba(14,42,54,.82) 82%,var(--ink) 100%)}
.cover-copy{position:relative;margin-top:-7rem;padding:0 2.5rem 3rem}
.has-plate .eyebrow{color:#8fd0dc}
.has-plate .cover-rule{border-top-color:#2a9db3}
.has-plate .cover-description{color:var(--sand)}
.has-plate .edition,.has-plate .bookmark-note{color:#b9cbd0}
.has-plate .begin{background:var(--paper);color:var(--ink)}
.has-plate .begin:hover{background:var(--sand)}
.has-plate #resume-reading{color:var(--paper)}
.has-plate :focus-visible{outline-color:var(--paper)}

/* Chapter 6: the page-break marker, drawn like the one in a word processor */
.page-break{display:flex;align-items:center;gap:1rem;margin:4rem 0 0;font:11px/1 var(--ui);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.page-break::before,.page-break::after{content:"";flex:1;border-top:2px dotted var(--dots)}

@media(max-width:760px){.cover-copy{margin-top:-4rem;padding:0 1.5rem 2.5rem}}
@media(max-width:560px){.plate-pair{grid-template-columns:1fr}}

/* The deck slowly pushes toward the horizon as the reader scrolls into the Prologue */
@keyframes deck-push{from{transform:scale(1)}to{transform:scale(1.6)}}
@media(prefers-reduced-motion:no-preference){
  @supports (animation-timeline:scroll()){
    .cover-plate img{animation:deck-push linear both;animation-timeline:scroll(root block);animation-range:0px 85vh}
  }
}

@media print{
  .plate{break-inside:avoid}
  .plate-cycle,.plate-reading,.page-break{display:none}
  .cover-plate::after{display:none}
  .cover-plate img{animation:none}
  .cover-copy{margin-top:0}
  .book-cover.has-plate,.book-cover.has-plate *{background:none!important;color:#000!important}
}

/* ===== Closing cover plates (added 2026-10-28) ===== */
.plate-covers{max-width:640px;margin:3.5rem auto 2rem;align-items:start}
.plate-covers .plate-frame{background:#1b2230}
.plate-covers .plate-frame::after{display:none}
@media(max-width:560px){.plate-covers .plate{max-width:300px;margin-inline:auto}}

/* ===== Flight-deck interludes (added 2026-10-28) ===== */
.flight-deck{background:var(--band);color:var(--paper);margin:4rem 0 0;padding:3.25rem clamp(1.25rem,5vw,3.25rem) 1.5rem}
.flight-deck h2{color:var(--paper);font-style:italic;margin-bottom:1.75rem}
.flight-deck .chapter-label{display:block;color:#8fd0dc;font-style:normal;margin-bottom:.75rem}
.flight-deck .section-end{border-top-color:#2f4d5a}
.flight-deck .section-end a{color:#8fd0dc}
.flight-deck :focus-visible{outline-color:var(--paper)}
@media print{.flight-deck{background:none!important;color:#000!important;padding:0;margin:0}.flight-deck *{color:#000!important}}

/* ===== Reader settings: contents toggle, theme, text size (added 2026-10-28) ===== */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.reader-header{border-bottom:1px solid #1d3744}
.header-left,.header-right{display:flex;align-items:center;gap:1rem;min-width:0}
.ctl{font:inherit;color:var(--paper);background:transparent;border:1px solid #69808a;min-height:44px;min-width:44px;padding:0 .8rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}
.ctl:hover{background:#1b3a48}
.ctl[aria-expanded="true"].settings-toggle{background:#1b3a48}
.settings-toggle{font:600 15px/1 var(--display);letter-spacing:.02em}
.settings-toggle .big{font-size:21px}
.settings-panel{position:absolute;top:calc(100% + .5rem);right:2rem;z-index:6;width:min(21rem,calc(100vw - 2rem));background:var(--bg);color:var(--text);border:1px solid var(--line);box-shadow:0 12px 32px rgba(0,0,0,.28);padding:1.25rem;font:14px/1.45 var(--ui)}
.settings-panel fieldset{border:0;margin:0 0 1.25rem;padding:0;min-width:0;position:relative}
.settings-panel legend{padding:0;font-weight:600;margin-bottom:.6rem}
.seg{display:flex;gap:.4rem;position:relative}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg label{flex:1;display:flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem;border:1px solid var(--line);cursor:pointer;text-align:center}
.seg input:checked+label{background:var(--text);color:var(--bg);border-color:var(--text)}
.seg input:focus-visible+label{outline:3px solid var(--teal);outline-offset:2px}
.size-row{display:flex;align-items:center;gap:.6rem}
.sbtn{font:inherit;color:var(--text);background:transparent;border:1px solid var(--line);min-width:44px;min-height:44px;cursor:pointer;font-weight:600}
.sbtn:hover:not(:disabled){background:var(--surface)}
.sbtn:disabled{opacity:.4;cursor:not-allowed}
.size-readout{flex:1;text-align:center;font-weight:600}
.prefs-reset{font:inherit;color:var(--teal);background:none;border:0;padding:.5rem 0;min-height:44px;cursor:pointer;text-decoration:underline;text-underline-offset:.2em}
.settings-note{margin:0 0 .5rem;color:var(--muted);font-size:12px}
@media(max-width:760px){.settings-note.nav-note{display:none}.nav-toggle .ctl-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}html[data-nav="hidden"] .contents-panel{display:none}html[data-nav="hidden"]{scroll-padding-top:5.5rem}.settings-panel{right:1rem}.header-left,.header-right{gap:.6rem}}
@media(max-width:400px){.draft-badge{display:none}}

/* Hide the left contents column on desktop and tablet */
@media(min-width:761px){
  html[data-nav="hidden"] .reader-layout{grid-template-columns:minmax(0,1fr)}
  html[data-nav="hidden"] .contents-panel{display:none}
}
@media(min-width:761px) and (max-width:900px){
  html:not([data-nav]) .reader-layout{grid-template-columns:minmax(0,1fr)}
  html:not([data-nav]) .contents-panel{display:none}
}

/* Dark theme: follows the device unless the reader picks Light or Dark */
@media(prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--bg:#0c161b;--text:#e9e2d6;--muted:#9fb3ba;--line:#2a3d46;--teal:#6fc3d4;--surface:#14242c;--surface-active:#173039;--sel:#24505c;--plate-bg:#1b2a31;--dots:#4b6670;--band:#143342;--img:.9;color-scheme:dark}
}
:root[data-theme="dark"]{--bg:#0c161b;--text:#e9e2d6;--muted:#9fb3ba;--line:#2a3d46;--teal:#6fc3d4;--surface:#14242c;--surface-active:#173039;--sel:#24505c;--plate-bg:#1b2a31;--dots:#4b6670;--band:#143342;--img:.9;color-scheme:dark}

@media print{
  html,html[data-theme]{--bg:#fff!important;--text:#000!important;--muted:#333!important;--line:#999!important;--scale:1!important;--hscale:1!important;--img:1!important}
  .settings-panel{display:none}
}

/* Flight-deck interludes: the same deck, a little closer each time, as the reader scrolls in */
.deck-band{position:relative;aspect-ratio:21/9;overflow:hidden;margin:0 0 1.75rem;background:#1b2f3a}
.deck-band img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform-origin:var(--o,50% 45%)}
.deck-band::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,var(--band) 100%)}
@keyframes deck-band-zoom{from{transform:scale(1)}to{transform:scale(var(--s,1.6))}}
@media(prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .deck-band img{animation:deck-band-zoom linear both;animation-timeline:view();animation-range:entry 0% exit 45%}
  }
}
@media(max-width:760px){.deck-band{aspect-ratio:16/9}}
@media print{.deck-band{display:none}}
