:root{color-scheme:light;--bg:#f5efe3;--bg-2:#ece4d3;--surface:#fbf7ec;--surface-2:#f0e8d7;--text:#1a1712;--text-2:#2e2825;--muted:#4a4238;--line:#b3a78d;--line-soft:#d5cbb2;--accent:#8a1717;--accent-ink:#ffffff;--accent-soft:#f3dcd4;--link:#0a3f76;--focus:#0a3f76;--ok:#14532d;--ok-soft:#d7eedd;--gold:#5a3d00;--gold-soft:#f5e3b3;--no:#8a1c1c;--no-soft:#f7d9d6;--m1:#8a6d00;--m2:#1f49b8;--m3:#a31f1f;--m4:#2c6e22;--m5:#b34d12;--river:#1f49b8;--map-bg:#efe7d5;--map-grid:rgba(26,23,18,.10);--shadow:0 1px 2px rgba(60,40,10,.08),0 8px 30px rgba(60,40,10,.10);--bar-h:3.25rem;--serif:"Fraunces",Georgia,"Times New Roman",serif;--body:"Source Serif 4",Georgia,"Times New Roman",serif;--sans:"Atkinson Next","Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;}
:root[data-theme="dark"]{color-scheme:dark;--bg:#141210;--bg-2:#1c1917;--surface:#201c19;--surface-2:#272220;--text:#f5efe3;--text-2:#ddd3c2;--muted:#b9ac96;--line:#5a5049;--line-soft:#38322d;--accent:#ff9d8a;--accent-ink:#2a0805;--accent-soft:#33211c;--link:#a9c8ff;--focus:#ffd98a;--ok:#9be7b4;--ok-soft:#123527;--gold:#ffd98a;--gold-soft:#33290f;--no:#ffb0a8;--no-soft:#3a1a1c;--m1:#e3b800;--m2:#7ea2ff;--m3:#ff7a7a;--m4:#7fd08a;--m5:#ffa25e;--river:#7ea2ff;--map-bg:#1a1713;--map-grid:rgba(245,239,227,.10);--shadow:0 1px 2px rgba(0,0,0,.4),0 10px 34px rgba(0,0,0,.45);}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#141210;--bg-2:#1c1917;--surface:#201c19;--surface-2:#272220;--text:#f5efe3;--text-2:#ddd3c2;--muted:#b9ac96;--line:#5a5049;--line-soft:#38322d;--accent:#ff9d8a;--accent-ink:#2a0805;--accent-soft:#33211c;--link:#a9c8ff;--focus:#ffd98a;--ok:#9be7b4;--ok-soft:#123527;--gold:#ffd98a;--gold-soft:#33290f;--no:#ffb0a8;--no-soft:#3a1a1c;--m1:#e3b800;--m2:#7ea2ff;--m3:#ff7a7a;--m4:#7fd08a;--m5:#ffa25e;--river:#7ea2ff;--map-bg:#1a1713;--map-grid:rgba(245,239,227,.10);--shadow:0 1px 2px rgba(0,0,0,.4),0 10px 34px rgba(0,0,0,.45);}}


@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/fraunces-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/fraunces-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 900;font-display:swap;src:url(fonts/fraunces-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 900;font-display:swap;src:url(fonts/fraunces-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/source-serif-4-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/source-serif-4-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:300 700;font-display:swap;src:url(fonts/source-serif-4-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:300 700;font-display:swap;src:url(fonts/source-serif-4-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Atkinson Next';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/AtkinsonHyperlegibleNext.woff2) format('woff2')}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--bar-h) + .75rem)}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:1.125rem;line-height:1.65;overflow-x:clip}
.wrap{max-width:68rem;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem)}
.block{padding:3.5rem 0}
.block.wide{max-width:76rem}
h1,h2,h3{font-family:var(--serif);font-variation-settings:"SOFT" 60,"WONK" 1;letter-spacing:-.015em;line-height:1.08;text-wrap:balance}
h1{font-size:clamp(2.4rem,6vw,4.2rem);font-weight:750;max-width:24ch;margin:.6rem 0 1rem}
h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:700;margin:0 0 .8rem}
h3{font-size:1.25rem;font-weight:650;margin:2rem 0 .6rem}
a{color:var(--link);text-underline-offset:.14em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:.75rem;top:-4rem;z-index:50;background:var(--accent);color:var(--accent-ink);font-family:var(--sans);font-size:.95rem;padding:.6rem 1rem;border-radius:.4rem;text-decoration:none;transition:top .15s}
.skip:focus{top:.6rem;color:var(--accent-ink)}
.kicker{font-family:var(--sans);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0}
.lede{font-size:1.3rem;line-height:1.5;max-width:62ch;margin:.4rem 0 1.6rem}
.prose{max-width:70ch}
.prose p{margin:0 0 1.1rem}
.note{font-size:.95rem;color:var(--muted);max-width:70ch}
.small{font-size:.92rem}
html.no-js .js-only{display:none!important}
html:not(.no-js) .nojs-only{display:none!important}

/* topbar */
.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:.9rem;min-height:var(--bar-h);padding:.35rem clamp(.8rem,3vw,1.6rem);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-soft)}
.topbar .home{font-family:var(--sans);font-weight:700;font-size:.95rem;color:var(--text);text-decoration:none;white-space:nowrap}
.topnav{display:flex;gap:.15rem;overflow-x:auto;scrollbar-width:none;min-width:0;flex:0 1 auto}
.topnav a{font-family:var(--sans);font-size:.88rem;color:var(--text-2);text-decoration:none;padding:.55rem .6rem;border-radius:.4rem;white-space:nowrap}
.topnav a:hover{background:var(--surface-2)}
.topbar .spacer{flex:1}
.chip{font-family:var(--sans);font-size:.88rem;color:var(--text);border:1px solid var(--line);border-radius:999px;padding:.45rem .9rem;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;min-height:44px}
.chip:hover{background:var(--surface-2)}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;background:none;border:1px solid var(--line);border-radius:.6rem;color:var(--text);cursor:pointer}
.icon-btn:hover{background:var(--surface-2)}
.icon-btn svg{display:block}
html[data-theme="dark"] .i-moon{display:none}
html[data-theme="dark"] .i-sun{display:block!important}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .i-moon{display:none}html:not([data-theme="light"]) .i-sun{display:block!important}}
.i-sun[hidden]{display:none}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:2.5rem;align-items:center;padding:3rem clamp(1rem,4vw,2.5rem) 3.5rem}
.hero .deck{font-size:1.35rem;line-height:1.5;max-width:60ch}
.hero-facts{list-style:none;margin:1.6rem 0;padding:0;display:grid;gap:.9rem}
.hero-facts li{display:grid;grid-template-columns:minmax(7rem,auto) 1fr;gap:.8rem;align-items:baseline;border-top:1px solid var(--line-soft);padding-top:.7rem}
.hero-facts b{font-family:var(--serif);font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}
.hero-facts span{color:var(--text-2);font-size:1rem}
.hero-go{display:inline-block;margin-top:1.4rem;font-family:var(--sans);font-weight:700;background:var(--accent);color:var(--accent-ink);text-decoration:none;padding:.8rem 1.4rem;border-radius:.6rem;min-height:44px}
.hero-figure{margin:0;display:grid;gap:1rem;justify-items:center}
#hero-m{width:min(15rem,60vw);height:auto}
.roundel circle{fill:var(--accent)}
.roundel text{font-family:var(--serif);font-weight:800;font-size:96px;fill:var(--accent-ink)}
#strip{width:100%;height:auto;background:var(--surface);border:1px solid var(--line-soft);border-radius:.8rem;box-shadow:var(--shadow)}
.strip-line{stroke:var(--accent);stroke-width:6;stroke-linecap:round}
.strip-st circle{fill:var(--surface);stroke:var(--accent);stroke-width:4}
.strip-st text{font-family:var(--sans);font-size:12.5px;fill:var(--text-2)}
.hero-figure figcaption{font-size:.92rem;color:var(--muted);max-width:52ch;text-align:center}

