:root{--bg:#f4f1e8;--card:#fffdf8;--ink:#17201c;--mute:#5f675f;--line:#e0dccd;--acc:#1f6f5c;--onacc:#fff;--gold:#c08a2a;--soft:#e9efe6}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0f1412;--card:#171e1b;--ink:#e6ece7;--mute:#9aa69e;--line:#2a332f;--acc:#5cc8a8;--onacc:#06231b;--gold:#e8b85a;--soft:#1f2a25}}
:root[data-theme="dark"]{--bg:#0f1412;--card:#171e1b;--ink:#e6ece7;--mute:#9aa69e;--line:#2a332f;--acc:#5cc8a8;--onacc:#06231b;--gold:#e8b85a;--soft:#1f2a25}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:18px/1.6 Inter,system-ui,sans-serif}
.wrap{max-width:1180px;margin:0 auto;padding:8px 16px 40px}
.hero{margin:14px 0 14px}
.eyebrow{font:700 .85rem Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--acc);margin:0 0 4px}
h1{font:900 clamp(2rem,5.4vw,3.3rem)/1.02 Fraunces,Georgia,serif;margin:0 0 8px;letter-spacing:-.015em}
.lede{color:var(--mute);margin:0;max-width:780px;font-size:1.12rem}
.bar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.bar select{min-width:0;max-width:100%;flex:0 1 auto}
input[type=search]{flex:1;min-width:200px;font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink)}
select{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink)}
.count{color:var(--mute);font-size:1rem;margin:12px 0 0}
.lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:26px 0 0}
.lst{background:var(--soft);border-radius:14px;padding:14px 16px}
.lst h3{margin:0 0 4px;font:800 1.2rem Fraunces,Georgia,serif}
.lst p{margin:0 0 8px;font-size:.98rem;color:var(--mute)}
.lst button{font:600 .95rem Inter,sans-serif;border:0;background:none;color:var(--acc);padding:0;cursor:pointer}
.lst button:hover{text-decoration:underline}
.sec{margin:26px 0 0}
.sec h2{display:flex;align-items:baseline;gap:10px;font:800 1.85rem Fraunces,Georgia,serif;margin:0 0 4px}
.sec>p{color:var(--mute);margin:0 0 14px;font-size:1.05rem;max-width:760px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.s{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;display:grid;gap:9px;align-content:start;position:relative;overflow:hidden}
.s::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--gc,var(--acc))}
.nm{font:800 1.65rem/1.15 Fraunces,Georgia,serif;margin:0}
.sci{font:italic 600 1.08rem/1.25 Fraunces,Georgia,serif;margin:-2px 0 0;color:var(--mute)}
.meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.86rem;color:var(--mute)}
.tag{background:var(--soft);color:var(--ink);border-radius:6px;padding:2px 7px;font-weight:600}
.cls{background:var(--gold);color:#1b1206}
.iu{color:#fff}
.who{font-size:1rem;color:var(--mute);margin:0}
.s p.b{margin:0;font-size:1.05rem}
.where{font-size:1.08rem;font-weight:600;line-height:1.4;margin:2px 0 0;color:var(--ink)}
.where p{margin:0}
.where b::before{content:"📍 "}
.where b{display:block;font:700 .8rem Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--acc);margin-bottom:1px}
.links{display:flex;gap:14px;flex-wrap:wrap;font-size:.92rem;font-weight:600;margin-top:2px}
.links a{color:var(--acc);text-decoration:none}.links a:hover{text-decoration:underline}
.empty{color:var(--mute);padding:30px 0}
.pic{margin:-18px -18px 4px;background:var(--soft);border-bottom:1px solid var(--line)}
.pic img{display:block;width:100%;height:260px;object-fit:contain}
.pic figcaption{font-size:.78rem;color:var(--mute);padding:5px 12px}
.pic figcaption a{color:inherit}
.cn{margin:0;font-size:.95rem;background:var(--soft);border-radius:10px;padding:8px 10px;line-height:1.45}
.cn b{color:var(--acc);font:700 .86rem Inter,sans-serif;letter-spacing:.02em;margin-right:4px}
.cn q{font-style:italic}
.cn .fx{display:block;margin-top:4px;color:var(--mute)}
footer{color:var(--mute);font-size:.92rem;margin-top:30px;line-height:1.6}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.ctabs{max-width:1180px;margin:0 auto;padding:10px 16px 0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;font:600 15px/1.25 Inter,system-ui,sans-serif}
.ctabs a{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;white-space:nowrap}
.ctabs a:hover{border-color:var(--acc)}
.ctabs a[aria-current=page]{background:var(--acc);border-color:var(--acc);color:var(--onacc)}
.ctabs .fl{font-size:15px;line-height:1}.ctabs.b{padding:0 16px 14px}
.cside{display:none}
@media (min-width:1100px){body{padding-left:244px}.cside{display:block;position:fixed;top:0;left:0;bottom:0;width:228px;overflow-y:auto;padding:18px 10px 24px;background:var(--card);border-right:1px solid var(--line);font:600 15px/1.3 Inter,system-ui,sans-serif;z-index:20}.cside h2{font:800 18px/1.2 Fraunces,Georgia,serif;margin:4px 9px 12px;color:var(--ink)}.cside a{display:flex;gap:9px;align-items:center;padding:7px 9px;margin:1px 0;border-radius:9px;color:var(--ink);text-decoration:none}.cside a:hover{background:var(--soft)}.cside a[aria-current=page]{background:var(--acc);color:var(--onacc)}.cside .fl{font-size:16px;line-height:1;width:20px;text-align:center}.cside small{display:block;font-weight:500;opacity:.72;font-size:12.5px;margin-top:1px}.cside .back{margin-top:12px;border-top:1px solid var(--line);padding-top:12px;border-radius:0;opacity:.8}.ctabs{display:none}}
.s{grid-template-columns:minmax(0,1fr)}
.fx3{display:grid;gap:8px;margin:2px 0 0}
.fx3 div{font-size:1rem;line-height:1.5}
.fx3 b{display:block;font:700 .8rem Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--acc);margin-bottom:1px}
.fx3 .dyk{background:var(--soft);border-left:4px solid var(--gold);border-radius:8px;padding:8px 11px}
.fx3 .dyk b{color:var(--gold)}
@media (max-width:560px){body{font-size:17px}.grid{grid-template-columns:minmax(0,1fr)}input[type=search]{min-width:0;flex:1 1 100%}select{flex:1 1 100%}}

