@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap";:root{font-family:DM Sans,sans-serif;color:var(--text);background:var(--page);font-synthesis:none;letter-spacing:0;font-size:14px;color-scheme:light;--page: #ffffff;--text: #263b36;--muted: #69776d;--soft: #a0a99f;--line: #e5ebe3;--panel: #ffffffed;--panel-solid: #ffffff;--hover: #f0f5ee;--accent: #478971;--accent-strong: #39815b;--accent-soft: #eef4e9;--pressed: #446b3f;--tooltip: #263b36;--tooltip-text: #ffffff;--warning: #9d7041;--backdrop: #fff9;--shadow: #193f2620}:root[data-theme=dark]{color-scheme:dark;--page: #000000;--text: #eaf7ef;--muted: #9db3aa;--soft: #697c74;--line: #173027;--panel: #07110fed;--panel-solid: #07110f;--hover: #0f241d;--accent: #71e0c0;--accent-strong: #a6f06a;--accent-soft: #123024;--pressed: #c4f06a;--tooltip: #eaf7ef;--tooltip-text: #06100d;--warning: #f1c567;--backdrop: #020403aa;--shadow: #00000080}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:var(--page)}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button svg{width:18px;height:18px;stroke-width:1.65;flex-shrink:0}[hidden]{display:none!important}#app{height:100dvh;min-height:480px;position:relative;background:var(--page)}.header{position:absolute;top:0;left:0;right:0;height:110px;padding:0 48px;display:flex;align-items:center;justify-content:space-between;z-index:3;pointer-events:none}.header>*{pointer-events:auto}.brand{color:var(--text);filter:drop-shadow(0 1px 2px var(--page));text-decoration:none;display:flex;gap:13px;align-items:center;font:800 34px Manrope,sans-serif;letter-spacing:0}.brand svg{width:30px;height:30px;stroke:var(--accent);stroke-width:1.5}.brand-dot{color:var(--accent-strong)}.tilt-controls button{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.tilt-controls button:hover{background:var(--hover);color:var(--accent-strong)}.tilt-controls button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent)}.tilt-controls [data-tip]:hover:after,.tilt-controls [data-tip]:focus-visible:after{top:calc(100% + 10px);right:0}.world{position:absolute;inset:0;overflow:hidden;touch-action:none}#globe{width:100%;height:100%;display:block;outline:none;touch-action:none;cursor:grab}#globe:active{cursor:grabbing}.tools{position:absolute;right:43px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;z-index:3;background:var(--panel);padding:7px;border:1px solid var(--line);border-radius:8px}.tools button{width:37px;height:37px;display:grid;place-items:center;border-radius:4px;position:relative}.tools button:hover{background:var(--hover);color:var(--accent-strong)}.tools button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-strong)}.tools button:disabled{opacity:.4;cursor:wait}#extreme-markers{position:absolute;inset:0;pointer-events:none}.extreme-marker{position:absolute;width:24px;height:24px;padding:0;transform:translate(-50%,-50%);pointer-events:auto;border-radius:50%;cursor:grab;--pin: #ef654c}.extreme-marker.lowest{--pin: #27c7e9}.marker-dot{display:block;width:10px;height:10px;margin:auto;border:2px solid #ffffff;border-radius:50%;background:var(--pin);box-shadow:0 1px 5px #0009}.extreme-marker:active{cursor:grabbing}.marker-label{position:absolute;top:50%;left:26px;transform:translateY(-50%);padding:6px 9px;border-left:2px solid var(--pin);background:var(--panel-solid);color:var(--text);border-radius:3px;text-align:left;white-space:nowrap;box-shadow:0 1px 5px var(--shadow);visibility:hidden;pointer-events:none}.extreme-marker:hover .marker-label,.extreme-marker:focus-visible .marker-label{visibility:visible}@media (hover: none){.extreme-marker:focus .marker-label{visibility:visible}}.marker-label small{display:block;font-size:9px;color:var(--muted)}.marker-label strong{display:block;font-size:12px;font-weight:600;margin-top:3px}.label-left .marker-label{left:auto;right:26px}.tool-divider{height:1px;background:var(--line);width:18px;margin:4px 0}[data-tip]:hover:after,[data-tip]:focus-visible:after{content:attr(data-tip);position:absolute;right:48px;white-space:nowrap;background:var(--tooltip);color:var(--tooltip-text);font-size:10px;padding:7px 10px;border-radius:4px;pointer-events:none}.footer{position:absolute;left:48px;right:48px;bottom:30px;display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:3;pointer-events:none}.footer>:not(.position){pointer-events:auto}.site-credits{position:absolute;left:50%;bottom:max(6px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:4px 10px;border-radius:4px;background:var(--panel);color:var(--muted);font-size:10px;white-space:nowrap;z-index:3}.site-credits a{text-decoration:none;font-weight:600}.site-credits a:hover{text-decoration:underline}.credit-studio{color:#d62828}.credit-coffee{color:#5a3a1e}:root[data-theme=dark] .credit-studio{color:#ff5c5c}:root[data-theme=dark] .credit-coffee{color:#b9835a}.credit-separator{color:var(--soft)}.position,.relief,.border-control{background:var(--panel);border-radius:4px;padding:8px}.position{min-width:215px;display:grid;grid-template-columns:6px 1fr;align-items:center;column-gap:10px;row-gap:6px;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.position small{grid-column:2;color:var(--soft);font-size:9px}.live-dot{width:5px;height:5px;border-radius:50%;background:var(--accent-strong)}.mode-switch{display:flex;padding:5px;border:1px solid var(--line);border-radius:8px;background:var(--panel-solid);gap:2px;height:47px}.mode-switch button{height:35px;padding:0 16px;display:flex;align-items:center;gap:8px;border-radius:4px;font-size:11px;white-space:nowrap;color:var(--muted)}.mode-switch button svg{width:15px;height:15px}.mode-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--pressed)}.mode-switch button:hover{color:var(--accent-strong)}.relief{display:flex;align-items:center;gap:11px;font-size:10px;color:var(--muted);min-width:215px;justify-content:flex-end}.relief svg{width:17px;height:17px}.relief input{width:78px;height:3px;accent-color:var(--accent-strong);cursor:pointer}.relief output{min-width:34px;font-variant-numeric:tabular-nums;color:var(--pressed)}#reset-relief{min-width:30px;min-height:28px;padding:4px 6px;border:1px solid var(--line);border-radius:4px;background:var(--panel-solid);color:var(--accent-strong);font-size:11px}#reset-relief:hover{background:var(--hover);border-color:var(--accent)}.loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:14px 20px;background:var(--panel);border-radius:6px;display:flex;gap:12px;align-items:center;z-index:4;white-space:nowrap;font-size:12px}.loader{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent-strong);border-radius:50%;animation:spin 1s linear infinite}.loading button{color:var(--accent-strong);text-decoration:underline}.tile-status{position:absolute;bottom:95px;left:50%;transform:translate(-50%);background:var(--panel-solid);font-size:11px;padding:8px 14px;border-radius:4px;color:var(--warning);z-index:4}.location-status{position:absolute;bottom:90px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;width:max-content;max-width:min(440px,calc(100vw - 32px));padding:10px 12px 10px 16px;border:1px solid var(--line);border-radius:8px;background:var(--panel-solid);box-shadow:0 4px 20px var(--shadow);color:var(--text);font-size:12px;line-height:1.6;z-index:5}.location-status button{flex-shrink:0;width:32px;height:32px;border-radius:4px;font-size:20px}.location-status button:hover{background:var(--hover)}#locate[aria-busy=true] svg{animation:spin 2s linear infinite}#app:has(.location-status:not([hidden])) .tile-status{bottom:190px}.map-options{position:absolute;left:48px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px;border:1px solid var(--line);border-radius:8px;background:var(--panel);z-index:3}.map-options .mode-switch{flex-direction:column;height:auto;padding:0;border:0;background:none;gap:5px}.map-options button,.map-options .border-control{position:relative;display:grid;place-items:center;width:37px;height:37px;padding:0;border-radius:4px;background:none}.map-options button svg{width:18px;height:18px}.map-options button:hover,.map-options .border-control:hover{background:var(--hover);color:var(--accent-strong)}.map-options [data-tip]:hover:after,.map-options [data-tip]:focus-visible:after,.map-options .border-control:focus-within:after{content:attr(data-tip);position:absolute;left:48px;right:auto;padding:7px 10px;border-radius:4px;background:var(--tooltip);color:var(--tooltip-text);font-size:10px;white-space:nowrap;pointer-events:none}.border-control{display:flex;gap:7px;align-items:center;font-size:11px;cursor:pointer;white-space:nowrap}.border-control input{accent-color:var(--accent-strong);width:14px;height:14px;margin:0}.border-control svg{width:16px;height:16px}.probe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;color:#fff;filter:drop-shadow(0 1px 2px #000)}.probe svg{width:18px;height:18px;stroke-width:1.5}.elevation-key{position:absolute;top:32px;right:144px;width:320px;padding:10px 12px;background:var(--panel);border-radius:4px;z-index:2;font-size:11px;font-variant-numeric:tabular-nums}.key-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.key-heading small{color:var(--muted);margin-left:4px}.palette-name{color:var(--muted);font-size:10px}.colour-ramp{height:9px;border:1px solid var(--line)}.scale-ticks{position:relative;height:23px;font-size:9px;color:var(--muted)}.scale-ticks span{position:absolute;top:6px;transform:translate(-50%);white-space:nowrap}.scale-ticks .first{transform:none}.scale-ticks .last{transform:translate(-100%)}.elevation-sample{display:flex;align-items:center;gap:6px;height:24px}.elevation-sample svg{width:13px;height:13px;color:var(--muted)}.elevation-sample output{margin-left:auto;font-size:14px;font-weight:600}.data-credit{display:block;margin-top:4px;font-size:9px;color:var(--muted);width:fit-content}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width: 1500px){.tools{right:5vw}.map-options{left:5vw}.elevation-key{right:calc(5vw + 96px)}.header{padding:0 5vw}.footer{left:5vw;right:5vw}}@media (max-width: 1000px){.header{padding:0 30px}.tools{right:25px}.map-options{left:30px}.elevation-key{right:126px;width:280px}.footer{left:30px;right:30px}.relief{min-width:155px;gap:8px}.relief input{width:55px}.position{min-width:170px}}@media (max-width: 700px){#app{min-height:440px}.header{height:84px;padding:0 23px}.brand{font-size:29px;gap:9px}.brand svg{width:25px;height:25px}.map-options{top:96px;bottom:auto;left:16px;padding:3px;gap:2px;transform:none}.map-options .mode-switch{gap:2px}.map-options button,.map-options .border-control{width:30px;height:30px}.map-options button svg{width:16px;height:16px}.map-options .tool-divider{margin:3px 0}.border-control{font-size:10px;gap:5px}.border-control svg{display:none}.elevation-key{top:84px;right:64px;width:min(280px,calc(100% - 128px));padding:8px 10px}.key-heading{margin-bottom:6px}.scale-ticks{height:19px;font-size:8px}.elevation-sample{height:20px}.data-credit{font-size:8px;margin-top:3px}.tools{right:16px;top:96px;bottom:auto;transform:none;padding:3px;gap:2px}.tools button{width:30px;height:30px}.tools button svg{width:16px;height:16px}.tools .tool-divider{margin:3px 0}.footer{left:23px;right:23px;bottom:calc(max(6px,env(safe-area-inset-bottom)) + 30px);display:grid;grid-template-columns:1fr auto;column-gap:8px;row-gap:8px}.site-credits{padding:4px 8px;font-size:9px}.position{min-width:0;padding:5px;font-size:8px;column-gap:7px;row-gap:5px}.position small{font-size:8px}.relief{min-width:0;padding:5px 2px;gap:5px;font-size:9px}.relief input{width:45px}.relief>svg{display:none}.relief output{min-width:26px}.loading{font-size:11px;padding:12px;max-width:90vw;white-space:normal}.tile-status{bottom:138px;width:max-content;max-width:85vw;text-align:center;font-size:9px}.position #position{white-space:nowrap}}@media (min-width: 701px) and (max-height: 700px){.tools{gap:3px}.tools button{width:32px;height:clamp(22px,calc((100dvh - 310px) / 9),32px)}.tools .tool-divider{margin:3px 0}}@media (max-width: 700px) and (min-height: 481px){.map-options{inset:80px auto auto 50%;transform:translate(-50%);flex-direction:row;padding:4px;gap:2px}.map-options .mode-switch{flex-direction:row;gap:2px}.map-options button,.map-options .border-control{width:40px;height:40px}.map-options button svg{width:18px;height:18px}.map-options .tool-divider,.tools .tool-divider{width:1px;height:22px;margin:0 3px;flex:none}.tools{top:auto;left:16px;right:16px;bottom:calc(max(6px,env(safe-area-inset-bottom)) + 76px);transform:none;flex-direction:row;justify-content:space-between;padding:4px;gap:2px}.tools button{flex:1 1 0;min-width:0;width:auto;height:40px}.tools button svg{width:18px;height:18px}.footer{bottom:calc(max(6px,env(safe-area-inset-bottom)) + 30px)}.elevation-key{top:138px;left:16px;right:16px;width:auto}.location-status,.tile-status{bottom:calc(max(6px,env(safe-area-inset-bottom)) + 160px)}#app:has(.location-status:not([hidden])) .tile-status{bottom:calc(max(6px,env(safe-area-inset-bottom)) + 250px)}}@media (hover: none){[data-tip]:hover:after,[data-tip]:focus-visible:after,.map-options [data-tip]:hover:after,.map-options [data-tip]:focus-visible:after,.map-options .border-control:focus-within:after{content:none}}@media (max-width: 700px) and (max-height: 480px){.tools,.map-options{top:84px}.tools button,.map-options button,.map-options .border-control{height:clamp(16px,calc((100dvh - 328px) / 9),30px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
