:root{--ui-font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}html,body{height:100%;margin:0;overflow:hidden}canvas{display:block}#hud{color:#fff;background:#00000080;padding:4px 8px;font:14px/1.4 ui-monospace,monospace;position:fixed;top:8px;left:8px}#volume{accent-color:#ffc300;opacity:.8;width:120px}#volume:hover,#volume:focus-visible{opacity:1}#toast{pointer-events:none;opacity:0;color:#fff;background:#000000b3;padding:4px 8px;font:14px/1.4 ui-monospace,monospace;transition:opacity .3s;position:fixed;top:40px;left:8px}#toast.show{opacity:1}#build{pointer-events:none;color:#ffffffb3;background:#00000059;padding:2px 6px;font:11px/1.3 ui-monospace,monospace;position:fixed;bottom:8px;right:8px}.debug-off #hud,.debug-off #fps,.debug-off #build{display:none}#begin{z-index:10;cursor:pointer;color:#fff;font-family:var(--ui-font);text-shadow:0 .2vmin .6vmin #000;background:linear-gradient(#141a26d9,#080a10d9);border:.3vmin solid #ffffff59;border-radius:2vmin;flex-direction:column;align-items:center;gap:.6vmin;padding:1.4vmin 4vmin;font-style:italic;font-weight:800;animation:1.6s ease-in-out infinite begin-pulse;display:flex;position:fixed;top:40%;left:50%;transform:translate(-50%)}#begin span{letter-spacing:.04em;font-size:clamp(24px,5vmin,64px)}#begin small{font:600 clamp(11px, 1.8vmin, 22px) var(--ui-font);letter-spacing:.08em;color:#c7d2e0}@keyframes begin-pulse{50%{border-color:#78beffe6;box-shadow:0 0 2.4vmin #3c96ff80}}#pad-toast{left:50%;top:var(--s6,32px);z-index:45;pointer-events:none;padding:var(--s2,8px) var(--s4,16px);color:#fff;font:700 clamp(12px, 1.8vmin, 20px) var(--ui-font);letter-spacing:.06em;background:#080a10cc;border-radius:999px;position:fixed;transform:translate(-50%)}.screen-fade{z-index:40;pointer-events:none;opacity:0;background:#000;position:fixed;inset:0}:root{--hud-scale:1;--hud-font:var(--ui-font);--hud-w-regular:600;--hud-w-bold:800;--s1:calc(4px * var(--hud-scale));--s2:calc(8px * var(--hud-scale));--s3:calc(12px * var(--hud-scale));--s4:calc(16px * var(--hud-scale));--s5:calc(24px * var(--hud-scale));--s6:calc(32px * var(--hud-scale));--hud-margin:var(--s5);--hud-radius:var(--s2);--hud-shadow:0 1px 3px #0009;--hud-plate:#0a0e169e;--hud-edge:1px solid #ffffff1f;--hud-muted:#b9c4d3;--debug-top-left:44px;--debug-top-right:68px}.debug-off{--debug-top-left:0px;--debug-top-right:28px}.race-status,.race-speedo,.race-time,.race-countdown,.race-split,.race-keys,.race-effects{pointer-events:none;color:#fff;font-family:var(--hud-font);font-weight:var(--hud-w-bold);font-variant-numeric:tabular-nums;text-shadow:var(--hud-shadow);-webkit-user-select:none;user-select:none;position:fixed}.race-countdown[hidden],.race-chase[hidden],.race-split[hidden],.race-effects[hidden]{display:none}.race-effects{top:calc(var(--debug-top-left) + var(--hud-margin));gap:var(--s2);display:flex;left:50%;transform:translate(-50%)}.race-effect{padding:var(--s1) var(--s3);border-radius:var(--hud-radius);font-size:calc(clamp(12px, 2vmin, 26px) * var(--hud-scale));letter-spacing:.06em;background:var(--hud-plate);border:2px solid var(--effect);box-shadow:0 0 var(--s3) var(--effect)}.race-status{top:calc(var(--debug-top-right) + var(--hud-margin));right:var(--hud-margin);min-width:calc(clamp(150px, 22vmin, 280px) * var(--hud-scale));align-items:stretch;gap:var(--s1);padding:var(--s2) var(--s3);background:var(--hud-plate);border:var(--hud-edge);border-radius:var(--hud-radius);text-align:right;flex-direction:column;line-height:1.1;display:flex}.race-chase{justify-content:flex-end;align-items:center;gap:var(--s2);padding-bottom:var(--s1);border-bottom:var(--hud-edge);display:flex}.race-medal-dot{width:var(--s3);height:var(--s3);box-shadow:0 0 var(--s2) currentColor;background:currentColor;border-radius:50%}.race-target{color:#fff;font-size:calc(clamp(13px, 2.4vmin, 30px) * var(--hud-scale))}.race-target-delta{padding:0 var(--s1);border-radius:var(--s1);color:#fff;font-size:calc(clamp(11px, 1.8vmin, 22px) * var(--hud-scale))}.race-target-delta:empty{display:none}.race-target-delta.race-ahead{background:#1e6effd9}.race-target-delta.race-behind{background:#e12828bf}.race-chase.race-medal-best{color:#fff}.race-lap{font-size:calc(clamp(18px, 3.6vmin, 46px) * var(--hud-scale));letter-spacing:.02em}.race-cp{font-size:calc(clamp(13px, 2.4vmin, 30px) * var(--hud-scale));font-weight:var(--hud-w-regular);color:#e8f2ff}.race-best{font-size:calc(clamp(11px, 1.7vmin, 20px) * var(--hud-scale));font-weight:var(--hud-w-regular);color:var(--hud-muted)}.race-best:empty{display:none}.race-bump{animation:.45s ease-out race-bump}@keyframes race-bump{0%{color:#ffd24a;transform:scale(1.18)}to{transform:scale(1)}}.race-lap,.race-cp{transform-origin:100%}.race-time{bottom:var(--hud-margin);padding:var(--s1) var(--s4);font-size:calc(clamp(22px, 5vmin, 64px) * var(--hud-scale));letter-spacing:.03em;background:var(--hud-plate);border:var(--hud-edge);border-radius:var(--hud-radius);left:50%;transform:translate(-50%)}.race-speedo{right:var(--hud-margin);bottom:var(--hud-margin)}:root:not(.debug-off) .race-speedo{bottom:max(var(--hud-margin), 32px)}.race-gauge{--g:calc(clamp(120px, 22vmin, 280px) * var(--hud-scale));width:var(--g);height:var(--g);background:radial-gradient(circle,#0a0e169e 60%,#0a0e1600 71%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.race-ticks{--r:calc(var(--g) * .42);width:0;height:0;position:absolute;top:50%;left:50%}.race-ticks i{left:calc(var(--g) * -.012);top:calc(-1 * var(--r));width:calc(var(--g) * .024);height:calc(var(--g) * .08);transform-origin:50% var(--r);background:#ffffff38;border-radius:2px;transition:background 80ms;position:absolute}.race-ticks i.on{box-shadow:0 0 var(--s1) #ffb428cc;background:#ffc12e}.race-ticks i.on:nth-child(n+20){box-shadow:0 0 var(--s1) #ff5032e6;background:#ff5a3c}.race-speed{font-size:calc(var(--g) * .3);color:#ffd24a;line-height:1;position:relative}.race-unit{font-size:calc(var(--g) * .065);font-weight:var(--hud-w-regular);letter-spacing:.2em;color:var(--hud-muted);position:relative}.race-keys{left:var(--hud-margin);bottom:var(--hud-margin);padding:var(--s1) var(--s3);border-radius:var(--hud-radius);background:var(--hud-plate);border:var(--hud-edge);font-size:calc(13px * var(--hud-scale));font-weight:var(--hud-w-regular);letter-spacing:.04em;text-shadow:none}.race-hint{animation:race-hint-fade .6s ease-in var(--hint-delay,4s) forwards}@keyframes race-hint-fade{to{opacity:0;visibility:hidden}}.race-countdown{flex-direction:column;align-items:center;gap:2vmin;width:100%;display:flex;top:26%;left:0}.race-lights{background:var(--hud-plate);border-radius:3vmin;gap:1.6vmin;padding:1vmin 1.6vmin;display:flex}.race-lights i{background:#2a2f38;border-radius:50%;width:4.5vmin;height:4.5vmin;box-shadow:inset 0 -.4vmin .8vmin #0009}.race-lights i.on{background:radial-gradient(circle at 40% 35%,#ffb3a8,#ff2a1a 55%,#a00d05);box-shadow:0 0 2.5vmin #ff2a1a}.race-lights i.go{background:radial-gradient(circle at 40% 35%,#c8ffd0,#22e05a 55%,#0a8a2e);box-shadow:0 0 2.5vmin #22e05a}.race-count,.race-split-time,.race-split-delta{font-style:italic}.race-panel h2{font-weight:var(--hud-w-bold)}.race-record{color:#ffd24a;animation:1.2s ease-out both race-record}@keyframes race-record{0%{opacity:0;transform:scale(1.4)}30%{opacity:1;transform:scale(1)}60%{text-shadow:0 0 16px #ffd24a}}.race-panel-in{animation:.3s ease-out race-panel-in}@keyframes race-panel-in{0%{opacity:0;transform:translate(-50%,12px)}}.race-count{letter-spacing:.02em;background:linear-gradient(#fff 0%,#d6efff 42%,#3b9dff 52%,#1b5fd0 75%,#8fd0ff 100%);color:#0000;-webkit-text-stroke:.35vmin #0a2350;text-shadow:none;filter:drop-shadow(0 .6vmin .8vmin #0009);-webkit-background-clip:text;background-clip:text;font-size:clamp(80px,22vmin,280px);line-height:1}.race-count.race-go{-webkit-text-stroke-color:#063a18;background-image:linear-gradient(#fff 0%,#e6ffe9 40%,#3fe070 52%,#12963c 78%,#a6ffbf 100%)}.race-count.race-pop{animation:.9s cubic-bezier(.2,1.6,.4,1) both race-count-pop}@keyframes race-count-pop{0%{opacity:0;transform:scale(2.2)}25%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:.85;transform:scale(.9)}}.race-cp-flash{pointer-events:none;opacity:0;--flash:#ffffffb3;box-shadow:inset 0 0 6vmin 1.5vmin var(--flash);position:fixed;inset:0}.race-cp-flash.race-ahead{--flash:#1e6effbf}.race-cp-flash.race-behind{--flash:#e12828bf}.race-split{text-align:center;width:100%;top:30%;left:0}.race-split-time{font-size:clamp(22px,5vmin,64px)}.race-split-delta{border-radius:1vmin;margin-top:.6vmin;padding:.2vmin 1.6vmin;font-size:clamp(20px,4.4vmin,56px);display:inline-block}.race-split-delta:empty{display:none}.race-ahead .race-split-delta,.race-split-delta.race-ahead{background:#1e6effd9}.race-behind .race-split-delta,.race-split-delta.race-behind{background:#e12828d9}.race-panel .race-split-delta{font-family:var(--hud-font);color:#fff;margin:0 0 8px;font-size:clamp(16px,3vmin,32px);font-style:italic}.race-split.race-pop{animation:2.5s ease-out both race-split-pop}@keyframes race-split-pop{0%{opacity:0;transform:scale(1.35)}8%{opacity:1;transform:scale(1)}75%{opacity:1}to{opacity:0}}.race-panel{color:#fff;min-width:280px;font:var(--hud-w-regular) 16px/1.4 var(--hud-font);font-variant-numeric:tabular-nums;text-align:center;background:#000c;border-radius:8px;padding:16px 24px;position:fixed;top:15%;left:50%;transform:translate(-50%)}.race-panel input{font:var(--hud-w-regular) 18px var(--hud-font);text-transform:uppercase;text-align:center}.race-board ol{text-align:left}.race-mine{color:#ffc300}.race-pause{z-index:42;color:#fff;max-height:90vh;font:var(--hud-w-regular) 16px/1.4 var(--hud-font);font-variant-numeric:tabular-nums;text-align:center;background:#000c;border-radius:8px;padding:16px 24px;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.race-medal{font-size:20px;font-weight:700}.race-medal-author{color:#3fe08a}.race-medal-gold{color:#ffc300}.race-medal-silver{color:#c8d0d8}.race-medal-bronze{color:#d08040}.race-medal-none{color:#888}.race-laps{text-align:left}.race-help{z-index:20;color:#fff;max-height:90vh;font:var(--hud-w-regular) 15px/1.4 var(--hud-font);text-align:center;background:#080a10e6;border:.25vmin solid #ffffff2e;border-radius:1.6vmin;padding:2vmin 3vmin;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.race-help[hidden]{display:none}.race-help h2{font-family:var(--hud-font);margin:0 0 1vmin;font-style:italic}.race-help p{color:#c7d2e0;margin:1vmin 0 0;font-size:13px}.controls{text-align:left;font:var(--hud-w-regular) 14px/1.35 var(--hud-font);grid-template-columns:repeat(2,minmax(220px,1fr));gap:1vmin 3vmin;display:grid}.race-pause .controls{margin-top:12px}.controls h3{font-family:var(--hud-font);color:#ffd24a;letter-spacing:.04em;margin:.6vmin 0;font-style:italic}.controls div{align-items:baseline;gap:1.2vmin;padding:.2vmin 0;display:flex}.controls kbd{text-align:right;font:var(--hud-w-bold) 13px var(--hud-font);color:#fff;flex:0 0 8em}.controls span{color:#dfe7f2}.colour-safe{--delta-ahead:#2f7dff;--delta-behind:#ff9a1f}.colour-safe .race-target-delta.race-ahead,.colour-safe .race-ahead .race-split-delta,.colour-safe .race-split-delta.race-ahead{background:var(--delta-ahead);color:#fff}.colour-safe .race-target-delta.race-behind,.colour-safe .race-behind .race-split-delta,.colour-safe .race-split-delta.race-behind{background:var(--delta-behind);color:#111}.colour-safe .race-cp-flash.race-ahead{--flash:var(--delta-ahead)}.colour-safe .race-cp-flash.race-behind{--flash:var(--delta-behind)}.colour-safe .race-target-delta.race-ahead:before,.colour-safe .race-split-delta.race-ahead:before,.colour-safe .race-ahead .race-split-delta:before{content:"▲ "}.colour-safe .race-target-delta.race-behind:before,.colour-safe .race-split-delta.race-behind:before,.colour-safe .race-behind .race-split-delta:before{content:"▼ "}.colour-safe .race-medal-dot{width:calc(var(--s3) * 1.6);height:calc(var(--s3) * 1.6);color:inherit;justify-content:center;align-items:center;display:inline-flex}.colour-safe .race-medal-dot:after{color:#111;font-size:calc(var(--s3) * 1.1);font-style:normal;font-weight:700;line-height:1}.colour-safe .race-medal-author .race-medal-dot:after{content:"A"}.colour-safe .race-medal-gold .race-medal-dot:after{content:"G"}.colour-safe .race-medal-silver .race-medal-dot:after{content:"S"}.colour-safe .race-medal-bronze .race-medal-dot:after{content:"B"}.reduced-effects .race-bump,.reduced-effects .race-record,.reduced-effects .race-panel-in,.reduced-effects .race-count.race-pop{animation:none}.reduced-effects .race-split.race-pop{animation:2.5s linear both race-split-fade}@keyframes race-split-fade{0%,75%{opacity:1}to{opacity:0}}.race-records{top:calc(var(--debug-top-left) + var(--hud-margin));left:var(--hud-margin);pointer-events:none;-webkit-user-select:none;user-select:none;min-width:calc(clamp(150px, 22vmin, 260px) * var(--hud-scale));padding:var(--s2) var(--s3);color:#fff;font-family:var(--hud-font);font-weight:var(--hud-w-regular);font-variant-numeric:tabular-nums;text-shadow:var(--hud-shadow);line-height:1.25;font-size:calc(clamp(11px, 1.7vmin, 20px) * var(--hud-scale));background:var(--hud-plate);border:var(--hud-edge);border-radius:var(--hud-radius);position:fixed}.race-records-head{justify-content:space-between;align-items:center;gap:var(--s3);font-weight:var(--hud-w-bold);letter-spacing:.08em;display:flex}.race-records-head kbd{padding:0 var(--s1);border:var(--hud-edge);border-radius:var(--s1);font:inherit;color:var(--hud-muted)}.race-records-closed .race-records-body{display:none}.race-records-body{margin-top:var(--s1);padding-top:var(--s1);border-top:var(--hud-edge)}.race-records ol{margin:0;padding:0;list-style:none}.race-records li{grid-template-columns:var(--s3) 1fr auto auto;align-items:center;gap:var(--s2);padding:1px 0;display:grid}.race-records-top li{grid-template-columns:1fr auto}.race-records .race-medal-dot{width:var(--s2);height:var(--s2)}.race-rec.race-medal-pb{color:#fff;font-weight:var(--hud-w-bold)}.race-rec.race-medal-pb .race-medal-dot{box-shadow:0 0 var(--s1) #9fd3ff;background:#9fd3ff}.race-rec-label{color:inherit;letter-spacing:.04em}.race-rec-time{color:#fff;text-align:right}.race-rec-delta{min-width:4.6em;padding:0 var(--s1);border-radius:var(--s1);text-align:right;color:#fff}.race-rec-delta:empty{visibility:hidden}.race-rec-delta.race-beaten{background:#1eaa50d9}.race-rec-delta.race-behind{background:#e12828bf}.race-records h4{margin:var(--s2) 0 var(--s1);letter-spacing:.08em;color:var(--hud-muted);font-size:.85em}.race-records-top li{color:#e8f2ff}.race-rec-empty{color:var(--hud-muted)}.race-results{z-index:41;width:min(92vw, calc(440px * var(--hud-scale)));gap:var(--s2);max-height:92vh;padding:var(--s4) var(--s5);box-sizing:border-box;background:var(--hud-plate);border:var(--hud-edge);border-radius:var(--hud-radius);color:#fff;text-align:center;font:var(--hud-w-regular) calc(15px * var(--hud-scale))/1.4 var(--hud-font);font-variant-numeric:tabular-nums;text-shadow:var(--hud-shadow);transition:opacity .3s ease-in-out;display:grid;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.race-results-in{animation:.35s ease-out both race-results-in}@keyframes race-results-in{0%{opacity:0;transform:translate(-50%,calc(12px - 50%))}}.screen-leaving .race-results,.screen-leaving .race-pause{opacity:0;transition:opacity .3s ease-in-out}.race-results-head,.race-results-row{justify-content:center;align-items:center;gap:var(--s3);display:flex}.race-results-head h2{font:italic var(--hud-w-bold) calc(40px * var(--hud-scale)) var(--hud-font);margin:0}.race-results-head .race-record{font-style:italic;font-weight:var(--hud-w-bold);font-size:calc(13px * var(--hud-scale));letter-spacing:.04em}.race-results-medal{width:calc(58px * var(--hud-scale));height:calc(58px * var(--hud-scale));font-weight:var(--hud-w-bold);font-size:calc(10px * var(--hud-scale));letter-spacing:.03em;box-shadow:0 0 var(--s3) currentColor;text-shadow:none;-webkit-text-fill-color:#111;background:currentColor;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.race-results-best{color:var(--hud-muted)}.race-results .race-split-delta{padding:0 var(--s2);border-radius:var(--s2);font-style:italic;font-weight:var(--hud-w-bold);font-size:calc(15px * var(--hud-scale));margin:0}.race-results-splits{border-collapse:collapse;width:100%;font-size:calc(12px * var(--hud-scale))}.race-results-splits th{color:var(--hud-muted);font-weight:var(--hud-w-regular)}.race-results-splits th,.race-results-splits td{padding:2px var(--s1);text-align:right;white-space:nowrap;border-bottom:1px solid #ffffff14}.race-results-splits .race-results-pb{color:var(--hud-muted)}.race-results-splits .race-results-worst td{background:#e1282838}.race-results-splits .race-results-worst td:first-child{box-shadow:inset 3px 0 #ff5a4a}.race-results-splits th:first-child,.race-results-splits td:first-child{text-align:left}.race-results-splits .race-ahead{color:#7fb0ff}.race-results-splits .race-behind{color:#ff7a7a}.race-results .race-medals p{color:var(--hud-muted);margin:0}.race-results .race-medals .race-medal{display:none}.race-results-entry p{margin:var(--s1) 0}.race-results input{font:var(--hud-w-regular) 18px var(--hud-font);text-transform:uppercase;text-align:center;width:9ch}.race-results .race-results-actions{margin:var(--s2) 0 0;flex-flow:wrap;justify-content:center;min-width:0}.race-results .race-results-actions .menu-item{font-size:calc(15px * var(--hud-scale));text-align:center;flex:auto}.race-results .race-results-actions .menu-item:first-child{color:#111;text-shadow:none;background:#fff}.ghost-tag{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;padding:var(--s1) var(--s2);background:var(--hud-plate);border:var(--hud-edge);border-radius:var(--s1);color:#fff;font-family:var(--hud-font);font-weight:var(--hud-w-regular);font-variant-numeric:tabular-nums;font-size:max(12px, calc(clamp(12px, 1.5vmin, 18px) * var(--hud-scale)));text-shadow:var(--hud-shadow);flex-direction:column;align-items:center;gap:1px;display:flex;position:fixed;top:0;left:0}.ghost-tag-name{font-weight:var(--hud-w-bold);letter-spacing:.04em;text-transform:uppercase;font-size:.85em}.ghost-tag-pb .ghost-tag-name{color:#b9d4ff}.ghost-tag-gold .ghost-tag-name{color:#ffc300}.ghost-tag-author .ghost-tag-name{color:#3fe08a}.ghost-tag-detail{padding:0 var(--s1);border-radius:3px}.ghost-tag-detail.race-ahead{background:#1e6effb3}.ghost-tag-detail.race-behind{background:#e12828b3}.colour-safe .ghost-tag-detail.race-ahead{background:var(--delta-ahead);color:#fff}.colour-safe .ghost-tag-detail.race-behind{background:var(--delta-behind);color:#111}.colour-safe .ghost-tag-detail.race-ahead:before{content:"▲ "}.colour-safe .ghost-tag-detail.race-behind:before{content:"▼ "}.menu-screen{z-index:20;color:#fff;font:600 16px var(--ui-font);font-variant-numeric:tabular-nums;background:radial-gradient(circle at 50% 30%,#1c2a3a,#070b10);flex-direction:column;justify-content:safe center;align-items:center;gap:18px;display:flex;position:fixed;inset:0;overflow-y:auto}.menu-screen h1{font:italic 800 56px var(--ui-font);letter-spacing:6px;margin:0;font-style:italic}.menu-cards{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.menu-card{color:#fff;width:200px;font:600 15px var(--ui-font);cursor:pointer;text-align:center;background:#ffffff0f;border:2px solid #0000;border-radius:10px;padding:12px}.menu-card svg{background:#0d1620;border-radius:6px;margin:0 auto 8px;display:block}.menu-card path{fill:none;stroke:#e8eef4;stroke-width:3px;stroke-linejoin:round}.menu-card h3{text-transform:uppercase;margin:4px 0;font-size:20px}.menu-card p{color:#b8c4d0;margin:2px 0}.menu-group{flex-direction:column;align-items:center;gap:8px;display:flex}.menu-group h2{font:800 18px var(--ui-font);letter-spacing:4px;color:#889;margin:0}.menu-card-small{width:120px;padding:8px;font-size:13px}.menu-card-small h3{font-size:14px}.menu-card .menu-tier{text-transform:uppercase;font-size:12px}.menu-card .menu-tier-white{color:#f4f4f4}.menu-card .menu-tier-green{color:#5fd068}.menu-card .menu-tier-blue{color:#4aa3ff}.menu-card .menu-tier-red{color:#ff5a4a}.menu-card .menu-tier-black{color:#9a9aa6}.menu-focus{background:#ffc3001f;border-color:#ffc300}.menu-list{flex-direction:column;gap:6px;min-width:220px;margin:12px 0;display:flex}.menu-item{color:#fff;font:600 18px var(--ui-font);cursor:pointer;text-align:left;background:#ffffff14;border:2px solid #0000;border-radius:6px;padding:8px 16px}.menu-item.menu-focus{border-color:#ffc300}.menu-settings{text-align:left;grid-template-columns:auto auto;align-items:center;gap:8px 16px;display:grid}.menu-settings .menu-slot{color:#667}.menu-settings[hidden]{display:none}.menu-settings-tabs{flex-direction:column;gap:12px;min-width:360px;display:flex}.menu-tabs{border-bottom:2px solid #ffffff1f;align-items:center;gap:6px;display:flex}.menu-tab{color:#b8c4d0;font:600 15px var(--ui-font);cursor:pointer;background:#ffffff0f;border:2px solid #0000;border-bottom:none;border-radius:6px 6px 0 0;padding:6px 14px}.menu-tab:hover{color:#fff}.menu-tab-active{color:#fff;background:#ffc3001f;border-color:#ffc300}.menu-tabs .menu-hint{white-space:nowrap;margin-left:auto}.menu-tabs .menu-tab{padding:6px 10px;font-size:14px}.menu-hint{color:#889;font-size:13px}.menu-item,.menu-tab,.menu-card{transition:background .12s,border-color .12s,transform 80ms}.menu-item:hover,.menu-card:hover{background:#ffffff24}.menu-tab:hover{background:#ffffff1a}.menu-item:active,.menu-tab:active,.menu-card:active{background:#ffc30038;transform:scale(.97)}.menu-item:focus-visible,.menu-tab:focus-visible,.menu-card:focus-visible{outline-offset:2px;outline:2px solid #8fd0ff}.pad-focus{outline-offset:2px;outline:2px solid #ffc300}.menu-item[disabled],.menu-tab[disabled],.menu-card[disabled]{opacity:.4;cursor:not-allowed;background:#ffffff0a;transform:none}.menu-build{color:#b8c4d0;font:12px ui-monospace,monospace}.menu-seg{flex-wrap:wrap;gap:3px;display:inline-flex}.menu-seg-item{color:#fff;cursor:pointer;background:#ffffff14;border:2px solid #0000;border-radius:6px;padding:3px 10px;font:14px monospace}.menu-seg-item:disabled{cursor:default;opacity:.45}.menu-seg-item.menu-seg-on{opacity:1;background:#ffc3001f;border-color:#ffc300}.menu-link{color:#ffc300;font:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px;text-decoration:underline}.menu-span{grid-column:1/-1}.menu-advanced{border-top:1px dashed #ffffff26;padding-top:6px}.menu-advanced summary{color:#b8c4d0;cursor:pointer}.menu-advanced .menu-settings{margin-top:6px}.menu-bindings table{border-collapse:collapse}.menu-bindings td{border-bottom:1px solid #ffffff12;padding:2px 6px}.menu-bindings tr.menu-clash td:first-child{color:#ff5a4a}.menu-bindings tr.menu-clash .menu-key{color:#ff5a4a;border-color:#ff5a4a}.menu-key{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff40;border-radius:5px;min-width:64px;padding:2px 8px;font:13px monospace}.menu-key-empty{color:#667;border-style:dashed}.menu-key-listen{color:#ffc300;border-color:#ffc300;animation:1s steps(2,end) infinite menu-blink}@keyframes menu-blink{50%{opacity:.4}}.menu-toast{background:#ff5a4a26;border:1px solid #ff5a4a;border-radius:6px;margin:6px 0;padding:4px 8px;font-size:13px}.menu-toast[hidden]{display:none}.menu-select{justify-content:flex-start;align-items:stretch;gap:var(--s4,16px);padding:var(--s5,24px);box-sizing:border-box;flex-direction:row;overflow:hidden}.menu-select.menu-live{background:0 0}.menu-panel{box-sizing:border-box;background:var(--hud-plate,#0a0e169e);border:var(--hud-edge,1px solid #ffffff1f);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;flex-direction:column;gap:12px;width:min(560px,48vw);max-height:100%;padding:16px 20px;display:flex;overflow-y:auto}.menu-panel h1{text-align:left;font-size:44px}.menu-select .menu-group{align-items:stretch}.menu-select .menu-group h2{text-align:left;font-size:14px}.menu-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.menu-tile{background:#00000059;width:auto;padding:0;overflow:hidden}.menu-thumb{aspect-ratio:16/10;background:#0d1620;position:relative}.menu-thumb img,.menu-thumb svg{object-fit:cover;background:0 0;border-radius:0;width:100%;height:100%;margin:0;display:block}.menu-thumb svg{box-sizing:border-box;padding:8%}.tier-band{height:5px;position:absolute;bottom:0;left:0;right:0}.tier-white{background:#f4f4f4}.tier-green{background:#5fd068}.tier-blue{background:#4aa3ff}.tier-red{background:#ff5a4a}.tier-black{background:#9a9aa6}.tier-none{background:0 0}.menu-tile-meta{font:italic 800 14px var(--ui-font);justify-content:space-between;align-items:center;gap:6px;padding:4px 8px;display:flex}.menu-tile-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding-right:2px;overflow:hidden}.menu-tile-meta .medal-dot{flex:none}.medal-dot{vertical-align:-1px;border-radius:50%;width:12px;height:12px;display:inline-block;box-shadow:0 0 0 1px #0009}.medal-author{background:#3fe08a}.medal-gold{background:#ffc300}.medal-silver{background:#c8d0d8}.medal-bronze{background:#d08040}.medal-none{background:0 0;box-shadow:inset 0 0 0 2px #667}.menu-settings-button{width:auto}.menu-preview{box-sizing:border-box;background:var(--hud-plate,#0a0e169e);border:var(--hud-edge,1px solid #ffffff1f);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;flex-direction:column;align-self:flex-start;gap:8px;width:min(340px,28vw);padding:12px;display:flex}.menu-preview-shot{aspect-ratio:16/10;background:#0d1620;border-radius:8px;overflow:hidden}.menu-preview-shot[hidden]{display:none}.menu-preview-shot img{object-fit:cover;width:100%;height:100%;display:block}.menu-preview-head{align-items:baseline;gap:8px;display:flex}.menu-preview-name{font:italic 800 16px var(--ui-font)}.menu-preview .menu-tier{text-transform:uppercase;font-size:11px}.menu-tier-white{color:#f4f4f4}.menu-tier-green{color:#5fd068}.menu-tier-blue{color:#4aa3ff}.menu-tier-red{color:#ff5a4a}.menu-tier-black{color:#9a9aa6}.menu-preview-pb{font:italic 800 18px var(--ui-font);align-items:center;gap:8px;display:flex}.menu-preview-medals{border-collapse:collapse;width:100%;font:600 13px var(--ui-font);font-variant-numeric:tabular-nums}.menu-preview-medals td{border-bottom:1px solid #ffffff12;padding:2px 4px}.menu-preview-medals td:nth-child(n+2){text-align:right}.menu-preview-medals .race-ahead{color:#7fb0ff}.menu-preview-medals .race-behind{color:#ff7a7a}.menu-race-button{color:#111;background:#fff;align-self:flex-start}.colour-safe .menu-preview-medals .race-ahead{color:var(--delta-ahead)}.colour-safe .menu-preview-medals .race-behind{color:var(--delta-behind)}.menu-ghosts{flex-wrap:wrap;gap:4px 14px;display:flex}.menu-ghost{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.tuned-badge{z-index:40;color:#fff;letter-spacing:.12em;pointer-events:none;background:#ff3b6b;border-radius:.6vmin;padding:.4vmin 1.6vmin;font:italic 700 clamp(14px,2.6vmin,32px) system-ui,sans-serif;position:fixed;top:8vmin;left:50%;transform:translate(-50%);box-shadow:0 0 1.2vmin #ff3c6eb3}.tuned-badge[hidden],.tuning-panel[hidden]{display:none}.tuning-panel{z-index:50;color:#e8f2ff;background:#0a0e16e6;width:min(440px,46vw);padding:8px 10px;font:12px/1.3 system-ui,sans-serif;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.tuning-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.tuning-head strong{margin-right:auto;font-size:13px}.tuning-panel button{font:inherit;color:inherit;cursor:pointer;background:#1d2636;border:1px solid #4a5a72;border-radius:4px;padding:2px 8px}.tuning-panel button:hover{background:#2a3850}.tuning-status{color:#9fb3cc}.tuning-json{box-sizing:border-box;color:#cfe0f5;background:#0b0f17;border:1px solid #33425a;width:100%;font:11px ui-monospace,monospace}.tuning-group{margin-top:6px}.tuning-group summary{color:#ffc12e;cursor:pointer;justify-content:space-between;align-items:center;padding:2px 0;font-weight:700;display:flex}.tuning-row{grid-template-columns:1fr 120px 52px 56px;align-items:center;gap:6px;padding:1px 0;display:grid}.tuning-row input{width:100%}.tuning-value{text-align:right;font-variant-numeric:tabular-nums}.tuning-default{color:#7d8ea6;font-size:11px}.tuning-row.changed .tuning-label,.tuning-row.changed .tuning-value{color:#ff7a9a}.challenge-banner,.challenge-toast{pointer-events:none;color:#fff;font-family:var(--hud-font);font-weight:var(--hud-w-bold);font-variant-numeric:tabular-nums;text-shadow:var(--hud-shadow);-webkit-user-select:none;user-select:none;position:fixed}.challenge-banner{top:calc(var(--debug-top-left) + var(--hud-margin));align-items:baseline;gap:var(--s3);padding:var(--s1) var(--s4);border-radius:var(--hud-radius);background:var(--hud-plate);border:var(--hud-edge);font-size:calc(clamp(13px, 2.2vmin, 28px) * var(--hud-scale));display:flex;left:50%;transform:translate(-50%)}.challenge-label{color:var(--hud-muted);font-weight:var(--hud-w-regular);letter-spacing:.08em;font-size:.8em}.challenge-time{color:#ffd34d}.challenge-on .race-effects{top:calc(var(--debug-top-left) + var(--hud-margin) + clamp(13px, 2.2vmin, 28px) * var(--hud-scale) * 2.2)}.challenge-error{z-index:45;cursor:pointer;color:#fff;max-width:80vw;font-family:var(--ui-font);text-align:center;background:#781418e6;border:1px solid #ffffff40;border-radius:8px;padding:10px 18px;font-size:clamp(13px,2vmin,20px);font-weight:600;position:fixed;top:8px;left:50%;transform:translate(-50%)}.challenge-toast{top:var(--hud-margin);z-index:45;padding:var(--s2) var(--s4);border-radius:var(--hud-radius);background:var(--hud-plate);border:var(--hud-edge);opacity:0;font-size:calc(clamp(13px, 2vmin, 22px) * var(--hud-scale));transition:opacity .2s;left:50%;transform:translate(-50%)}.challenge-toast.show{opacity:1}