/* Map-first explorer */
.explore{margin:0 0 8px;scroll-margin-top:8px}
.stage{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
.mapwrap{min-width:0}
#map{height:min(74vh,660px);min-height:440px;border-radius:14px;overflow:hidden;border:1px solid var(--line);z-index:0;isolation:isolate;background:#aad3df}
#map.nomap{display:grid;place-items:center;color:#1d1d1d;padding:20px;text-align:center}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.92rem;margin:8px 0 0;color:var(--mute)}
.legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px;border:1px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.2)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;height:min(74vh,660px);min-height:440px;overflow-y:auto;font-size:1rem}
.panel h3{font:800 1.35rem/1.15 Fraunces,Georgia,serif;margin:0 0 4px}
.panel h4{font:700 .8rem Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--acc);margin:12px 0 4px}
.panel .sci{font-size:1rem;margin:0 0 8px}
.panel .hint{color:var(--mute);font-size:.92rem;margin:0 0 10px}
.panel .pb,.panel .pat{margin:8px 0 0;line-height:1.45}
.panel .pat{font-weight:600}
.pimg{display:block;width:100%;height:200px;object-fit:cover;background:var(--soft);border-radius:10px;margin:0 0 10px}
.pback{font:600 .92rem Inter,sans-serif;border:0;background:none;color:var(--acc);padding:0 0 10px;cursor:pointer}
.pcard{margin-top:14px;font:600 .95rem Inter,sans-serif;border:0;border-radius:999px;padding:8px 14px;background:var(--acc);color:var(--onacc);cursor:pointer}
.blist{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.blist button{display:flex;gap:10px;align-items:center;width:100%;text-align:left;font:inherit;color:var(--ink);background:none;border:0;border-radius:10px;padding:5px 6px;cursor:pointer}
.blist button:hover{background:var(--soft)}
.blist img,.blist .noimg{width:48px;height:48px;border-radius:8px;object-fit:cover;flex:0 0 48px;background:var(--soft)}
.blist b{display:block;font-weight:600;line-height:1.25}
.blist small{display:block;color:var(--mute);font-size:.82rem}
.plist{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.plist button{display:flex;gap:8px;align-items:flex-start;text-align:left;font:600 .98rem/1.35 Inter,sans-serif;color:var(--ink);background:none;border:0;padding:4px 0;cursor:pointer}
.plist button:hover{color:var(--acc)}
.plist .n,.pin span{display:inline-grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;color:#fff;font:700 13px Inter,sans-serif;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.pin{background:none;border:0}
.pin span{width:30px;height:30px;font-size:14px}
.locate{margin-top:8px;font:600 .95rem Inter,sans-serif;border:1px solid var(--acc);border-radius:999px;padding:6px 13px;background:none;color:var(--acc);cursor:pointer}
.locate:hover{background:var(--acc);color:var(--onacc)}
.lh{grid-column:1/-1;font:800 1.5rem Fraunces,Georgia,serif;margin:0}
.listhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:22px 0 0;border-top:1px solid var(--line);padding-top:12px}
.listhead .count{margin:0}
.sortl{font-size:.92rem;color:var(--mute);display:flex;gap:8px;align-items:center}
article.s.flash{outline:3px solid #f2b705;outline-offset:3px;transition:outline-color .3s}
@media (max-width:900px){.stage{grid-template-columns:minmax(0,1fr)}#map{height:58vh;min-height:320px}.panel{height:auto;min-height:0;max-height:70vh}}
@media (max-width:560px){.bar input[type=search],.bar select{flex:1 1 100%}}
.dot{background:none;border:0}
.dot i{display:block;width:14px;height:14px;border-radius:50%;border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.dot.dim i{opacity:.3}
.trips{margin:28px 0 0;scroll-margin-top:8px}
.thint{color:var(--mute);margin:0 0 10px;font-size:1rem;max-width:820px}
.rsum{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin:0 0 14px;font-size:.92rem}
.rsum a{background:var(--soft);color:var(--ink);text-decoration:none;border-radius:999px;padding:4px 11px;font-weight:600}
.rsum a span{color:var(--acc);font-weight:800;margin-left:2px}
.trank{list-style:none;margin:0;padding:0;columns:3 330px;column-gap:14px}
.trank li{break-inside:avoid;margin:0 0 6px}
.trip{display:grid;grid-template-columns:2.1em 1fr 70px 2em;gap:8px;align-items:center;width:100%;text-align:left;font:inherit;font-size:.95rem;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:7px 10px;cursor:pointer}
.trip:hover{border-color:var(--acc)}
.trip[aria-pressed=true]{border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc);background:var(--soft)}
.trip i{font:800 .9rem Inter,sans-serif;font-style:normal;color:var(--mute);text-align:right}
.trip b{font-weight:700;line-height:1.25;min-width:0}
.trip b small{display:block;font-weight:500;font-size:.8rem;color:var(--mute)}
.tbar{height:8px;background:var(--soft);border-radius:4px;overflow:hidden}
.tbar span{display:block;height:100%;background:var(--acc);border-radius:4px}
.trip em{font-style:normal;font-weight:800;text-align:right}
.tdesc{font-size:.9rem;color:var(--mute);margin:6px 0 8px}
@media (max-width:560px){.trip{grid-template-columns:1.8em 1fr 44px 1.8em}}
.tby{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}
.tby span{font-size:.85rem;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.tby button{font:600 .92rem Inter,sans-serif;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:7px 13px;cursor:pointer}
.tby button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.thint a{color:var(--acc)}
.twhy{margin:0 0 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:10px 14px}
.twhy summary{cursor:pointer;font-weight:700}
.twhy p,.twhy li{font-size:.95rem;line-height:1.5}
.twhy ul{padding-left:1.2em;margin:8px 0}
