*{box-sizing:border-box;margin:0;padding:0}html,body{color:#fff;-webkit-user-select:none;user-select:none;background:#000;width:100%;height:100%;font-family:Helvetica Neue,Inter,Arial,sans-serif;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}kbd{background:#ffffff14;border:1px solid #ffffff59;border-radius:4px;margin:0 1px;padding:1px 7px;font:600 11px/18px Helvetica Neue,Arial,sans-serif;display:inline-block}#hud{pointer-events:none;text-shadow:0 1px 6px #0009;position:fixed;inset:0}#tl{gap:8px;display:flex;position:absolute;top:18px;left:18px}.chip{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);letter-spacing:.14em;text-transform:uppercase;background:#0a0c108c;border:1px solid #ffffff1a;border-radius:20px;padding:5px 11px;font-size:11px}.chip.tap{pointer-events:auto;cursor:pointer}.chip.tap:hover{border-color:#fff6}.chip.off{opacity:.4}.dim{opacity:.55}#bl{position:absolute;bottom:18px;left:18px}#minimap{width:200px;height:200px}#br{text-align:right;width:300px;position:absolute;bottom:22px;right:26px}#speedo{justify-content:flex-end;align-items:baseline;gap:10px;display:flex}#speed{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:92px;font-weight:200;line-height:.9}#unit{letter-spacing:.2em;opacity:.7;text-transform:uppercase;text-align:left;width:44px;font-size:13px}#mode{letter-spacing:.2em;border:1px solid #fff6;border-radius:4px;padding:3px 8px;font-size:13px;font-weight:600}#mode.flight{color:#8fd3ff;border-color:#8fd3ff}#mode.air{color:#ffd27a;border-color:#ffd27a}#alt{letter-spacing:.15em;opacity:.75;font-variant-numeric:tabular-nums;margin-top:4px;font-size:12px}#pressure{background:#ffffff26;border-radius:2px;height:4px;margin-top:10px;overflow:hidden}#pressure-fill{background:#e8e8e8;width:100%;height:100%;transition:background .3s}#pressure-txt{letter-spacing:.18em;opacity:.7;text-transform:uppercase;font-variant-numeric:tabular-nums;margin-top:5px;font-size:10px}#thrusters{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-top:10px;display:flex}#thrusters span{letter-spacing:.16em;opacity:.5;border:1px solid #ffffff2e;border-radius:3px;padding:3px 6px;font-size:9px;transition:all .1s}#thrusters span.on{opacity:1;color:#dff1ff;background:#a0d2ff40;border-color:#a8d8ff}#thrusters span.sys{opacity:.9;border-color:#fff6}#thrusters span.sys.off{opacity:.3;text-decoration:line-through}#tr{text-align:right;position:absolute;top:18px;right:26px}#tr .label{letter-spacing:.25em;opacity:.65;font-size:10px}#timer{font-variant-numeric:tabular-nums;font-size:34px;font-weight:200}#best{opacity:.6;letter-spacing:.08em;font-size:11px}#toast{letter-spacing:.22em;text-transform:uppercase;opacity:0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000059;border-radius:6px;padding:10px 22px;font-size:22px;font-weight:300;transition:all .25s;position:absolute;top:22%;left:50%;transform:translate(-50%,-10px)}#toast.show{opacity:1;transform:translate(-50%)}#hint{opacity:.6;letter-spacing:.15em;white-space:nowrap;font-size:11px;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}#hint kbd{margin-right:2px;padding:1px 5px;font-size:10px}#attitude-wrap{border:1px solid #ffffff4d;border-radius:50%;width:74px;height:74px;margin-bottom:8px;margin-left:auto;position:relative;overflow:hidden}#attitude{width:200%;height:200%;position:absolute;top:-50%;left:-50%}#attitude .sky{background:linear-gradient(#2a5d8f,#5f97c9);position:absolute;inset:0 0 50%}#attitude .horizon{background:linear-gradient(#6b5640,#3e3226);border-top:1px solid #fff;position:absolute;inset:50% 0 0}#attitude-wrap .reticle{background:#ffd27a;height:2px;position:absolute;top:36px;left:22px;right:22px}#help{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080a0edb;border:1px solid #ffffff1f;border-radius:12px;width:min(900px,92vw);padding:28px 34px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#help h2{letter-spacing:.3em;margin-bottom:18px;font-size:18px;font-weight:300}#help h3{letter-spacing:.25em;opacity:.6;margin-bottom:10px;font-size:11px}#help .cols{grid-template-columns:repeat(3,1fr);gap:26px;display:grid}#help p{margin-bottom:8px;font-size:13px;line-height:1.5}#help>p.dim{margin-top:12px;font-size:12px}#title{background:#000;justify-content:flex-start;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}#title-bg{filter:brightness(.85);background:url(/assets/roadster2026/hero.png) 50%/cover no-repeat;animation:24s ease-in-out infinite alternate drift;position:absolute;inset:0}#title:after{content:"";background:linear-gradient(90deg,#000000d9 0%,#00000059 45%,#0000 70%);position:absolute;inset:0}@keyframes drift{0%{transform:scale(1.04)translate(0)}to{transform:scale(1.12)translate(-2%)}}#title-inner{z-index:2;max-width:920px;padding:0 7vw;position:relative}#brand{letter-spacing:.6em;opacity:.7;margin-bottom:14px;font-size:13px}#title h1{letter-spacing:.14em;font-size:clamp(56px,9vw,120px);font-weight:200;line-height:1}#sub{letter-spacing:.2em;opacity:.75;text-transform:uppercase;margin-top:12px;font-size:14px}#specs{gap:34px;margin-top:36px;display:flex}#specs b{font-size:28px;font-weight:300;display:block}#specs span{letter-spacing:.18em;opacity:.6;text-transform:uppercase;font-size:10px}#loading{background:#ffffff26;width:320px;height:2px;margin-top:40px}#load-bar{background:#fff;width:0;height:100%;transition:width .2s}#start{margin-top:32px}.modes{gap:12px;margin-top:4px;display:flex}.mode{text-align:left;cursor:pointer;color:#fff;background:0 0;border:1px solid #fff6;border-radius:0;width:270px;padding:20px 18px 18px;font-family:inherit;transition:background .15s,color .15s,border-color .15s;position:relative}.mode:hover,.mode.current{color:#000;background:#fff;border-color:#fff}.mode b{letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px;font-size:15px;font-weight:400;display:block}.mode-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}#start .mode-head{padding-right:28px}.mode-head b{margin-bottom:0}.mode-ico{flex:none;width:22px;height:22px}.mode-lead{letter-spacing:.14em;text-transform:uppercase;opacity:.92;margin:0 0 10px;font-size:10px;line-height:1.45}.mode span{letter-spacing:.08em;opacity:.55;font-size:11px;line-height:1.45;display:block}.mode:hover span,.mode.current span{opacity:.7}.mode ul{margin:12px 0 0;padding:0;list-style:none}.mode li{letter-spacing:.06em;opacity:.7;font-size:11px;line-height:1.7}.mode:hover li,.mode.current li{opacity:.85}.mode kbd{opacity:.45;background:0 0;border-color:currentColor;position:absolute;top:16px;right:14px}#title.live{background:0 0}#title.live #title-bg{opacity:0;transition:opacity 1.4s}#title.live:after{background:linear-gradient(90deg,#000000c7 0%,#00000059 42%,#0000 65%)}.mode.current:after{content:"LIVE";letter-spacing:.22em;font-size:9px;position:absolute;bottom:14px;right:14px}#take{letter-spacing:.2em;text-transform:uppercase;margin-top:18px;font-size:12px;animation:1.6s ease-in-out infinite pulse}#paused .mode{width:248px}#gap{text-align:center;min-width:260px;position:absolute;top:16px;left:50%;transform:translate(-50%)}#gap-score{letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:200;line-height:1}#gap-chain{letter-spacing:.2em;opacity:.55;font-variant-numeric:tabular-nums;margin-top:6px;font-size:13px}#gap-chain.live{opacity:1;color:#ffd27a}#gap-bar{background:#ffffff1f;border-radius:2px;width:220px;height:3px;margin:7px auto 0;overflow:hidden}#gap-bar-fill{background:linear-gradient(90deg,#ff7ac0,#ffd27a);width:0;height:100%}#gap-meta{letter-spacing:.18em;opacity:.55;text-transform:uppercase;margin-top:6px;font-size:10px}.modes{flex-wrap:wrap;max-width:900px}#start .mode{width:248px}#chase{text-align:center;width:240px;position:absolute;top:142px;left:50%;transform:translate(-50%)}#chase-stars{letter-spacing:.25em;color:#ffd27a;text-shadow:0 0 10px #ffb43c80;font-size:22px}.chase-row{letter-spacing:.2em;opacity:.85;align-items:center;gap:8px;margin-top:6px;font-size:9px;display:flex}.chase-row span{text-align:right;width:54px}.chase-row .red{color:#ff4d3a;font-weight:700}.chase-bar{background:#ffffff24;border-radius:2px;flex:1;height:4px;overflow:hidden}#chase-hp-fill{background:#e8e8e8;width:100%;height:100%;transition:width .2s}#chase-bust-fill{background:#ff4d3a;width:0;height:100%}#busted{pointer-events:none;background:radial-gradient(#78000059,#000000a6);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#busted .big{letter-spacing:.4em;color:#ff4d3a;text-shadow:0 0 30px #ff282899;font-size:84px;font-weight:200}#busted-stats{letter-spacing:.14em;text-align:center;opacity:.9;margin-top:14px;font-size:14px;line-height:1.8}#busted small{letter-spacing:.2em;opacity:.7;margin-top:22px;font-size:12px}#pops{position:absolute;inset:0;overflow:hidden}.pop{letter-spacing:.16em;white-space:nowrap;color:#fff;font-size:18px;font-weight:600;animation:1.3s ease-out forwards popup;position:absolute;top:34%;transform:translate(-50%)}.pop.air{color:#8fd3ff}.pop.hot{color:#ff7ac0}.pop.bank{color:#ffd27a;font-size:22px}.pop.bad{color:#ff4d3a}@keyframes popup{0%{opacity:0;margin-top:12px}12%{opacity:1;margin-top:0}75%{opacity:1}to{opacity:0;margin-top:-60px}}@keyframes pulse{50%{opacity:.45}}#gallery{gap:10px;margin-top:40px;display:flex}#gallery img{object-fit:cover;opacity:.8;border:1px solid #ffffff26;border-radius:4px;width:120px;height:72px}#credit{opacity:.4;letter-spacing:.05em;margin-top:18px;font-size:10px}#paused{letter-spacing:.5em;z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0009;flex-direction:column;justify-content:center;align-items:center;font-size:40px;font-weight:200;display:flex;position:fixed;inset:0}#paused .pause-title{letter-spacing:.5em;margin-bottom:22px;font-size:40px;font-weight:200}.pause-menu{flex-direction:column;gap:8px;width:280px;display:flex}.pm{font:inherit;letter-spacing:.18em;text-transform:uppercase;color:#fff;text-align:left;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:8px;justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;transition:background .15s,border-color .15s;display:flex}.pm:hover,.pm:focus-visible{background:#ffffff29;border-color:#ffffff80;outline:none}.pm kbd{opacity:.55;font-size:10px}#pm-resume{color:#000;background:#fff;border-color:#fff}#pm-resume:hover{background:#e6e6e6}.share-btn{color:#1a0a10;background:linear-gradient(100deg,#ff6f9f,#ffb46a);border-color:#0000;font-weight:600;box-shadow:0 0 22px #ff829659}.share-btn:hover{filter:brightness(1.08);background:linear-gradient(100deg,#ff6f9f,#ffb46a);box-shadow:0 0 30px #ff82968c}.share-btn svg{width:18px;height:18px}#title-share{font:inherit;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;pointer-events:auto;border:0;border-radius:8px;align-items:center;gap:10px;margin-top:16px;padding:10px 16px;font-size:12px;font-weight:600;display:inline-flex}.pause-sub{letter-spacing:.3em;text-transform:uppercase;opacity:.55;margin-top:30px;font-size:11px}#paused .modes{margin-top:12px}#help{z-index:26}#settings{z-index:30;background:radial-gradient(#00000073,#000c);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#tutorial{z-index:25;position:fixed;top:16px;left:50%;transform:translate(-50%)}#tutorial .tut-card{width:min(520px,94vw);padding:16px 22px 14px;transition:border-color .2s,box-shadow .2s;position:relative}#tutorial h2{margin-bottom:6px;font-size:24px;display:inline-block}#tutorial #tut-body{min-height:0;margin-bottom:12px;font-size:14px}#tutorial #tut-keys{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));margin-bottom:12px}#tut-note{opacity:.55;margin:-2px 0 12px;font-size:12px;line-height:1.5}#tut-prog{background:#ffffff1f;border-radius:2px;height:4px;margin-bottom:12px;overflow:hidden}#tut-prog-fill{background:#7fd4ff;width:0;height:100%;transition:width .12s}.tut-check{color:#6fe39a;opacity:0;margin-left:10px;font-size:22px;transition:all .2s;display:inline-block;transform:scale(.5)}#tutorial.done .tut-card{border-color:#6fe39ab3;box-shadow:0 0 40px #6fe39a40}#tutorial.done .tut-check{opacity:1;transform:scale(1)}#tutorial.done #tut-prog-fill{background:#6fe39a}#tut-skipstep{letter-spacing:.14em;text-transform:uppercase;margin-right:6px;font-size:11px}.tut-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0c0e14db;border:1px solid #ffffff24;border-radius:14px;width:min(560px,92vw);padding:26px 30px 20px;box-shadow:0 30px 80px #00000080}.tut-head{letter-spacing:.25em;text-transform:uppercase;opacity:.75;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:11px;display:flex}.tut-card h2{letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;font-size:30px;font-weight:200}#tut-body{opacity:.82;min-height:46px;margin-bottom:18px;font-size:14px;line-height:1.6}#tut-keys{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:18px;display:grid}.tk{background:#ffffff08;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;transition:all 80ms;display:flex}.tk kbd{text-align:center;min-width:30px;font-size:13px;line-height:24px}.tk kbd.wide{min-width:52px}.tk span{opacity:.7;font-size:12px}.tk.on{background:#5abeff29;border-color:#7fd4ff;box-shadow:0 0 18px #5abeff40}.tk.on kbd{color:#000;background:#e8f6ff;border-color:#fff}#tut-gauge{opacity:.8;align-items:center;gap:12px;margin-bottom:16px;font-size:12px;display:flex}#tut-gauge .g{background:#ffffff26;border-radius:3px;width:140px;height:5px;overflow:hidden}#tut-gauge-fill{background:#e8e8e8;height:100%;animation:5s ease-in-out infinite copv}@keyframes copv{0%{width:100%}35%{background:#ff4d3a;width:4%}50%{width:4%}to{width:100%}}.tut-foot{justify-content:space-between;align-items:center;display:flex}#tut-dots{gap:6px;display:flex}#tut-dots i{background:#fff3;border-radius:50%;width:7px;height:7px}#tut-dots i.done{background:#ffffff8c}#tut-dots i.on{background:#fff;border-radius:4px;width:20px}.tut-hint{opacity:.45;letter-spacing:.08em;text-align:center;margin-top:14px;font-size:11px}button.solid,button.ghost{font:inherit;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border-radius:7px;margin-left:8px;padding:9px 18px;font-size:12px}button.solid{color:#000;background:#fff;border:1px solid #fff}button.ghost{color:#fff;background:0 0;border:1px solid #ffffff4d}button.ghost:hover{border-color:#fff}button.link{font:inherit;color:#fff;opacity:.7;cursor:pointer;letter-spacing:inherit;text-transform:inherit;text-underline-offset:3px;pointer-events:auto;background:0 0;border:0;text-decoration:underline}button.link:hover{opacity:1}#take button.link{margin-left:14px}#ready{z-index:15;text-align:center;cursor:pointer;text-shadow:0 2px 18px #000000b3;flex-direction:column;align-items:center;display:flex;position:fixed;bottom:22vh;left:0;right:0}#ready-mode{letter-spacing:.4em;text-transform:uppercase;opacity:.8;margin-bottom:10px;font-size:13px}#ready-go{letter-spacing:.22em;text-transform:uppercase;background:linear-gradient(90deg,#0000,#00000073,#0000);border-top:1px solid #ffffff59;border-bottom:1px solid #ffffff59;padding:14px 34px;font-size:clamp(26px,4vw,44px);font-weight:300;animation:1.6s ease-in-out infinite pulse}#mobile{z-index:50;text-align:center;background:radial-gradient(#140a1ed9,#000000f5);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#mobile .tut-card{width:min(420px,100%)}.mobile-emoji{margin-bottom:12px;font-size:64px;line-height:1}#mobile h2{letter-spacing:.04em;margin-bottom:10px;font-size:22px;font-weight:600}#mobile p{opacity:.85;font-size:15px;line-height:1.5}#mobile .mobile-url{letter-spacing:.08em;opacity:1;color:#ffb46a;margin:14px 0 4px;font-size:16px}#mobile .share-row{justify-content:center}#share{z-index:30;background:radial-gradient(#00000073,#000c);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#share-msg{opacity:.85;margin:14px 0 16px;font-size:14px;line-height:1.5}.share-link{gap:8px;display:flex}#share-url{min-width:0;font:inherit;color:#fff;background:#ffffff0f;border:1px solid #fff3;border-radius:6px;flex:1;padding:9px 12px;font-size:13px}.share-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.share-row a.ghost{letter-spacing:.16em;text-transform:uppercase;color:#fff;border:1px solid #ffffff4d;border-radius:6px;padding:9px 18px;font-size:12px;text-decoration:none}.share-row a.ghost:hover{border-color:#fff}.set-row{border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:13px 0;font-size:14px;display:flex}.set-row button.solid,.set-row button.ghost{margin:0}.seg{border:1px solid #ffffff40;border-radius:7px;display:flex;overflow:hidden}.seg button{font:inherit;color:#fff;cursor:pointer;opacity:.6;background:0 0;border:0;padding:7px 14px;font-size:12px}.seg button.on{color:#000;opacity:1;background:#fff}#boostbox{--bb:#4fd8ff;--bb2:#2a7bff;width:240px;margin-bottom:16px}#bb-head{align-items:center;gap:10px;display:flex}#bb-label{letter-spacing:.08em;color:var(--bb);text-shadow:0 0 14px color-mix(in srgb, var(--bb) 60%, transparent);font-size:22px;font-style:italic;font-weight:800}#bb-key{letter-spacing:.12em;opacity:.7;border:1px solid #ffffff59;border-radius:4px;padding:2px 6px;font-size:10px}#bb-readout{align-items:baseline;gap:6px;margin:2px 0 6px;display:flex}#bb-val{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:40px;font-style:italic;font-weight:700;line-height:.95}#bb-unit{opacity:.7;font-size:14px;font-style:italic;font-weight:700}#bb-bar{background:#ffffff1f;border:1px solid #ffffff38;height:14px;position:relative;overflow:hidden;transform:skew(-18deg)}#bb-fill{background:linear-gradient(90deg, var(--bb2), var(--bb));width:100%;height:100%;box-shadow:0 0 12px var(--bb);transition:background .15s}#bb-bar:after{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 calc(10% - 3px),#000000a6 calc(10% - 3px) 10%);position:absolute;inset:0}#bb-bar i{z-index:1;background:#ffffffb3;width:2px;position:absolute;top:0;bottom:0}#boostbox.firing{--bb:#ffd23a;--bb2:#ff7a1a}#boostbox.firing #bb-bar{animation:.25s infinite alternate bb-pulse}#boostbox.low{--bb:#ff9a3c;--bb2:#ff5a1a}#boostbox.empty{--bb:#ff4d3a;--bb2:#a01818}#boostbox.empty #bb-val{color:#ff4d3a}@keyframes bb-pulse{0%{filter:brightness()}to{filter:brightness(1.35)}}
