:root{--ink: #fff7e6;--accent: #ffd23f;--pink: #ff5a9a;--ok: #2fd27a;--bad: #ff4a3d;--panel: rgba(20, 22, 40, .92);--font: "Trebuchet MS", "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#262b45;color:var(--ink);font-family:var(--font);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;overscroll-behavior:none}#game,#trail,#input{position:fixed;inset:0;width:100%;height:100%}#game{display:block}#input{touch-action:none;cursor:crosshair}#trail,#prompts,#fx{pointer-events:none}#prompts,#fx{position:fixed;inset:0;overflow:hidden}.hidden{display:none!important}#hud{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:max(12px,env(safe-area-inset-top)) 18px 0;pointer-events:none}.hud-left .lbl{font-size:11px;letter-spacing:3px;opacity:.6}#score{font-size:30px;font-weight:900;font-variant-numeric:tabular-nums;text-shadow:0 3px 0 rgba(0,0,0,.3)}.hud-right{text-align:right}#section{font-size:13px;letter-spacing:3px;font-weight:800;opacity:.75}#progress{width:120px;height:6px;border-radius:3px;background:#ffffff1f;margin-top:6px;margin-left:auto;overflow:hidden}#progress-fill{height:100%;width:0;background:var(--accent);border-radius:3px}#combo{font-weight:900;font-size:34px;text-align:center;opacity:0;transform:scale(.6);transition:opacity .2s,transform .2s;color:var(--accent);text-shadow:0 3px 0 rgba(0,0,0,.35);min-width:90px}#combo .x{font-size:20px;margin-right:2px}#combo.show{opacity:1;transform:scale(1)}#combo.hot{color:#ffb13f}#combo.fire{color:var(--pink)}#combo.bump{animation:bump .22s ease-out}#combo.broke{animation:broke .4s ease-out}#mult{font-size:12px;letter-spacing:1px;opacity:.7;color:var(--ink);text-shadow:none}@keyframes bump{0%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes broke{0%{transform:translate(-8px);color:var(--bad)}30%{transform:translate(8px)}to{transform:none}}.prompt{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;transition:opacity .25s;will-change:transform,opacity}.chips{display:flex;gap:5px}.chip{min-width:44px;height:44px;padding:0 6px;border-radius:12px;background:#fffffff2;color:#23263a;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px #00000040;transition:transform .12s,background .12s,opacity .12s}.chip .g{font-size:26px;line-height:1;font-weight:900}.chip .l{font-size:8px;letter-spacing:1px;font-weight:800;display:none;margin-top:1px}.prompt.full .chip .l{display:block}.prompt.full .chip .g{font-size:22px}.chip.a-tap .g,.chip.a-hold .g{color:#e8413c}.chip.a-circle .g{color:#3d8bff}.chip.current{background:var(--accent);transform:translateY(-3px)}.prompt:not(.target) .chip.current{background:#fff;transform:none}.chip.done{background:var(--ok);color:#fff;transform:scale(.8);opacity:.8}.chip.done .g{color:#fff}.prompt.target .chip.current{animation:nudge .5s ease-in-out infinite alternate}@keyframes nudge{0%{transform:translateY(-2px)}to{transform:translateY(-6px)}}.prompt.faint .chip{background:#ffffff8c;box-shadow:none}.new-tag{font-size:11px;font-weight:900;letter-spacing:2px;background:var(--pink);color:#fff;padding:2px 8px;border-radius:8px;margin-bottom:4px;animation:nudge .4s ease-in-out infinite alternate}.popup{position:absolute;transform:translate(-50%,-50%);font-weight:900;font-size:22px;color:var(--accent);text-shadow:0 2px 0 rgba(0,0,0,.4);animation:rise .9s ease-out forwards;white-space:nowrap}.popup.early{color:#7af0d8;font-size:26px}.popup.bad{color:var(--bad);font-size:24px}@keyframes rise{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.15)}to{opacity:0;transform:translate(-50%,-170%) scale(1)}}.echo{position:absolute;transform:translate(-50%,-50%);font-size:64px;font-weight:900;animation:echo .5s ease-out forwards;text-shadow:0 4px 0 rgba(0,0,0,.25)}.echo.ok{color:var(--ok)}.echo.bad{color:var(--bad)}.echo.idle{color:#ffffff80}@keyframes echo{0%{opacity:.95;transform:translate(-50%,-50%) scale(.7)}to{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}.ripple{position:absolute;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;border:3px solid rgba(255,255,255,.7);animation:ripple .35s ease-out forwards}@keyframes ripple{0%{transform:scale(.4);opacity:1}to{transform:scale(1.6);opacity:0}}.section-banner,.combo-banner{position:absolute;left:50%;top:22%;transform:translate(-50%,-50%);font-weight:900;letter-spacing:8px;font-size:clamp(22px,5vw,44px);opacity:0;white-space:nowrap;animation:banner 1.6s ease-out forwards;text-shadow:0 4px 0 rgba(0,0,0,.3)}.combo-banner{top:30%;color:var(--accent);font-size:clamp(18px,4vw,32px);letter-spacing:4px;animation-duration:1.4s}@keyframes banner{0%{opacity:0;transform:translate(-50%,-50%) scale(1.4)}15%{opacity:.9;transform:translate(-50%,-50%) scale(1)}75%{opacity:.9}to{opacity:0;transform:translate(-50%,-60%)}}.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#16182cb8;text-align:center;padding:16px;cursor:pointer}.logo{font-size:clamp(44px,11vw,96px);font-weight:900;letter-spacing:2px;text-shadow:0 6px 0 rgba(0,0,0,.35);line-height:1}.logo span{color:var(--accent)}.logo.small{font-size:clamp(34px,8vw,64px)}.tag{letter-spacing:6px;font-weight:700;opacity:.7;margin-top:8px;font-size:14px}.cta{margin-top:36px;font-weight:900;font-size:22px;letter-spacing:4px;color:var(--accent);animation:pulse 1s ease-in-out infinite alternate}@keyframes pulse{0%{opacity:.55;transform:scale(.97)}to{opacity:1;transform:scale(1.03)}}.how{margin-top:36px;font-size:14px;opacity:.8;max-width:520px;line-height:1.5}.how .keys{margin-top:10px;font-size:12px;opacity:.7}#results{cursor:default}.big{font-size:clamp(48px,12vw,88px);font-weight:900;color:var(--accent);margin-top:10px;text-shadow:0 5px 0 rgba(0,0,0,.35)}#r-best{font-weight:800;letter-spacing:2px;opacity:.7}#r-best.new{color:var(--pink);opacity:1;animation:pulse .5s ease-in-out infinite alternate}.stats{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:10px 28px;margin:24px 0}.stats div{display:flex;flex-direction:column}.stats span{font-size:11px;letter-spacing:2px;opacity:.6;text-transform:uppercase}.stats b{font-size:26px}#again{font:900 22px var(--font);letter-spacing:3px;padding:14px 34px;border-radius:16px;border:0;cursor:pointer;background:var(--accent);color:#23263a;box-shadow:0 6px #b8901c}#again:active{transform:translateY(4px);box-shadow:0 2px #b8901c}#debug-btn{position:fixed;right:10px;bottom:max(10px,env(safe-area-inset-bottom));width:34px;height:34px;border-radius:10px;border:0;background:#ffffff1a;color:#fff9;font-size:18px;cursor:pointer;z-index:20}#debug{position:fixed;top:0;right:0;bottom:0;width:min(340px,92vw);background:var(--panel);z-index:30;font:12px/1.35 ui-monospace,Menlo,Consolas,monospace;overflow-y:auto;user-select:auto;touch-action:pan-y}.dbg-head{position:sticky;top:0;background:#11131f;padding:8px 10px;font-weight:800;letter-spacing:2px;display:flex;justify-content:space-between}.dbg-head button{background:none;border:0;color:var(--ink);font-size:14px;cursor:pointer}.dbg-body{padding:6px 10px 40px}#debug details{border-top:1px solid rgba(255,255,255,.1);padding:4px 0}#debug summary{cursor:pointer;font-weight:800;color:var(--accent);padding:4px 0}#debug .row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0}#debug .row>span{flex:0 0 42%;opacity:.85}#debug .slider,#debug .inline{display:flex;align-items:center;gap:6px;flex:1;min-width:0}#debug input[type=range]{flex:1;min-width:0}#debug output{width:38px;text-align:right}#debug input[type=text]{flex:1;min-width:0;background:#0c0e18;color:var(--ink);border:1px solid #444a66;border-radius:4px;padding:3px 5px;font:inherit}#debug input.err{border-color:var(--bad)}#debug select{flex:1;min-width:0;background:#0c0e18;color:var(--ink);border:1px solid #444a66;font:inherit}#debug button:not(#dbg-close){background:#3a3f5c;color:var(--ink);border:0;border-radius:4px;padding:4px 8px;margin:4px 4px 0 0;font:inherit;cursor:pointer}.dbg-status,.dbg-log{background:#0c0e18;padding:6px;border-radius:4px;white-space:pre-wrap;margin:6px 0;font-size:11px}.dbg-log{min-height:60px;color:#9fe8c9}.dbg-hint{opacity:.6;margin:2px 0 6px}@media(max-height:480px){#score{font-size:22px}#combo{font-size:26px}.chip{min-width:36px;height:36px}.chip .g{font-size:20px}.how{display:none}}#rotate{display:none;z-index:40;background:#16182cf5;cursor:default}@media(orientation:portrait)and (pointer:coarse){body:not(.rotate-ok) #rotate{display:flex}}#rotate .phone{font-size:64px;animation:turn 1.6s ease-in-out infinite}@keyframes turn{0%,30%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}#rotate-skip{margin-top:28px;background:none;border:1px solid rgba(255,255,255,.3);color:var(--ink);font:700 13px var(--font);letter-spacing:2px;padding:8px 16px;border-radius:10px}
