:root{
  --bg:#f1ede3;--bg-2:#e8e2d4;--surface:#faf8f2;--text:#1b211e;--muted:#3e4641;--line:#c9c1ae;--line-soft:#ddd6c6;
  --water:#1d6a94;--acc:#a64f00;--acc-fill:#c9690f;--off:#4f5f6b;--park:#2e6840;--n2k:#6f9a68;
  --focus:#0b5cad;--serif:'Newsreader',Georgia,serif;--sans:'Atkinson Hyperlegible',system-ui,sans-serif;--mono:'IBM Plex Mono',ui-monospace,monospace;
  --top:44px;
}
.dark{
  --bg:#111517;--bg-2:#181e21;--surface:#1a2023;--text:#e8ebe5;--muted:#b8c0b9;--line:#3a4447;--line-soft:#2a3235;
  --water:#7fbde3;--acc:#f0a35a;--acc-fill:#e8913c;--off:#9fb0bd;--park:#7cc28d;--n2k:#5f9a6c;--focus:#8cc4ff;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
svg[hidden]{display:none}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--top) + 12px)}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.06rem/1.62 var(--sans)}
a{color:var(--water);text-underline-offset:.18em}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.skip{position:absolute;left:-9999px;top:0;background:var(--surface);color:var(--text);padding:.5rem .8rem;z-index:50}
.skip:focus{left:.5rem;top:.5rem}
/* topbar */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.7rem;height:var(--top);padding:0 max(.8rem,env(safe-area-inset-left));
  background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(6px);border-bottom:1px solid var(--line-soft);font-size:.86rem}
