html,body{margin:0;padding:0;overflow:hidden;background:#9d9d9d;height:100%}#app,#app canvas{display:block;width:100vw;height:100vh}#loading{position:fixed;left:50%;bottom:28px;transform:translate(-50%);font-family:SF Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.15em;color:#0f0f0fbf;background:#ffffff59;border:1px solid rgba(0,0,0,.15);padding:6px 14px;border-radius:3px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity .2s}#loading.hidden{opacity:0}:root{--hud-ink: #17191b;--hud-accent: #ff4d00;--hud-blur: 7px;--hud-bg-alpha: .55;--hud-paper: rgb(248 247 244 / var(--hud-bg-alpha))}.hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;font-family:SF Mono,Fira Code,ui-monospace,monospace;color:var(--hud-ink);z-index:5;transition:opacity .25s}.hud-corner{position:absolute;width:26px;height:26px;border:1px solid var(--hud-ink);opacity:.55}.hud-corner.tl{top:14px;left:14px;border-right:0;border-bottom:0}.hud-corner.tr{top:14px;right:14px;border-left:0;border-bottom:0}.hud-corner.bl{bottom:14px;left:14px;border-right:0;border-top:0}.hud-corner.br{bottom:14px;right:14px;border-left:0;border-top:0}.hud-block{position:absolute;font-size:10px;letter-spacing:.14em;line-height:1.75;text-transform:uppercase;color:var(--hud-ink);background:var(--hud-paper);border:1px solid rgba(128,128,128,.3);-webkit-backdrop-filter:blur(var(--hud-blur));backdrop-filter:blur(var(--hud-blur));padding:12px 16px;min-width:190px}.hud-tl{top:34px;left:34px}.hud-brt{bottom:78px;left:34px;min-width:160px}.hud-kicker{display:flex;align-items:center;gap:7px;font-weight:700;letter-spacing:.3em;margin-bottom:4px}.hud-kicker .sq,.hud-panel-head .sq{width:7px;height:7px;background:var(--hud-accent);display:inline-block}.hud-dim{opacity:.6}.hud-strong{font-weight:700;letter-spacing:.22em}.hud-rule{height:1px;background:var(--hud-ink);opacity:.35;margin:6px 0}.hud-row{display:flex;justify-content:space-between;gap:18px}.hud-row span{opacity:.55}.hud-row b{font-weight:600}.hud-row .accent{color:var(--hud-accent)}.hud-reticle{position:absolute;top:0;left:0;width:0;height:0;opacity:1;transition:opacity .2s;will-change:transform}.hud-reticle .rb{position:absolute;width:16px;height:16px;border:1.5px solid var(--hud-ink);opacity:.9}.hud-reticle .rb.tl{left:-46px;top:-46px;border-right:0;border-bottom:0}.hud-reticle .rb.tr{right:-46px;top:-46px;border-left:0;border-bottom:0}.hud-reticle .rb.bl{left:-46px;bottom:-46px;border-right:0;border-top:0}.hud-reticle .rb.br{right:-46px;bottom:-46px;border-left:0;border-top:0}.hud-ret-label{position:absolute;left:58px;top:0;transform:translateY(-50%);white-space:nowrap;font-size:10px;letter-spacing:.14em;pointer-events:auto;cursor:pointer;padding:4px 8px;background:var(--hud-paper);border-left:2px solid var(--hud-accent);-webkit-backdrop-filter:blur(var(--hud-blur));backdrop-filter:blur(var(--hud-blur))}.hud-ret-label:hover{background:#fffc}.hud-ret-name{font-weight:700}.hud-ret-name i{color:var(--hud-accent);font-style:normal}.hud-ret-sub{opacity:.6;font-size:9px}.hud-poi{position:absolute;top:0;left:0;width:0;height:0;pointer-events:auto;cursor:pointer;transition:opacity .2s;will-change:transform}.hud-poi .tag{position:absolute;left:12px;top:0;transform:translateY(-50%);font-size:9.5px;letter-spacing:.14em;white-space:nowrap;padding:3px 7px;background:var(--hud-paper);border:1px solid rgba(20,22,24,.35);-webkit-backdrop-filter:blur(var(--hud-blur));backdrop-filter:blur(var(--hud-blur))}.hud-poi .tag b{font-weight:700}.hud-poi .tag i{font-style:normal;opacity:.6;display:none;margin-left:6px}.hud-poi:hover .tag i,.hud-poi.active .tag i{display:inline}.hud-poi.active .tag{border-color:var(--hud-accent);box-shadow:inset 2px 0 0 var(--hud-accent)}.hud-panel{position:absolute;left:0;top:0;min-width:230px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:var(--hud-paper);border:1px solid rgba(20,22,24,.4);-webkit-backdrop-filter:blur(var(--hud-blur));backdrop-filter:blur(var(--hud-blur));padding:10px 14px;pointer-events:auto;line-height:1.8;will-change:transform}.hud-panel-head{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.25em;margin-bottom:5px}.hud-panel-head b{flex:1}.hud-x{all:unset;cursor:pointer;opacity:.6;padding:0 3px}.hud-x:hover{opacity:1;color:var(--hud-accent)}.altimeter{position:fixed;right:24px;bottom:20px;display:flex;align-items:baseline;gap:10px;font-family:var(--ce-font, "Bricolage Grotesque", system-ui, sans-serif);color:var(--ce-ink, #1c1e22);background:var(--ce-glass, rgba(252, 252, 253, .62));border:1px solid var(--ce-border, rgba(255, 255, 255, .55));padding:7px 16px;border-radius:999px;-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);box-shadow:var(--ce-shadow, 0 10px 40px rgba(20, 24, 35, .12));pointer-events:none;-webkit-user-select:none;user-select:none;z-index:30}.altimeter .alt-mode{font-size:9.5px;letter-spacing:.22em;color:var(--ce-muted, rgba(28, 30, 34, .55));font-weight:700}.altimeter .alt-value{font-family:var(--ce-mono, ui-monospace, monospace);font-size:13px;letter-spacing:.04em;min-width:74px;text-align:right;font-weight:600}.fui-msg{position:fixed;left:50%;top:112px;transform:translate(-50%);font-family:SF Mono,Fira Code,ui-monospace,monospace;font-size:12px;letter-spacing:.28em;color:var(--hud-ink);background:var(--hud-paper);border:1px solid var(--hud-accent);border-left:4px solid var(--hud-accent);padding:9px 18px;border-radius:3px;-webkit-backdrop-filter:blur(var(--hud-blur));backdrop-filter:blur(var(--hud-blur));pointer-events:none;-webkit-user-select:none;user-select:none;z-index:40;transition:opacity .35s,transform .35s}.fui-msg.hidden{opacity:0;transform:translate(-50%) translateY(-8px)}.whiteout{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;opacity:0;pointer-events:none;z-index:50;transition:opacity .46s ease}.whiteout.on{opacity:1}.gpx-tip{position:fixed;font-family:SF Mono,Fira Code,ui-monospace,monospace;font-size:10px;letter-spacing:.12em;color:var(--hud-ink);background:var(--hud-paper);border:1px solid var(--hud-accent);padding:4px 8px;border-radius:2px;pointer-events:none;white-space:nowrap;z-index:35;transition:opacity .12s}.gpx-tip.hidden{opacity:0}.gpx-profile{position:fixed;left:50%;bottom:18px;transform:translate(-50%);width:min(760px,62vw);font-family:SF Mono,Fira Code,ui-monospace,monospace;color:var(--hud-ink);background:var(--hud-paper);border:1px solid var(--hud-ink);border-radius:3px;-webkit-backdrop-filter:blur(var(--hud-blur));backdrop-filter:blur(var(--hud-blur));z-index:25;transition:opacity .3s}.gpx-profile.hidden{opacity:0;pointer-events:none}.gpx-profile-head{display:flex;align-items:center;gap:12px;padding:6px 10px 2px;font-size:9px;letter-spacing:.22em}.gpx-profile-head .gpx-name{color:var(--hud-accent);font-weight:600}.gpx-profile-head .gpx-stats{opacity:.7;flex:1}.gpx-profile-head .gpx-close{all:unset;cursor:pointer;font-size:11px;opacity:.6;padding:0 2px}.gpx-profile-head .gpx-close:hover{opacity:1;color:var(--hud-accent)}.gpx-profile canvas{display:block;width:100%;height:96px;cursor:crosshair}.peak-marker{position:fixed;pointer-events:none;z-index:26}.peak-marker .tag{pointer-events:auto;cursor:pointer;border-left:3px solid var(--hud-accent)}.peak-marker .tag b{display:block}.peak-marker .tag i{display:block;margin-left:0;color:var(--hud-accent);opacity:.9}.draggable-handle{cursor:grab;touch-action:none}.draggable-handle:active{cursor:grabbing}.altimeter,.hud-block.hud-tl,.hud-block.hud-brt{pointer-events:auto}.panel-caret{all:unset;cursor:pointer;margin-left:6px;font-size:10px;opacity:.6;padding:0 2px}.panel-caret:hover{opacity:1;color:var(--hud-accent)}.hud-block.collapsed{width:auto;min-width:150px}body.dark .hud-dim,body.dark .hud-row span,body.dark .gpx-profile-head .gpx-stats{opacity:.92;color:var(--hud-ink)}.hud-block.hud-tl{top:16px;left:16px;bottom:auto}.hud-block.hud-brt{right:300px;left:auto;bottom:16px}.altimeter{top:64px;bottom:auto;left:50%;right:auto;transform:translate(-50%)}:root{--panel-w: 250px}.hud-block.hud-tl,.hud-block.hud-brt{width:var(--panel-w);box-sizing:border-box}.hud-block.collapsed{width:var(--panel-w);min-width:0}