/* chapters */
section[id]{scroll-margin-top:calc(var(--bar-h) + .75rem)}
.head-link{color:inherit;text-decoration:none}
.head-link:hover{text-decoration:underline;text-underline-offset:.2em}
blockquote{margin:2rem 0;padding:1.2rem 1.6rem;border-left:4px solid var(--accent);background:var(--surface);border-radius:0 .6rem .6rem 0;max-width:62ch}
blockquote p{font-family:var(--serif);font-size:1.35rem;font-style:italic;line-height:1.45;margin:0 0 .5rem}
blockquote cite{font-family:var(--sans);font-style:normal;font-size:.9rem;color:var(--muted)}
.stats-cap{font-weight:700;margin:2rem 0 .8rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:.8rem;overflow:hidden;margin:0;max-width:60rem}
.stats>div{background:var(--surface);padding:1.1rem 1.2rem}
.stats dt{font-family:var(--serif);font-weight:750;font-size:1.5rem;font-variant-numeric:tabular-nums}
.stats dd{margin:.2rem 0 0;font-size:.95rem;color:var(--text-2)}

/* data moments */
.moment{min-height:100svh;display:flex;align-items:center;background:var(--bg-2);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:4rem 0}
.moment-big{font-family:var(--serif);font-weight:800;font-variation-settings:"SOFT" 100,"WONK" 1;font-size:clamp(3.4rem,12vw,8.5rem);line-height:1.02;letter-spacing:-.02em;margin:.6rem 0 1.2rem;font-variant-numeric:tabular-nums}
.moment-body{font-size:clamp(1.15rem,2.2vw,1.45rem);line-height:1.55;max-width:58ch}
.moment-src{font-family:var(--sans);font-size:.9rem;color:var(--muted)}

