@font-face{font-family:Atkinson;src:url('./fonts/atkinson-hyperlegible-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
.executive-summary .prose>p:first-of-type{color:var(--muted)}
.executive-summary .prose>p:nth-of-type(2){border-left:3px solid var(--accent-ui);padding:1rem 1.25rem;background:var(--wash);font-size:1.16rem;line-height:1.55}
.executive-summary .prose h2{border-top:1px solid var(--rule);padding-top:1.5rem}
.executive-summary .prose h3{color:var(--accent);margin-top:2rem}
.executive-summary .prose table{font-size:.9rem}
@font-face{font-family:Atkinson;src:url('./fonts/atkinson-hyperlegible-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Atkinson;src:url('./fonts/atkinson-hyperlegible-latin-400-italic.woff2') format('woff2');font-style:italic;font-display:swap}
@font-face{font-family:JetBrains;src:url('./fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}
:root{color-scheme:light;--paper:#fff;--ink:#171717;--body:#333;--muted:#666;--rule:#e6e6e6;--accent:#b44417;--accent-ui:#c8511e;--wash:#faf0eb;--plate:#f5f5f5;--pine:#16453a;--focus:#2159ad;font-family:Atkinson,Arial,sans-serif;font-size:18px;line-height:1.7;background:var(--paper);color:var(--body)}
:root[data-theme=dark]{color-scheme:dark;--paper:#111;--ink:#eee;--body:#ddd;--muted:#aaa;--rule:#333;--accent:#f3a17d;--accent-ui:#ec956f;--wash:#2b1c16;--plate:#1d1d1d;--pine:#a1c9b6;--focus:#94bfff}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#111;--ink:#eee;--body:#ddd;--muted:#aaa;--rule:#333;--accent:#f3a17d;--accent-ui:#ec956f;--wash:#2b1c16;--plate:#1d1d1d;--pine:#a1c9b6;--focus:#94bfff}}
*{box-sizing:border-box}html{scroll-padding-top:88px;scroll-behavior:smooth}body{margin:0}a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:4px;border-radius:2px}button{color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:3px;min-height:40px;padding:5px 12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:-100px;padding:10px 20px;background:var(--ink);color:var(--paper);z-index:100}.skip-link:focus{top:8px}
.topbar{height:60px;position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--rule);z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 32px}.brand{text-decoration:none;color:var(--ink);font-size:15px;white-space:nowrap;font-weight:700}.brand span{color:var(--accent-ui);padding:0 12px}.brand b{font-weight:400}.topbar nav{display:flex;align-items:center;gap:22px;font-size:14px}.topbar nav>a{text-decoration:none;color:var(--body)}#theme-toggle{border:none;padding:0;min-height:40px;font-size:14px}
.reader-layout{display:grid;grid-template-columns:240px minmax(0,720px) 180px;gap:56px;max-width:1436px;margin:0 auto;padding:0 32px}.reader-layout>main{min-width:0;padding:48px 0 24px}.book-rail,.section-rail{position:sticky;top:60px;height:calc(100dvh - 60px);overflow-y:auto;overscroll-behavior:contain;padding:38px 10px 32px 0;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}.book-rail{border-right:1px solid var(--rule);padding-right:24px}.book-home{display:block;font-size:27px;letter-spacing:-.8px;line-height:1.05;color:var(--ink);text-decoration:none;margin:4px 0 38px}.book-home strong{color:var(--accent-ui)}.rail-label{font-family:JetBrains,monospace;font-size:12px;line-height:1.6;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}.intro-link{display:block;font-size:15px;line-height:1.5;padding:7px 8px;text-decoration:none;color:var(--body);margin-left:-8px}.arc-nav{margin-top:25px}.arc-nav h2{font-size:15px;line-height:1.5;font-weight:700;color:var(--ink);margin:0 0 10px}.arc-nav h2>span{font-family:JetBrains,monospace;font-size:12px;font-weight:500;color:var(--accent-ui);margin-right:9px}.arc-nav ol{margin:0;padding-left:23px;font-size:14px;line-height:1.5}.arc-nav li{padding-left:4px;margin:0 0 8px}.arc-nav li::marker{color:var(--muted);font-size:12px;font-family:JetBrains,monospace}.arc-nav a{display:block;text-decoration:none;color:var(--body);padding:2px 4px;border-radius:2px}.arc-nav a:hover{color:var(--accent)}[aria-current=page]{background:var(--wash);color:var(--accent)!important}.pending{display:block;color:var(--muted);padding:2px 4px}.section-rail{padding-top:49px;font-size:13px;line-height:1.55}.section-rail ol{list-style:none;padding:0;margin:0}.section-rail li{margin-bottom:11px}.section-rail a{color:var(--muted);text-decoration:none}.section-rail a:hover{color:var(--accent);text-decoration:underline}.back-top{display:inline-block;margin-top:24px}.mobile-contents{display:none}
.draft-note{padding:9px 0;border-bottom:1px solid var(--rule);margin-bottom:36px;font-size:13px;color:var(--accent);line-height:1.5}.draft-note span{color:var(--muted);margin-left:9px}.eyebrow{font-family:JetBrains,monospace;color:var(--muted);font-size:12px;line-height:1.8;margin:0 0 18px}.prose{overflow-wrap:anywhere}.prose h1{font-size:clamp(2.2rem,4vw,3.3rem);letter-spacing:-.045em;line-height:1.06;color:var(--ink);margin:0 0 28px;max-width:100%;text-wrap:balance}.book-introduction .prose h1{font-size:clamp(2.8rem,5vw,4.6rem);max-width:600px}.prose h1+p{font-size:1.12rem;line-height:1.5;color:var(--muted);margin-bottom:46px}.prose h2{font-size:1.65rem;letter-spacing:-.025em;line-height:1.2;color:var(--ink);margin:56px 0 22px;text-wrap:balance}.prose h3{font-size:1.2rem;letter-spacing:-.01em;line-height:1.35;color:var(--ink);margin:34px 0 16px}.prose p{margin:0 0 22px}.prose ul,.prose ol{padding-left:25px;margin:0 0 24px}.prose li{padding-left:4px;margin-bottom:9px}.prose blockquote{margin:30px 0;border-left:3px solid var(--accent-ui);padding:8px 0 8px 24px;font-size:1.08rem;color:var(--ink)}.prose blockquote>:last-child{margin-bottom:0}.prose strong{color:var(--ink)}.prose hr{border:none;border-top:1px solid var(--rule);margin:44px 0}.prose img{display:block;width:100%;height:auto;margin:32px auto;background:#fff;border-radius:4px}.prose :not(pre)>code{font-family:JetBrains,monospace;font-size:.8em;background:var(--plate);border:1px solid var(--rule);border-radius:3px;padding:2px 5px;overflow-wrap:anywhere}.code-block{margin:28px 0;background:var(--plate);border:1px solid var(--rule);border-radius:4px;overflow:hidden}.code-toolbar{display:flex;justify-content:space-between;align-items:center;min-height:43px;border-bottom:1px solid var(--rule);padding:3px 14px;font-family:JetBrains,monospace;font-size:12px;color:var(--muted)}.code-toolbar button{font-family:Atkinson,Arial,sans-serif;font-size:14px;border:0;background:transparent;padding:0 4px;min-height:36px}.prose pre{max-width:100%;overflow-x:auto;margin:0;padding:20px;font-size:13px;line-height:1.7;tab-size:2}.prose pre code{font-family:JetBrains,monospace}.table-scroll{overflow-x:auto;margin:28px 0;max-width:100%}table{border-collapse:collapse;table-layout:auto;width:100%;overflow-wrap:normal;word-break:normal;hyphens:none;white-space:normal;font-size:.87rem;line-height:1.55;text-align:left}th,td{padding:12px;border:1px solid var(--rule);vertical-align:top}th{background:var(--plate);color:var(--ink)}
.download-link{font-size:14px;margin-top:40px}.chapter-turn{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule);margin:40px 0 0;padding-top:24px;gap:24px;line-height:1.4}.chapter-turn a{text-decoration:none;color:var(--ink);font-size:17px}.chapter-turn a:last-child{text-align:right}.chapter-turn span{display:block;color:var(--muted);font-size:12px;font-family:JetBrains,monospace;margin-bottom:8px}.page-footer{margin-top:64px;padding:24px 0;display:flex;flex-wrap:wrap;gap:12px 24px;border-top:1px solid var(--rule);font-size:12px;line-height:1.5;color:var(--muted)}.page-footer a{color:var(--muted)}.resource-list{padding:0!important;list-style:none}.resource-list li{border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:20px 0;margin:0}.resource-list li>span{flex-shrink:0;font-size:12px;color:var(--muted);font-family:JetBrains,monospace}.reference-list{list-style:none;padding:0!important;font-size:16px}.reference-list li{border-top:1px solid var(--rule);padding:24px 0}.source-type{font:12px JetBrains,monospace;color:var(--muted)}#book-search label{display:block;font-size:16px;margin-bottom:12px}.search-row{display:flex;gap:10px}.search-row input{width:100%;min-width:0;border:1px solid var(--rule);border-radius:3px;padding:12px;background:var(--paper);color:var(--ink)}.search-row button{background:var(--accent-ui);color:#fff;border:0;padding:10px 20px}#search-summary{font-size:14px;margin-top:18px;color:var(--muted)}.search-results{list-style:none;padding:0!important}.search-results li{padding:20px 0;border-top:1px solid var(--rule)}.search-results li>span{display:block;font-family:JetBrains,monospace;font-size:12px;color:var(--muted);margin-bottom:8px}.search-results a{font-size:21px}.search-results p{font-size:16px;line-height:1.55;margin:8px 0 0}.print-chapter{margin-bottom:80px}.print-chapter+.print-chapter{border-top:2px solid var(--rule);padding-top:64px}
@media(min-width:1500px){.reader-layout{gap:68px}}
@media(max-width:1200px){.reader-layout{grid-template-columns:215px minmax(0,700px);gap:42px;max-width:1070px}.section-rail{display:none}}
@media(max-width:800px){.topbar{padding:0 20px}.brand b{display:none}.topbar nav{gap:18px}.reader-layout{display:block;padding:0 22px;max-width:730px}.book-rail{display:none}.reader-layout>main{padding-top:22px}.mobile-contents{display:block;margin:0 0 26px;border-bottom:1px solid var(--rule);font-size:15px}.mobile-contents>summary{padding:12px 0;cursor:pointer;color:var(--ink)}.mobile-contents>nav{padding:14px 6px 20px}.mobile-contents .book-home{display:none}.mobile-contents .arc-nav li{margin-bottom:12px}.draft-note{margin-bottom:28px}.draft-note span{display:block;margin:4px 0 0}.prose h1{font-size:2.4rem}.book-introduction .prose h1{font-size:3.2rem}.prose h2{font-size:1.5rem;margin-top:42px}.page-footer{margin-top:45px}}
@media(max-width:400px){:root{font-size:17px}.topbar{padding:0 16px;gap:8px}.topbar nav{gap:14px;font-size:13px}.brand span{padding:0 4px}.reader-layout{padding:0 18px}.prose h1{font-size:2.15rem}.book-introduction .prose h1{font-size:2.75rem}.resource-list li{display:block}.resource-list li>span{display:block;margin-top:8px}.search-row button{padding:8px 12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
@media print{:root,:root[data-theme],:root:not([data-theme]){color-scheme:light;--paper:#fff;--ink:#000;--body:#222;--muted:#555;--rule:#bbb;--accent:#333;--plate:#f8f8f8;font-size:11pt}.topbar,.book-rail,.section-rail,.mobile-contents,.chapter-turn,.page-footer,.download-link,.copy-code,.skip-link{display:none!important}.reader-layout{display:block;padding:0;max-width:none}.reader-layout>main{padding:0}.prose h1{font-size:28pt}.prose h2{font-size:18pt;margin-top:24pt}.prose h3{font-size:14pt}h1,h2,h3{break-after:avoid}p{orphans:3;widows:3}.prose pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:9pt}.table-scroll{overflow:visible}.prose img{max-height:220mm;object-fit:contain;break-inside:avoid}.print-chapter{break-before:page;margin:0;padding:0}.print-chapter:first-child{break-before:auto}.print-chapter+.print-chapter{padding-top:0;border:0}.code-block{break-inside:auto}.prose a{color:#222}.prose a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;overflow-wrap:anywhere}details{display:block}.draft-note{color:#333}@page{margin:19mm 18mm}}

.diagram-open{display:block;margin:-18px 0 26px;font-size:.8rem;text-align:center}@media print{.diagram-open{display:none}}

/* Keep table words intact, including inline code with its own prose wrapping rule. */
.prose table :not(pre)>code{overflow-wrap:normal;word-break:normal;hyphens:none;white-space:normal}

/* The front page is a book jacket; chapter pages retain the reading rails. */
.front-page .reader-layout{display:block;max-width:1220px;padding:0 48px}
.front-page .book-rail,.front-page .section-rail,.front-page .mobile-contents{display:none}
.front-page .reader-layout>main{padding-top:0}
.front-hero{padding:76px 0 62px;position:relative;border-bottom:1px solid var(--rule)}
.prose .front-edition{font-size:16px;color:var(--accent);margin:0 0 30px}
.prose .front-hero h1{font-size:clamp(3.5rem,8.7vw,6.5rem);line-height:.98;letter-spacing:-.055em;max-width:none;margin:0 0 32px;overflow-wrap:normal}
.prose .front-subtitle{font-size:clamp(1.2rem,2.4vw,1.55rem);line-height:1.4;max-width:660px;color:var(--ink);margin:0 0 22px}
.prose .front-invitation{color:var(--muted);font-size:1.05rem;max-width:620px;margin-bottom:30px}
.front-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 30px;font-size:17px}
.front-actions .front-primary{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:11px 26px;background:var(--ink);color:var(--paper);border-radius:4px;text-decoration:none}
.front-primary:hover{background:var(--accent)}
.prose .front-meta{font-size:14px;color:var(--muted);margin:28px 0 0}
.front-abstract{display:grid;grid-template-columns:1fr 1.25fr;gap:64px;padding:64px 0;border-bottom:1px solid var(--rule)}
.prose .front-label{font-size:16px;color:var(--accent);margin:0 0 18px}
.prose .front-abstract h2{font-size:clamp(1.7rem,3.2vw,2.3rem);line-height:1.15;margin:0;letter-spacing:-.035em}
.front-abstract-copy{font-size:1rem;line-height:1.75}
.front-abstract-copy>a{font-size:16px}
.front-journey{padding:56px 0 48px}
.prose .front-journey>h2{font-size:1.65rem;margin:0 0 32px}
.front-arcs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.front-arc{border-top:3px solid var(--pine);padding-top:22px}
.front-arc .front-label{color:var(--pine)}
.front-label>span{display:block;color:var(--muted);font-size:14px;margin-top:2px}
.prose .front-arc h3{font-size:1.3rem;margin:0 0 12px}
.front-arc>p:not(.front-label){font-size:16px;line-height:1.6;color:var(--muted)}
.front-arc summary{font-size:16px;cursor:pointer;color:var(--accent);padding:8px 0}
.front-arc ol{font-size:15px;line-height:1.5;margin:16px 0 0;padding-left:24px}
.front-before{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.front-before>summary{padding:22px 0;cursor:pointer;font-size:1.2rem;color:var(--ink)}
.front-before>summary span{font-size:16px;color:var(--muted);margin-left:18px}
.front-instructions{max-width:720px;margin:24px auto 48px}
.front-page .page-footer{margin-top:36px}
@media(max-width:800px){.front-page .reader-layout{padding:0 24px}.front-hero{padding:46px 0}.front-abstract{grid-template-columns:1fr;gap:28px;padding:40px 0}.front-arcs{grid-template-columns:1fr;gap:28px}.front-journey{padding:40px 0}.front-before>summary span{display:block;margin:4px 0 0 22px}}
@media(max-width:400px){.front-page .reader-layout{padding:0 18px}.prose .front-hero h1{font-size:clamp(2.7rem,12vw,3.5rem)}.front-actions{gap:18px;font-size:16px}}
@media(max-width:480px){.front-page .topbar{height:auto;min-height:60px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px;gap:0}.front-page .topbar nav{width:100%;justify-content:space-between;gap:10px}.front-page .brand span{display:none}}
@media print{.front-page .reader-layout{padding:0}.front-hero{padding-top:0}.front-abstract{display:block}.front-abstract-copy{margin-top:24px}.front-arcs{display:block}.front-arc{break-inside:avoid;margin-bottom:24px}}
