:root{--paper:#f4ecdb;--card:#fffaf0;--card-a:rgba(255,250,240,.95);--ink:#241a10;--muted:#4a3b2a;--line:#c9b797;--accent:#7a3a0c;--rust:#7a3008;--sand:#e3c98f;--sand2:#dbbd7f;--stone:#8d7f6c;--stone-edge:#5c4f40;--cement:#c28a45;--sky:#dfe6e8;--water:#2f6f86;--good:#1f5d2b;--bad:#8a1f14;--shadow:0 2px 14px rgba(36,26,16,.12)}
:root[data-theme="dark"]{--paper:#15110c;--card:#1f1912;--card-a:rgba(31,25,18,.95);--ink:#f3e9d6;--muted:#d2c3a8;--line:#4a3d2d;--accent:#f0b477;--rust:#f3a86b;--sand:#6f5a36;--sand2:#665231;--stone:#b3a58f;--stone-edge:#e2d6c1;--cement:#d59a53;--sky:#1b2429;--water:#6fb6d0;--good:#8fd39b;--bad:#ff9f8f;--shadow:0 2px 16px rgba(0,0,0,.5)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#15110c;--card:#1f1912;--card-a:rgba(31,25,18,.95);--ink:#f3e9d6;--muted:#d2c3a8;--line:#4a3d2d;--accent:#f0b477;--rust:#f3a86b;--sand:#6f5a36;--sand2:#665231;--stone:#b3a58f;--stone-edge:#e2d6c1;--cement:#d59a53;--sky:#1b2429;--water:#6fb6d0;--good:#8fd39b;--bad:#ff9f8f;--shadow:0 2px 16px rgba(0,0,0,.5)}}
@font-face{font-family:Fraunces;font-style:normal;font-weight:400 900;font-display:swap;src:url(fonts/Fraunces-display.woff2) format("woff2")}
@font-face{font-family:Atkinson;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/AtkinsonHyperlegibleNext.woff2) format("woff2")}
*{box-sizing:border-box}
html{overflow-x:clip;scroll-padding-top:3.5rem}
html,body{margin:0;padding:0}
body{background:var(--paper);color:var(--ink);font-family:Atkinson,system-ui,sans-serif;font-size:1.0625rem;line-height:1.62;-webkit-text-size-adjust:100%;overflow-x:clip}
h1,h2,h3{font-family:Fraunces,Georgia,serif;line-height:1.12;text-wrap:balance;margin:0 0 .45em}
h1{font-size:clamp(2.1rem,1.4rem+3.2vw,3.6rem);letter-spacing:-.01em}
h2{font-size:clamp(1.5rem,1.15rem+1.6vw,2.15rem)}
h3{font-size:1.2rem}
p{margin:0 0 1em;overflow-wrap:break-word}
a{color:var(--accent);text-underline-offset:.15em}
img,svg,canvas{display:block;max-width:100%}
img{height:auto}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--rust);outline-offset:2px;border-radius:3px}
.skip{position:absolute;left:.6rem;top:-4rem;z-index:80;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:0 0 .6rem .6rem;text-decoration:none}
.skip:focus{top:0}
.wrap{max-width:46rem;margin:0 auto;padding:0 16px}
section[id],article[id],div[id]{scroll-margin-top:3.75rem}
h2 .perma{margin-left:.35rem;text-decoration:none;color:var(--muted);font-size:.7em;display:inline-grid;place-items:center;min-width:44px;min-height:44px;vertical-align:middle}
/* topbar: one line */
.topbar{position:fixed;top:0;left:0;right:0;z-index:60;height:3rem;display:flex;align-items:center;gap:.8rem;padding:0 12px;background:var(--card-a);border-bottom:1px solid var(--line)}
.topbar .home{font-weight:700;text-decoration:none;color:var(--ink);white-space:nowrap;font-size:.92rem}
.topnav{display:flex;gap:1rem;overflow-x:auto;scrollbar-width:none;min-width:0;flex:0 1 auto}
.topnav::-webkit-scrollbar{display:none}
.topnav a{text-decoration:none;font-weight:700;white-space:nowrap;font-size:.92rem;padding:.7rem 0}
.topnav a[aria-current]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--rust);text-decoration-thickness:3px}
.spacer{flex:1}
.chip{border:1px solid var(--line);border-radius:999px;padding:.35rem .75rem;text-decoration:none;font-size:.85rem;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.icon-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);display:inline-grid;place-items:center;cursor:pointer;flex:none}
.icon-btn svg{display:block}.icon-btn svg[hidden]{display:none}
@media(max-width:560px){.topbar .home{display:none}.topnav{gap:.75rem}.topnav a{font-size:.86rem}.chip{padding:.3rem .6rem}}
/* rail */
.rail{position:fixed;right:.6rem;top:50%;transform:translateY(-50%);z-index:40;display:none;flex-direction:column;gap:.4rem;align-items:flex-end}
.rail a{position:relative;display:flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;text-decoration:none}
.rail .dot{width:.62rem;height:.62rem;border-radius:50%;background:var(--line)}
.rail a.on .dot{background:var(--rust)}
.rail .rlab{position:absolute;right:calc(100% + .3rem);top:50%;transform:translateY(-50%);white-space:nowrap;font-size:.78rem;color:var(--ink);background:var(--card);padding:.1rem .45rem;border-radius:.4rem;visibility:hidden}
.rail a:hover .rlab,.rail a:focus-visible .rlab,.rail a.on .rlab{visibility:visible}
@media(min-width:1280px){.rail{display:flex}}
/* hero */
.hero{padding:4.6rem 0 1.5rem}
.hero-grid{max-width:72rem;margin:0 auto;padding:0 16px;display:grid;gap:1.4rem}
.kicker{font-weight:700;color:var(--rust);letter-spacing:.02em;font-size:.9rem;margin:0 0 .4rem}
.deck{font-size:1.15rem}
.answer-box{background:var(--card);border-left:5px solid var(--rust);padding:.9rem 1.1rem;border-radius:.4rem;font-size:1.08rem}
.answer-box p:last-child{margin:0}
.hero figure{margin:0}
.hero img{border-radius:.6rem;width:100%}
.byline{font-size:.88rem;color:var(--muted)}
@media(min-width:900px){.hero-grid{grid-template-columns:1.05fr .95fr;align-items:center}.hero{padding-top:5.5rem}}
/* the stage */
.lab{position:relative;border-top:1px solid var(--line)}
.lab-grid{max-width:76rem;margin:0 auto;display:grid}
.stage{position:sticky;top:3rem;z-index:3;background:var(--paper);padding:.5rem 12px .4rem;border-bottom:1px solid var(--line)}
.stage-cv{width:100%;height:auto;aspect-ratio:3/2;border-radius:.5rem;background:var(--sky);touch-action:manipulation;cursor:crosshair}
.stage-fallback{width:100%;border-radius:.5rem}
.js .stage-fallback{display:none}
.stage-cv{display:none}.js .stage-cv{display:block}
.meters{display:flex;gap:.5rem;flex-wrap:wrap;margin:.45rem 0 .2rem;font-size:.9rem}
.meter{background:var(--card);border:1px solid var(--line);border-radius:.4rem;padding:.15rem .55rem;font-variant-numeric:tabular-nums}
.meter b{font-size:1rem}
.clock{font-weight:700;color:var(--rust)}
.ctrls{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.ctrls label{font-size:.88rem;font-weight:700}
.ctrls input[type=range]{flex:1;min-width:9rem;height:44px;accent-color:var(--rust)}
.btn{font:inherit;font-weight:700;min-height:44px;padding:.35rem 1rem;border-radius:999px;border:2px solid var(--rust);background:var(--rust);color:var(--paper);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.steps{padding:1rem 16px 30svh}
.step{background:var(--card);border:1px solid var(--line);border-radius:.9rem;padding:1.05rem 1.15rem .35rem;margin:0 0 42svh;max-width:32rem}
.step:last-child{margin-bottom:0}
.step h3{font-size:1.3rem}
.step .num{display:block;font-family:Atkinson,system-ui,sans-serif;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rust);font-weight:700;margin-bottom:.25rem}
.lab .step[id]{scroll-margin-top:calc(3rem + min(62svh,86vw) + 1rem)}
@media(min-width:900px){.lab-grid{grid-template-columns:minmax(20rem,30rem) 1fr;gap:2rem;padding:0 24px}.stage{order:2;top:3.5rem;align-self:start;border:0;padding-top:1.2rem}.steps{order:1;padding:30svh 0 40svh}.step{margin-bottom:60svh}.lab .step[id]{scroll-margin-top:30svh}}
/* predictions */
.pick{border:0;padding:0;margin:.6rem 0 1rem}
.pick legend{font-weight:700;margin-bottom:.4rem}
.pick .opts{display:flex;flex-wrap:wrap;gap:.45rem}
.opt{font:inherit;min-height:44px;padding:.3rem .9rem;border-radius:.6rem;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;text-align:left}
.opt[aria-pressed="true"]{border-color:var(--rust);box-shadow:inset 0 0 0 1px var(--rust)}
.opt.right{border-color:var(--good);color:var(--good)}
.opt.wrong{border-color:var(--bad);color:var(--bad)}
.verdict{font-weight:700}
.reveal{border-left:4px solid var(--rust);padding:.2rem 0 .1rem .9rem;margin:.5rem 0 1rem}
.js .reveal.locked{display:none}
/* chapters */
.chapter{padding:3.5rem 0 2rem;border-top:1px solid var(--line)}
.lede{font-size:1.12rem}
figure{margin:1.6rem 0}
figcaption{font-size:.9rem;color:var(--muted);margin-top:.5rem}
.credit{display:block;font-size:.84rem}
.wide{max-width:min(64rem,calc(100vw - 32px));margin-left:50%;transform:translateX(-50%);width:100vw}
.pair{display:grid;gap:1rem}
@media(min-width:760px){.pair{grid-template-columns:1fr 1fr}}
.pair figure{margin:0}
/* rate chart */
.rate-svg{width:100%;height:auto}
.rate-svg text{fill:var(--ink);font-family:Atkinson,system-ui,sans-serif;font-size:15px}
.rate-svg .soft{fill:var(--muted);font-size:13px}
.rate-svg .axis{stroke:var(--muted);stroke-width:1}
.rate-svg .grid{stroke:var(--line);stroke-width:1}
.rate-svg .bar{fill:var(--cement)}
.rate-svg .bar.claim{fill:none;stroke:var(--rust);stroke-width:2;stroke-dasharray:6 4}
.rate-svg .bar.range{fill:var(--water);opacity:.85}
.js .rate-svg .claimrow.locked{opacity:0}
/* size figure */
.size-svg{width:100%;height:auto}
.size-svg .person{fill:var(--ink)}
.size-svg .rock{fill:var(--stone);stroke:var(--stone-edge);stroke-width:2}
.size-svg .rock.unsure{fill:none;stroke:var(--stone-edge);stroke-dasharray:6 5}
.size-svg text{fill:var(--ink);font-family:Atkinson,system-ui,sans-serif;font-size:15px}
.size-svg .soft{fill:var(--muted)}
.size-svg .ground{stroke:var(--muted);stroke-width:2}
.h-ctrl{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:.3rem 0}
.h-ctrl input{flex:1;min-width:10rem;height:44px;accent-color:var(--rust)}
/* map */
.map-svg{width:100%;height:auto}
.map-svg .land{fill:var(--card);stroke:var(--muted);stroke-width:1.5}
.map-svg .pt{fill:var(--rust);stroke:var(--paper);stroke-width:2}
.map-svg .pt.main{fill:var(--ink)}
.map-svg text{fill:var(--ink);font-family:Atkinson,system-ui,sans-serif;font-size:15px;paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round}
.map-svg .strong{font-weight:700;font-size:17px}
.places{columns:2 14rem;padding-left:1.1rem}
/* game */
.game{list-style:none;padding:0;margin:0;counter-reset:q}
.q{background:var(--card);border:1px solid var(--line);border-radius:.8rem;padding:.9rem 1rem .3rem;margin:0 0 .8rem}
.q p.stmt{font-weight:700;margin-bottom:.5rem}
.q p.stmt::before{counter-increment:q;content:counter(q) ". ";color:var(--rust)}
.q .opts{display:flex;gap:.5rem;margin-bottom:.6rem}
.q .why{font-size:.96rem}
.js .q .why.locked{display:none}
.score{font-size:1.2rem;font-family:Fraunces,Georgia,serif}
/* sources */
.refs{padding-left:1.1rem}
.refs li{margin-bottom:.5rem}
.ref-note{color:var(--muted);font-size:.92rem}
.silences li{margin-bottom:.45rem}
.tbl{overflow-x:auto}
/* share + footer */
.share{padding:2.5rem 0;border-top:1px solid var(--line)}
.share-row{display:flex;flex-wrap:wrap;gap:.5rem}
.foot{border-top:1px solid var(--line);padding:1.5rem 0 3rem;font-size:.92rem;color:var(--muted)}
.nf{padding-top:6rem}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.wrap-lab{max-width:76rem}
.w52{max-width:min(52rem,calc(100vw - 32px))}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rate{margin:0}
.rate-t{font-weight:700;margin-bottom:.6rem}
.rrows{list-style:none;padding:0;margin:0}
.rrow{margin:0 0 1rem}
.rlab{margin:0 0 .2rem;font-size:.98rem}
.rlab .soft{color:var(--muted);font-size:.88rem;display:block}
.rbar{width:100%;height:30px}
.rbar .grid{stroke:var(--line);stroke-width:1}
.rbar .bar.range{fill:var(--water)}
.rbar .bar.claim{fill:none;stroke:var(--rust);stroke-width:2.5;stroke-dasharray:6 4}
.rval{margin:.15rem 0 0;font-variant-numeric:tabular-nums;font-weight:700}
.js .claimrow.locked .rbar,.js .claimrow.locked .rval{visibility:hidden}
.ticks{position:relative;height:1.4rem;font-size:.8rem;color:var(--muted);border-top:1px solid var(--muted)}
.tk{position:absolute;top:.15rem;white-space:nowrap}
.tk0{left:12.5%;transform:translateX(-50%)}.tk1{left:37.5%;transform:translateX(-50%)}.tk2{left:62.5%;transform:translateX(-50%)}.tk3{left:87.5%;transform:translateX(-100%)}
.rbar .bar.max{fill:var(--water);opacity:.45}
.size-fig,.map-fig{max-width:min(40rem,calc(100vw - 32px))}
.size-svg text,.map-svg text{font-size:20px}
.map-svg .strong{font-size:23px}
@media(max-width:600px){.size-svg text{font-size:40px}.map-svg text{font-size:30px}.map-svg .strong{font-size:34px}}
.opt[aria-disabled="true"]{cursor:default}
.no-stage .stage-cv{display:none}.no-stage .stage-fallback{display:block}.no-stage .meters{display:none}
