.screen{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}[hidden]{display:none!important}.btn{font-family:var(--font-body);letter-spacing:.04em;color:var(--fg);box-shadow:inset 0 0 0 3px var(--bg-panel), inset 0 0 0 4px #f2e7d347, 0 4px 18px #00000059;cursor:pointer;background:linear-gradient(#1a2c48,#12203a);border:1px solid #f2e7d38c;border-radius:8px;padding:11px 22px;font-size:17px;transition:transform .12s,box-shadow .12s,background .12s}.btn:hover{box-shadow:inset 0 0 0 3px var(--bg-panel), inset 0 0 0 4px #f2e7d366, 0 6px 22px #e0973f2e;background:linear-gradient(#22375a,#16274a);transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(#e2603f,#c0432f);border-color:#f7d9b8;box-shadow:inset 0 0 0 3px #a83a28,inset 0 0 0 4px #f7d9b880,0 4px 20px #d64f3e59}.btn.primary:hover{background:linear-gradient(#ef6c48,#cf4c35)}.btn.slim{padding:7px 14px;font-size:14px}.btn.danger{color:#f2c4bb;border-color:#d64f3eb3}.btn:disabled{opacity:.45;cursor:default}.card{box-shadow:inset 0 0 0 4px var(--bg-panel), inset 0 0 0 5px #f2e7d338, 0 18px 60px #0000008c;text-align:center;background:linear-gradient(168deg,#13223af5,#0b1526f5);border:1px solid #f2e7d380;border-radius:14px;max-width:620px;padding:34px 42px}.landing{background:radial-gradient(at 50% 88%,#0b15262e,#0b1526b8 78%);flex-direction:column}.landing-inner{text-align:center;transform:translateY(-4vh)}.pretitle{letter-spacing:.42em;text-transform:uppercase;color:var(--accent-warm);text-shadow:0 1px 12px #e0973f73;margin-bottom:.4em;font-size:clamp(15px,1.3vw,21px)}.wordmark{font-family:var(--font-display);color:var(--fg);text-shadow:0 2px #783c2859,0 6px 34px #e0973f4d,0 0 90px #7fb6d940;margin:0;font-size:clamp(64px,9.5vw,158px);font-weight:400;line-height:.95;position:relative}.wordmark:after{content:"";background:linear-gradient(90deg, transparent, var(--accent) 18%, var(--accent) 82%, transparent);border-radius:3px;width:58%;height:5px;margin:.18em auto 0;display:block;box-shadow:0 2px 14px #d64f3e8c}.tagline{color:var(--fg-dim);margin-top:1.1em;font-size:clamp(16px,1.35vw,22px);font-style:italic;line-height:1.5}.landing-actions{justify-content:center;gap:16px;margin-top:2.2em;display:flex}.landing-actions .btn{font-size:clamp(16px,1.2vw,20px)}.landing-foot{letter-spacing:.12em;color:#a9b8cdbf;margin-top:2.4em;font-size:13px}.mapscreen{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#070c1699}.map-frame{width:min(1240px,92vw);height:min(760px,88vh);box-shadow:inset 0 0 0 5px var(--bg-panel), inset 0 0 0 6px #f2e7d333, 0 24px 80px #0009;background:radial-gradient(at 30% 20%,#7fb6d912,#0000 60%),linear-gradient(165deg,#101d33,#0b1526 70%);border:1px solid #f2e7d380;border-radius:16px;flex-direction:column;padding:26px 34px 34px;display:flex}.map-head{text-align:center;margin-bottom:8px}.map-title{font-family:var(--font-display);color:var(--fg);text-shadow:0 3px 22px #e0973f40;margin:0;font-size:clamp(30px,3vw,44px);font-weight:400}.map-sub{color:var(--fg-dim);margin-top:4px;font-size:15px;font-style:italic}.map-board{flex:1;position:relative}.map-route{width:100%;height:100%;position:absolute;inset:0}.map-route .route-line{stroke:#f2e7d373;stroke-width:.45px;stroke-dasharray:1.6 1.8;stroke-linecap:round}.map-route .terrain ellipse{fill:#7fb6d914;stroke:#7fb6d938;stroke-width:.25px}.map-route .terrain .river{stroke:#7fb6d933;stroke-width:.4px;stroke-dasharray:.2 1.1;stroke-linecap:round}.map-route .pines path{fill:#7fb6d929}.map-route .compass circle,.map-route .compass path{stroke:#e0973f80;stroke-width:.25px;fill:#e0973f59}.map-route .compass text{fill:#e0973fb3;font-size:2.6px;font-family:var(--font-body)}.map-route .cup path,.map-route .cup rect{fill:#e0973fbf;stroke:#e0973fe6;stroke-width:.2px}.map-stop{color:var(--fg);cursor:pointer;text-align:left;font-family:var(--font-body);background:0 0;border:none;align-items:flex-start;gap:10px;padding:6px;display:flex;position:absolute;transform:translate(-14px,-14px)}.stop-dot{width:26px;height:26px;font-family:var(--font-display);color:var(--fg);background:#223650;border:2px solid #f2e7d38c;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:3px;font-size:13px;transition:all .15s;display:inline-flex;box-shadow:0 0 0 4px #0b1526cc}.map-stop.next .stop-dot{background:var(--accent);border-color:#f7d9b8;animation:1.8s ease-in-out infinite pulse;box-shadow:0 0 0 4px #0b1526cc,0 0 18px #d64f3ecc}@keyframes pulse{50%{box-shadow:0 0 0 4px #0b1526cc,0 0 30px #d64f3e}}.map-stop.beaten .stop-dot{background:var(--ok);border-color:#f2e7d3cc}.stop-body{flex-direction:column;line-height:1.25;display:flex}.stop-num{letter-spacing:.2em;color:var(--accent-warm);font-size:11px}.stop-name{font-family:var(--font-display);text-shadow:0 2px 8px #000000b3;font-size:clamp(16px,1.4vw,21px)}.stop-skip{color:var(--fg-dim);font-size:13px;font-style:italic}.stop-state{letter-spacing:.18em;text-transform:uppercase;color:var(--ice);margin-top:2px;font-size:11px}.map-stop.beaten .stop-state{color:var(--ok)}.map-stop.next .stop-state{color:var(--accent)}.map-stop.locked{opacity:.38;cursor:default}.map-stop:not(.locked):hover .stop-name{color:var(--accent-warm)}.cardscreen,.resultscreen{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#070c168c}.card-place{letter-spacing:.26em;text-transform:uppercase;color:var(--accent-warm);font-size:13px}.card-name{font-family:var(--font-display);margin:.15em 0 .3em;font-size:clamp(34px,3.6vw,52px);font-weight:400}.card-intro{color:var(--fg-dim);margin:0 0 18px;font-size:16.5px;line-height:1.55}.card-skip{justify-content:center;align-items:center;gap:12px;display:flex}.skip-swatch{border:2px solid #f2e7d399;border-radius:50%;width:26px;height:26px;box-shadow:inset 0 -4px 8px #0006}.skip-id{text-align:left}.skip-name{font-family:var(--font-display);font-size:21px;display:block}.skip-title{color:var(--fg-dim);font-size:13.5px;font-style:italic;display:block}.skip-quote{color:var(--ice);margin:14px 0 16px;font-size:17px;font-style:italic}.card-facts{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:16px;display:flex}.fact{letter-spacing:.14em;text-transform:uppercase;color:var(--ice);border:1px solid #7fb6d973;border-radius:20px;padding:5px 12px;font-size:12.5px}.card-win{color:var(--fg);border-top:1px solid #f2e7d333;margin:0 0 20px;padding-top:14px;font-size:15.5px}.card-actions{justify-content:center;gap:14px;display:flex}.result-verdict{font-family:var(--font-display);font-size:clamp(34px,3.4vw,50px);line-height:1.1}.resultscreen.won .result-verdict{color:var(--accent-warm);text-shadow:0 4px 30px #e0973f80}.result-score{font-family:var(--font-display);color:var(--ice);margin:12px 0 4px;font-size:40px}.result-sub{letter-spacing:.08em;color:var(--accent-warm);margin:4px 0 0;font-size:16px}.result-quote{color:var(--fg-dim);margin:10px 0 22px;font-size:17px;font-style:italic}.hud{position:absolute;inset:0}.hud>*{pointer-events:none}.hud .handle-btn,.hud [data-test]{pointer-events:auto}.hud-top{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:14px;left:0;right:0}.hud-venue{letter-spacing:.22em;text-transform:uppercase;color:#f2e7d3cc;text-shadow:0 2px 8px #000c;font-size:13px}.scoreline{background:linear-gradient(#0f1b30e0,#0b1526e0);border:1px solid #f2e7d359;border-radius:10px;align-items:center;gap:18px;padding:8px 18px;display:flex;box-shadow:inset 0 0 0 3px #0b1526e6}.score-side{align-items:center;gap:10px;display:flex}.side-label{letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);font-size:13px}.side-total{font-family:var(--font-display);text-align:center;min-width:30px;font-size:30px}.score-side.you .side-total{color:var(--accent)}.score-side.them .side-total{color:var(--ice)}.pips{gap:4px;display:flex}.pip{background:var(--accent);border-radius:50%;width:11px;height:11px;box-shadow:inset 0 -2px 3px #0006}.pip.them-pip{background:var(--pipc,var(--ice));box-sizing:border-box;border:1px solid #f2e7d373}.pip.spent{background:0 0;border:1px solid #f2e7d34d}.score-ends{gap:4px;display:flex}.end-box{min-width:22px;height:26px;color:var(--fg-dim);border:1px solid #f2e7d340;border-radius:4px;justify-content:center;align-items:center;font-size:15px;display:inline-flex}.end-box b.y{color:var(--accent)}.end-box b.t{color:var(--ice)}.hud-bottom{background:linear-gradient(#0d182ad1,#09111fe0);border:1px solid #f2e7d34d;border-radius:14px;justify-content:center;align-items:flex-end;gap:30px;padding:12px 26px 10px;transition:opacity .25s,transform .25s;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 3px #0b1526b3,0 8px 30px #00000073}.controls-hidden .hud-bottom{opacity:0;transform:translate(-50%)translateY(12px);pointer-events:none!important}.controls-hidden .controls-ribbon,.controls-running .controls-ribbon{opacity:0}.controls-running .weight-widget,.controls-running .handle-widget{display:none}.sweep-state{text-align:center;letter-spacing:.3em;color:var(--accent-warm);text-shadow:0 0 12px #e0973fcc;margin-top:6px;font-size:13px;animation:.4s ease-in-out infinite alternate sweep-pulse}@keyframes sweep-pulse{0%{opacity:.7}to{opacity:1}}.widget-label{letter-spacing:.24em;text-transform:uppercase;color:#f2e7d3b3;text-align:center;text-shadow:0 2px 6px #000c;margin-bottom:6px;font-size:11px;display:block}.stamina{width:190px}.stamina-bar{background:#0b1526d9;border:1px solid #f2e7d380;border-radius:8px;height:14px;overflow:hidden;box-shadow:inset 0 2px 6px #0009}.stamina-fill{background:linear-gradient(90deg,#e0973f,#f2c46b);border-radius:7px;width:100%;height:100%;transition:width 80ms linear;box-shadow:0 0 12px #e0973f99}.stamina-fill.spent{box-shadow:none;background:#5a4632}.weight-widget{width:380px}.weight-gauge{background:#0b1526d9;border:1px solid #f2e7d380;border-radius:10px;height:20px;position:relative;box-shadow:inset 0 2px 6px #0009}.gauge-bands{border-radius:7px;position:absolute;inset:3px;overflow:hidden}.band{position:absolute;top:0;bottom:0}.band-short{background:repeating-linear-gradient(-45deg,#d64f3e80 0 5px,#d64f3e26 5px 10px)}.band-guard{background:#7c9a5a8c}.band-house{background:linear-gradient(90deg,#7fb6d9a6,#7fb6d9d9)}.band-heavy{background:#e0973f73}.band-takeout{background:#d64f3e8c}.gauge-marker{background:var(--fg);border-radius:2px;width:4px;margin-left:-2px;transition:left 60ms;position:absolute;top:-7px;bottom:-7px;box-shadow:0 0 0 1.5px #0b1526e6,0 0 12px #f2e7d3cc}.gauge-label{text-align:center;color:var(--fg);text-shadow:0 2px 8px #000000e6;min-height:20px;margin-top:7px;font-size:15px;font-style:italic}.handle-widget{width:190px}.handle-pick{justify-content:center;gap:6px;display:flex}.handle-btn{font-family:var(--font-body);color:var(--fg-dim);cursor:pointer;background:#0b1526d9;border:1px solid #f2e7d366;border-radius:7px;padding:5px 13px;font-size:14px}.handle-btn.active{color:var(--fg);border-color:var(--accent-warm);background:#3a2a18d9;box-shadow:0 0 12px #e0973f66}.controls-ribbon{text-align:center;letter-spacing:.14em;color:#a9b8cd8c;font-size:11.5px;transition:opacity .3s;position:absolute;bottom:3px;left:0;right:0}.turn-banner{text-align:center;color:var(--fg-dim);text-shadow:0 2px 10px #000000e6;font-size:19px;font-style:italic;animation:.5s fade-in;position:absolute;top:108px;left:0;right:0}.callout{text-align:center;font-family:var(--font-display);color:var(--fg);text-shadow:0 3px #783c2866,0 8px 40px #000c;pointer-events:none;font-size:clamp(30px,3.2vw,48px);position:absolute;top:34%;left:0;right:0}.callout[data-tone=good]{color:var(--accent-warm)}.callout[data-tone=bad]{color:#d98a7d}.callout.pop{animation:4.2s forwards callout-pop}@keyframes callout-pop{0%{opacity:0;transform:scale(.85)translateY(10px)}6%{opacity:1;transform:scale(1.04)translateY(0)}10%{transform:scale(1)}86%{opacity:1}to{opacity:0;transform:translateY(-8px)}}.teach,.tip{text-align:center;border-radius:10px;max-width:640px;padding:12px 26px;font-size:18px;animation:.45s drift-in;position:absolute;bottom:128px;left:50%;transform:translate(-50%)}.teach{color:var(--fg);background:#0f1b30eb;border:1px solid #e0973fa6;box-shadow:0 6px 30px #00000080,0 0 24px #e0973f26}.tip{color:var(--ice);background:#0f1b30eb;border:1px solid #7fb6d98c;font-style:italic}@keyframes drift-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.endscreen{pointer-events:none;background:0 0}.end-card{pointer-events:auto;box-shadow:inset 0 0 0 4px var(--bg-panel), 0 18px 60px #0000008c;text-align:center;background:linear-gradient(168deg,#13223af0,#0b1526f0);border:1px solid #f2e7d380;border-radius:14px;padding:26px 44px;animation:.5s drift-in-center;transform:translateY(-16vh)}@keyframes drift-in-center{0%{opacity:0;transform:translateY(calc(14px - 16vh))}to{opacity:1;transform:translateY(-16vh)}}.end-label{letter-spacing:.3em;text-transform:uppercase;color:var(--accent-warm);font-size:13px}.end-points{font-family:var(--font-display);margin:6px 0;font-size:clamp(30px,3vw,44px)}.end-running{color:var(--fg-dim);margin-bottom:16px;font-style:italic}.settings-open{font-family:var(--font-body);letter-spacing:.12em;color:var(--fg);cursor:pointer;z-index:20;background:#0f1b30e0;border:1px solid #f2e7d373;border-radius:8px;align-items:center;gap:7px;padding:7px 12px;font-size:13px;display:flex;position:fixed;top:14px;right:14px}.settings-open:hover{border-color:var(--accent-warm);box-shadow:0 0 14px #e0973f4d}.settings-panel{width:264px;box-shadow:inset 0 0 0 3px var(--bg-panel), 0 14px 50px #0009;z-index:20;background:linear-gradient(168deg,#13223af7,#0b1526f7);border:1px solid #f2e7d380;border-radius:12px;padding:18px 18px 16px;position:fixed;top:56px;right:14px}.panel-title{font-family:var(--font-display);text-align:center;color:var(--accent-warm);margin:0 0 12px;font-size:22px;font-weight:400}.panel-rows{flex-direction:column;gap:10px;display:flex}.panel-row{color:var(--fg-dim);justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.panel-row input[type=range]{accent-color:var(--accent);flex:1}.seg{border:1px solid #f2e7d366;border-radius:7px;display:inline-flex;overflow:hidden}.seg-btn{font-family:var(--font-body);color:var(--fg-dim);cursor:pointer;background:0 0;border:none;padding:5px 10px;font-size:13px}.seg-btn.active{background:var(--accent);color:#fff4e4}@media (width<=900px){.hud-bottom{flex-wrap:wrap;gap:14px}.weight-widget{width:300px}.map-frame{padding:16px}}
