:root{--bg: #07050f;--ink: #f3f0ff;--muted: rgba(243, 240, 255, .62);--card: rgba(14, 10, 32, .78);--line: rgba(255, 255, 255, .12);--accent: #ff3cac;--accent-2: #784bff;--accent-3: #2bd2ff;--rainbow: linear-gradient(90deg, #ff3cac, #ff8a3c, #ffe03c, #4cff6a, #2bd2ff, #784bff, #ff3cac);--font: "Avenir Next", "Segoe UI", "Helvetica Neue", system-ui, -apple-system, sans-serif;--mono: "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font);overflow:hidden;-webkit-font-smoothing:antialiased}canvas#game{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.hidden{display:none!important}.overlay{position:fixed;inset:0;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:24px 16px;background:radial-gradient(ellipse at 50% 30%,#140c328c,#05030cd9 70%);backdrop-filter:blur(6px);z-index:20;animation:fade-in .35s ease-out}.overlay>*{margin:auto}.menu-card{width:min(560px,100%);padding:32px 32px 24px;border-radius:20px;background:var(--card);border:1px solid var(--line);box-shadow:0 30px 80px #0000008c,inset 0 1px #ffffff0f;text-align:center}.menu-card.compact{width:min(380px,100%)}.title{margin:0 0 14px;display:flex;flex-wrap:wrap;justify-content:center;gap:0 .35em;font-size:clamp(34px,7vw,56px);font-weight:900;letter-spacing:.06em;text-transform:uppercase;line-height:1}.title span{background:var(--rainbow);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:slide 6s linear infinite;filter:drop-shadow(0 0 18px rgba(255,60,172,.35))}.title span:nth-child(2){animation-delay:-2s}.title span:nth-child(3){animation-delay:-4s}.tagline{margin:0 auto 26px;max-width:44ch;color:var(--muted);font-size:15px;line-height:1.5}.menu-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch}.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;border-radius:12px;border:1px solid var(--line);background:#ffffff0f;color:var(--ink);font:inherit;font-size:16px;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:transform .12s ease,background .15s ease,box-shadow .15s ease}.btn svg{width:20px;height:20px;fill:currentColor}.btn:hover{background:#ffffff1a;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible{outline:2px solid var(--accent-3);outline-offset:2px}.btn-primary{border:none;background:linear-gradient(135deg,var(--accent),var(--accent-2) 60%,var(--accent-3));box-shadow:0 10px 30px #784bff59;font-size:17px}.btn-primary:hover{box-shadow:0 14px 36px #784bff80;background:linear-gradient(135deg,var(--accent),var(--accent-2) 60%,var(--accent-3))}.btn-ghost{background:transparent}.btn.tiny{padding:8px 12px;font-size:13px;border-radius:9px}.status{min-height:1.4em;margin:14px 0 0;font-size:14px;color:var(--accent-3)}.status.error{color:#ff6b8a}.drop-hint{margin-top:14px;font-size:13px;color:var(--muted)}.controls{margin:20px 0 0;text-align:left;border-top:1px solid var(--line);padding-top:14px}.controls summary{cursor:pointer;color:var(--muted);font-size:14px;font-weight:600}.controls ul{margin:10px 0 0;padding:0;list-style:none;font-size:14px;color:var(--muted);line-height:1.9}kbd{font-family:var(--mono);font-size:12px;padding:1px 6px;border-radius:5px;border:1px solid var(--line);background:#ffffff12;color:var(--ink)}.fineprint{margin:18px 0 0;font-size:12px;color:var(--muted);line-height:1.5}.countdown{position:fixed;inset:0;display:grid;place-items:center;pointer-events:none;z-index:15;font-size:clamp(90px,22vw,200px);font-weight:900;letter-spacing:.04em;background:var(--rainbow);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 30px rgba(255,255,255,.35))}.countdown.pop{animation:pop .9s ease-out}.hud{position:fixed;inset:0;pointer-events:none;z-index:10;font-variant-numeric:tabular-nums}.hud-left{position:absolute;left:24px;bottom:22px}.speedo{display:flex;align-items:baseline;gap:8px}.speedo span{font-size:64px;font-weight:900;line-height:1;letter-spacing:-.02em;text-shadow:0 0 24px rgba(43,210,255,.45)}.speedo small{font-size:14px;color:var(--muted);font-weight:700;letter-spacing:.1em;text-transform:uppercase}.boost-bar{margin-top:10px;width:180px;height:6px;border-radius:3px;background:#ffffff1a;overflow:hidden}.boost-bar i{display:block;height:100%;width:0%;background:var(--rainbow);background-size:300% 100%;animation:slide 1.5s linear infinite;transition:width .08s linear}.hud-top{position:absolute;top:20px;left:50%;transform:translate(-50%);display:flex;gap:28px;align-items:center;padding:10px 20px;border-radius:999px;background:#0a07188c;border:1px solid var(--line);backdrop-filter:blur(8px)}.hud-top span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-right:6px}.hud-top b{font-size:18px;font-weight:800}.hud-top em{font-style:normal;color:var(--muted);font-size:14px}.times{display:flex;gap:20px}.place[hidden],.touch{display:none}body.touch-ui .touch{display:block;position:absolute;inset:0;pointer-events:none}body.touch-ui #game{touch-action:none}.touch,.touch *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.touch-steer{position:absolute;left:0;bottom:0;width:50%;height:62%;pointer-events:auto;touch-action:none}.touch-knob-base{position:absolute;left:calc(env(safe-area-inset-left,0px) + 96px);top:calc(100% - 96px - env(safe-area-inset-bottom,0px));width:132px;height:132px;margin:-66px 0 0 -66px;border-radius:50%;border:2px solid rgba(255,255,255,.28);background:radial-gradient(circle,#ffffff14,#0a071859);display:grid;place-items:center;opacity:.6;transition:opacity .15s}.touch-knob-base.live{opacity:1;transition:none}.touch-knob{width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,#ff3cac,#784ba0 55%,#2b86c5);box-shadow:0 0 18px #ff3cac99}.touch-hint{position:absolute;left:calc(env(safe-area-inset-left,0px) + 96px);bottom:calc(env(safe-area-inset-bottom,0px) + 18px);transform:translate(-50%);font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.touch-knob-base.live~.touch-hint{opacity:0}.touch-buttons{position:absolute;right:calc(env(safe-area-inset-right,0px) + 18px);bottom:calc(env(safe-area-inset-bottom,0px) + 18px);display:grid;grid-template-columns:auto auto;grid-template-areas:"item drift" "item brake";gap:12px;align-items:end;pointer-events:auto}.tb{pointer-events:auto;touch-action:none;border:2px solid rgba(255,255,255,.3);border-radius:50%;background:#0a07188c;backdrop-filter:blur(6px);color:var(--ink);font:inherit;font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase}.tb.down{transform:scale(.94);background:#ffffff2e}.tb-drift,.tb-brake{width:78px;height:78px}.tb-drift{grid-area:drift;border-color:#2bd2ffb3}.tb-brake{grid-area:brake;border-color:#ff5a78b3}.tb-item{grid-area:item;width:92px;height:92px;align-self:center;border-color:#ff3caccc;box-shadow:0 0 16px #ff3cac59}.touch-top{position:absolute;top:calc(env(safe-area-inset-top,0px) + 16px);right:calc(env(safe-area-inset-right,0px) + 72px);display:flex;gap:8px;pointer-events:auto}.tb-small{width:44px;height:44px;border-radius:12px;font-size:11px}@media(max-height:520px){.overlay{padding:12px 16px}.menu-card{padding:18px 22px 16px}.title{font-size:34px;margin-bottom:8px}.tagline{margin-bottom:14px;font-size:13px}.menu-actions{gap:8px}.drop-hint,.fineprint{display:none}}body.touch-ui .hud-left{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 10px);transform:translate(-50%);text-align:center}body.touch-ui .speedo{justify-content:center}body.touch-ui .speedo span{font-size:34px}body.touch-ui .boost-bar{margin:6px auto 0;width:120px}body.touch-ui .hud-right{display:none}body.touch-ui .hud-item{top:calc(env(safe-area-inset-top,0px) + 12px);left:calc(env(safe-area-inset-left,0px) + 14px)}body.touch-ui .item-slot{width:52px;height:52px;font-size:28px}body.touch-ui .item-slot kbd{display:none}@media(max-width:720px){body.touch-ui .hud-top{top:calc(env(safe-area-inset-top,0px) + 74px)}}.hud-item{position:absolute;top:20px;left:24px;display:flex;align-items:center;gap:12px}.item-slot{position:relative;width:64px;height:64px;display:grid;place-items:center;border-radius:16px;background:#0a07188c;border:2px solid rgba(255,255,255,.35);backdrop-filter:blur(8px);font-size:34px;line-height:1}.item-slot.empty{border-color:var(--line);opacity:.55}.item-slot.rolling{border-color:#ff3cac}.item-slot:not(.empty):not(.rolling){box-shadow:0 0 18px #ff3cac8c}.item-slot small{position:absolute;right:6px;bottom:3px;font-size:12px;font-weight:800}.item-slot kbd{position:absolute;left:-6px;top:-8px;font-size:10px;padding:0 4px}.item-slot.empty kbd{display:none}.coins{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#0a07188c;border:1px solid var(--line);font-weight:800}.coins i{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff3b0,#ffc21a 55%,#c98a00);box-shadow:0 0 8px #ffc828b3}.coins.bump{animation:coin-bump .3s ease-out}@keyframes coin-bump{50%{transform:scale(1.25)}}.hud-right{position:absolute;right:24px;bottom:24px;text-align:right}.video-status{font-family:var(--mono);font-size:12px;color:var(--muted);padding:6px 10px;border-radius:8px;background:#0a07188c;border:1px solid var(--line)}.toast{position:absolute;left:50%;top:30%;transform:translate(-50%);font-size:clamp(28px,6vw,54px);font-weight:900;letter-spacing:.06em;text-transform:uppercase;opacity:0;background:var(--rainbow);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 20px rgba(255,255,255,.3));transition:opacity .3s ease}.toast.show{opacity:1;animation:slide 2s linear infinite}.icon-btn{position:fixed;top:16px;right:16px;z-index:30;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);background:#0a071899;color:var(--ink);cursor:pointer;backdrop-filter:blur(8px)}.icon-btn svg{width:22px;height:22px;fill:currentColor}.icon-btn:hover{background:#ffffff1a}.icon-btn.small{position:static;width:32px;height:32px;font-size:14px}.settings{position:fixed;top:0;right:0;bottom:0;width:min(340px,100%);z-index:40;overflow-y:auto;padding:18px 20px 28px;background:#0a0718eb;border-left:1px solid var(--line);backdrop-filter:blur(14px);box-shadow:-20px 0 60px #0006;animation:slide-in .25s ease-out}.settings header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.settings h3{margin:0;font-size:18px}.settings h4{margin:22px 0 8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.settings label{display:block;margin:10px 0;font-size:13px;color:var(--ink)}.settings label output{float:right;color:var(--muted);font-family:var(--mono);font-size:12px}.settings input[type=range]{width:100%;margin:6px 0 0;accent-color:var(--accent-2)}.settings select,.settings input[type=number]{width:100%;margin-top:6px;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:#ffffff0f;color:var(--ink);font:inherit;font-size:13px}.settings .row{display:flex;gap:8px;align-items:center}.settings .row input{flex:1;margin-top:6px}.settings .row .btn{margin-top:6px}.settings label.check{display:flex;align-items:center;gap:10px}.settings label.check input{accent-color:var(--accent-2);width:16px;height:16px}.settings>.btn{margin-top:18px;width:100%}.drop-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#0a0718bf;border:3px dashed rgba(255,255,255,.35);font-size:28px;font-weight:800;pointer-events:none}@keyframes slide{to{background-position:300% 0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{transform:translate(30px);opacity:0}to{transform:none;opacity:1}}@keyframes pop{0%{transform:scale(.4);opacity:0}25%{transform:scale(1.1);opacity:1}70%{transform:scale(1);opacity:1}to{transform:scale(1.4);opacity:0}}@media(max-width:640px){.menu-card{padding:24px 18px 18px}.speedo span{font-size:44px}.hud-top{gap:14px;padding:8px 14px}.times{gap:12px}}.track-line{margin:12px 0 0;font-size:13px;color:var(--muted)}.track-line b{color:var(--ink);font-weight:600}.editor{position:fixed;top:0;left:0;bottom:0;width:min(420px,100%);z-index:35;overflow-y:auto;padding:16px 18px 24px;background:#0a0718e6;border-right:1px solid var(--line);backdrop-filter:blur(14px);box-shadow:20px 0 60px #0006;animation:slide-in-left .25s ease-out;display:flex;flex-direction:column;gap:8px}.editor header{display:flex;align-items:center;justify-content:space-between;gap:8px}.editor h3{margin:0;font-size:18px}.ed-head-actions{display:flex;gap:6px;align-items:center}.ed-head-actions .btn:disabled{opacity:.4;cursor:default}.ed-field{display:block;font-size:12px;color:var(--muted)}.ed-field input{display:block;width:100%;margin-top:4px;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:#ffffff0f;color:var(--ink);font:inherit;font-size:14px;font-weight:600}.ed-map{width:100%;height:clamp(220px,42vh,384px);border-radius:12px;background:radial-gradient(ellipse at 50% 40%,#28185a80,#080512e6 75%);border:1px solid var(--line);cursor:crosshair;touch-action:none}.ed-elev{width:100%;height:100px;border-radius:10px;background:#ffffff0a;border:1px solid var(--line);touch-action:none}.ed-hint{margin:-2px 0 4px;font-size:11px;line-height:1.5;color:var(--muted)}.ed-hint kbd{font-size:10px;padding:0 4px}.ed-stats{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.ed-warnings{display:flex;flex-direction:column;gap:4px}.ed-ok{font-size:12px;color:#4cff9a}.ed-warning{appearance:none;text-align:left;font:inherit;font-size:12px;line-height:1.4;color:#ffb3c1;background:#ff5a781a;border:1px solid rgba(255,90,120,.3);border-radius:8px;padding:6px 8px;cursor:pointer}.ed-warning:hover{background:#ff5a782e}.ed-sliders{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ed-sliders label{display:block;font-size:12px;color:var(--ink)}.ed-sliders output{float:right;color:var(--muted);font-family:var(--mono);font-size:11px}.ed-sliders input[type=range]{width:100%;margin:4px 0 0;accent-color:var(--accent-2)}.ed-actions{display:flex;flex-direction:column;gap:8px;margin-top:4px}.ed-items{display:flex;flex-direction:column;gap:6px}.ed-tools{display:flex;flex-wrap:wrap;gap:4px}.ed-tool{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;border:1px solid var(--line);background:#ffffff0a;color:var(--ink);font:inherit;font-size:11px;cursor:pointer}.ed-tool i{width:9px;height:9px;border-radius:50%;background:var(--c, #fff)}.ed-tool.obstacle i{border-radius:2px}.ed-tool[aria-pressed=true]{border-color:var(--accent-2);background:#2bd2ff29}.ed-item-actions{display:flex;gap:6px}.ed-point-bank{display:grid;gap:4px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);font-size:12px}.ed-point-bank.disabled{opacity:.45}.ed-point-bank label.check{display:flex;align-items:center;gap:8px}.ed-point-bank label.check input{accent-color:var(--accent-2)}.ed-point-bank output{float:right;color:var(--muted);font-family:var(--mono);font-size:11px}.ed-point-bank input[type=range]{width:100%;margin:4px 0 0;accent-color:var(--accent-2)}.ed-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ed-actions select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:#ffffff0f;color:var(--ink);font:inherit;font-size:13px}.editor .status{margin:4px 0 0;min-height:1.4em;font-size:12px}@keyframes slide-in-left{0%{transform:translate(-30px);opacity:0}to{transform:none;opacity:1}}@media(max-width:720px){.editor{width:100%}}
