:root{--paper:#e6e1d4;--land:#fbf8f0;--frame:#b5ad9b;--park:#dfead3;--park-stroke:#bcd0ad;--golf:#e6eed6;--water:#a9cbe0;--water-stroke:#8db6d1;--road:#fff;--road-casing:#d8d0bf;--minor:#e7e1d3;--highway:#f6c26b;--highway-casing:#d79a3a;--navy:#1f2c5f;--orange:#ff6b1a;--ink:#1d2230;--muted:#6c7180;--label:#8f8676;color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--paper);min-height:100svh;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));place-items:center;margin:0;display:grid}.poster{width:min(100%,100svh - 150px,960px);min-width:280px}header{justify-content:space-between;align-items:baseline;gap:12px;margin:0 2px 10px;display:flex}h1{letter-spacing:.02em;color:var(--navy);margin:0;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:800}.coords{color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.04em;margin:0;font-size:.85rem}#map{aspect-ratio:1;background:var(--land);border:1px solid var(--frame);border-radius:10px;width:100%;overflow:hidden;box-shadow:0 1px 2px #0000000d,0 12px 32px -12px #1f2c5f40}.map{display:block}footer{color:var(--muted);margin:8px 2px 0;font-size:.75rem}footer a{color:inherit}.land{fill:var(--land)}.park{fill:var(--park);stroke:var(--park-stroke);stroke-width:.6px}.park.golf{fill:var(--golf)}.water{fill:var(--water);stroke:var(--water-stroke);stroke-width:.6px}.river,.stream{fill:none;stroke:var(--water);stroke-linecap:round;stroke-linejoin:round}.stream{stroke-opacity:.8}.roads path{fill:none;stroke-linecap:round;stroke-linejoin:round}.roads .minor{stroke:var(--minor)}.roads .collector{stroke:#ddd5c4}.roads .casing{stroke:var(--road-casing)}.roads .arterial,.roads .ramp{stroke:var(--road)}.roads .highway-casing{stroke:var(--highway-casing)}.roads .highway{stroke:var(--highway)}.labels text{paint-order:stroke;stroke-linejoin:round;pointer-events:none}.hood{fill:var(--label);letter-spacing:.16em;stroke:var(--land);stroke-width:3px;font-weight:700}.water-label{fill:#4f7f9f;letter-spacing:.15em;stroke:var(--water);stroke-width:2px;font-style:italic;font-weight:600}.road-label{fill:#6f6656;stroke:var(--land);stroke-width:3px;font-weight:600}.park-label{fill:#5f7f4e;stroke:var(--park);stroke-width:3px;font-style:italic;font-weight:600}.landmark{fill:var(--ink);stroke:var(--land);stroke-width:3px;font-weight:700}.landmark-dot{fill:var(--navy);stroke:#fff;stroke-width:1.5px}.scale-bg{fill:#fbf8f0d9}.scale-bar{fill:none;stroke:var(--ink)}.scale-text{fill:var(--ink);font-size:11px;font-weight:600}
