:root{--accent: #f59e0b;--accent-strong: #fbbf24;--danger: #ef4444;--blue: #38bdf8;--orange: #fb923c;--green: #22c55e;--gold: #facc15;--text: #f8fafc;--muted: #94a3b8;--panel: rgba(12, 15, 24, .84);--panel-border: rgba(255, 255, 255, .09);--display: "Arial Black", "Segoe UI Black", Impact, system-ui, sans-serif;--body: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#0b0d12;color:var(--text);font-family:var(--body);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;overscroll-behavior:none}body:not(.admin-mode){touch-action:none}#app{position:fixed;inset:0}.game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none}.ui-root{position:absolute;inset:0;pointer-events:none}.hidden{display:none!important}.accent{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:12px}.btn{font-family:var(--display);font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--text);background:#1f2937;border:0;border-radius:10px;padding:10px 16px;cursor:pointer;box-shadow:0 3px #0006;transition:transform .08s ease,background .15s ease,box-shadow .08s ease;pointer-events:auto;white-space:nowrap}.btn:hover:not(:disabled){background:#334155}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #0006}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:linear-gradient(180deg,var(--accent-strong),var(--accent));color:#1c1203}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#fcd34d,#f59e0b)}.btn-ghost{background:#ffffff12;border:1px solid rgba(255,255,255,.14);box-shadow:none}.btn-play{font-size:clamp(16px,2.4vw,24px);padding:clamp(10px,2vh,16px) clamp(16px,2.6vw,28px);color:#fff;border-radius:14px;background:linear-gradient(180deg,#f87171,#dc2626);box-shadow:0 5px #7f1d1d,0 14px 34px #dc262659}.btn-play:hover:not(:disabled){background:linear-gradient(180deg,#fb7185,#e11d48)}.btn-wide{width:100%}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.loading{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(circle at 50% 40%,#2a1a10,#0b0d12 70%);transition:opacity .45s ease}.loading.done{opacity:0;pointer-events:none}.loading-title,.garage-title,.ctrl-title,.admin-title{font-family:var(--display);font-size:clamp(32px,7vw,72px);letter-spacing:.08em;display:flex;gap:.35em;text-shadow:0 6px 0 rgba(0,0,0,.45)}.loading-bar{width:min(420px,70vw);height:10px;border-radius:999px;background:#ffffff1a;overflow:hidden}.loading-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--danger));transition:width .25s ease}.loading-label{color:var(--muted);font-size:14px}.notifier{position:fixed;top:calc(64px + var(--safe-top));left:50%;transform:translate(-50%);z-index:150;display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none}.notice{background:#0f172aeb;border:1px solid rgba(255,255,255,.12);padding:8px 16px;border-radius:999px;font-size:14px;font-weight:700;animation:notice-in .25s ease-out;transition:opacity .35s ease,transform .35s ease}.notice.out{opacity:0;transform:translateY(-8px)}@keyframes notice-in{0%{opacity:0;transform:translateY(-10px)}}.rotate-hint{display:none;position:fixed;inset:0;z-index:1000;background:#0b0d12;color:var(--text);flex-direction:column;align-items:center;justify-content:center;gap:16px;font-family:var(--display);font-size:20px;text-align:center;pointer-events:auto}.rotate-icon{font-size:64px;animation:rotate-wiggle 1.6s ease-in-out infinite}@keyframes rotate-wiggle{50%{transform:rotate(90deg)}}@media (orientation: portrait) and (pointer: coarse){.rotate-hint{display:flex}}.fatal-error{position:fixed;inset:0;z-index:2000;padding:40px;background:#110b0b;color:#fecaca}.fatal-error pre{white-space:pre-wrap;color:#fff}
