*{box-sizing:border-box}:root{color:#fff8e4;background:#122c3b;font-family:system-ui,sans-serif}body{margin:0}#game{isolation:isolate;height:100dvh;position:relative;overflow:hidden}.world{z-index:-1;display:block;position:absolute;inset:0}.hud{pointer-events:none;justify-content:space-between;align-items:start;gap:10px;display:flex;position:absolute;inset:20px 22px auto}.identity,.timing,#map,.speed,.message{background:#122c3b;border:2px solid #fff8e4;border-radius:12px;box-shadow:4px 5px #122c3b55}.identity{padding:9px 13px 12px;transform:rotate(-3deg)}.identity>span,.timing span,.speed span{letter-spacing:.12em;font-size:.65rem;font-weight:850;display:block}.identity strong{letter-spacing:-.06em;margin-top:6px;font-size:clamp(1rem,3vw,2.4rem);font-weight:1000;line-height:1.06;display:block}.identity strong span{color:#ffc844}.race-hud{align-items:center;gap:8px;display:flex}.timing{align-items:center;gap:clamp(9px,2vw,24px);padding:9px 13px;display:flex}.timing b{color:#ffc844;font-variant-numeric:tabular-nums;font-size:clamp(.8rem,2.2vw,1.25rem);display:block}.audio-toggle{color:#ffc844;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;background:#294859;border:2px solid #587385;place-items:center;width:44px;height:44px;padding:0;display:grid}.audio-toggle svg{width:30px;height:30px}.speaker-body{fill:currentColor;stroke:#122c3b;stroke-width:1.5px;stroke-linejoin:round}.speaker-waves,.speaker-slash{fill:none;stroke:currentColor;stroke-width:2.8px;stroke-linecap:round}.speaker-slash,.audio-toggle[data-mode=engine] .speaker-outer-wave,.audio-toggle[data-mode=silent] .speaker-waves{display:none}.audio-toggle[data-mode=silent]{color:#b8bec2;background:#394248}.audio-toggle[data-mode=silent] .speaker-slash{stroke:#ff5858;stroke-width:3.5px;display:block}#map{width:clamp(98px,22vw,170px);height:auto;position:absolute;bottom:48px;right:22px}.speed{text-align:center;min-width:84px;padding:4px 13px 8px;position:absolute;bottom:48px;left:22px}.speed b{color:#ffc844;font-size:clamp(1.35rem,5vw,2.5rem);line-height:1.05;display:block}.speed #held-item{color:#67e4dc;margin-top:5px}.speed #held-item[hidden]{display:none}#race-countdown{z-index:1;color:#ffcf59;white-space:nowrap;pointer-events:none;background:#122c3b;border:2px solid #fff8e4;border-radius:14px;padding:.1em .36em;font-size:clamp(2rem,11vmin,5.5rem);font-weight:950;position:absolute;top:39%;left:50%;transform:translate(-50%,-50%)}.message{text-align:center;width:min(88%,440px);max-height:calc(100% - 16px);padding:21px;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.message[hidden]{display:none}h1{letter-spacing:-.07em;margin:0;font-size:clamp(2rem,8vw,4rem);font-weight:1000;line-height:1}button{color:#122c3b;font:inherit;cursor:pointer;background:#ffc844;border:2px solid #122c3b;border-radius:9px;font-weight:900}.menu-options{gap:6px;margin:12px 0 6px;padding:0;list-style:none;display:grid}.message button{min-height:44px;padding:6px 14px}.menu-options button{width:100%}.menu-options small{font-weight:650;display:block}.message .menu-secondary{color:#fff8e4;background:#294859;border-color:#587385}.message button:disabled{color:#bdc5c8;cursor:default;background:#374a54}.credits-list{text-align:left;font-size:.84rem}.credits-list a{color:#ffcf59}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #fff}.controls{color:#fff8e4;background:#122c3b;border-radius:4px;margin:0;padding:3px 6px;font-size:.63rem;font-weight:750;position:absolute;bottom:8px;left:22px}.controls span{color:#ffc844}#game{--stick-size:clamp(88px, 24vw, 116px);--touch-bottom:max(34px, calc(env(safe-area-inset-bottom) + 26px))}.touch{bottom:var(--touch-bottom);left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));pointer-events:none;justify-content:space-between;align-items:end;display:none;position:absolute}.joystick{width:var(--stick-size);height:var(--stick-size);pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;background:#122c3bcc;border:2px solid #fff8e4;border-radius:50%;position:relative}.joystick-knob{aspect-ratio:1;width:35%;transform:translate(calc(-50% + var(--stick-x,0px)), calc(-50% + var(--stick-y,0px)));pointer-events:none;background:#ffc844;border:2px solid #122c3b;border-radius:50%;position:absolute;top:50%;left:50%}.joystick-label{text-align:center;pointer-events:none;width:100%;font-size:.62rem;font-weight:850;position:absolute;bottom:8%}.touch-cluster{align-items:center;gap:4px;display:flex}.touch-cluster button{touch-action:manipulation;pointer-events:auto;min-width:44px;height:44px;padding:0 5px}#touch-item{touch-action:none;-webkit-user-select:none;user-select:none;background:#67e4dc;font-size:.75rem}#touch-item:disabled{color:#bdc5c8;cursor:default;background:#294859}#touch-drift{width:var(--stick-size);height:var(--stick-size);pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%}#touch-drift[data-held]{background:#fff8e4;box-shadow:inset 0 0 0 2px #c17611}@media (any-pointer:coarse),(width<=620px){.hud{inset:12px 10px auto}.identity{padding:6px 8px 8px}.identity>span,.timing span{font-size:.53rem}.timing{gap:clamp(5px,1.5vw,9px);padding:4px 6px}.controls{display:none}#game:has(.message[hidden]) .touch{display:flex}#map,.speed{bottom:calc(var(--touch-bottom) + var(--stick-size) + 8px)}}@media (width<=390px){.hud{flex-direction:column}.race-hud{align-self:end}}@media (height<=460px){#game{--stick-size:88px}}@media (any-pointer:coarse) and (orientation:landscape) and (height<=460px),(orientation:landscape) and (width<=900px) and (height<=460px){#game{--stick-size:clamp(64px, 26dvh, 88px)}.hud{top:8px}.identity strong{margin-top:4px;font-size:clamp(1rem,5.5dvh,1.3rem)}#map,.speed{bottom:calc(var(--touch-bottom) + var(--stick-size) + 8px)}#map{width:clamp(62px,27dvh,104px);right:max(12px, env(safe-area-inset-right))}.speed{left:max(12px, env(safe-area-inset-left));min-width:54px;padding:3px 7px}.speed b{font-size:1.25rem}.speed span{font-size:.5rem}.message{padding:10px 16px}.message h1{font-size:clamp(1.65rem,13dvh,2.6rem)}.message p{margin-block:7px}}
