@font-face{font-family:"Source Serif 4";src:url(fonts/source-serif-4-normal-latin.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}
@font-face{font-family:"Source Serif 4";src:url(fonts/source-serif-4-normal-latin-ext.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Serif 4";src:url(fonts/source-serif-4-italic-latin.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:"Source Serif 4";src:url(fonts/source-serif-4-italic-latin-ext.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}
@font-face{font-family:"IBM Plex Sans";src:url(fonts/IBMPlexSans-latin.woff2) format("woff2");font-weight:100 700;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+2212}
@font-face{font-family:"IBM Plex Sans";src:url(fonts/IBMPlexSans-latin-ext.woff2) format("woff2");font-weight:100 700;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}

:root{
  --bg:#f1eee6;--paper:#f7f4ec;--card:#fcfaf5;--text:#1b1d1c;--muted:#4a4f4c;--soft:#646a66;--rule:#d5cfc2;--rule-soft:#e4dfd3;
  --accent:#1d6273;--accent-ink:#17505e;--focus:#0b57b0;--btn-ink:#fff;
  --axis:#bdb6a6;--land:#ebe6da;--land-line:#cdc6b6;--core:#b4452a;--new:#d8963a;--ring:#1d6273;--pin:#111;--qa:#b9b2a3;--qb:#1d6273;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;--sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--top:46px;color-scheme:light
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#121514;--paper:#171b1a;--card:#1c2120;--text:#e8e5dd;--muted:#bcb8ae;--soft:#9d998f;--rule:#2e3533;--rule-soft:#252b29;--accent:#5fb3c4;--accent-ink:#8acbd8;--focus:#8ab8ff;--btn-ink:#08191d;--axis:#4a524f;--land:#1f2523;--land-line:#38403d;--core:#ef7a55;--new:#e9b65c;--ring:#6fc3d3;--pin:#fff;--qa:#59605c;--qb:#5fb3c4;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#121514;--paper:#171b1a;--card:#1c2120;--text:#e8e5dd;--muted:#bcb8ae;--soft:#9d998f;--rule:#2e3533;--rule-soft:#252b29;--accent:#5fb3c4;--accent-ink:#8acbd8;--focus:#8ab8ff;--btn-ink:#08191d;--axis:#4a524f;--land:#1f2523;--land-line:#38403d;--core:#ef7a55;--new:#e9b65c;--ring:#6fc3d3;--pin:#fff;--qa:#59605c;--qb:#5fb3c4;color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--top) + 14px)}
body{margin:0;background:var(--bg);color:var(--text);font:400 18px/1.62 var(--serif);overflow-x:hidden}
a{color:var(--accent-ink);text-underline-offset:2px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
strong{font-weight:650}
.skip-link{position:absolute;left:-999px;top:8px;background:var(--card);color:var(--text);padding:8px 12px;z-index:60}.skip-link:focus{left:8px}

/* top bar: slim, page colours */
.topbar{position:sticky;top:0;z-index:40;height:var(--top);display:flex;align-items:center;gap:10px;padding:0 14px;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));background:var(--bg);border-bottom:1px solid var(--rule-soft);font:500 14px/1 var(--sans)}
.brand{display:flex;align-items:center;gap:9px;color:var(--text);text-decoration:none;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.brand-mark{flex:none;width:8px;height:22px;border-radius:2px;background:var(--card);border:1px solid var(--rule);position:relative;overflow:hidden}
.brand-mark i{position:absolute;left:1px;right:1px;top:2px;height:6px;border-radius:1px;background:var(--accent)}
.topnav{display:flex;gap:16px;margin-left:14px}.topnav a{color:var(--muted);text-decoration:none;white-space:nowrap}.topnav a:hover{color:var(--text)}
.spacer{flex:1}
.chip{color:var(--muted);text-decoration:none;padding:6px 7px;border-radius:6px}.chip[aria-current="page"]{color:var(--text);background:var(--rule-soft)}
.icon-btn{flex:none;border:1px solid var(--rule);background:transparent;color:var(--text);border-radius:8px;width:34px;height:34px;display:grid;place-items:center;cursor:pointer}
:root[data-theme="dark"] .i-moon{display:none}:root[data-theme="light"] .i-sun{display:none}
@media (prefers-color-scheme:light){:root:not([data-theme]) .i-sun{display:none}}
@media (prefers-color-scheme:dark){:root:not([data-theme]) .i-moon{display:none}}
@media (max-width:1040px){.topnav{display:none}}
.progress{position:sticky;top:var(--top);z-index:39;height:2px;margin-bottom:-2px}
.progress i{display:block;height:2px;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#f1c6d9,var(--accent))}

/* rail */
.rail{position:fixed;right:10px;top:50%;transform:translateY(-50%);z-index:30;display:flex;flex-direction:column;gap:9px}
.rail-dot{position:relative;display:block;width:14px;height:14px}
.rail-dot .dot{position:absolute;left:4px;top:4px;width:6px;height:6px;border-radius:50%;background:var(--axis)}
.rail-dot[aria-current] .dot{background:var(--accent);transform:scale(1.4)}
.rail-label{position:absolute;right:20px;top:-3px;white-space:nowrap;font:500 12.5px var(--sans);background:var(--card);color:var(--text);border:1px solid var(--rule);border-radius:6px;padding:2px 7px;opacity:0;pointer-events:none;transition:opacity .15s}
.rail-dot:hover .rail-label,.rail-dot:focus-visible .rail-label{opacity:1}
@media (max-width:1300px){.rail{display:none}}

/* hero */
.hero{max-width:1240px;margin:0 auto;padding:30px 20px 10px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);grid-template-areas:"text fig" "res fig";column-gap:40px;align-items:start}
.hero-text{grid-area:text}.res{grid-area:res}.hero-fig{grid-area:fig}
.kicker{font:600 12.5px/1.3 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 10px}
h1{font:700 40px/1.1 var(--serif);margin:0 0 14px;letter-spacing:-.012em;text-wrap:balance}
.deck{font-size:19px;line-height:1.55;color:var(--muted);margin:0 0 18px}
.deck strong{color:var(--text)}
.shared-line{font:500 15px/1.4 var(--sans);background:var(--card);border-left:3px solid var(--accent);padding:8px 10px;border-radius:6px;margin:0 0 12px}
.finder label{display:block;font:600 14px var(--sans);color:var(--text);margin:0 0 6px}
.qrow{display:flex;gap:8px;flex-wrap:wrap;position:relative}
.qbox{flex:1 1 220px;min-width:0;position:relative}
.qbox input{width:100%;font:500 17px var(--sans);padding:11px 12px;border-radius:9px;border:1.5px solid var(--rule);background:var(--card);color:var(--text)}
.qbox input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.sug{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;background:var(--card);border:1px solid var(--rule);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.14);max-height:min(60vh,380px);overflow:auto}
.sug li{display:grid;grid-template-columns:1fr auto;column-gap:8px;padding:8px 10px;border-radius:7px;cursor:pointer;font:500 15px/1.3 var(--sans)}
.sug li span{grid-column:1;color:var(--soft);font-size:13px}
.sug li .b{grid-column:2;grid-row:1/3;align-self:center;width:9px;height:9px;border-radius:50%}
.sug .b.hit{background:var(--accent)}.sug .b.none{background:transparent;border:1.5px solid var(--axis)}
.sug li[aria-selected],.sug li:hover{background:var(--rule-soft)}
.sug li.none{cursor:default;color:var(--soft)}
.btn{font:600 15px var(--sans);padding:10px 15px;border-radius:9px;border:1px solid var(--rule);background:var(--card);color:var(--text);cursor:pointer;min-height:44px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--btn-ink)}
.btn.small{min-height:36px;padding:6px 11px;font-size:14px}
@media (pointer:coarse){.btn.small{min-height:44px}}
.find-note{font:400 14px/1.45 var(--sans);color:var(--soft);margin:8px 0 0}
.find-msg{font:500 14px var(--sans);color:var(--accent-ink);margin:4px 0 0}
.find-msg:empty{display:none}
.examples{font:500 14px/2 var(--sans);color:var(--soft);margin:6px 0 0}
.examples button{font:500 14px var(--sans);background:none;border:1px solid var(--rule);color:var(--text);border-radius:20px;padding:3px 11px;margin:0 4px 4px 0;cursor:pointer;min-height:34px}
.linkish{background:none;border:0;padding:0;font:inherit;color:var(--accent-ink);text-decoration:underline;text-underline-offset:2px;cursor:pointer;text-align:left}


/* sections */
.sec{max-width:760px;margin:0 auto;padding:44px 20px 6px}
.sec.wide{max-width:1240px}
.sec.wide > p{max-width:760px}
.sec h2{font:700 29px/1.18 var(--serif);margin:0 0 14px;text-wrap:balance}
.sec h3{font:650 19px/1.3 var(--serif);margin:22px 0 6px}
.sec p{margin:0 0 15px}
.anchor{margin-left:8px;font:500 16px var(--sans);color:var(--axis);text-decoration:none;opacity:0}
h2:hover .anchor,.anchor:focus-visible{opacity:1}
.map-wrap{position:relative;background:var(--paper);border:1px solid var(--rule-soft);border-radius:10px;padding:8px}
.map{display:block;width:100%;height:auto;touch-action:manipulation}
.brd{fill:none;stroke:var(--soft);stroke-width:1.2}
.tw{overflow-x:auto;margin:6px 0 8px}
.tbl{border-collapse:collapse;width:100%;font:400 14.5px/1.4 var(--sans)}
.tbl caption{text-align:left;font:500 13px var(--sans);color:var(--soft);padding:0 0 6px}
.tbl th,.tbl td{padding:7px 10px 7px 0;border-bottom:1px solid var(--rule-soft);text-align:left;vertical-align:top}
.tbl thead th{font-weight:600;color:var(--muted);border-bottom:1px solid var(--rule)}
.tbl tbody th{font-weight:500}
.tbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.btn.more{margin:4px 0 0}
ul.how,ul.src{padding-left:20px}ul.how li,ul.src li{margin:0 0 9px}
.share{margin:18px 0 6px}
.share-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.share-label{font:500 14px var(--sans);color:var(--soft);margin-right:4px}
.ic{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--rule-soft);background:transparent;color:var(--text);cursor:pointer;text-decoration:none}
.ic:hover,.ic:focus-visible{color:var(--accent-ink);border-color:var(--accent)}
@media (pointer:coarse){.ic{width:44px;height:44px}}
.share-msg{font:500 13px var(--sans);color:var(--soft);margin:4px 0 0;min-height:1em}
.site-footer{max-width:1240px;margin:50px auto 0;padding:22px 20px 40px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:8px 22px;font:400 14px var(--sans);color:var(--soft)}
.site-footer a{color:var(--muted)}
.place-page main{max-width:760px;margin:0 auto;padding:30px 20px}.place-page img{max-width:100%;height:auto}



/* brand: three village dots */
.brand-mark{width:auto;height:auto;border:0;background:none;display:flex;gap:3px;overflow:visible}
.brand-mark i{position:static;display:block;width:6px;height:6px;border-radius:50%;background:var(--core)}
.brand-mark i:nth-child(2){background:var(--new)}.brand-mark i:nth-child(3){background:transparent;border:1.5px solid var(--ring)}
.progress i{background:linear-gradient(90deg,var(--new),var(--core))}

/* hero figure: the map */
.hero{grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"text fig"}
.hero-fig{grid-area:fig;margin:0;position:sticky;top:calc(var(--top) + 10px)}
.map-fig{margin:0}
.map-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin:0 0 6px}
.map-title{margin:0;font:500 15px var(--sans);color:var(--muted)}.map-title b{color:var(--text);font-weight:650}
.years{display:flex;gap:4px;align-items:center}
.yb{font:600 14px var(--sans);border:1px solid var(--rule);background:var(--card);color:var(--muted);border-radius:8px;padding:5px 10px;min-height:36px;cursor:pointer}
.yb[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
.play{margin-left:4px}
@media (pointer:coarse){.yb{min-height:44px}}
.map-wrap{position:relative;background:var(--paper);border:1px solid var(--rule-soft);border-radius:12px;padding:6px}
.map{display:block;width:100%;height:auto;touch-action:manipulation;cursor:pointer}
.ctys path{fill:var(--land);stroke:var(--land-line);stroke-width:.7}
.brd{fill:none;stroke:var(--soft);stroke-width:1.1}
.d{fill:var(--new);stroke:none;display:none}
.d.core{fill:var(--core)}
.d.e{stroke:var(--ring);stroke-width:1.1}
.y2023 .d.a1,.y2024 .d.a2,.y2025 .d.a4{display:inline}
.pin{fill:none;stroke:var(--pin);stroke-width:3;opacity:0;pointer-events:none;paint-order:stroke;filter:drop-shadow(0 0 2px var(--bg))}
.pin.on{opacity:1}
.map-reset{position:absolute;right:12px;top:12px}
.map-pop{position:absolute;z-index:15;max-width:260px;background:var(--card);border:1px solid var(--rule);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.18);padding:10px 12px;font:400 14px/1.4 var(--sans);display:flex;flex-direction:column;gap:3px}
.map-pop b{font:700 16px/1.2 var(--serif);margin-right:26px}.map-pop span{color:var(--muted)}.map-pop .btn{margin-top:6px;align-self:flex-start}
.map-pop .x{position:absolute;right:4px;top:2px;border:0;background:none;font-size:22px;line-height:1;color:var(--soft);cursor:pointer;width:36px;height:36px}
.map-tip{position:absolute;z-index:14;pointer-events:none;background:var(--text);color:var(--bg);font:500 12.5px var(--sans);padding:4px 8px;border-radius:6px;white-space:nowrap}
.key{display:flex;flex-wrap:wrap;gap:4px 16px;font:500 13px var(--sans);color:var(--soft);margin:8px 2px 0}
.key i.k{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.k.core{background:var(--core)}.k.new{background:var(--new)}.k.ring{border:1.6px solid var(--ring)}
.k.qa{background:var(--qa);border-radius:2px!important}.k.qb{background:var(--qb);border-radius:2px!important}
.map-fig figcaption{font:400 13.5px/1.5 var(--sans);color:var(--soft);margin:6px 2px 0}

/* record card */
.res{margin:18px 0 0;outline:none}
.card{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:16px 18px 12px;box-shadow:0 12px 34px rgba(0,0,0,.08);font:400 15.5px/1.5 var(--sans)}
.card p{margin:0 0 8px}
.c-where{color:var(--soft);font-size:14px;margin:0!important}
.c-name{font:700 28px/1.12 var(--serif);margin:2px 0 8px;outline:none}
.c-st{border-left:3px solid var(--rule);padding-left:10px}
.card.is-on .c-st{border-left-color:var(--core)}.card.is-off .c-st{border-left-color:var(--ring)}
.c-lab{font:600 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin:12px 0 4px!important}
.yrs{list-style:none;margin:0 0 8px;padding:0;display:flex;gap:6px}
.yrs li{flex:1;border-radius:8px;padding:6px 8px;border:1px solid var(--rule);display:flex;flex-direction:column;font-size:13px;color:var(--soft)}
.yrs li b{font:650 16px var(--sans);color:var(--text)}
.yrs li.on{background:color-mix(in srgb,var(--core) 13%,var(--card));border-color:color-mix(in srgb,var(--core) 45%,var(--rule))}
.c21 span{color:var(--soft)}
.c-4g{font-weight:600}
.c-u,.c-pn{color:var(--muted)}
.c-sig{border-top:1px solid var(--rule-soft);margin-top:10px}
.c-sig p{margin:0 0 4px}
.sg{display:inline-flex;align-items:center;gap:6px;font-weight:500}
.sg i{width:10px;height:10px;border-radius:2px;background:var(--rule)}
.sg.s0 i{background:transparent;border:1px solid var(--rule)}.sg.s1 i{background:transparent;border:1px dashed var(--soft)}.sg.s2 i{background:var(--qa)}.sg.s3 i{background:color-mix(in srgb,var(--qb) 60%,var(--card))}.sg.s4 i{background:var(--qb)}
.sm{font-size:13.5px;color:var(--soft)}
.muted{color:var(--soft)}
.note{font:400 14px/1.5 var(--sans);color:var(--soft)}
.tbl tr.extra{display:none}
.tbl .bar{display:inline-block;height:8px;width:calc(var(--w) * 1.2);max-width:120px;background:var(--core);border-radius:2px;margin-right:8px;vertical-align:middle;opacity:.8}
.ct td.n{text-align:left}
.zt td,.zt th{font-size:14px}.zt tr.tot th,.zt tr.tot td{border-top:1px solid var(--rule);font-weight:600}
.sbars{margin:14px 0 6px}
.sb-row{display:grid;grid-template-columns:minmax(0,14em) minmax(0,1fr);gap:4px 12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--rule-soft);font:400 14px/1.35 var(--sans)}
.sb-bars{display:grid;grid-template-columns:minmax(0,1fr) 3.6em;gap:2px 6px;align-items:center}
.sb{display:block;height:9px;width:var(--w);min-width:2px;border-radius:2px}
.sb.a{background:var(--qa)}.sb.b{background:var(--qb)}
.sb-v{font:500 13px var(--sans);color:var(--soft);font-variant-numeric:tabular-nums}.sb-v.b{color:var(--text);font-weight:600}
.sbars figcaption{font:400 13.5px/1.5 var(--sans);color:var(--soft);margin-top:6px}
@media (max-width:600px){.sb-row{grid-template-columns:1fr}}

@media (max-width:900px){
  .hero{grid-template-columns:minmax(0,1fr);grid-template-areas:"text" "fig";padding-top:22px}
  .hero-fig{position:static;margin-top:18px}
  h1{font-size:30px}.deck{font-size:17.5px}.sec h2{font-size:25px}.c-name{font-size:24px}
}
@media (max-width:420px){body{font-size:17px}h1{font-size:27px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.topbar,.rail,.share,.progress,.finder{display:none}}