/* map */
.map-panel{background:var(--surface);border:1px solid var(--line-soft);border-radius:1rem;box-shadow:var(--shadow);overflow:hidden}
.map-controls{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:flex-end;padding:1.2rem 1.4rem;border-bottom:1px solid var(--line-soft)}
.field{display:grid;gap:.4rem}
.field label,.field .lab{font-family:var(--sans);font-weight:700;font-size:.92rem}
.field output{font-variant-numeric:tabular-nums;color:var(--accent)}
#year{width:min(22rem,70vw);accent-color:var(--accent);min-height:44px}
.seg{display:flex;flex-wrap:wrap;gap:.4rem}
.seg button,.tool-btn{font-family:var(--sans);font-size:.92rem;font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:.55rem;padding:.6rem 1rem;min-height:44px;min-width:44px;cursor:pointer}
.seg button[aria-checked="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.map-count{font-family:var(--sans);font-weight:700;font-variant-numeric:tabular-nums;margin:0;margin-left:auto}
.map-wrap{padding:.6rem}
#map{width:100%;height:auto;display:block;border-radius:.6rem}
.map-bg{fill:var(--map-bg)}
.map-grid{stroke:var(--map-grid);stroke-width:1}
.river{fill:none;stroke:var(--river);stroke-width:2.5;opacity:.65;stroke-linecap:round}
.leg{fill:none;stroke-linecap:round;stroke-width:5}
.line-m1{stroke:var(--m1)}.line-m2{stroke:var(--m2)}.line-m3{stroke:var(--m3)}.line-m4{stroke:var(--m4)}.line-m5{stroke:var(--m5)}
.shared-under{stroke-width:8}
.shared-over{stroke-width:2.5}
.st circle{fill:var(--map-bg);stroke:var(--text);stroke-width:2.5}
.st text{font-family:var(--sans);font-size:13px;fill:var(--text);paint-order:stroke;stroke:var(--map-bg);stroke-width:3.5px}
.st.major text{font-weight:700}
.scalebar line{stroke:var(--text);stroke-width:2}
.scalebar text{font-family:var(--sans);font-size:13px;fill:var(--text-2)}
.north text{font-family:var(--sans);font-weight:700;font-size:16px;fill:var(--text-2)}
.north path{stroke:var(--text-2);stroke-width:2;fill:none}
.map-cap{padding:0 1.4rem;font-size:.95rem;color:var(--muted)}
.map-panel .note{padding:0 1.4rem 1.2rem}
.decades{margin:1rem 0 0;max-width:44rem}
.dec-row{display:grid;grid-template-columns:9rem 1fr;gap:1rem;align-items:center;padding:.3rem 0}
.dec-row dt{font-family:var(--sans);font-size:.92rem;font-weight:600}
.dec-row dd{margin:0;display:flex;align-items:center;gap:.8rem}
.dec-svg{flex:1 1 0;min-width:0;width:100%;height:1.1rem}
.dec-svg rect{fill:var(--accent)}
.dec-n{font-variant-numeric:tabular-nums;font-weight:700;min-width:2.5rem;text-align:right}

/* network today */
.line-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:.9rem;margin:1.4rem 0}
.line-card{background:var(--surface);border:1px solid var(--line-soft);border-top:6px solid;border-radius:.7rem;padding:1rem .9rem}
.line-card.line-m1{border-top-color:var(--m1)}.line-card.line-m2{border-top-color:var(--m2)}.line-card.line-m3{border-top-color:var(--m3)}.line-card.line-m4{border-top-color:var(--m4)}.line-card.line-m5{border-top-color:var(--m5)}
.line-card h3{font-size:1.4rem;margin:0 0 .6rem;display:flex;align-items:center;gap:.5rem}
.line-card h3 i{width:.9rem;height:.9rem;border-radius:50%;background:currentColor;font-style:normal}
.line-m1 h3 i{color:var(--m1)}.line-m2 h3 i{color:var(--m2)}.line-m3 h3 i{color:var(--m3)}.line-m4 h3 i{color:var(--m4)}.line-m5 h3 i{color:var(--m5)}
.line-card dl{margin:0;display:grid;gap:.45rem}
.line-card dl>div{display:grid;gap:.1rem}
.line-card dt{font-family:var(--sans);font-size:.78rem;color:var(--muted)}
.line-card dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums;font-size:1.05rem}
.olds{background:var(--surface);border:1px solid var(--line-soft);border-radius:.7rem;padding:.9rem 1.2rem;max-width:44rem}
.olds summary{font-family:var(--sans);font-weight:700;cursor:pointer;min-height:44px;display:flex;align-items:center}
.olds ul{columns:2;margin:.6rem 0 .4rem;padding-left:1.2rem}
.olds li{margin-bottom:.35rem;break-inside:avoid}
.olds s{color:var(--muted);text-decoration-thickness:1px}

