:root{color-scheme:dark;font-family:Avenir Next,Gill Sans,Verdana,sans-serif;background:#101410;color:#eef5df;--ink: #eef5df;--muted: #aeb9a4;--panel: rgba(16, 20, 16, .74);--panel-strong: rgba(23, 28, 22, .92);--line: rgba(238, 245, 223, .16);--acid: #c6ff4a;--orange: #ff8a2b;--cyan: #55d7ff;--danger: #ff4f4f}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:radial-gradient(circle at 16% 18%,rgba(198,255,74,.1),transparent 28%),linear-gradient(180deg,#171b15,#0d100d)}button,select{font:inherit}.shell{position:relative;width:100%;height:100%;min-height:100dvh}.game-canvas{display:block;width:100%;height:100%;touch-action:none}.hud{position:absolute;inset:0;pointer-events:none;display:grid;grid-template-rows:auto 1fr auto;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));gap:12px}.topbar,.bottombar,.finish-panel{pointer-events:auto}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.brand{display:flex;align-items:center;gap:12px;min-width:0}.mark{width:42px;height:42px;border:1px solid rgba(198,255,74,.45);background:#d8ff51;color:#11160f;display:grid;place-items:center;font-weight:900;letter-spacing:0;box-shadow:0 0 28px #c6ff4a38}.brand h1{margin:0;font-size:clamp(18px,3.6vw,34px);line-height:.92;letter-spacing:0;text-transform:uppercase}.brand p{margin:3px 0 0;color:var(--muted);font-size:12px}.mobile-help{display:none}.metrics{display:grid;grid-template-columns:repeat(4,auto);gap:8px}.metric,.control-group,.finish-panel{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.metric{min-width:88px;padding:9px 10px}.metric span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.metric strong{display:block;margin-top:2px;font-size:17px;line-height:1}.center{position:relative}.hint{position:absolute;top:72px;left:50%;transform:translate(-50%);width:min(620px,calc(100vw - 28px));padding:10px 14px;border:1px solid rgba(85,215,255,.26);background:#0d1212a8;text-align:center;color:#d9f5f5;font-size:13px}.finish-panel{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 28px));padding:18px;display:none}.finish-panel.is-visible{display:block}.finish-panel h2{margin:0 0 8px;font-size:28px;text-transform:uppercase}.finish-panel p{margin:0 0 14px;color:var(--muted)}.bottombar{align-self:end;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}.control-group{display:flex;align-items:center;gap:8px;padding:8px;min-width:0;max-width:100%}.track-select{min-width:180px;max-width:100%;height:40px;color:var(--ink);background:#171d16;border:1px solid rgba(238,245,223,.24);padding:0 10px}.btn{min-width:40px;height:40px;border:1px solid rgba(238,245,223,.22);color:var(--ink);background:#eef5df14;padding:0 12px;cursor:pointer;white-space:nowrap}.btn:hover{border-color:#c6ff4a8f}.btn.primary{color:#101410;background:var(--acid);border-color:var(--acid);font-weight:800}.btn.danger{color:#180908;background:var(--orange);border-color:var(--orange);font-weight:800}.sound{width:120px;height:40px;display:grid;align-items:end;padding:5px;border:1px solid rgba(238,245,223,.18);background:#eef5df0f}.sound-fill{width:100%;height:var(--sound, 2%);min-height:2px;background:linear-gradient(180deg,var(--acid),var(--orange));transition:height 90ms linear}.mobile-pads{display:none;grid-template-columns:1fr 1fr 1fr;gap:8px;min-width:0}.pad{height:58px;border:1px solid rgba(238,245,223,.2);background:#eef5df17;color:var(--ink);font-size:22px;touch-action:none}@media(max-width:860px){.topbar,.bottombar{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{min-width:0}.control-group{flex-wrap:wrap}.desktop-help{display:none}.mobile-help{display:block}.mobile-pads{display:grid}}@media(max-width:520px){.hud{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.brand h1{font-size:18px}.brand p,.hint{font-size:11px}.hint{top:86px}.metrics{gap:5px}.metric{padding:7px 6px}.metric strong{font-size:14px}.track-select{flex:1 1 100%}.btn{flex:1 1 auto;padding:0 8px}.sound{flex:1 1 100%;width:auto;height:26px}.pad{height:64px;font-size:18px}}
