:root{--bg:#000;--ink:#eef2f7;--dim:#eef2f794;--faint:#eef2f752;--accent:#d5001c;--accent-hot:#ff3b52;--good:#35e0a1;--warn:#ffb020;--panel:#090b0fb8;--panel-solid:#090b0fed;--line:#ffffff24;--line-soft:#ffffff12;--glow:#d5001c73;--sans:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--pad:clamp(10px, 1.5vw, 22px);--gap:clamp(6px, .7vw, 10px);--r:10px;--fs-k:clamp(9px, .58vw, 11px);--fs-v:clamp(16px, 1.5vw, 26px);--fs-big:clamp(22px, 2.35vw, 38px);--shadow:0 10px 30px #00000080;--tach:clamp(148px, 15vw, 232px);--map:clamp(112px, 12.5vw, 186px);--tablew:clamp(178px, 17vw, 252px)}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body,#view{background:#000;width:100%;height:100%;margin:0;overflow:hidden}html.phone,html.phone body,html.phone #view,html.phone #ui{height:var(--vvh,100dvh);max-height:var(--vvh,100dvh);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html.phone{-webkit-text-size-adjust:100%}.fs-tip{left:50%;top:calc(8px + env(safe-area-inset-top));z-index:40;pointer-events:auto;color:#d7dce3;letter-spacing:.01em;backdrop-filter:blur(10px);background:#0c0f14e6;border:1px solid #ffffff1f;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:12px;display:flex;position:fixed;transform:translate(-50%)}.fs-tip b{color:#fff;font-weight:600}.fs-tip button{color:#8d95a1;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:17px;line-height:1}body{font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;touch-action:none;overscroll-behavior:none;cursor:default}#view{z-index:0;display:block;position:fixed;inset:0}#ui{z-index:10;pointer-events:none;position:fixed;inset:0}#loading,#gate{z-index:100;text-align:center;background:radial-gradient(120% 90% at 50% 32%,#282c368c 0%,#000000f5 62%),#05060a;flex-direction:column;justify-content:center;align-items:center;gap:clamp(10px,1.6vh,22px);padding:6vh 6vw;transition:opacity .5s,visibility .5s;display:flex;position:fixed;inset:0}#loading.hidden,#gate.hidden,#loading.done,#gate.done,#loading.gone,#gate.gone{opacity:0;visibility:hidden;pointer-events:none}#loading .wrap,#gate .g-inner,#loading .inner,#gate .inner{flex-direction:column;align-items:center;gap:clamp(10px,1.7vh,22px);display:flex}#loading h1,#gate h1,#gate h2,#loading .title,#gate .title{letter-spacing:.16em;text-transform:uppercase;background:linear-gradient(#fff 20%,#93a0b0 100%);color:#0000;text-shadow:0 0 44px #ffffff1a;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(30px,6.2vw,82px);font-weight:800;line-height:1}#gate h2,#gate .title{font-size:clamp(24px,3.8vw,52px)}#loading h1:after,#gate h1:after,#gate h2:after,#loading .title:after,#gate .title:after{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);width:58%;height:3px;box-shadow:0 0 18px var(--glow);margin:clamp(10px,1.6vh,20px) auto 0;display:block}#loading h2,#loading p,#gate p,#loading .sub,#gate .sub{letter-spacing:.3em;text-transform:uppercase;color:var(--dim);margin:0;font-size:clamp(11px,1.05vw,15px);font-weight:500}#loading .badge,#gate .badge{font-size:var(--fs-k);letter-spacing:.38em;text-transform:uppercase;color:#ff5f72;background:#d5001c1f;border:1px solid #ff3b5257;border-radius:999px;padding:5px 13px 5px 15px;font-weight:700}#loading .hint,#gate .hint{letter-spacing:.06em;text-transform:none;max-width:62ch;color:var(--faint);font-size:clamp(10px,.86vw,13px);font-weight:500;line-height:1.7}#loading :has(>.bar),#loading .bar-track,#loading .bar-bg,#loading .track,#loading .progress{border:1px solid var(--line-soft);background:#ffffff14;border-radius:99px;flex:none;width:min(440px,64vw);height:6px;padding:0;overflow:hidden}#loading .bar{background:linear-gradient(90deg, #8a0012, var(--accent) 55%, #ff5266);width:0%;min-width:2px;max-width:100%;height:6px;box-shadow:0 0 16px var(--glow);border-radius:99px;transition:width .25s;display:block}#loading:has(>.bar)>.bar{width:0;max-width:min(440px,64vw)}#loading .pct,#loading .status{font-family:var(--mono);font-size:var(--fs-k);letter-spacing:.22em;color:var(--faint);font-variant-numeric:tabular-nums}#gate{pointer-events:auto;cursor:pointer}#gate .g-inner{border:1px solid var(--line);box-shadow:var(--shadow), inset 0 1px 0 #ffffff1a;background:linear-gradient(#ffffff0e,#ffffff03);border-radius:18px;padding:clamp(22px,3vw,46px) clamp(28px,5vw,74px);transition:border-color .25s,box-shadow .25s;animation:2.8s ease-in-out infinite pulse}#gate:hover .g-inner{box-shadow:0 0 44px var(--glow);border-color:#ff3b528c}#gate .cta,#gate button{font-family:var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow), inset 0 1px 0 #ffffff1f;cursor:pointer;background:linear-gradient(#ffffff17,#ffffff05);border-radius:999px;margin-top:clamp(6px,1.2vh,16px);padding:14px 34px;font-size:clamp(12px,1.05vw,15px);font-weight:700;animation:2.1s ease-in-out infinite pulse}#gate .cta:hover,#gate button:hover{border-color:var(--accent-hot);box-shadow:0 0 0 1px var(--glow), 0 0 34px var(--glow)}#gate .hint,#gate .keys,#gate ul{color:var(--faint);letter-spacing:.1em;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin:clamp(6px,1.4vh,18px) 0 0;padding:0;font-size:clamp(10px,.9vw,13px);list-style:none;display:flex}kbd{min-width:1.9em;font-family:var(--mono);color:var(--ink);border:1px solid var(--line);background:#ffffff12;border-bottom-width:2px;border-radius:5px;padding:3px 7px;font-size:.92em;display:inline-block}@keyframes pulse{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.72;transform:translateY(-1px)}}.hud{pointer-events:none;user-select:none;font-family:var(--sans);color:var(--ink);transition:opacity .3s;position:absolute;inset:0}.hud.off{opacity:0;visibility:hidden}.hud-vig{display:none}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow), inset 0 1px 0 #ffffff0f}.k{font-size:var(--fs-k);letter-spacing:.2em;text-transform:uppercase;color:var(--faint);font-style:normal;font-weight:700}.hud-tl{left:max(var(--pad), env(safe-area-inset-left));top:max(var(--pad), env(safe-area-inset-top));gap:var(--gap);display:flex;position:absolute}.hud-tc{left:50%;top:max(var(--pad), env(safe-area-inset-top));flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;transform:translate(-50%)}.hud-tr{right:max(var(--pad), env(safe-area-inset-right));top:max(var(--pad), env(safe-area-inset-top));position:absolute}.hud-bl{left:max(var(--pad), env(safe-area-inset-left));bottom:max(var(--pad), env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute}.hud-br{right:max(var(--pad), env(safe-area-inset-right));bottom:max(var(--pad), env(safe-area-inset-bottom));flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute}.hud-mid{position:absolute;inset:0}.stat{flex-direction:column;gap:2px;min-width:clamp(62px,6vw,90px);padding:8px 12px 9px;display:flex}.stat .v{font-family:var(--mono);font-variant-numeric:tabular-nums;align-items:baseline;gap:2px;line-height:1;display:flex}.stat .v b{font-size:var(--fs-v);font-weight:700}.stat .v .of{font-size:calc(var(--fs-v) * .52);color:var(--faint);font-style:normal}.hud-tl .stat:first-child .v b{color:#fff;text-shadow:0 0 18px #ffffff38}.timing{min-width:clamp(180px,18vw,268px);padding:8px 14px 10px}.timing .trow{justify-content:space-between;align-items:center;gap:14px;display:flex}.timing .tbig{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-big);letter-spacing:-.01em;margin:2px 0 5px;font-weight:700;line-height:1.05}.timing .tsplit{border-top:1px solid var(--line-soft);gap:16px;padding-top:6px;display:flex}.timing .tsplit span{flex-direction:column;gap:2px;display:flex}.timing .tsplit b{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--dim);font-size:clamp(11px,1.02vw,15px);font-weight:600}.timing .tsplit b.best{color:var(--good)}.delta{font-family:var(--mono);font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:999px;padding:2px 8px;font-size:clamp(11px,1vw,14px);font-weight:700;display:none}.delta.on{display:block}.delta.good{color:var(--good);background:#35e0a11f;border-color:#35e0a166}.delta.bad{color:var(--accent-hot);background:#d5001c24;border-color:#ff3b526b}.warn{letter-spacing:.26em;text-transform:uppercase;border-radius:6px;padding:4px 14px;font-size:clamp(11px,1.05vw,15px);font-weight:800;display:none}.warn.on{animation:1s step-end infinite blink;display:block}.warn.red{color:#fff;box-shadow:0 0 26px var(--glow);background:#d5001cd1}.warn.amber{color:#1b1405;background:#ffb020e0}@keyframes blink{0%,55%{opacity:1}56%,to{opacity:.18}}.table{width:var(--tablew);padding:8px 10px 9px}.table.off{display:none}.table .th{border-bottom:1px solid var(--line-soft);padding:0 4px 6px;display:block}.lrows{flex-direction:column;display:flex}.lrow{border-bottom:1px solid #ffffff0b;grid-template-columns:18px 1fr auto auto;align-items:center;gap:8px;padding:4px;font-size:clamp(10px,.92vw,13px);display:grid}.lrow:last-child{border-bottom:0}.lrow .lp{font-family:var(--mono);color:var(--faint);text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.lrow .ln{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.04em;color:var(--dim);overflow:hidden}.lrow .ll{font-family:var(--mono);color:var(--faint);font-size:.82em}.lrow .lg{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--dim);text-align:right;min-width:4.6em;font-size:.92em}.lrow.me{background:linear-gradient(90deg,#d5001c42,#d5001c00);border-radius:5px}.lrow.me .lp{color:var(--accent-hot)}.lrow.me .ln{color:#fff;font-weight:700}.lrow.me .lg{color:#fff}.map{width:var(--map);padding:8px;position:relative}.map canvas{aspect-ratio:1;width:100%;display:block}.map .maplab{position:absolute;bottom:6px;left:10px}.fps{font-family:var(--mono);font-size:var(--fs-k);font-variant-numeric:tabular-nums;letter-spacing:.14em;color:var(--dim);text-shadow:0 1px 4px #000000e6;padding-left:4px}.cluster{align-items:center;gap:clamp(7px,.9vw,13px);display:flex}.pedals{height:calc(var(--tach) * .58);align-items:flex-end;gap:5px;display:flex}.pedal{border:1px solid var(--line-soft);background:#ffffff14;border-radius:99px;align-items:flex-end;width:clamp(5px,.5vw,8px);height:100%;display:flex;position:relative;overflow:hidden}.pedal i{border-radius:99px;width:100%;height:0%;transition:height 60ms linear;display:block}.pedal.thr i{background:linear-gradient(180deg, #6bffcb, var(--good));box-shadow:0 0 12px #35e0a18c}.pedal.brk i{background:linear-gradient(180deg, #ff6b7e, var(--accent));box-shadow:0 0 12px var(--glow)}.tach{width:var(--tach);aspect-ratio:1;display:block}.drift{opacity:0;align-items:center;gap:8px;transition:opacity .18s,transform .18s;display:flex;transform:translateY(4px)}.drift.on{opacity:1;transform:none}.drift .k{color:var(--warn)}.dtrack{background:#ffffff1a;border-radius:99px;width:clamp(70px,8vw,120px);height:4px;display:block;overflow:hidden}.dtrack i{background:linear-gradient(90deg, var(--warn), var(--accent-hot));border-radius:99px;width:0%;height:100%;transition:width 80ms linear;display:block;box-shadow:0 0 14px #ffb02080}.banner{text-align:center;opacity:0;width:min(88vw,900px);transition:opacity .16s,transform .34s cubic-bezier(.16,1.08,.3,1);position:absolute;top:37%;left:50%;transform:translate(-50%,-50%)scale(.84)}.banner.on{opacity:1;transform:translate(-50%,-50%)scale(1)}.banner .btxt{letter-spacing:.1em;text-transform:uppercase;text-shadow:0 2px 5px #000000d9,0 8px 40px #000c,0 0 46px #d5001c59;font-size:clamp(26px,4.6vw,68px);font-weight:800;line-height:1.04}.banner .bsub{letter-spacing:.3em;text-transform:uppercase;color:var(--dim);text-shadow:0 2px 6px #000000e6;margin-top:10px;font-size:clamp(11px,1.2vw,17px);font-weight:600}.count{font-family:var(--mono);font-variant-numeric:tabular-nums;color:#fff;opacity:0;text-shadow:0 3px 10px #000000d9,0 0 60px #d5001cbf,0 10px 60px #000c;font-size:clamp(96px,21vw,300px);font-weight:800;line-height:1;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.count.on{animation:.95s cubic-bezier(.14,.9,.25,1) both countPop}.count.go{font-family:var(--sans);letter-spacing:-.02em;color:var(--good);text-shadow:0 3px 10px #000000d9,0 0 70px #35e0a1cc,0 10px 60px #000c;font-weight:800}.count.go.on{animation:1.2s cubic-bezier(.14,.9,.25,1) both goPop}@keyframes countPop{0%{opacity:0;filter:blur(9px);transform:translate(-50%,-50%)scale(2.3)}15%{opacity:1;filter:blur();transform:translate(-50%,-50%)scale(1)}70%{opacity:1;filter:blur();animation-timing-function:ease-in;transform:translate(-50%,-50%)scale(1)}to{opacity:0;filter:blur(2px);transform:translate(-50%,-50%)scale(.88)}}@keyframes goPop{0%{opacity:0;filter:blur(6px);transform:translate(-50%,-50%)scale(.4)}12%{opacity:1;filter:blur();transform:translate(-50%,-50%)scale(1.14)}26%{filter:blur();transform:translate(-50%,-50%)scale(1)}70%{opacity:1;filter:blur();animation-timing-function:ease-in;transform:translate(-50%,-50%)scale(1)}to{opacity:0;filter:blur(5px);transform:translate(-50%,-50%)scale(1.45)}}.results{opacity:0;visibility:hidden;background:radial-gradient(90% 70%,#0000008c,#000000d1);justify-content:center;align-items:center;padding:4vh 4vw;transition:opacity .35s,visibility .35s;display:flex;position:absolute;inset:0}.results.on{opacity:1;visibility:visible}.rpanel{background:var(--panel-solid);width:min(560px,92vw);max-height:88vh;padding:clamp(16px,2vw,26px);transition:transform .4s cubic-bezier(.16,1.08,.3,1);overflow:hidden;transform:scale(.94)}.results.on .rpanel{transform:scale(1)}.rtitle{letter-spacing:.3em;text-transform:uppercase;border-bottom:2px solid var(--accent);margin-bottom:6px;padding-bottom:12px;font-size:clamp(15px,1.7vw,24px);font-weight:800}.rrows{pointer-events:auto;flex-direction:column;max-height:52vh;display:flex;overflow-y:auto}.rrow{border-bottom:1px solid var(--line-soft);grid-template-columns:26px 1fr auto auto;align-items:center;gap:12px;padding:9px 6px;font-size:clamp(12px,1.1vw,16px);display:grid}.rrow .lp{font-family:var(--mono);text-align:right;color:var(--dim);font-variant-numeric:tabular-nums;font-weight:700}.rrow .ln{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.05em;overflow:hidden}.rrow .ll{font-family:var(--mono);color:var(--faint);font-size:.8em}.rrow .lg{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--dim);text-align:right;min-width:5em}.rrow.me{background:linear-gradient(90deg,#d5001c4d,#d5001c00)}.rrow.me .lp,.rrow.me .lg{color:#fff}.rrow.me .ln{font-weight:700}.rrow:first-child .lp{color:var(--warn)}.rfoot{justify-content:space-between;align-items:center;gap:14px;padding:14px 6px 4px;display:flex}.rfoot b{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--good);font-size:clamp(14px,1.4vw,20px)}.rhint{text-align:center;font-size:var(--fs-k);letter-spacing:.22em;color:var(--faint);text-transform:uppercase;padding-top:12px}@media (width<=900px){.hud-tr{display:none}.timing{min-width:160px}}@media (width<=620px){:root{--tach:128px;--map:96px}.hud-tl{gap:4px}.stat{min-width:54px;padding:6px 9px 7px}.pedals,.drift,.map .maplab{display:none}}@media (height<=520px){:root{--tach:clamp(120px, 26vh, 180px);--map:clamp(90px, 20vh, 150px)}.timing .tsplit{display:none}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.warn.on{opacity:1;animation:none}}#gate .g-tracks{flex-wrap:wrap;justify-content:center;gap:10px;margin:4px 0 18px;display:flex}#gate .g-track{cursor:pointer;min-width:132px;color:var(--dim);border:1px solid var(--line);border-radius:var(--r);font-family:var(--sans);background:#ffffff0a;flex-direction:column;align-items:center;gap:3px;padding:11px 18px;transition:background-color .12s,border-color .12s,color .12s;display:flex}#gate .g-track b{letter-spacing:.06em;text-transform:uppercase;font-size:15px;font-weight:700}#gate .g-track i{letter-spacing:.12em;color:var(--faint);font-size:11px;font-style:normal}#gate .g-track:hover{color:var(--ink);background:#ffffff17}#gate .g-track.on{border-color:var(--accent);color:var(--ink);box-shadow:0 0 0 1px var(--glow), 0 0 24px var(--glow);background:#d5001c2e}#gate .g-track.on i{color:var(--dim)}@media (pointer:coarse),(height<=520px){#gate .g-tracks{gap:7px;margin:2px 0 12px}#gate .g-track{min-width:96px;padding:8px 12px}#gate .g-track b{font-size:12px}#gate .g-track i{font-size:9.5px}}.replay{left:50%;bottom:max(18px, env(safe-area-inset-bottom));background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r);width:min(1120px,100vw - 32px);box-shadow:var(--shadow), inset 0 1px 0 #ffffff0f;font-family:var(--sans);color:var(--ink);opacity:0;visibility:hidden;pointer-events:none;z-index:30;padding:10px 14px 8px;transition:opacity .18s,transform .18s;position:absolute;transform:translate(-50%,14px)}.replay.on{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)}.rp-top{align-items:center;gap:10px;display:flex}.rp-btn{border:1px solid var(--line);min-width:34px;height:30px;color:var(--ink);font:700 11px/1 var(--sans);letter-spacing:.12em;cursor:pointer;background:#ffffff0d;border-radius:6px;flex:none;padding:0 10px}.rp-btn:hover{background:#ffffff1f;border-color:#ffffff4d}.rp-btn:active{transform:translateY(1px)}.rp-play{font-size:13px}.rp-exit{color:var(--accent-hot);border-color:#ff3b5266}.rp-time{font:600 12px/1 var(--mono);color:var(--dim);white-space:nowrap;gap:5px;display:flex}.rp-time b{color:#fff;font-weight:700}.rp-time i{color:var(--faint);font-style:normal}.rp-speed{text-align:center;min-width:40px;font:700 12px/1 var(--mono);color:var(--warn)}.rp-bar{cursor:pointer;touch-action:none;flex:auto;height:22px;position:relative}.rp-bar:before{content:"";background:#ffffff29;border-radius:2px;height:4px;margin-top:-2px;position:absolute;top:50%;left:0;right:0}.rp-fill{background:var(--accent);width:0;height:4px;box-shadow:0 0 12px var(--glow);border-radius:2px;margin-top:-2px;position:absolute;top:50%;left:0}.rp-head{background:#fff;border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute;top:50%;left:0;box-shadow:0 1px 6px #000000b3}.rp-hint{font:600 10px/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);text-align:center;margin-top:6px}@media (width<=760px){.rp-hint{display:none}.rp-btn{letter-spacing:.06em;padding:0 7px}.rp-time{font-size:11px}}.lamps{justify-content:flex-end;gap:6px;display:flex}.lamp{border:1px solid var(--line-soft);font:700 9.5px/1.5 var(--sans);letter-spacing:.16em;color:#eef2f72e;background:#090b0f8c;border-radius:5px;padding:2px 7px;transition:color .12s linear,border-color .12s linear,background-color .12s linear}.lamp.arm{color:var(--faint);border-color:var(--line)}.lamp.hot{color:#10130f;background:var(--warn);border-color:var(--warn);box-shadow:0 0 14px #ffb0208c}html,body{overscroll-behavior:none}#view{touch-action:none}.tc{--tc-top:92px;--tc-op:.34;--tc-bar-w:56px;--tc-bar-h:clamp(120px, 30vh, 190px);--tc-edge:12px;--tc-r:max(var(--tc-edge), env(safe-area-inset-right,0px));--tc-b:max(var(--tc-edge), env(safe-area-inset-bottom,0px));--tc-l:max(6px, env(safe-area-inset-left,0px));z-index:2;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;font-family:var(--sans);color:var(--ink);position:absolute;inset:0}.tc-wheel,.tc-gauge,.tc-drive,.tc-side,.tc-arrows{transition:opacity .22s}.tc.tc-idle{--tc-op:.12}.tc-off .tc-wheel,.tc-off .tc-gauge,.tc-off .tc-drive,.tc-off .tc-side,.tc-off .tc-arrows,.tc-off .tc-steer{opacity:0;visibility:hidden;pointer-events:none}.tc .tc-steer,.tc .tc-wheel,.tc .tc-arrows,.tc .tc-tilt{display:none}.tc.tc-s-drag .tc-steer,.tc.tc-s-tilt .tc-steer{display:block}.tc.tc-s-wheel .tc-wheel{display:grid}.tc.tc-s-wheel .tc-gauge{display:none}.tc.tc-s-arrows .tc-arrows{display:flex}.tc.tc-s-tilt .tc-tilt{margin-left:46px;display:flex}.tc-steer{top:calc(var(--tc-top) + env(safe-area-inset-top,0px));pointer-events:auto;touch-action:none;position:absolute;bottom:0;left:55%;right:0}.tc-mirror .tc-steer{left:0;right:55%}.tc-gauge{right:var(--tc-r);bottom:var(--tc-b);aspect-ratio:1;pointer-events:none;width:clamp(62px,12vh,84px);opacity:var(--tc-op);place-items:center;display:grid;position:absolute}.tc-mirror .tc-gauge{right:auto;left:max(var(--tc-l), var(--tc-edge))}.tc-wheel{right:var(--tc-r);bottom:var(--tc-b);aspect-ratio:1;pointer-events:auto;touch-action:none;width:clamp(104px,22vh,168px);opacity:var(--tc-op);background:radial-gradient(60% 60% at 50% 40%,#ffffff0d,#fff0 72%);border-radius:50%;place-items:center;position:absolute}.tc-mirror .tc-wheel{right:auto;left:max(var(--tc-l), var(--tc-edge))}.tc-wheel-svg,.tc-gauge-svg{fill:none;stroke:#eef2f780;stroke-width:5px;stroke-linecap:round;filter:drop-shadow(0 2px 10px #0000008c);will-change:transform;width:100%;height:100%;transition:transform .28s cubic-bezier(.22,.9,.3,1)}.tc-gauge-svg{transition:none}.tc-wheel.on{opacity:1}.tc-wheel.on .tc-wheel-svg{stroke:#eef2f7c7;transition:none}.tc-rim{stroke-width:7px}.tc-spoke{stroke-width:5px}.tc-hub{fill:#eef2f729;stroke-width:3px}.tc-mark{stroke:var(--accent-hot);stroke-width:6px}.tc-wheel.on .tc-hub{fill:#eef2f742}.tc-drive{left:max(var(--tc-l), var(--tc-edge));bottom:var(--tc-b);opacity:var(--tc-op);align-items:flex-end;gap:clamp(8px,1.6vh,14px);display:flex;position:absolute}.tc-mirror .tc-drive{left:auto;right:var(--tc-r);flex-direction:row-reverse}.tc-drive:has(.on){opacity:1}.tc-bar{width:var(--tc-bar-w);height:var(--tc-bar-h);border-radius:calc(var(--tc-bar-w) / 2);pointer-events:auto;touch-action:none;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow), inset 0 1px 0 #ffffff12;-webkit-backdrop-filter:blur(9px)saturate(120%);transition:border-color 90ms,box-shadow 90ms;position:relative;overflow:hidden}.tc-bar-fill{will-change:transform;height:50%;position:absolute;left:0;right:0;transform:scaleY(0)}.tc-bar-thr{transform-origin:bottom;background:linear-gradient(#35e0a11f,#35e0a173);bottom:50%}.tc-bar-brk{transform-origin:top;background:linear-gradient(#d5001c80,#d5001c24);top:50%}.tc-bar-mid{background:#ffffff38;height:1px;position:absolute;top:50%;left:9px;right:9px}.tc-bar-lbl{text-align:center;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-size:9px;font-weight:700;position:absolute;left:0;right:0}.tc-bar-up{top:9px}.tc.tc-auto .tc-bar-up{color:var(--good);opacity:.75}.tc.tc-auto .tc-bar-thr{opacity:.55}.tc-bar-dn{bottom:9px}.tc-bar.thr{border-color:var(--good);box-shadow:0 0 0 1px #35e0a166,0 0 24px #35e0a14d}.tc-bar.brk{border-color:var(--accent);box-shadow:0 0 0 1px var(--glow), 0 0 24px var(--glow)}.tc-hb,.tc-icon,.tc-tilt,.tc-arrow{-webkit-appearance:none;appearance:none;font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow), inset 0 1px 0 #ffffff12;-webkit-backdrop-filter:blur(9px)saturate(120%);pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;justify-content:center;align-items:center;margin:0;font-weight:700;transition:transform 90ms,background-color 90ms,border-color 90ms,opacity .2s;display:flex}.tc-hb{letter-spacing:.04em;width:52px;height:52px;color:var(--dim);border-radius:50%;padding:0 4px;font-size:9.5px}.tc-hb.on,.tc-arrow.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--glow), 0 0 26px var(--glow);color:var(--ink);background:#d5001c3d;transform:scale(.96)}.tc-arrows{right:var(--tc-r);bottom:var(--tc-b);opacity:var(--tc-op);gap:clamp(10px,2vh,18px);position:absolute}.tc-mirror .tc-arrows{right:auto;left:max(var(--tc-l), var(--tc-edge))}.tc-arrows:has(.on){opacity:1}.tc-arrow{width:clamp(64px,13vh,88px);height:clamp(64px,13vh,88px);color:var(--dim);border-radius:50%}.tc-arrow-r .tc-ico{transform:scaleX(-1)}.tc-side{left:var(--tc-l);top:calc(var(--tc-top) + env(safe-area-inset-top,0px) + 6px);flex-direction:column;align-items:flex-start;gap:7px;display:flex;position:absolute}.tc-icons{flex-direction:row;gap:7px;display:flex}a.tc-icon{justify-content:center;align-items:center;text-decoration:none;display:flex}.tc-icon{border-radius:var(--r);width:40px;height:40px;color:var(--dim);opacity:var(--tc-op)}.tc-icon.on{opacity:1;border-color:var(--accent);color:var(--ink);transform:scale(.94)}.tc-ico{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.tc-ico-f{fill:currentColor;stroke:none}.tc-tilt{letter-spacing:.2em;height:30px;color:var(--faint);opacity:.5;border-radius:999px;gap:7px;padding:0 12px;font-size:9px}.tc-dot{background:#ffffff2e;border-radius:50%;width:7px;height:7px;transition:background-color .2s,box-shadow .2s;box-shadow:inset 0 0 0 1px #ffffff1f}.tc-tilt.on{opacity:1;color:var(--ink);border-color:var(--good);background:#35e0a129}.tc-tilt.on .tc-dot{background:var(--good);box-shadow:0 0 10px #35e0a1cc}.tc-tilt.armed{opacity:.7;border-style:dashed}.tc-tilt.denied{opacity:.3;border-color:var(--line-soft);text-decoration:line-through}.tc-hb[hidden],.tc-icon[hidden],.tc-tilt[hidden],.tc-arrow[hidden]{display:none}html.touch-ui .settings-btn{top:calc(92px + env(safe-area-inset-top,0px) + 53px);left:max(6px, env(safe-area-inset-left,0px));opacity:.45;width:40px;height:40px;line-height:40px;bottom:auto;right:auto}html.touch-ui .settings-panel{top:calc(92px + env(safe-area-inset-top,0px) + 53px);left:calc(max(6px, env(safe-area-inset-left,0px)) + 46px);max-height:calc(100vh - var(--tc-top,92px) - 90px);max-height:calc(var(--vvh,100vh) - 150px);-webkit-overflow-scrolling:touch;bottom:auto;right:auto;overflow-y:auto}.tc-rotate{z-index:90;pointer-events:auto;touch-action:none;background:radial-gradient(120% 90% at 50% 40%,#282c3680 0%,#000000f7 62%),#05060a;flex-direction:column;justify-content:center;align-items:center;gap:clamp(18px,5vh,34px);display:none;position:fixed;inset:0}.tc-phone{border:2px solid var(--ink);background:#ffffff0a;border-radius:13px;width:58px;height:100px;animation:2.8s cubic-bezier(.6,0,.3,1) infinite tcRotate;position:relative;box-shadow:0 18px 50px #0009,inset 0 0 22px #ffffff0d}.tc-phone:before,.tc-phone:after{content:"";background:var(--faint);border-radius:99px;position:absolute;left:50%;transform:translate(-50%)}.tc-phone:before{width:18px;height:3px;top:7px}.tc-phone:after{width:26px;height:3px;bottom:7px}.tc-rot-t{letter-spacing:.26em;text-transform:uppercase;color:var(--dim);text-align:center;padding:0 8vw;font-size:clamp(13px,4.4vw,19px);font-weight:700}@keyframes tcRotate{0%,16%{transform:rotate(0)}46%,74%{transform:rotate(-90deg)}to{transform:rotate(0)}}@media (orientation:portrait) and (pointer:coarse){.tc-rotate{display:flex}.tc-wheel,.tc-gauge,.tc-drive,.tc-side,.tc-arrows,.tc-steer{display:none}#ui:has(.tc-rotate){z-index:120}}@media (pointer:coarse),(height<=520px){#ui .hud-bl,#ui .js-fps,#ui .hud-br .drift{display:none}#ui .hud-br{top:max(var(--pad), env(safe-area-inset-top));bottom:auto;right:calc(max(var(--pad), env(safe-area-inset-right)) + clamp(128px, 30vw, 178px) + 10px);--tach:72px;flex-direction:row;align-items:center;left:auto;transform:none}#ui .hud-tr{display:block}#ui .hud-tr .table{width:clamp(128px,30vw,178px);padding:6px 8px 7px}#ui .hud-tr .lrow{gap:6px;padding:3px;font-size:10px}#ui .hud-tr .lrow:nth-child(n+4){display:none}}html.touch-ui #ui .hud-bl,html.touch-ui #ui .js-fps,html.touch-ui #ui .hud-br .drift{display:none}html.touch-ui #ui .hud-br{top:max(var(--pad), env(safe-area-inset-top));bottom:auto;right:calc(max(var(--pad), env(safe-area-inset-right)) + clamp(128px, 30vw, 178px) + 10px);--tach:72px;flex-direction:row;align-items:center;left:auto;transform:none}html.touch-ui #ui .hud-tr{display:block}html.touch-ui #ui .hud-tr .table{width:clamp(128px,30vw,178px);padding:6px 8px 7px}html.touch-ui #ui .hud-tr .lrow{gap:6px;padding:3px;font-size:10px}html.touch-ui #ui .hud-tr .lrow:nth-child(n+4){display:none}