/* game */
.cab-panel{background:var(--surface);border:1px solid var(--line-soft);border-radius:1rem;box-shadow:var(--shadow);padding:1.4rem;display:grid;gap:1rem}
#cab{width:100%;height:auto;background:var(--bg-2);border-radius:.7rem}
.cab-m circle{fill:var(--accent)}
.cab-m text{font-family:var(--serif);font-weight:800;font-size:30px;fill:var(--accent-ink)}
.lamp circle{fill:var(--surface-2);stroke:var(--line);stroke-width:2}
.lamp text{font-family:var(--sans);font-size:13px;font-weight:700;fill:var(--muted)}
.lamp.done circle{fill:var(--ok)}
.lamp.done text{fill:var(--accent-ink)}
.lamp.now circle{fill:var(--accent)}
.lamp.now text{fill:var(--accent-ink)}
.cab-card{display:grid;gap:.8rem}
.cab-st{font-family:var(--sans);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.85rem;color:var(--accent);margin:0}
.cab-q{font-family:var(--serif);font-size:1.4rem;line-height:1.4;margin:0}
.cab-opts{display:grid;gap:.6rem}
.cab-opts button{font-family:var(--sans);font-size:1rem;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:.6rem;padding:.8rem 1rem;min-height:48px;cursor:pointer;color:var(--text)}
.cab-opts button:hover:not(:disabled){border-color:var(--accent)}
.cab-opts button:disabled{cursor:default;opacity:.85}
.cab-opts button.right{border-color:var(--ok);background:var(--ok-soft)}
.cab-opts button.missed{border-color:var(--no);background:var(--no-soft)}
.cab-pay{margin:0;font-size:1.02rem;border-left:3px solid var(--gold);padding-left:.9rem}
.cab-row{display:flex;gap:.7rem;flex-wrap:wrap}
.cab-score{font-family:var(--sans);font-weight:700;margin:0;font-variant-numeric:tabular-nums}
.cab-static{margin:0;padding-left:1.3rem;display:grid;gap:.7rem}

/* claims, limits, sources, footer */
.claims{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(19rem,100%),1fr))}
.claim{background:var(--surface);border:1px solid var(--line-soft);border-radius:.8rem;padding:1.2rem 1.3rem}
.claim h3{font-size:1.12rem;margin:.6rem 0 .7rem}
.claim p{font-size:.99rem;margin:0 0 .6rem}
.claim .small{color:var(--text-2)}
.tag{font-family:var(--sans);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:.4rem;padding:.25rem .6rem}
.t-no{background:var(--no-soft);color:var(--no)}
.t-ok{background:var(--ok-soft);color:var(--ok)}
.t-gold{background:var(--gold-soft);color:var(--gold)}
.fact-list{margin:0;padding-left:1.2rem;max-width:70ch;display:grid;gap:.7rem}
.sources ul{max-width:75ch}
.sources li{margin-bottom:.7rem}
.site-footer{border-top:1px solid var(--line-soft);padding:1.6rem 0 2.2rem;margin-top:2rem}
.site-footer p{font-family:var(--sans);font-size:.92rem;color:var(--muted);margin:0}
.nf-main{padding:4rem 0;text-align:center}

/* responsive */
@media (max-width:60rem){
  .hero{grid-template-columns:1fr;gap:1.8rem}
  .line-cards{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:1fr 1fr}
}
@media (max-width:40rem){
  body{font-size:1.05rem}
  .topbar{gap:.5rem}
  .topbar .home{display:none}
  .topnav a{padding:.8rem .45rem;font-size:.82rem}
  .hero-facts li{grid-template-columns:1fr;gap:.1rem}
  .stats{grid-template-columns:1fr}
  .line-cards{grid-template-columns:1fr}
  .dec-row{grid-template-columns:7rem 1fr}
  .olds ul{columns:1}
  .st text{font-size:15px}
  .moment{min-height:92svh}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
@media print{
  .topbar,.map-controls,.cab-card,.hero-go{display:none}
  .moment{min-height:auto}
  body{font-size:11pt}
}
