:root{--ink: #0c1410;--panel: rgba(10, 18, 14, .88);--line: rgba(214, 228, 214, .14);--paper: #e8efe6;--muted: #93a796;--accent: #ffb000;--accent-2: #6fd19a;--mono: "JetBrains Mono", ui-monospace, monospace;--display: "Fraunces", serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:13px}#scene{position:absolute;inset:0;display:block;touch-action:none}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}#loader{position:absolute;inset:0;z-index:50;display:grid;place-items:center;background:radial-gradient(120% 90% at 50% 110%,#14241a 0%,var(--ink) 60%);transition:opacity .8s ease}#loader.done{opacity:0;pointer-events:none}.loader-inner{text-align:center;padding:0 24px;max-width:480px}.loader-kicker{letter-spacing:.35em;font-size:10px;color:var(--muted)}#loader h1,#panel h1{font-family:var(--display);font-weight:300;letter-spacing:.08em}#loader h1{font-size:clamp(48px,12vw,96px);line-height:1.05;margin:8px 0 4px;color:var(--paper)}.loader-sub{color:var(--accent);font-size:11px;letter-spacing:.12em;margin-bottom:32px}.loader-bar{height:2px;background:var(--line);border-radius:1px;overflow:hidden;margin-bottom:12px}#loader-fill{height:100%;width:0%;background:var(--accent);transition:width .2s ease}#loader-status{color:var(--muted);font-size:11px}#panel-toggle{position:absolute;z-index:40;top:14px;left:14px;width:40px;height:40px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--paper);font-size:16px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#panel{position:absolute;z-index:30;top:0;left:0;bottom:0;width:min(320px,86vw);padding:70px 22px 18px;background:var(--panel);border-right:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow-y:auto;transform:translate(-100%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;gap:22px}#panel.open{transform:translate(0)}#panel .kicker{letter-spacing:.3em;font-size:9px;color:var(--muted)}#panel h1{font-size:42px;margin:4px 0 0}#panel .sub{color:var(--accent);font-size:11px;letter-spacing:.1em}#panel h2{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}.stats div{background:#0c1410b3;padding:10px 8px;text-align:center}.stats span{display:block;font-size:13px;font-weight:700;color:var(--paper)}.stats label{font-size:9px;color:var(--muted);letter-spacing:.1em}#peak-list{list-style:none}#peak-list li{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 10px;margin:0 -10px;border-radius:6px;cursor:pointer;transition:background .15s}#peak-list li:hover{background:#ffb00014}#peak-list .pname{color:var(--paper)}#peak-list .pmassif{display:block;font-size:10px;color:var(--muted)}#peak-list .pelev{color:var(--accent);font-weight:700;white-space:nowrap}.exag{display:flex;gap:6px}.exag button{flex:1;padding:8px 4px;font-family:var(--mono);font-size:11px;background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:6px;cursor:pointer}.exag button.active{border-color:var(--accent);color:var(--accent)}.help p{color:var(--muted);line-height:1.7;font-size:11px}.help b{color:var(--paper)}#panel footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);font-size:10px;line-height:1.6;color:var(--muted)}#panel footer a{color:var(--accent-2)}#hud{position:absolute;z-index:20;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:18px;padding:8px 16px;background:var(--panel);border:1px solid var(--line);border-radius:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:11px;white-space:nowrap}#hud-elev{color:var(--accent);font-weight:700}#compass{position:absolute;z-index:20;top:14px;right:14px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center}#compass-needle{font-size:12px;font-weight:700;color:var(--accent);transition:transform .05s linear}#compass-needle:before{content:"▲";display:block;text-align:center;font-size:9px;line-height:.6;color:var(--paper)}.marker{pointer-events:auto;cursor:pointer;user-select:none;-webkit-user-select:none}.marker-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #ffb00040;vertical-align:middle;margin-right:7px}.marker-text b{font-family:var(--mono);font-size:11px;font-weight:700;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.9)}.marker-text small{display:block;font-size:9px;color:#ffffffbf;text-shadow:0 1px 3px rgba(0,0,0,.9);margin-left:14px}.marker-place .marker-text small{margin-left:0;color:#bee1ffd9;font-style:italic}.marker-trailhead .marker-text small{color:#ffdcaad9}#game{position:absolute;inset:0;z-index:60;pointer-events:none}#game .gscreen{position:absolute;inset:0;display:grid;place-items:center;background:#060c09b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;overflow-y:auto;padding:24px 12px}.gcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px 26px;max-width:460px;width:100%;margin:auto}.gcard.wide{max-width:720px}.gcard h1{font-family:var(--display);font-weight:300;font-size:clamp(40px,9vw,64px);line-height:1.02;margin:8px 0 10px}.gcard h2{font-family:var(--display);font-weight:500;font-size:26px;margin:6px 0 12px;letter-spacing:.02em;text-transform:none;color:var(--paper)}.gcard .gsub{color:var(--muted);font-size:12px;line-height:1.7;margin-bottom:18px}.gactions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.gbtn{font-family:var(--mono);font-size:12px;padding:11px 18px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--paper);cursor:pointer}.gbtn.primary{background:var(--accent);border-color:var(--accent);color:#1a1206;font-weight:700}.gbtn:disabled{opacity:.35;cursor:not-allowed}.gbtn.small{padding:7px 12px;font-size:10px}.goalgrid{display:grid;grid-template-columns:1fr;gap:10px}.goal,.opt{text-align:left;font-family:var(--mono);background:#ffffff08;border:1px solid var(--line);border-radius:10px;padding:14px 16px;color:var(--paper);cursor:pointer;display:block;width:100%}.goal:hover,.opt:hover{border-color:var(--accent)}.goal b{font-size:13px}.goal .gdays{display:block;color:var(--accent);font-size:10px;margin:4px 0}.goal .gblurb,.goal .gop{display:block;color:var(--muted);font-size:10px;line-height:1.6}.goal .gop{margin-top:6px;font-style:italic}.goal .gprice{display:block;margin-top:8px;color:var(--accent-2);font-size:11px;font-weight:700}.optlist{display:grid;gap:8px}.opt b{display:block;font-size:12px;margin-bottom:3px}.opt span{color:var(--muted);font-size:10px;line-height:1.6}.gearlist{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gear{position:relative;display:block;border:1px solid var(--line);border-radius:10px;padding:10px 12px 10px 34px;cursor:pointer;background:#ffffff05}.gear.sel{border-color:var(--accent);background:#ffb00012}.gear input{position:absolute;left:12px;top:13px;accent-color:var(--accent)}.gear .gname{display:block;font-size:11px;color:var(--paper)}.gear .gmeta{display:block;font-size:10px;color:var(--muted);margin-top:2px}.gear .gnote{display:block;font-size:9px;color:var(--accent-2);margin-top:4px;line-height:1.5}.gauges{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:11px;color:var(--muted)}.gauges b{color:var(--paper)}.gauges .bad,.gauges .bad b{color:#ff6b57}.career{margin:18px 0 4px;text-align:left}.careergrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:10px 0}.careergrid div{background:#0c1410cc;padding:9px 4px;text-align:center}.careergrid span{display:block;font-size:13px;font-weight:700;color:var(--accent)}.careergrid label{font-size:8px;color:var(--muted);letter-spacing:.12em}.careerlog p{font-size:9px;color:var(--muted);margin-top:3px}.opt.live{border-color:var(--accent-2)}.opt.live b{color:var(--accent-2)}#trek-profile{position:absolute;left:12px;bottom:12px;border:1px solid var(--line);border-radius:8px}.certrow{display:flex;gap:8px;margin-bottom:12px}.certrow input{flex:1;font-family:var(--mono);font-size:12px;padding:9px 12px;background:#ffffff0a;border:1px solid var(--line);border-radius:8px;color:var(--paper)}.certrow input:focus{outline:none;border-color:var(--accent)}#cert-canvas{width:100%;height:auto;border:1px solid var(--line);border-radius:8px;display:block}#trek{position:absolute;inset:0;pointer-events:none}#trek>*{pointer-events:auto}.trek-top{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;gap:16px;align-items:baseline;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:12px;white-space:nowrap;max-width:94vw;overflow:hidden}#trek-day{color:var(--paper);font-weight:700;overflow:hidden;text-overflow:ellipsis}#trek-weather{color:var(--accent-2)}#trek-clock{color:var(--accent);font-weight:700}.trek-stats{position:absolute;right:12px;top:70px;width:168px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.trek-stats .stat{margin-bottom:8px}.trek-stats label{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.trek-stats .bar{height:5px;background:#ffffff14;border-radius:3px;overflow:hidden;margin-top:3px}.trek-stats .bar div{height:100%;width:50%;background:var(--accent-2);border-radius:3px;transition:width .4s}.trek-stats .bar div.warn{background:var(--accent)}.trek-stats .bar div.danger{background:#ff6b57}.stat-line{font-size:10px;color:var(--muted);margin-top:6px}.trek-bottom{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.trek-pace,.trek-speed{display:flex;gap:4px}.trek-pace button,.trek-speed button{font-family:var(--mono);font-size:10px;padding:7px 10px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}.trek-pace button.on,.trek-speed button.on{border-color:var(--accent);color:var(--accent)}#trek-journal{position:absolute;left:12px;bottom:92px;max-width:340px;font-size:10px;line-height:1.6;color:#e8efe6d9}#trek-journal p{background:#060c099e;border-left:2px solid var(--accent);border-radius:0 6px 6px 0;padding:5px 9px;margin-top:5px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#trek-journal span{color:var(--accent);margin-right:6px}#trek-modal .gcard.modal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:440px;box-shadow:0 24px 80px #0009}.marker-party .marker-text b{color:var(--accent)}body.game-mode .marker-peak,body.game-mode .marker-place{pointer-events:none}.scoregrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:14px 0}.scoregrid div{background:#0c1410cc;padding:14px 6px;text-align:center}.scoregrid span{display:block;font-size:16px;font-weight:700;color:var(--accent)}.scoregrid label{font-size:9px;color:var(--muted);letter-spacing:.12em}.result-notes p{color:var(--accent-2);font-size:11px;margin:4px 0}.journal-full{max-height:30vh;overflow-y:auto;margin-top:14px;padding:10px 12px;background:#ffffff08;border:1px solid var(--line);border-radius:8px;font-size:10px;line-height:1.7}.journal-full span{color:var(--accent);margin-right:6px}@media(max-width:700px){.gearlist{grid-template-columns:1fr}.scoregrid{grid-template-columns:repeat(2,1fr)}.trek-stats{width:132px;top:64px}#trek-journal{max-width:60vw}}@media(min-width:900px){#panel{transform:translate(0);padding-top:24px}#panel-toggle{display:none}#hud{left:auto;right:14px;transform:none;bottom:14px}#compass{top:auto;bottom:76px}}
