:root{--bg:#0d0c0b;--panel:#171513;--panel2:#1f1c19;--line:#2e2a25;--ink:#e9e3d8;--mute:#a39a8c;--amber:#d9a441;--red:#a8322d;
--overnight:#d9a441;--tours:#6fa3c9;--open:#7fb069;--view-only:#b07fc9;--gone:#6b6560;--serif:'IM Fell English',Georgia,serif;--sans:Inter,system-ui,sans-serif}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 var(--sans)}
body{background:radial-gradient(1200px 600px at 50% -200px,#26201a 0,transparent 70%),var(--bg)}
a{color:var(--amber)}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15;margin:0}
.top{position:sticky;top:0;z-index:20;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 24px;background:rgba(13,12,11,.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.brand{display:flex;gap:12px;align-items:center}.sigil{font-size:26px;color:var(--amber)}.brand h1{font-size:28px;letter-spacing:.5px}.brand p{margin:0;color:var(--mute);font-size:12px;text-transform:uppercase;letter-spacing:2px}
nav button,.back,.ghost,.mapctl button,.chip{background:transparent;color:var(--ink);border:1px solid var(--line);padding:7px 14px;border-radius:999px;font:500 13px var(--sans);cursor:pointer}
nav button.on,.chip.on{background:var(--amber);color:#1a1409;border-color:var(--amber)}
nav{display:flex;gap:6px;flex-wrap:wrap}
main{max-width:1200px;margin:0 auto;padding:20px 24px 60px}
.view{display:none}.view.on{display:block}
.intro{margin:10px 0 22px}.intro h2{font-size:38px}.intro p{color:var(--mute);max-width:760px}
.method{font-size:13px}
.maphead{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-end;margin:6px 0 10px}.maphead h2{font-size:34px}.maphead p{margin:4px 0 0;color:var(--mute)}
.mapctl{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--mute)}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.a-overnight{background:var(--overnight)}.a-tours{background:var(--tours)}.a-open{background:var(--open)}.a-view-only{background:var(--view-only)}.a-gone{background:var(--gone)}
.mapwrap{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
#map{display:block;width:100%;height:auto;touch-action:manipulation}
.state{fill:#2a2521;stroke:#0d0c0b;stroke-width:.8;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .15s}.state:hover{fill:#4a3c2c}.state.sel{fill:#3a3029}
.state.t30{fill:#3b2f25}.state.t20{fill:#30271f}.state.t10{fill:#26211c}
.stlabel{fill:#cfc4b3;font:600 10px var(--sans);pointer-events:none;text-anchor:middle;paint-order:stroke;stroke:#0d0c0b;stroke-width:2px}
.pin{stroke:#0d0c0b;stroke-width:.6;cursor:pointer}.pin:hover{stroke:#fff}
.pinlabel{fill:#e9e3d8;font:500 4px var(--sans);pointer-events:none;paint-order:stroke;stroke:#0d0c0b;stroke-width:.8px}
#tip{position:absolute;pointer-events:none;background:#000d;border:1px solid var(--line);padding:6px 10px;border-radius:8px;font-size:13px;max-width:260px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:18px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:transform .15s,border-color .15s}
.card:hover{transform:translateY(-2px);border-color:#4a3f33}
.thumb{aspect-ratio:16/10;background:#1b1815 center/cover no-repeat;position:relative;filter:grayscale(.35) contrast(1.05)}
.thumb.none{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1c1916,#2a241e)}.thumb.none span{font-family:var(--serif);font-size:44px;color:#4a4036}
.rank{position:absolute;left:10px;top:10px;background:#000c;color:var(--amber);font:600 13px var(--sans);padding:3px 9px;border-radius:999px}
.card .b{padding:12px 14px 14px}.card h3{font-size:21px}.card .loc{color:var(--mute);font-size:13px}.card .g{font-size:13px;margin-top:6px;color:#cbbfae}
.badge{display:inline-block;font:600 11px var(--sans);padding:2px 8px;border-radius:999px;color:#141210;margin-top:8px}
.badge.a-overnight{background:var(--overnight)}.badge.a-tours{background:var(--tours)}.badge.a-open{background:var(--open)}.badge.a-view-only{background:var(--view-only)}.badge.a-gone{background:var(--gone);color:#eee}
.feature .fitem{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:18px;cursor:pointer}
.feature .fitem .thumb{aspect-ratio:auto;min-height:260px}.feature .fitem .b{padding:22px 24px}.feature .num{font-family:var(--serif);font-size:54px;color:var(--amber);line-height:1}.feature h3{font-size:30px;margin:4px 0}
.stategrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.stbtn{background:var(--panel);border:1px solid var(--line);color:var(--ink);text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer;font:500 15px var(--sans)}.stbtn small{display:block;color:var(--mute);font-size:12px}.stbtn:hover{border-color:var(--amber)}
.filters{display:flex;gap:6px;flex-wrap:wrap}
#q{width:100%;max-width:560px;background:var(--panel);border:1px solid var(--line);color:var(--ink);padding:12px 16px;border-radius:10px;font:16px var(--sans);margin-top:10px}
.place{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px}
.place .hero{border-radius:14px;overflow:hidden;background:#1b1815}.place .hero img{width:100%;display:block;filter:grayscale(.25)}
.place .credit{font-size:11px;color:var(--mute);padding:6px 2px}
.place h2{font-size:44px}.place .loc{color:var(--mute)}.place .legend-text{font-family:var(--serif);font-size:20px;line-height:1.55;color:#efe7da}
.facts{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.facts dt{color:var(--mute);font-size:12px;text-transform:uppercase;letter-spacing:1.5px;margin-top:10px}.facts dt:first-child{margin-top:0}.facts dd{margin:2px 0 0}
.facts ul{margin:4px 0 0;padding-left:18px}.src a{word-break:break-all;font-size:12px}
.community{margin-top:34px;border-top:1px solid var(--line);padding-top:22px}.community h3{font-size:28px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:14px}
.gallery figure{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;cursor:zoom-in}.gallery figcaption{padding:8px 10px;font-size:13px}.gallery figcaption b{display:block;color:var(--mute);font-weight:500;font-size:12px}
.btn{background:var(--amber);color:#1a1409;border:0;padding:10px 18px;border-radius:999px;font:600 14px var(--sans);cursor:pointer}
dialog{background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-radius:14px;max-width:520px;width:calc(100% - 32px);padding:22px}
dialog::backdrop{background:#000a}dialog h3{font-size:28px}dialog label{display:block;margin:12px 0;font-size:13px;color:var(--mute)}
dialog input:not([type=checkbox]),dialog textarea{display:block;width:100%;margin-top:4px;background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:9px 11px;border-radius:8px;font:14px var(--sans)}
dialog .check{color:var(--ink)}.hp{position:absolute;left:-9999px}.row{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
dialog button[type=submit]{background:var(--amber);color:#1a1409;border:0;padding:9px 18px;border-radius:999px;font:600 14px var(--sans);cursor:pointer}
.small{font-size:12px;color:var(--mute)}
footer{border-top:1px solid var(--line);padding:22px 24px;color:var(--mute);font-size:12px;text-align:center}
@media (max-width:760px){.top{padding:10px 16px}.brand h1{font-size:22px}main{padding:14px 16px 40px}.intro h2,.maphead h2{font-size:28px}
.feature .fitem,.place{grid-template-columns:1fr}.feature .fitem .thumb{min-height:200px}.place h2{font-size:32px}.mapctl{align-items:flex-start}.legend{gap:8px}}

#map path{vector-effect:non-scaling-stroke}.zbtns{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px}.zbtns button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:#000b;color:var(--ink);font:600 18px var(--sans);cursor:pointer}
