:root{color-scheme:dark;--bg:#0a222b;--panel:#102a33;--ink:#eef9f7;--muted:#b5cdcc;--line:#395862;--mint:#92ead7;--focus:#ffd080;font:15px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-width:280px;min-height:100%;background:var(--bg);color:var(--ink)}a{color:inherit}button,select{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:3px}[hidden]{display:none!important}
.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px clamp(12px,2.6vw,28px);background:#09202a;border-bottom:1px solid #33515c;position:relative;z-index:1001}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-weight:750;letter-spacing:.025em;min-width:0}.brand img{width:102px;height:42px;object-fit:contain}.brand span{font-size:14px;white-space:nowrap}
.top-actions{display:flex;gap:9px;align-items:center}.top-link,.top-actions button{display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border-radius:10px;text-decoration:none;font-weight:700;border:1px solid var(--line);color:var(--ink);background:#17343e;white-space:nowrap}
.top-link{background:#d3f6ec;color:#0e363a;border-color:#d3f6ec}.top-actions button span{font-weight:700;font-size:15px;margin-right:5px}
.top-link .label-short{display:none}.topbar .go3d-public-apps-launch{background:#17343e;color:#eef9f7;border-color:#52717b}
.stage{height:calc(100dvh - 68px);min-height:430px;position:relative;overflow:hidden;isolation:isolate}
#map{position:absolute;inset:0;z-index:0;background:#204957}
.park-panel{position:absolute;z-index:450;top:23px;left:23px;width:min(374px,calc(100% - 46px));background:#0d2934f5;border:1px solid #52717b;border-radius:18px;padding:22px;box-shadow:0 14px 44px #07172070;backdrop-filter:blur(12px)}
.hide-parks{float:right;background:#274953;color:#edf9f7;border:1px solid #64828a;border-radius:8px;min-height:36px;padding:4px 11px;font-size:12px;font-weight:700}.show-parks{position:absolute;top:18px;left:18px;z-index:450;min-height:44px;background:#d3f6ec;color:#0e363a;border:1px solid #d3f6ec;border-radius:10px;padding:9px 14px;font-weight:800}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--mint)}h1{font-size:clamp(30px,3.2vw,44px);line-height:1.02;letter-spacing:-.045em;margin:11px 0 10px}.intro{font-size:14px;color:var(--muted);margin:0 0 18px;line-height:1.5}
.park-panel label{display:block;font-size:12px;font-weight:800;color:#d6e9e7;margin-bottom:7px}.park-panel select{width:100%;min-height:48px;border:1px solid #67909a;background:#163b46;color:white;border-radius:10px;padding:10px 13px;font-size:16px}
.selection{font-size:12px;color:var(--mint);margin:10px 0 15px;min-height:18px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.actions a{min-height:48px;padding:12px 10px;display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;font-size:13px;font-weight:800;border-radius:10px;border:1px solid var(--mint)}
.actions a.primary{color:#0b3034;background:var(--mint)}.actions a.secondary{background:#173943;color:var(--ink)}.source-note{font-size:11px;color:#bed1d2;line-height:1.45;margin:17px 0 0}
.map-controls{position:absolute;right:18px;top:18px;z-index:450}.map-options{display:flex;gap:6px}.map-controls button{background:#123540;color:#edf7f4;border:1px solid #65858c;border-radius:9px;min-height:44px;padding:9px 13px;font-size:13px;font-weight:750}.map-controls .map-options-toggle{display:none}
.map-controls select{background:#123540;color:#edf7f4;border:1px solid #65858c;border-radius:9px;min-height:44px;padding:9px 8px;font-size:13px;font-weight:750;max-width:105px;cursor:pointer}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.attribution{position:absolute;bottom:7px;right:8px;z-index:460;background:#102c35cc;color:#d3e4e2;border-radius:7px;padding:4px 8px;font-size:10px;pointer-events:none}
.leaflet-container{background:#204957;font:13px/1.35 system-ui,sans-serif}.leaflet-control-attribution{font-size:10px!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#0e2b34;color:#e9faf6}.leaflet-popup-content{font:13px/1.4 system-ui,sans-serif;min-width:180px}.leaflet-popup-content strong{display:block;font-size:15px;margin:0 0 6px}.leaflet-popup-content p{color:#c6d6d5;margin:0 0 10px}.leaflet-popup-content a{background:#a1f3dc;color:#12353b;border-radius:7px;padding:10px 12px;display:inline-flex;min-height:44px;text-decoration:none;font-weight:800}.leaflet-container a.leaflet-popup-close-button{color:white!important;font-size:24px!important;width:40px!important;height:40px!important;line-height:35px!important}
.park-pin{display:block;width:17px;height:17px;background:#a0eadd;border:3px solid #0d4a56;border-radius:50%;box-shadow:0 0 0 2px #ecf8f1c9,0 2px 9px #0008}.park-pin.active{width:23px;height:23px;background:#ffca73;border-color:#142d37;box-shadow:0 0 0 4px #ffdf9d7a,0 2px 11px #0008}
.fallback{position:absolute;right:20px;bottom:20px;z-index:500;max-width:340px;padding:20px;background:#133944;border:1px solid #7aa1a3;border-radius:12px}.fallback p{font-size:13px}.fallback a{color:var(--mint)}
.tooltip{position:fixed;z-index:2000;max-width:270px;padding:9px 12px;border-radius:8px;background:#eaf8f4;color:#12323a;box-shadow:0 5px 20px #0006;font-size:12px;pointer-events:none}
dialog{color:var(--ink);background:#102c36;border:1px solid #62858b;border-radius:17px;padding:22px;width:min(520px,calc(100% - 26px));max-height:calc(100dvh - 36px);overflow:auto;box-shadow:0 24px 80px #0009}dialog::backdrop{background:#061820b0;backdrop-filter:blur(4px)}
.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-top h2{font-size:23px;margin:0}.dialog-top button{min-width:44px;min-height:44px;background:#254852;color:white;border:1px solid #66898e;border-radius:10px;font-size:24px}dialog dl{margin:13px 0}dialog dt{font-weight:800;margin-top:16px}dialog dd{margin:4px 0;color:var(--muted);font-size:14px}dialog p{font-size:13px;color:var(--muted)}
.noscript{position:absolute;bottom:0;left:0;padding:12px;background:var(--panel);z-index:1000}
.theme-label{display:block;margin-top:8px;font-size:13px;font-weight:800}.theme-label+select{min-height:44px;padding:8px 12px;margin:7px 0 12px;border-radius:9px;border:1px solid #7597a0;background:#1b414c;color:var(--ink)}
:root[data-theme=light]{color-scheme:light;--bg:#e6f1f1;--panel:#f7fbfa;--ink:#15343d;--muted:#355c63;--line:#8aa4a8;--mint:#1d7167;--focus:#bd4a25}
:root[data-theme=light] .topbar{background:#0b2731;border-color:#40626b;color:#f1faf9}
:root[data-theme=light] .topbar .brand{color:#f1faf9}
:root[data-theme=light] .top-link{background:#136d66;color:white;border-color:#136d66}
:root[data-theme=light] .top-actions button{background:#1b424b;color:#f3fbf9;border-color:#64838a}
:root[data-theme=light] .map-controls button{background:#f0f8f7;color:#12333d;border-color:#789da1}
:root[data-theme=light] .map-controls select{background:#f0f8f7;color:#12333d;border-color:#789da1}
:root[data-theme=light] .park-panel{background:#f8fdfcf5;border-color:#9ab7ba;box-shadow:0 14px 44px #32505c45}
:root[data-theme=light] .eyebrow,:root[data-theme=light] .selection{color:#206b64}
:root[data-theme=light] .park-panel label{color:#24515a}
:root[data-theme=light] .park-panel select,:root[data-theme=light] .theme-label+select{background:white;color:#16343a;border-color:#7e9da5}
:root[data-theme=light] .actions a.primary{background:#136f64;color:white;border-color:#136f64}
:root[data-theme=light] .actions a.secondary{background:#e2f2ef;color:#15494a;border-color:#3d8880}
:root[data-theme=light] .source-note{color:#4d6165}
:root[data-theme=light] .hide-parks{background:#e5f2f0;color:#173a40;border-color:#8babaf}
:root[data-theme=light] .show-parks{background:#136f64;color:white;border-color:#136f64}
:root[data-theme=light] dialog{background:#f9fdfc;color:#17383d;border-color:#9eb8bb;box-shadow:0 24px 80px #25414a4a}
:root[data-theme=light] .dialog-top button{background:#e7f2f0;color:#20464e;border-color:#84a6a8}
:root[data-theme=light] .fallback{background:#eef8f7;color:#1e444c;border-color:#83abb0}
:root[data-theme=light] .fallback a{color:#1e756d}
@media(max-width:760px){.topbar{height:60px;padding:7px 10px;gap:6px}.brand{gap:6px}.brand img{width:86px;height:37px}.brand span{font-size:12px}.top-actions{gap:5px}.top-link,.top-actions button{font-size:12px;min-height:44px;padding:8px 9px}.stage{height:calc(100dvh - 60px);min-height:370px}.park-panel{top:auto;bottom:max(22px,env(safe-area-inset-bottom));left:10px;width:calc(100% - 20px);padding:14px 15px;border-radius:15px}.park-panel h1{font-size:25px;margin:5px 0}.intro{font-size:12px;margin:0 0 9px;max-width:40ch}.park-panel select{min-height:44px}.selection{margin:7px 0}.actions a{min-height:44px;font-size:12px;padding:9px 7px}.source-note{font-size:10px;margin:9px 0 0}.map-controls{right:9px;top:9px}.map-controls .map-options-toggle{display:inline-flex;align-items:center;gap:9px;min-width:68px;justify-content:center}.map-controls .map-options{display:none;position:absolute;right:0;top:calc(100% + 7px);width:min(284px,calc(100vw - 18px));padding:9px;gap:7px;align-items:stretch;flex-wrap:wrap;border-radius:12px;border:1px solid #75969b;background:#12313bf5;box-shadow:0 10px 28px #06181e70}.map-controls.open .map-options{display:flex}.map-controls .map-options select{max-width:none;flex:1 0 100%}.map-controls .map-options button{flex:1;min-width:0}.map-controls button{padding:8px 10px;font-size:12px}.attribution{bottom:2px;right:4px;font-size:9px}.show-parks{top:auto;bottom:max(18px,env(safe-area-inset-bottom));left:10px}}
@media(max-width:760px){:root[data-theme=light] .map-controls .map-options{background:#f7fdfcf7;border-color:#9cb5b7;box-shadow:0 9px 26px #304b5555}}
@media(max-width:600px){.topbar .brand span{display:none}.top-link .label-wide{display:none}.top-link .label-short{display:inline}.top-actions{margin-left:auto}.topbar .go3d-public-apps-launch{min-width:58px;padding:8px 10px}}
@media(max-width:360px){.brand span{display:none}.park-panel{padding:12px}.actions a{font-size:11px}.top-link{font-size:11px}}
@media(max-width:390px){.map-controls{gap:3px}.map-controls button{padding:7px 6px}.map-controls select{max-width:93px;padding:7px 4px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