.home{display:flex;align-items:center;gap:.45rem;color:var(--text);text-decoration:none;white-space:nowrap}
.motif{width:22px;height:22px;color:var(--text)}
.topnav{display:flex;gap:.9rem;overflow:hidden;white-space:nowrap}
.topnav a{color:var(--muted);text-decoration:none}
.topnav a:hover{color:var(--text)}
.spacer{flex:1}
.chip{color:var(--text);text-decoration:none;border:1px solid var(--line);border-radius:99px;padding:.15rem .6rem}
.icon-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--text);cursor:pointer}
.progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden}
.progress i{display:block;height:100%;width:100%;background:var(--water);transform-origin:0 50%;transform:scaleX(0)}
@media (max-width:880px){.topnav{display:none}}
/* rail */
.rail{position:fixed;right:10px;top:50%;transform:translateY(-50%);list-style:none;margin:0;padding:0;z-index:20;display:flex;flex-direction:column;gap:9px}
.rail a{position:relative;display:block;width:12px;height:12px}
.rail a::before{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--line)}
.rail a[aria-current="true"]::before{background:var(--water);inset:2px}
.rail span{position:absolute;right:18px;top:50%;transform:translateY(-50%);white-space:nowrap;font-size:.78rem;background:var(--surface);color:var(--text);border:1px solid var(--line-soft);padding:.1rem .45rem;border-radius:4px;opacity:0;pointer-events:none}
.rail a:hover span,.rail a:focus-visible span{opacity:1}
@media (max-width:1320px){.rail{display:none}}
@media print{.rail,.topbar,.share-row{display:none}}
/* layout */
main{display:block}
.wrap{max-width:41rem;margin:0 auto;padding:0 1.1rem}
.wrapwide{max-width:78rem;margin:0 auto;padding:0 1.1rem}
.block{padding:2.6rem 0 1rem}
.hero{padding-top:2.4rem;padding-bottom:.6rem}
.kicker{font:400 .8rem/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .7rem}
h1{font:400 clamp(1.9rem,4.3vw,3rem)/1.1 var(--serif);margin:0 0 1rem;letter-spacing:-.01em;max-width:24ch}
.hero{max-width:56rem}
.hero h1{max-width:34ch;font-size:clamp(1.8rem,3.4vw,2.6rem)}
.deck{font:400 1.2rem/1.5 var(--serif);margin:0;max-width:40rem}
.byline{font-size:.84rem;color:var(--muted);margin:.8rem 0 0}
.deck b{font-weight:400;background:linear-gradient(transparent 62%,color-mix(in srgb,var(--acc-fill) 30%,transparent) 0)}
h2{font:400 clamp(1.45rem,2.6vw,1.9rem)/1.2 var(--serif);margin:0 0 .9rem;position:relative}
h3{font:400 1.25rem/1.3 var(--serif);margin:1.8rem 0 .6rem}
.anchor{position:absolute;left:-1.1em;color:var(--line);text-decoration:none;opacity:0}
h2:hover .anchor,.anchor:focus{opacity:1}
.prose p{margin:0 0 1rem}
.small{font-size:.86rem}
/* map */
.wide .mapgrid{max-width:82rem;margin:1.4rem auto 0;padding:0 1.1rem;display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:1.4rem;align-items:start}
@media (max-width:980px){.wide .mapgrid{grid-template-columns:1fr}}
.mapfig{margin:0}
.mapwrap{position:relative}
.map{display:block;width:100%;height:auto;touch-action:manipulation;cursor:crosshair}
.base-dark{display:none}.dark .base-dark{display:inline}.dark .base-light{display:none}
.pt{stroke:var(--bg);stroke-width:1.1;cursor:pointer;transition:opacity .2s}
.pt.a{fill:var(--acc-fill)}
.pt.n{fill:var(--off)}
.pt.v{fill:var(--bg);fill-opacity:.55;stroke-width:1.6}
.pt.v.a{stroke:var(--acc-fill)}.pt.v.n{stroke:var(--off)}
.map.dim .pt{opacity:.25}
.map.dim .pt.on{opacity:1}
#hl path{fill:none;stroke:var(--water);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
#hl path.halo{stroke:var(--bg);stroke-width:8;opacity:.8}
#sel circle{fill:none;stroke:var(--text);stroke-width:2.2}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;margin:.7rem 0 0;padding:0;font-size:.84rem;color:var(--muted)}
.sw{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:.4rem;vertical-align:-1px}
.sw.a{background:var(--acc-fill)}.sw.n{background:var(--off)}.sw.v{border:2px solid var(--off);background:transparent}
.sw.pk{background:var(--park);border-radius:2px}.sw.n2{background:var(--n2k);border-radius:2px;opacity:.7}
.map-reset{position:absolute;right:.6rem;top:.6rem}
.pop{position:absolute;z-index:5;max-width:min(20rem,86%);background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:.6rem .75rem;box-shadow:0 6px 22px rgba(0,0,0,.18);font-size:.9rem}
.pop h4{font:400 1.02rem/1.25 var(--serif);margin:0 0 .25rem}
.pop p{margin:.2rem 0}
.pop .row{display:flex;gap:.5rem;margin-top:.45rem;flex-wrap:wrap}
.tip{position:absolute;z-index:6;pointer-events:none;background:var(--text);color:var(--bg);font-size:.8rem;padding:.2rem .45rem;border-radius:4px;white-space:nowrap}
/* panel */
.panel{background:var(--surface);border:1px solid var(--line-soft);border-radius:10px;padding:1rem;position:sticky;top:calc(var(--top) + 12px)}
@media (max-width:980px){.panel{position:static}}
.lbl-search{display:block;font-weight:400;margin-bottom:.35rem}
.search{display:flex;gap:.5rem;flex-wrap:wrap}
.search input{flex:1;min-width:10rem;font:inherit;padding:.55rem .7rem;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text)}
.hint{font-size:.84rem;color:var(--muted);margin:.4rem 0 .4rem}
.results{list-style:none;margin:0;padding:0;max-height:16rem;overflow:auto}
.results li button{display:block;width:100%;text-align:left;font:inherit;font-size:.92rem;background:none;border:0;border-bottom:1px solid var(--line-soft);color:var(--text);padding:.45rem .2rem;cursor:pointer}
.results li button:hover,.results li button:focus-visible{background:var(--bg-2)}
.results .m{color:var(--muted);font-size:.82rem}
.answer{margin-top:.6rem;font-size:.95rem}
.answer .lead{margin:.2rem 0 .6rem}
.answer h3{margin:.2rem 0 .4rem;font-size:1.15rem}
.answer ul{list-style:none;margin:0;padding:0}
.answer li{border-top:1px solid var(--line-soft);padding:.5rem 0}
.answer li button{font:inherit;color:var(--water);background:none;border:0;padding:0;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:.18em}
.tag{display:inline-block;font-size:.76rem;border-radius:99px;padding:0 .45rem;margin-left:.3rem;border:1px solid var(--line)}
.tag.a{border-color:var(--acc);color:var(--acc)}
.btn{font:inherit;font-size:.9rem;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:7px;padding:.45rem .75rem;cursor:pointer;min-height:40px}
.btn:hover{border-color:var(--text)}
/* charts */
.fig{margin:1.2rem auto 0}
.chart{width:100%;height:auto;display:block;font:400 13px var(--sans);fill:var(--text)}
.chart .lab{fill:var(--text);font-size:14px}
.chart .val{fill:var(--text);font-family:var(--mono);font-size:13px}
.chart .mu{fill:var(--muted);font-size:12px}
.chart .grid{stroke:var(--line-soft)}
.bar.a{fill:var(--acc-fill)}.bar.p{fill:var(--water)}.bar.p2{fill:color-mix(in srgb,var(--water) 55%,var(--bg))}
figcaption{font-size:.84rem;color:var(--muted);margin-top:.6rem}
/* html charts */
.hbars{display:grid;gap:.9rem}
.hb .hl{display:block;font-size:.92rem;margin-bottom:.25rem}
.hb .track{display:flex;align-items:center;gap:.5rem}
.hb i{display:block;height:24px;border-radius:3px;min-width:4px}
.hb i.a{background:var(--acc-fill)}.hb i.p{background:var(--water)}.hb i.p2{background:color-mix(in srgb,var(--water) 55%,var(--bg))}
.hb b{font:400 .88rem var(--mono);white-space:nowrap}
.cols{display:grid;grid-template-columns:repeat(8,1fr);gap:.5rem;align-items:end;height:220px;border-bottom:1px solid var(--line)}
.col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative}
.col i{display:block;width:72%;background:var(--acc-fill);border-radius:2px 2px 0 0}
.col b{font:400 .82rem var(--mono);margin-bottom:.2rem}
.col span{position:absolute;bottom:-1.5rem;font:400 .78rem var(--mono);color:var(--muted)}
.unit{font-size:.8rem;color:var(--muted);margin:1.8rem 0 0}
/* table */
.tblwrap{overflow-x:auto;border:1px solid var(--line-soft);border-radius:8px;margin-top:.8rem}
.tbl{border-collapse:collapse;width:100%;font-size:.88rem}
.tbl th,.tbl td{padding:.45rem .6rem;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}
.tbl th{font-weight:400;color:var(--muted);background:var(--bg-2);position:sticky;top:0}
.tbl .num{text-align:right;font-family:var(--mono);white-space:nowrap}
.more{margin:.8rem 0}
.method{padding-left:1.1rem}.method li{margin:.4rem 0}
/* share */
.share-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:1rem}
.share-row .lbl{font-size:.82rem;color:var(--muted);margin-right:.2rem}
.sh{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-soft);background:transparent;color:var(--text);cursor:pointer}
.sh svg{width:18px;height:18px}
.sh:hover,.sh:focus-visible{color:var(--water);border-color:var(--water)}
@media (pointer:coarse){.sh{width:44px;height:44px}}
.status{font-size:.82rem;color:var(--muted);min-height:1.2em;margin:.3rem 0 0}
footer{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;justify-content:center;padding:2.4rem 1rem 3rem;font-size:.84rem;color:var(--muted);border-top:1px solid var(--line-soft);margin-top:3rem}
footer a{color:var(--muted)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
