:root{color-scheme:dark;--bg:#101b23;--panel:rgba(15,26,34,.94);--text:#eff5f6;--muted:#a4b6bf;--line:rgba(200,225,235,.15);--accent:#b7e98c;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#101b23;color:var(--text);font-size:16px}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:#23333e;border-radius:7px;padding:10px 14px;transition:background .15s}button:hover{background:#344c5b}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}a{color:var(--accent);text-underline-offset:3px}button.selected{background:var(--accent);color:#17271e;border-color:var(--accent)}[hidden]{display:none!important}#app,#scene{position:absolute;inset:0}#scene{outline:none;touch-action:none}#scene canvas{display:block;width:100%;height:100%}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 36px #07101938;border-radius:12px;backdrop-filter:blur(16px)}.title-panel{position:absolute;left:24px;top:24px;width:425px;padding:20px 23px;z-index:5}.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:650;color:var(--muted);display:flex;justify-content:space-between;gap:12px}.eyebrow span{color:var(--accent);letter-spacing:.08em}h1{font-size:38px;line-height:1.1;letter-spacing:-1.5px;font-weight:650;margin:9px 0 12px}.title-dot{color:var(--accent)}.title-bottom{font-size:12px;line-height:1.5;color:var(--muted);display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px}.text-button{border:0;background:none;color:var(--accent);font-size:12px;padding:0;border-radius:0}.text-button:hover{background:none;text-decoration:underline}.view-controls{position:absolute;right:24px;top:24px;z-index:6;display:flex;flex-direction:column;align-items:center;width:48px;padding:3px;gap:2px}.icon-button{height:41px;width:40px;font-size:26px;background:none;border:0;padding:0}.north-button{font-size:12px;display:flex;gap:3px;flex-direction:column;align-items:center;background:none;border:0;padding:8px 0;width:40px}.north-button span{color:var(--accent);font-size:17px;display:block;transform-origin:center;line-height:1}.north-button b{font-size:12px}.divider{height:1px;background:var(--line);width:26px;margin:3px 0}.mode-bar{position:absolute;bottom:92px;left:50%;transform:translateX(-50%);z-index:6;padding:5px;display:flex;gap:3px;white-space:nowrap}.mode-bar button{font-size:14px;background:none;border:0;padding:11px 16px}.mode-bar button.selected{background:var(--accent)}.layers-panel{position:absolute;left:24px;top:193px;width:262px;z-index:5;padding:0 18px 13px}.panel-heading{border:0;border-radius:0;background:none!important;padding:15px 0;width:100%;display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:650}.panel-heading span{font-size:22px;font-weight:400;color:var(--muted)}.switch-row{display:flex;position:relative;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line);font-size:14px;cursor:pointer}.switch-row small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.switch-row input{position:absolute;right:0;width:36px;height:24px;opacity:0;cursor:pointer}.switch{display:block;flex-shrink:0;width:33px;height:19px;background:#42545f;border-radius:12px;pointer-events:none}.switch:before{content:"";display:block;width:13px;height:13px;margin:3px;border-radius:50%;background:#c6d4db;transition:transform .15s}.switch-row input:checked+.switch{background:var(--accent)}.switch-row input:checked+.switch:before{transform:translateX(14px);background:#243827}.switch-row input:focus-visible+.switch{outline:2px solid white;outline-offset:4px}.map-style{display:flex;gap:3px;border:1px solid var(--line);border-radius:8px;padding:3px;margin:7px 0 19px}.map-style button{width:50%;font-size:13px;padding:7px;border:0;background:none}.map-style button.selected{color:var(--accent);background:#324538}.range-label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.range-label output{font-size:12px;color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent);margin:10px 0 0;height:22px;cursor:pointer}.small-note{font-size:12px;line-height:1.5;color:var(--muted);margin:10px 0 0}.loading{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);padding:23px 27px;z-index:9;display:flex;align-items:center;gap:18px;max-width:90vw;min-width:310px}.loading strong{font-size:16px;font-weight:550}.loading p{color:var(--muted);font-size:13px;margin:6px 0 0}.spinner{width:25px;height:25px;border-radius:50%;border:2px solid #53626a;border-top-color:var(--accent);animation:spin 1s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.error{position:absolute;z-index:30;left:50%;top:50%;transform:translate(-50%,-50%);padding:30px;width:min(460px,90vw)}.error h2{font-size:23px}.error p{line-height:1.6;color:var(--muted)}.error a{display:block;margin-top:18px}footer{pointer-events:none;position:absolute;bottom:14px;left:24px;right:24px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;z-index:5}.help{font-size:12px;color:var(--muted);padding:9px 13px;max-width:45%}.map-credit{font-size:11px;line-height:1.5;text-align:right;color:#d0d9dc;background:#101b23ba;padding:6px 10px;border-radius:7px;max-width:52%;pointer-events:auto}.map-credit span,.map-credit a{display:inline-block;margin-left:10px;color:inherit}.map-credit #imageryStatus{color:var(--accent)}#coordinateReadout{font-variant-numeric:tabular-nums}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.place-label{position:absolute;left:0;top:0;transform:translate(-50%,-100%);font-size:12px;max-width:180px;white-space:normal;text-align:center;color:#f2f7f8;text-shadow:0 1px 3px #000;background:#142730d9;border:1px solid #ffffff40;box-shadow:0 2px 10px #0004;border-radius:5px;padding:5px 8px;pointer-events:auto;line-height:1.2;font-weight:550}.place-label:after{content:"";position:absolute;height:8px;width:1px;background:#d0e5e8;bottom:-9px;left:50%}.place-label:hover{background:#425b45}.feature-panel{position:absolute;right:85px;top:24px;width:285px;padding:21px;z-index:7}.feature-panel h2{font-size:22px;line-height:1.25;letter-spacing:-.5px;margin:11px 0 17px;padding-right:15px}.close-button{position:absolute;right:12px;top:10px;border:0;background:none;font-size:25px;padding:3px 8px;color:var(--muted)}dl{font-size:13px;line-height:1.5}dt{color:var(--muted);margin-top:10px}dd{margin:2px 0;color:var(--text);font-variant-numeric:tabular-nums}.feature-panel a{font-size:12px;display:inline-block;margin-top:12px}.feature-panel .eyebrow{font-size:11px}.walk-controls{position:absolute;inset:0;pointer-events:none;z-index:6}.walk-pad{position:absolute;left:24px;bottom:100px;display:grid;grid-template-columns:repeat(3,48px);gap:4px;padding:6px;pointer-events:auto}.walk-pad button{height:45px;padding:0;font-size:24px;touch-action:none;user-select:none}.walk-pad button:first-child{grid-column:2}.walk-pad button:nth-child(2){grid-column:1}.walk-hint{position:absolute;bottom:164px;left:50%;transform:translateX(-50%);padding:9px 14px;font-size:13px;color:var(--muted);white-space:nowrap}dialog{background:#14232d;color:var(--text);border:1px solid #476071;border-radius:16px;max-width:570px;width:calc(100% - 32px);max-height:85dvh;padding:32px;box-shadow:0 30px 120px #0008}dialog::backdrop{background:#02090db0;backdrop-filter:blur(7px)}dialog h2{font-size:34px;letter-spacing:-1px;line-height:1.15;margin:15px 0 23px}dialog h3{font-size:16px;margin:22px 0 7px}dialog p{font-size:14px;line-height:1.7;color:#c4d2da;margin:8px 0}dialog .dialog-note{padding:14px;border:1px solid var(--line);border-radius:8px;margin-top:24px}.primary-button{background:var(--accent);color:#162719;font-weight:600;margin-top:18px}.source-meta{font-size:12px!important;color:var(--muted)!important}
@media(min-width:1500px){.title-panel{left:32px;top:32px}.layers-panel{left:32px;top:201px}.mode-bar{bottom:70px}.view-controls{top:32px;right:32px}}
@media(max-width:760px){.title-panel{left:12px;right:71px;top:max(12px,env(safe-area-inset-top));width:auto;padding:14px 16px}.eyebrow{font-size:10px;gap:8px}h1{font-size:29px;margin:8px 0;letter-spacing:-1px}.title-bottom{font-size:11px}.title-bottom #extent{display:none}.text-button{font-size:12px}.view-controls{right:12px;top:max(12px,env(safe-area-inset-top));width:45px}.layers-panel{left:12px;top:139px;width:222px;padding:0 14px 10px}.panel-heading{padding:10px 0;font-size:14px}.switch-row{padding:10px 0}.mode-bar{bottom:93px;max-width:calc(100% - 24px)}.mode-bar button{padding:11px 12px;font-size:13px}.help{display:none}footer{bottom:max(10px,env(safe-area-inset-bottom));left:12px;right:12px}.map-credit{max-width:100%;width:100%;font-size:10px;line-height:1.6;text-align:center}.map-credit span,.map-credit a{margin-left:5px;margin-right:3px}#coordinateReadout{display:none}.feature-panel{left:12px;right:12px;top:auto;bottom:151px;width:auto;padding:17px 20px}.feature-panel h2{margin:10px 0;font-size:20px}.feature-panel dl{display:grid;grid-template-columns:1fr 1.3fr;column-gap:12px;margin:4px 0}.feature-panel dt,.feature-panel dd{margin-top:6px}.feature-panel a{margin-top:8px}.walk-pad{left:12px;bottom:150px;grid-template-columns:repeat(3,44px)}.walk-hint{bottom:216px;left:auto;right:12px;transform:none;font-size:12px;max-width:145px;text-align:center;white-space:normal}.place-label{font-size:11px;max-width:125px;padding:4px 6px}dialog{padding:27px 23px}dialog h2{font-size:30px}}
@media(max-height:590px){.layers-panel{top:145px;max-height:calc(100dvh - 240px);overflow:auto}.title-panel{padding:12px 18px}.title-panel h1{font-size:30px}.mode-bar{bottom:72px}.feature-panel{max-height:65dvh;overflow:auto}}
.map-style button{width:33.333%;padding:8px 3px;font-size:12px}.map-style{margin-bottom:9px}.quality-button{width:100%;font-size:12px;color:var(--muted);padding:7px;margin-bottom:16px;background:none}.quality-button:disabled{opacity:.6;cursor:default}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.spinner{animation:none}}
