:root{--bg:#fff;--bg2:#fff;--sunk:#f5f5f5;--fg:#0b0b0a;--mut:#6b6b68;--line:#e6e6e3;--acc:#0b0b0a;--ok:#2f8f5b;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--shadow:0 1px 2px #0000000a,0 6px 18px #0000000d;--shadow-h:0 2px 4px #0000000d,0 14px 32px #00000017}
@media(prefers-color-scheme:dark){:root{--bg:#0b0b0a;--bg2:#141413;--sunk:#070706;--fg:#f2f2ef;--mut:#9a9a95;--line:#262624;--acc:#f2f2ef;--shadow:none;--shadow-h:0 2px 4px #0006,0 14px 32px #0008}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 var(--font);min-height:100dvh;display:flex;flex-direction:column;letter-spacing:-.005em}
a{color:inherit}main{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:0 16px 48px}
header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hrow{max-width:1120px;margin:0 auto;padding:0 16px;height:56px;display:flex;align-items:center;gap:20px}
.logo{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:18.9px;letter-spacing:-.03em;text-decoration:none;line-height:1}
.logo svg{display:block;fill:var(--fg)}.wm span{color:var(--mut);font-weight:600}
.sp{flex:1}nav{display:flex;gap:4px;align-items:center}
nav a{padding:6px 11px;border-radius:999px;color:var(--mut);text-decoration:none;font-weight:500;font-size:14px}
nav a:hover{background:var(--sunk);color:var(--fg)}nav a[aria-current]{color:var(--fg);font-weight:600}
nav a.feat:before{content:"★";color:#d99a1e;margin-right:5px;font-size:11px}
.eyebrow{font:500 11.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.hero{padding:44px 0 22px}.hero h1{font-size:clamp(2rem,5vw,3.1rem);line-height:1.04;letter-spacing:-.04em;margin:12px 0 14px;max-width:16ch;font-weight:700}
.hero p{color:var(--mut);max-width:60ch;margin:0 0 22px;font-size:1.05rem}
h1{font-size:2rem;line-height:1.12;letter-spacing:-.03em;margin:34px 0 8px}h2{font-size:1.1rem;letter-spacing:-.02em;margin:0}
.lead{color:var(--mut);margin:0 0 20px}small,.mut{color:var(--mut)}
.search{position:relative;max-width:640px}
#q{width:100%;height:48px;padding:0 16px;font:inherit;font-size:1rem;border:1px solid var(--line);border-radius:12px;background:var(--bg2);color:var(--fg);box-shadow:var(--shadow);outline:none}
#q:focus{border-color:var(--fg)}
#res{list-style:none;margin:6px 0 0;padding:0;position:absolute;left:0;right:0;z-index:5;background:var(--bg2);border-radius:12px;box-shadow:var(--shadow-h);overflow:hidden}
#res:empty{display:none}#res li{padding:10px 16px;border-bottom:1px solid var(--line)}#res li:last-child{border:0}#res a{text-decoration:none;font-weight:600}
.stats{display:flex;gap:28px;flex-wrap:wrap;margin:22px 0 0}.stats b{display:block;font-size:1.7rem;letter-spacing:-.03em;line-height:1.1}.stats span{font:500 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.sec{display:flex;align-items:baseline;justify-content:space-between;margin:38px 0 14px}
.mapbox{background:var(--sunk);border:1px solid var(--line);border-radius:16px;overflow:hidden;position:relative}
.mapbox svg{display:block;width:100%;height:auto}
.dot{fill:var(--fg);fill-opacity:.14;stroke:var(--fg);stroke-opacity:.55;stroke-width:1.2;transition:fill-opacity .15s}
.dotl{font:600 13px var(--font);fill:var(--fg);text-anchor:middle;pointer-events:none}.dotn{font:500 11px var(--mono);fill:var(--mut);text-anchor:middle;pointer-events:none}
.mapbox a:hover .dot{fill-opacity:.32}.inset{fill:none;stroke:var(--line);stroke-dasharray:4 4}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:170px;padding:16px;border-radius:14px;overflow:hidden;text-decoration:none;color:#fff;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;background:linear-gradient(155deg,oklch(52% .13 var(--h)),oklch(30% .09 calc(var(--h) + 40)))}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-h)}
.card:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 90% 0,#ffffff2e,transparent 60%)}
.card>*{position:relative}.card .eyebrow{color:#ffffffb8}.card h3{margin:6px 0 2px;font-size:1.3rem;letter-spacing:-.03em}.card .n{font-size:.9rem;color:#ffffffd9}
.list{list-style:none;margin:0;padding:0;background:var(--bg2);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.list li{display:flex;gap:10px;align-items:baseline;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}
.list li:last-child{border:0}.list li:hover{background:var(--sunk)}.list a{font-weight:600;text-decoration:none}.list small{text-align:right}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips a{padding:5px 12px;border:1px solid var(--line);border-radius:999px;text-decoration:none;background:var(--bg2)}
.chips small{margin-left:4px}.pill{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--sunk);border:1px solid var(--line);font:500 11px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--mut)}
.pill.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:0;background:var(--bg2);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.facts dt,.facts dd{margin:0;padding:11px 16px;border-bottom:1px solid var(--line)}.facts dt{font:500 11.5px/1.9 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);padding-right:28px}
.facts dt:last-of-type,.facts dd:last-of-type{border:0}
.crumb{margin:26px 0 0;font:500 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}.crumb a{text-decoration:none}
footer{border-top:1px solid var(--line);color:var(--mut);font-size:.85rem;padding:22px 16px;text-align:center}footer a{text-decoration:none}footer a:hover{color:var(--fg)}
.btn{display:inline-block;padding:9px 16px;border-radius:999px;background:var(--fg);color:var(--bg);text-decoration:none;font-weight:600}
.warn{padding:10px;border:1px solid #c33;border-radius:8px}
@media(max-width:620px){nav a:not(.keep){display:none}.hrow{gap:8px}.facts{grid-template-columns:1fr}.facts dt{padding-bottom:0;border:0}.dotl{font-size:17px}.dotn{display:none}}

.app{height:100dvh;overflow:hidden}.app main{max-width:none;padding:0;flex:1;min-height:0}
.shell{display:flex;height:100%}.side{width:400px;flex:none;overflow-y:auto;padding:22px 20px;border-right:1px solid var(--line);background:var(--bg)}
.stitle{font-size:2rem;letter-spacing:-.03em;margin:0 0 4px}.smeta{margin:0 0 10px;font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.sdesc{color:var(--mut);margin:0 0 16px}.side .search{margin-bottom:6px}.side #q{height:42px;border-radius:10px;box-shadow:none}
.side .sec{margin:22px 0 12px}.side .cards{grid-template-columns:1fr}.side .card{min-height:112px}
.foot{margin:22px 0 0;font-size:.8rem;color:var(--mut)}.foot a{text-decoration:none}.foot a:hover{color:var(--fg)}
@media(max-width:820px){.app{height:auto;overflow:visible}.shell{flex-direction:column-reverse;height:auto}.side{width:auto;border:0;overflow:visible}#map{flex:none;height:46vh}.side .cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}
.app .hrow{max-width:none}
/* explore */
.mapwrap{position:relative;flex:1;min-width:0}#map{position:absolute;inset:0;width:100%}
.fbar{position:absolute;z-index:5;top:14px;left:50%;transform:translateX(-50%);display:flex;gap:2px;padding:4px;background:var(--bg2);border-radius:999px;box-shadow:var(--shadow-h);max-width:calc(100% - 28px);overflow-x:auto}
.fbar select,.frow select{appearance:none;border:0;background:transparent;color:var(--fg);font:500 13.5px var(--font);padding:8px 26px 8px 14px;border-radius:999px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 16 16' fill='none' stroke='%236b6b68' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;max-width:150px}
.fbar select:hover{background-color:var(--sunk)}.fbar select.on{background-color:var(--fg);color:var(--bg)}.fbar option{color:#0b0b0a}
.strip{position:absolute;z-index:5;left:12px;right:12px;bottom:12px;display:flex;gap:10px;overflow-x:auto;padding:2px;pointer-events:none}.strip>*{pointer-events:auto}
.adcard{flex:none;display:flex;flex-direction:column;justify-content:center;padding:10px 18px;border-radius:14px;background:#0b0b0a;color:#fff;text-decoration:none;box-shadow:var(--shadow-h)}.adcard b{font-size:14px}.adcard span{font-size:12px;color:#ffffffb0}
.fcard{flex:none;display:flex;gap:10px;align-items:center;padding:8px 14px 8px 8px;border-radius:14px;background:var(--bg2);box-shadow:var(--shadow-h);text-decoration:none;max-width:290px;border:1.5px solid #d99a1e}.fcard b{display:block;font-size:14px}.fcard small{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.lg{flex:none;width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;font-style:normal}.lg img{width:70%;height:70%;object-fit:contain}.lg span{width:100%;height:100%;display:grid;place-items:center;font:600 14px var(--font);background:var(--sunk)}.lg.big{width:64px;height:64px}.lg.big span{font-size:22px}
.rows .row{display:flex;gap:12px;align-items:center;padding:10px 6px;text-decoration:none;border-bottom:1px solid var(--line)}.rows .row:hover{background:var(--sunk)}.rows .row b{display:block;font-size:14.5px}.rows .row small{display:block;font-size:12.5px}
.rows .row.feat{background:color-mix(in srgb,#d99a1e 9%,transparent)}.rows em{font:600 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;font-style:normal;color:#9a6a00;border:1px solid #d99a1e;border-radius:99px;padding:1px 7px;margin-left:4px}
.rows.boxed{background:var(--bg2);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.rows.boxed .row{padding:10px 16px}
.lnk,.more{border:0;background:none;color:var(--fg);font:500 13px var(--font);text-decoration:underline;cursor:pointer;padding:0}.more{display:block;margin:14px auto;padding:9px 18px;border:1px solid var(--line);border-radius:999px;text-decoration:none;background:var(--bg2)}
.frow{display:flex;flex-wrap:wrap;gap:8px}.frow input{flex:1 1 220px;height:42px;padding:0 14px;border:1px solid var(--line);border-radius:10px;font:inherit;background:var(--bg2);color:var(--fg)}.frow select{border:1px solid var(--line);background-color:var(--bg2);height:42px}
.cards.wide{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.maplibregl-ctrl-attrib{font-size:11px}
/* featured + forms */
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.duo{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;align-items:start}
.box{background:var(--bg2);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:20px}.box h3{margin:0 0 8px;font-size:1.05rem;letter-spacing:-.02em}.box p{margin:0 0 10px;color:var(--mut)}
.num{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--fg);color:var(--bg);font:600 12px var(--mono);margin-bottom:10px}
.formbox label{display:block;font:500 12px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--mut);margin:0 0 14px}
.formbox input,.formbox select{display:block;width:100%;margin-top:6px;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:15px var(--font);text-transform:none;letter-spacing:0}
.formbox input:focus,.formbox select:focus{outline:2px solid var(--fg);outline-offset:-1px}.hint{font-size:12.5px;color:var(--mut)}.hp{position:absolute!important;left:-9999px}
.pick{position:relative}.pick ul{list-style:none;margin:4px 0 0;padding:0;position:absolute;left:0;right:0;z-index:6;background:var(--bg2);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-h);overflow:hidden}.pick ul:empty{display:none}.pick li{padding:9px 12px;cursor:pointer;font:14px var(--font);text-transform:none;letter-spacing:0;color:var(--fg)}.pick li:hover{background:var(--sunk)}
.msg{min-height:1.4em;font-size:13.5px}.msg.err{color:#c33}.msg.okm{color:var(--ok)}
.mini{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0 0 12px}.mini dt{color:var(--mut);font:500 11.5px/1.8 var(--mono);text-transform:uppercase;letter-spacing:.05em}.mini dd{margin:0}
.shead{display:flex;align-items:center;gap:16px;margin:26px 0 8px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.btn.ghost{background:transparent;color:var(--fg);border:1px solid var(--line)}
@media(max-width:820px){.duo{grid-template-columns:1fr}.mapwrap{flex:none;height:62vh}.fbar{top:10px}.strip{display:none}}
.nl{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;margin:0 0 16px}.nl input:not(.hp){height:40px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--bg2);color:var(--fg);font:14px var(--font);min-width:240px}.nl .btn{padding:8px 16px;border:0;cursor:pointer;font:600 14px var(--font)}.nl .msg{flex-basis:100%;margin:0}
