*{box-sizing:border-box;margin:0;padding:0}html,body,#app{color:#cdd6e4;background:#06080f;height:100%;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;overflow:hidden}#app{position:relative}#app.riding #panel,#app.riding #nav-rail{display:none}#nav-rail{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0e18f5;border:1px solid #1d2a3f;border-radius:8px;width:96px;max-height:calc(100% - 110px);padding:8px;position:absolute;top:16px;right:16px;overflow-y:auto}#nav-rail .nav-home{color:#cdd6e4;width:100%;font:inherit;cursor:pointer;background:#0d1422;border:1px solid #24354f;border-radius:4px;margin-bottom:6px;padding:5px 4px;font-size:10px}#nav-rail .nav-home:hover{border-color:#3a628f}#nav-rail .nav-group-title{color:#55637a;letter-spacing:.12em;text-transform:uppercase;margin:6px 2px 3px;font-size:9px}#nav-rail .nav-body{color:#89a;width:100%;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:3px 4px;font-size:10px;display:flex}#nav-rail .nav-body:hover{color:#cdd6e4;background:#16213480}#nav-rail .nav-body.active{color:#e8f0fa;background:#1d2a3f}#nav-rail .nav-dot{border-radius:50%;flex:none;width:7px;height:7px}#map{cursor:grab;width:100%;height:100%;position:absolute;inset:0}#map:active{cursor:grabbing}#scene3d{position:absolute;inset:0}#scene3d canvas{cursor:grab;display:block}#scene3d canvas:active{cursor:grabbing}.label-layer{pointer-events:none;position:absolute;top:0;left:0}.body-label{pointer-events:auto;cursor:pointer;text-shadow:0 0 4px #000,0 0 2px #000;opacity:.85;-webkit-user-select:none;user-select:none;white-space:nowrap;font-family:ui-monospace,monospace;font-size:11px}.body-label:hover{opacity:1;text-decoration:underline}.body-label.focused{opacity:1;font-weight:700}.body-label.kind-station{opacity:.7;font-size:10px}.body-label .bl-name{display:block}.body-label .bl-time{color:#89a;letter-spacing:.03em;font-size:9px;display:block}.beam-label{color:#ffd27d;text-shadow:0 0 4px #000;white-space:nowrap;font-family:ui-monospace,monospace;font-size:10px}.blurb{color:#55637a;margin:-6px 0 10px;font-size:10px;line-height:1.4}.warning{margin:0 0 8px;font-size:10px;line-height:1.4}.warning[data-severity="0"]{color:#6d8f7d}.warning[data-severity="1"]{color:#d8bd8a}.warning[data-severity="2"]{color:#e0a06a}.warning[data-severity="3"]{color:#e07a6a}button.ghost{color:#8fb8d8;font:inherit;cursor:pointer;background:0 0;border:1px dashed #24354f;border-radius:4px;margin-top:6px;padding:4px 8px;font-size:11px}button.ghost:hover{color:#b8d8f0;border-color:#3a628f}button.primary.ride{background:#2c5c46;border-color:#3f8563;margin-top:10px}button.primary.ride:hover{background:#356e54}.hidden{display:none!important}#ride-hud{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0e18f5;border:1px solid #1d2a3f;border-radius:8px;width:240px;padding:14px;font-size:12px;position:absolute;top:16px;right:16px}#ride-hud .hud-phase{letter-spacing:.12em;color:#7fd4a8;margin-bottom:10px;font-size:15px;font-weight:700}#ride-hud .hud-phase[data-phase=flip]{color:#ffd27d}#ride-hud .hud-phase[data-phase=brake]{color:#8fb8d8}#ride-hud .hud-phase[data-phase=dock]{color:#66e0d8}#ride-hud .hud-rows div{justify-content:space-between;padding:3px 0;display:flex}#ride-hud .hud-rows span{color:#6d7c92}#ride-hud .hud-rows b{color:#e8f0fa;font-weight:500}#ride-hud .hud-bar{background:#16213480;border-radius:2px;height:4px;margin:10px 0;overflow:hidden}#ride-hud .hud-bar-fill{background:#7fd4a8;width:0;height:100%}#ride-hud .hud-btns{justify-content:space-between;gap:8px;display:flex}#ride-hud button{color:#89a;font:inherit;cursor:pointer;background:#0d1422;border:1px solid #24354f;border-radius:4px;padding:4px 10px;font-size:11px}#ride-hud button:hover{color:#cdd6e4}#ride-hud .hud-mute.muted{color:#55637a}.route-row{grid-template-columns:1fr auto 1fr;align-items:end;gap:6px;margin-bottom:8px;display:grid}.route-row label{margin-bottom:0!important}#swap-btn{color:#89a;width:26px;height:30px;font:inherit;cursor:pointer;background:#0d1422;border:1px solid #24354f;border-radius:4px}#swap-btn:hover{color:#cdd6e4;border-color:#3a628f}.hull-row{margin-bottom:8px!important}.lag-row{align-items:center;gap:6px;margin-top:10px;display:flex}.lag-row .lag{flex:1;margin-top:0}.tool-row{gap:6px;margin-top:12px;display:flex}.tool-btn{color:#8fb8d8;font:inherit;cursor:pointer;background:0 0;border:1px dashed #24354f;border-radius:4px;padding:4px 8px;font-size:11px}.tool-btn:hover{color:#b8d8f0;border-color:#3a628f}.tool-btn.wide{text-align:left;flex:1}.keys-hint{color:#55637a;border-top:1px solid #16213480;margin-top:10px;padding-top:8px;font-size:9.5px;line-height:1.7}.keys-hint b{color:#89a}.honesty-row{border:1px solid #24354f;border-radius:4px;grid-template-columns:1fr 1fr;gap:0;margin:0 0 10px;display:grid;overflow:hidden}.h-btn{color:#6d7c92;font:inherit;cursor:pointer;background:#0d1422;border:none;padding:5px 4px;font-size:10px}.h-btn.active{color:#e8f0fa;background:#274668}.result .honesty-compare{justify-content:space-between;gap:12px;display:flex}.result .honesty-compare span{color:#55637a;font-size:11px}.result .honesty-compare span.active,.result .honesty-compare span.active b{color:#ffd27d}.result-actions{align-items:stretch;gap:6px;margin-top:6px;display:flex}.result-actions .ride{flex:1}#about-modal{z-index:9;background:#030407b8;place-items:center;display:grid;position:absolute;inset:0}.about-box{background:#0a0e18;border:1px solid #1d2a3f;border-radius:10px;width:min(560px,92vw);max-height:82vh;padding:22px 26px;position:relative;overflow-y:auto}.about-box h2{color:#e8f0fa;margin-bottom:10px}.about-box p{color:#a9b6c8;margin-bottom:10px;font-size:12px;line-height:1.65}.about-disclaimer{color:#d8bd8a!important}.about-close{color:#89a;font:inherit;cursor:pointer;background:0 0;border:none;position:absolute;top:12px;right:14px}.about-credits{border-top:1px solid #16213480;margin-top:12px;padding-top:10px}.about-credits h3,.about-credits h4{color:#cdd6e4;margin:10px 0 4px;font-size:12px}.about-credits p,.about-credits li{color:#6d7c92;font-size:11px;line-height:1.6}.about-credits ul{margin:4px 0 8px 16px}.about-credits a{color:#8fb8d8}#g-vignette{pointer-events:none;opacity:0;z-index:5;background:radial-gradient(#0000 30%,#14161c8c 62%,#08090cf7 100%);transition:opacity .5s;position:absolute;inset:0}#ride-banner{letter-spacing:.22em;pointer-events:none;z-index:6;border-radius:4px;padding:10px 26px;font-size:22px;font-weight:700;animation:.5s ease-in-out infinite alternate banner-pulse;position:absolute;top:22%;left:50%;transform:translate(-50%)}#ride-banner.juice{color:#ff9e9e;background:#5010108c;border:1px solid #a03c3c}#ride-banner.brace{color:#ffd27d;background:#503c0a8c;border:1px solid #a07c2c}#ride-banner.info{color:#9fe8c0;background:#103c288c;border:1px solid #3f8563;animation:none}@keyframes banner-pulse{0%{opacity:1}to{opacity:.55}}#comm-log{pointer-events:none;z-index:4;width:380px;font-size:11px;line-height:1.7;position:absolute;bottom:76px;left:16px}.comm-line{color:#8fb8d8;text-shadow:0 0 4px #000;animation:.3s ease-out comm-in}.comm-line:last-child{color:#cde6f8}@keyframes comm-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}#canopy{pointer-events:none;z-index:3;position:absolute;inset:0}.canopy-frame{background:linear-gradient(120deg,#0c1018e6 0 3%,#0000 8%),linear-gradient(-120deg,#0c1018e6 0 3%,#0000 8%),linear-gradient(0deg,#0c1018f2 0 4%,#0000 14%),linear-gradient(#0c1018d9 0 2%,#0000 8%);position:absolute;inset:0}.canopy-frame:before,.canopy-frame:after{content:"";background:#3c506e59;width:2px;position:absolute;top:0;bottom:0}.canopy-frame:before{left:12%;transform:skew(-6deg)}.canopy-frame:after{right:12%;transform:skew(6deg)}#canopy .reticle{color:#7fd4a8;text-shadow:0 0 6px #000;font-size:18px;transition:opacity .3s;position:absolute;transform:translate(-50%,-50%)}#canopy .reticle:after{content:attr(data-label);white-space:nowrap;color:#7fd4a8cc;font-size:10px;position:absolute;top:-2px;left:16px}#canopy .vel-tape{color:#cde6f8;border-left:2px solid #24354f;padding-left:10px;font-size:13px;position:absolute;top:50%;left:24px;transform:translateY(-50%)}#canopy .vel-tape b{font-size:20px}#epitaph{z-index:8;text-align:center;background:#040508d1;place-items:center;display:grid;position:absolute;inset:0}#epitaph h2{color:#e8f0fa;letter-spacing:.06em;margin-bottom:14px;font-size:22px}#epitaph p{color:#89a;max-width:440px;margin:0 auto 10px;line-height:1.7}#epitaph .src{color:#55637a;font-size:10px}#epitaph button{color:#e8f0fa;font:inherit;cursor:pointer;background:#274668;border:1px solid #3a628f;border-radius:4px;margin-top:18px;padding:8px 18px}#loading{color:#89a;place-items:center;display:grid;position:absolute;inset:0}#panel{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0e18f5;border:1px solid #1d2a3f;border-radius:8px;width:280px;max-height:calc(100% - 100px);padding:16px;position:absolute;top:16px;left:16px;overflow-y:auto}#panel h1{letter-spacing:.04em;color:#f0f4fa;font-size:18px}#panel .accent{color:#7fd4a8}#panel .tagline{color:#6d7c92;margin:2px 0 14px;font-size:11px}#panel label{color:#89a;margin-bottom:10px;font-size:11px;display:block}#panel select{color:#cdd6e4;width:100%;font:inherit;background:#0d1422;border:1px solid #24354f;border-radius:4px;margin-top:4px;padding:6px 8px;display:block}.g-row{grid-template-columns:1fr 1fr;gap:6px;margin:4px 0 12px;display:grid}.g-btn{color:#89a;font:inherit;cursor:pointer;background:#0d1422;border:1px solid #24354f;border-radius:4px;padding:6px 4px;font-size:11px}.g-btn.active{color:#06080f;background:#7fd4a8;border-color:#7fd4a8}button.primary{color:#e8f0fa;width:100%;font:inherit;cursor:pointer;background:#274668;border:1px solid #3a628f;border-radius:4px;padding:8px}button.primary:hover{background:#2f5479}.lag{color:#89a;margin-top:12px;font-size:11px}.lag b{color:#ffd27d}.result{margin-top:8px}.result.error{color:#e08a7a;font-size:11px;line-height:1.5}.result .row{border-bottom:1px solid #16213480;justify-content:space-between;padding:4px 0;display:flex}.result .row span{color:#6d7c92}.result .row b{color:#e8f0fa;font-weight:500}.footnote{color:#55637a;margin-top:14px;font-size:10px;line-height:1.5}#timebar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0e18f5;border:1px solid #1d2a3f;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;display:flex;position:absolute;bottom:16px;left:16px;right:16px}#timebar button{color:#cdd6e4;cursor:pointer;width:34px;height:26px;font:inherit;background:0 0;border:1px solid #24354f;border-radius:4px}#timebar select{color:#cdd6e4;font:inherit;background:#0d1422;border:1px solid #24354f;border-radius:4px;padding:4px 6px;font-size:11px}#timebar .scrub-wrap{flex:1;align-items:center;display:flex;position:relative}#timebar input[type=range]{accent-color:#7fd4a8;width:100%}#event-marks{pointer-events:none;height:0;position:absolute;top:-7px;left:8px;right:8px}#timebar .event-tick{opacity:.75;cursor:pointer;pointer-events:auto;background:#ffd27d;border:none;border-radius:2px 2px 0 0;width:9px;height:9px;padding:0;position:absolute;transform:translate(-50%)}#timebar .event-tick:hover{opacity:1;background:#ffe6b3}#timebar #ev-prev,#timebar #ev-next{color:#ffd27d;cursor:pointer;height:26px;font:inherit;white-space:nowrap;background:0 0;border:1px solid #24354f;border-radius:4px;padding:0 8px;font-size:10px}#timebar #ev-prev:hover,#timebar #ev-next:hover{border-color:#a07c2c}#event-card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:4;background:#0a0e18f5;border:1px solid #3a3524;border-radius:8px;width:340px;padding:14px 16px;position:absolute;bottom:76px;right:130px}#app.riding #event-card{display:none}#event-card .ec-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}#event-card .ec-book{color:#a07c2c;letter-spacing:.08em;text-transform:uppercase;font-size:10px}#event-card .ec-close{color:#89a;cursor:pointer;font:inherit;background:0 0;border:none}#event-card h3{color:#ffd27d;margin-bottom:2px;font-size:15px}#event-card .ec-date{color:#6d7c92;margin-bottom:8px;font-size:11px}#event-card p{color:#cdd6e4;margin-bottom:8px;font-size:12px;line-height:1.6}#event-card .ec-hint{color:#7fd4a8;font-size:11px}#event-card .ec-cite{color:#55637a;margin-bottom:10px;font-size:10px}#event-card .ec-spoiler{color:#89a;font-size:10px}#event-card select{color:#cdd6e4;font:inherit;background:#0d1422;border:1px solid #24354f;border-radius:4px;margin-left:4px;padding:2px 4px;font-size:10px}#timebar #clock{color:#ffd27d;white-space:nowrap;font-size:12px}
