:root{--bg:#f6f7f9;--surface:#ffffff;--text:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--accent:#2563eb;--accent-soft:#dbeafe;--ok:#16a34a;--err:#dc2626;--radius:16px;--shadow-sm:0 1px 2px rgb(15 23 42/0.05);--shadow-lg:0 1px 2px rgb(15 23 42/0.05),0 12px 32px rgb(15 23 42/0.1)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:68rem;margin:0 auto;padding:0 1.5rem}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:rgb(255 255 255/.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.site-header .container{justify-content:space-between;height:3.75rem}.brand,.site-header .container{display:flex;align-items:center}.brand{gap:.6rem;font-weight:700;font-size:1.05rem}.brand-pin{color:var(--accent);display:inline-flex}.brand span:last-child{color:var(--text)}.chips{display:flex;gap:.5rem;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .75rem;font-size:.8rem;font-weight:600;border-radius:999px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);color:var(--text-muted)}.chip .dot{width:.5rem;height:.5rem;border-radius:999px;background:#94a3b8}.chip--ok .dot{background:var(--ok)}.chip--ok{color:#166534}.chip--err .dot{background:var(--err)}.chip--err{color:#991b1b}.hero{padding:3.5rem 0 1.5rem}.eyebrow{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:.25rem .7rem;border-radius:999px;margin-bottom:1rem}.hero h1{font-size:clamp(1.9rem,4vw,3rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;max-width:38rem}.hero p.sub{margin-top:1rem;color:var(--text-muted);font-size:1.05rem;max-width:42rem}.map-card{margin-top:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden}.map-container{width:100%;height:62vh;min-height:26rem}.map-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.25rem;font-size:.85rem;color:var(--text-muted);border-top:1px solid var(--border);flex-wrap:wrap}.section-title{margin:3rem 0 1rem;font-size:1.25rem;font-weight:700}.grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));padding-bottom:3rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-sm)}.card h3{font-size:.95rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.card p{margin-top:.5rem;font-size:.875rem;color:var(--text-muted)}.card .icon{width:2rem;height:2rem;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);font-size:1rem}.site-footer{border-top:1px solid var(--border);padding:1.5rem 0 2.5rem;color:var(--text-muted);font-size:.85rem}.poi-popup{font-size:13px;line-height:1.45}.poi-popup strong{font-size:14px}.poi-popup .poi-cat{color:#6b7280;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;margin:2px 0 4px}.poi-popup .poi-desc{margin:4px 0}.poi-popup .poi-row{margin:3px 0}.poi-popup .poi-row span{color:#6b7280}.poi-popup .poi-note{color:#6b7280;font-size:11.5px;margin:3px 0}.poi-popup .poi-link{display:inline-block;margin-top:5px;color:#1a73e8;text-decoration:none;font-weight:600}.poi-popup .poi-link:hover{text-decoration:underline}.locate-btn{border:1px solid #d1d5db;background:#fff;border-radius:999px;padding:2px 10px;font:inherit;font-size:12px;cursor:pointer;color:#374151}.locate-btn:hover:not(:disabled){background:#f3f4f6}.locate-btn:disabled{opacity:.6;cursor:wait}.user-marker{width:16px;height:16px;border-radius:50%;background:#1a73e8;border:3px solid #fff;box-shadow:0 0 0 2px rgba(26,115,232,.35),0 1px 4px rgba(0,0,0,.3)}