/* Preparation feedback appears before the graphics modules finish downloading. */
html,body{width:100%;height:100%;overscroll-behavior:none}body>canvas{position:fixed;inset:0;touch-action:none}.screen{height:100dvh;overflow-y:auto;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}#loading-panel{position:relative;width:min(360px,100%);margin:27px 0 4px;padding-bottom:5px}.loading-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:24px}.screen #load-status{font:11px/1.5 monospace;color:#efd7b2;letter-spacing:.02em}#load-percent{font:12px monospace;color:#f1b368;font-variant-numeric:tabular-nums}#load-progress{appearance:none;-webkit-appearance:none;display:block;width:100%;height:7px;border:0;background:#0d1310;border-radius:0;margin-top:8px;overflow:hidden}#load-progress::-webkit-progress-bar{background:#101512;border:1px solid #7a603f}#load-progress::-webkit-progress-value{background:linear-gradient(90deg,#ba512b,#efba6a);transition:width .25s}#load-progress::-moz-progress-bar{background:#efba6a}.loading-pulse{position:absolute;bottom:5px;width:24%;height:7px;background:linear-gradient(90deg,transparent,#ffe4b777,transparent);animation:load-sweep 1.4s infinite ease-in-out}#loading-panel[data-state=ready] .loading-pulse,#loading-panel[data-state=error] .loading-pulse{display:none}#loading-panel[data-state=ready] #load-percent{color:#cbd9aa}#loading-panel[data-state=error] #load-status{color:#ffbf97}.screen button:disabled{opacity:.8}.start-rotate,.touch-help{display:none}@keyframes load-sweep{from{left:0;opacity:.3}to{left:76%;opacity:1}}@media(max-width:850px){#loading-panel{margin-left:auto;margin-right:auto}}
/* Safe-area margins keep the controls clear of the iPhone notch and home bar. */
.touch-ui body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}.touch-ui button{touch-action:none}.touch-ui .keyboard-help{display:none}.touch-ui .touch-help{display:block}#touch-controls{position:fixed;inset:0;z-index:2;pointer-events:none;--control-bottom:max(18px,env(safe-area-inset-bottom));--control-left:max(18px,env(safe-area-inset-left));--control-right:max(18px,env(safe-area-inset-right));--control-top:max(10px,env(safe-area-inset-top))}#touch-controls button,#drive-stick{pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent}#drive-stick{position:absolute;bottom:var(--control-bottom);left:var(--control-left);width:136px;height:136px;border-radius:50%;border:1px solid #d9b78188;background:radial-gradient(circle,#151b17b8 0 38%,#94724d38 39% 40%,#111a15a8 41% 66%,#cba77766 67% 68%,#111a154d 69%);box-shadow:0 3px 18px #0004,inset 0 0 0 5px #1a211a66;display:grid;place-items:center}.stick-knob{position:relative;width:55px;height:55px;border-radius:50%;border:2px solid #c6ab7d;background:radial-gradient(circle at 40% 30%,#786545,#2c3229 74%);box-shadow:0 4px 9px #0009;pointer-events:none}.stick-knob:before{content:'';position:absolute;inset:12px;border:1px solid #d4b28266;border-radius:50%}.stick-up,.stick-down{position:absolute;left:0;right:0;text-align:center;font:8px monospace;letter-spacing:.15em;color:#e4c79b}.stick-up{top:13px}.stick-down{bottom:13px}#drive-stick.pressed{border-color:#efbc72}.touch-actions{position:absolute;right:var(--control-right);bottom:var(--control-bottom);display:flex;flex-direction:column;align-items:center;gap:12px}#touch-controls button{clip-path:none;padding:0;letter-spacing:.09em;min-height:44px;background:#17201be8;box-shadow:0 3px 12px #0007}#touch-fire{width:82px;height:82px;border-radius:50%;border:2px solid #e4b879!important;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:radial-gradient(circle,#332a1b 62%,transparent 64%),conic-gradient(#e3a556 var(--rearm,100%),#45483a 0)!important}#touch-fire svg{width:31px;height:31px;fill:#e7c18b;stroke:#fff0c5;stroke-width:1.2}#touch-fire span{font-size:9px}#touch-fire[data-ready=false]{opacity:.7}#touch-controls button.pressed{border-color:#fcdf9f;box-shadow:0 0 16px #e4aa493d,inset 0 0 0 2px #e7b35b55}#touch-boost{width:82px;border-radius:7px;font-size:10px}#touch-boost.pressed{background:#8a4a1bd9}#touch-recover{position:absolute;top:var(--control-top);left:var(--control-left);width:88px;border-radius:4px;font-size:9px}.rotate-hint{display:none;pointer-events:none}.touch-ui .hud-wordmark{display:none}.touch-ui #pause{top:max(10px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));min-height:44px;min-width:82px;clip-path:none;border-radius:4px;z-index:3}.touch-ui .predator-panel{top:max(10px,env(safe-area-inset-top));width:310px;height:44px;padding:7px 14px;gap:7px}.touch-ui .instrument-cluster{width:130px;bottom:auto;top:calc(max(10px,env(safe-area-inset-top)) + 54px);left:max(18px,env(safe-area-inset-left));opacity:.94}.touch-ui .gear-display{right:19px;bottom:27px;font-size:8px}.touch-ui .launcher-panel{top:calc(max(10px,env(safe-area-inset-top)) + 54px);bottom:auto;right:max(18px,env(safe-area-inset-right));width:154px;height:72px;padding:8px 10px}.touch-ui .launcher-heading{font-size:8px}.touch-ui .launcher-heading span{display:none}.touch-ui .launcher-bottom{gap:8px}.touch-ui .charge-cells{gap:2px}.touch-ui .charge-cells svg{height:30px;width:13px}.touch-ui #launcher-state{font-size:9px}.touch-ui .reload-track{width:63px}.touch-ui .toast{bottom:calc(max(18px,env(safe-area-inset-bottom)) + 10px);font-size:9px}.touch-ui .veil .card{max-height:90dvh;overflow:auto;padding:18px}.touch-ui .veil h2{margin:8px 0 12px;font-size:28px}.touch-ui .screen .course-link{margin-top:15px}
@media(orientation:portrait){.touch-ui .predator-panel{top:calc(max(10px,env(safe-area-inset-top)) + 44px);width:calc(100% - 36px);max-width:362px}.touch-ui .instrument-cluster{top:calc(max(10px,env(safe-area-inset-top)) + 98px);width:120px}.touch-ui .launcher-panel{top:calc(max(10px,env(safe-area-inset-top)) + 100px);width:148px}.touch-ui .gear-display{right:18px;bottom:25px}.touch-ui .start-rotate{display:block;font-size:11px;color:#dcc6a5}.touch-ui .rotate-hint{display:block;position:absolute;left:50%;top:calc(max(10px,env(safe-area-inset-top)) + 198px);transform:translateX(-50%);white-space:nowrap;font:9px monospace;color:#f5e1bf;text-shadow:0 1px 3px #000;background:#17201b80;border-radius:12px;padding:6px 10px}.touch-ui .title-logo{width:100%;margin-bottom:20px}.touch-ui .screen .tag{margin-bottom:20px}}
@media(orientation:landscape) and (max-height:500px){.touch-ui .screen{padding:18px max(38px,env(safe-area-inset-left));justify-items:start;background-position:center 55%}.touch-ui .screen .card{text-align:left;width:400px}.touch-ui .title-logo{width:340px;margin-bottom:8px}.touch-ui .screen .tag{margin-bottom:12px}.touch-ui .screen p{margin:8px 0}.touch-ui #loading-panel{margin:12px 0 0;width:320px}.touch-ui .screen button{height:44px;margin-top:12px}.touch-ui .screen .course-link{margin-top:10px}.touch-ui .instrument-cluster{width:105px}.touch-ui .gear-display{right:16px;bottom:22px}.touch-ui .launcher-panel{width:140px;height:63px}.touch-ui #drive-stick{width:124px;height:124px}.touch-ui .touch-actions{gap:8px}.touch-ui #touch-fire{width:74px;height:74px}.touch-ui #touch-boost{width:74px}.touch-ui .predator-name{font-size:9px}}
@media(prefers-reduced-motion:reduce){.loading-pulse{animation:none;display:none}}

.audio-settings{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;text-align:left;margin:18px auto;max-width:360px}.audio-settings label{font:11px monospace;color:#d9c5a2}.audio-settings output{float:right;color:#ba945c;font-size:10px}.audio-settings input{display:block;width:100%;height:28px;margin:5px 0 0;accent-color:#d69b4d;touch-action:pan-x}.pause-actions{display:flex;justify-content:center;gap:12px}.pause-actions button{padding:12px 22px}.veil #audio-status{font-size:10px;line-height:1.4;margin:0}.veil #audio-retry{padding:10px 18px;margin:8px 0 0}.touch-ui .audio-settings{gap:6px 20px;margin:10px auto}.touch-ui .pause-actions button{margin-top:12px;min-height:44px}@media(orientation:landscape) and (max-height:500px){.touch-ui .touch-help{display:none}.touch-ui .veil .card{padding:14px 20px}.touch-ui .veil h2{font-size:23px;margin:0 0 8px}}
