:root{--bg:#EEF0F7;--board:#E2E5F1;--surface:#FFFFFF;--ink:#20233A;--muted:#7A7F9A;--accent:#6C4DFF;--accent-soft:#E4DEFF;--track:#D9DCEA;--shadow:rgba(40,44,90,.14);--shadow-strong:rgba(40,44,90,.28);--emoji:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;box-sizing:border-box;--tg-viewport-height:100dvh;--tg-viewport-stable-height:100dvh;--tg-safe-area-inset-top:env(safe-area-inset-top,0px);--tg-safe-area-inset-right:env(safe-area-inset-right,0px);--tg-safe-area-inset-bottom:env(safe-area-inset-bottom,0px);--tg-safe-area-inset-left:env(safe-area-inset-left,0px);--tg-content-safe-area-inset-top:0px;--tg-content-safe-area-inset-right:0px;--tg-content-safe-area-inset-bottom:0px;--tg-content-safe-area-inset-left:0px;--safe-top:calc(var(--tg-safe-area-inset-top) + var(--tg-content-safe-area-inset-top));--safe-right:calc(var(--tg-safe-area-inset-right) + var(--tg-content-safe-area-inset-right));--safe-bottom:calc(var(--tg-safe-area-inset-bottom) + var(--tg-content-safe-area-inset-bottom));--safe-left:calc(var(--tg-safe-area-inset-left) + var(--tg-content-safe-area-inset-left))}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14151F;--board:#1C1E2B;--surface:#262939;--ink:#EEF0FA;--muted:#8A8FA8;--accent:#8B74FF;--accent-soft:#2E2A55;--track:#30334A;--shadow:rgba(0,0,0,.35);--shadow-strong:rgba(0,0,0,.55)}}:root[data-theme=dark]{--bg:#14151F;--board:#1C1E2B;--surface:#262939;--ink:#EEF0FA;--muted:#8A8FA8;--accent:#8B74FF;--accent-soft:#2E2A55;--track:#30334A;--shadow:rgba(0,0,0,.35);--shadow-strong:rgba(0,0,0,.55)}*{box-sizing:border-box}html{height:var(--tg-viewport-stable-height,100dvh);background:var(--bg)}body{height:var(--tg-viewport-stable-height,100dvh);margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,system-ui,-apple-system,sans-serif;overflow:hidden;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.num{font-family:Unbounded,Manrope,system-ui,sans-serif;font-weight:600;font-variant-numeric:tabular-nums}#app{height:var(--tg-viewport-stable-height,100dvh);max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:10px;padding:calc(12px + var(--safe-top)) calc(14px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(14px + var(--safe-left))}.hud{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none}.stat{display:flex;flex-direction:column;min-width:64px}.stat.r{align-items:flex-end}.label{font-size:12px;color:var(--muted);font-weight:700}#score{font-size:26px;line-height:1.1}#level{font-size:18px;line-height:1.2}.timer{display:flex;align-items:center;gap:8px;background:var(--surface);padding:9px 16px 9px 13px;border-radius:999px;box-shadow:0 8px 20px -10px var(--shadow-strong);font-size:17px;transition:color .2s}.timer svg{width:20px;height:20px;opacity:.7}.timer.warn{color:#ff4d6d;animation:beat 1s ease-in-out infinite}@keyframes beat{50%{transform:scale(1.06)}}.right{display:flex;align-items:center;gap:12px}.icon-btn{width:44px;height:44px;border:none;border-radius:15px;background:var(--surface);display:grid;place-items:center;box-shadow:0 8px 20px -10px var(--shadow-strong);transition:transform .12s}.icon-btn:active{transform:scale(.92)}.icon-btn svg{width:18px;height:18px}.progress{height:5px;border-radius:5px;background:var(--track);overflow:hidden;flex:none}.progress i{display:block;height:100%;width:0;background:var(--accent);border-radius:5px;transition:width .4s cubic-bezier(.3,.9,.3,1)}#board{position:relative;z-index:2;flex:1;min-height:0;border-radius:30px;background:var(--board);touch-action:none}.item{position:absolute;display:grid;place-items:center;line-height:1;cursor:grab;will-change:transform;font-family:var(--emoji);touch-action:none}.item .g{display:block;pointer-events:none;filter:drop-shadow(0 3px 2px var(--shadow))}.item.enter .g{animation:enter .5s cubic-bezier(.2,1.5,.4,1) backwards}.item.lift{cursor:grabbing}.item.lift .g{filter:drop-shadow(0 14px 10px var(--shadow-strong))}.item.pop .g{animation:pop .36s ease-in forwards}.item.hint:after{content:"";position:absolute;inset:-7px;border-radius:50%;border:3px solid var(--accent);animation:ring .9s ease-out 2;pointer-events:none;opacity:0}.item.hint .g{animation:wiggle .45s ease-in-out 4}@keyframes enter{0%{transform:scale(0) rotate(-40deg);opacity:0}}@keyframes pop{35%{transform:scale(1.35)}to{transform:scale(0);opacity:0}}@keyframes ring{0%{transform:scale(.7);opacity:1}to{transform:scale(1.35);opacity:0}}@keyframes wiggle{25%{transform:rotate(-12deg) scale(1.1)}75%{transform:rotate(12deg) scale(1.1)}}.dock{position:relative;z-index:1;flex:none;height:136px;display:flex;align-items:center;justify-content:space-between;padding:0 16px}.slot-wrap{position:relative;width:128px;height:128px;display:grid;place-items:center;transition:transform .2s cubic-bezier(.3,1.5,.5,1)}.slot-wrap.near{transform:scale(1.08)}.ring{position:absolute;inset:0;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:5}.ring .track{stroke:var(--track)}.ring .prog{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:339.3;stroke-dashoffset:339.3}.slot{position:relative;width:100px;height:100px;border-radius:50%;background:var(--surface);box-shadow:inset 0 3px 8px var(--shadow),0 14px 28px -12px var(--shadow-strong);transition:box-shadow .2s}.slot:before{content:"";position:absolute;inset:14px;border-radius:50%;border:2px dashed var(--track)}.slot-wrap.near .slot{box-shadow:0 0 0 6px var(--accent-soft),inset 0 3px 8px var(--shadow),0 14px 28px -12px var(--shadow-strong)}.slot.shake{animation:shake .32s}@keyframes shake{25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}.mult{position:absolute;bottom:-2px;left:50%;transform:translate(-50%) scale(0);background:var(--accent);color:#fff;font-size:13px;padding:4px 10px;border-radius:999px;transition:transform .22s cubic-bezier(.3,1.7,.5,1);box-shadow:0 6px 14px -6px var(--accent)}.mult.on{transform:translate(-50%) scale(1)}.tool{position:relative;width:58px;height:58px;border:none;border-radius:20px;background:var(--surface);display:grid;place-items:center;box-shadow:0 10px 22px -12px var(--shadow-strong);transition:transform .12s,opacity .2s}.tool:active{transform:scale(.92)}.tool svg{width:24px;height:24px}.tool.off{opacity:.35}.badge{position:absolute;top:-5px;right:-5px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--ink);color:var(--bg);font-size:11px;font-weight:800;display:grid;place-items:center}#fx{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}.p{position:absolute;width:9px;height:9px;border-radius:50%;margin:-4.5px 0 0 -4.5px}.float{position:absolute;transform:translate(-50%,-50%);font-family:Unbounded,sans-serif;font-weight:700;font-size:24px;color:var(--accent);white-space:nowrap}.overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:calc(24px + var(--safe-top)) calc(24px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(24px + var(--safe-left));background:#eef0f799;background:color-mix(in srgb,var(--bg) 60%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:opacity .25s}.overlay.show{opacity:1;pointer-events:auto}.card{width:min(340px,100%);background:var(--surface);border-radius:32px;padding:30px 22px 18px;text-align:center;box-shadow:0 40px 70px -30px var(--shadow-strong);transform:translateY(14px) scale(.96);transition:transform .35s cubic-bezier(.3,1.4,.5,1)}.overlay.show .card{transform:none}.hero{font-size:60px;line-height:1;font-family:var(--emoji)}.card h1{font-family:Unbounded,sans-serif;font-weight:700;font-size:22px;line-height:1.2;margin:14px 0 8px}.card p{margin:0 auto 18px;max-width:30ch;color:var(--muted);font-size:15px;line-height:1.5}.stats{display:flex;gap:10px;margin:4px 0 18px}.stats div{flex:1;background:var(--bg);border-radius:18px;padding:12px 8px;display:flex;flex-direction:column;gap:4px}.stats b{font-size:20px}.btn{display:block;width:100%;border:none;border-radius:18px;padding:16px;font-weight:800;font-size:16px;margin-top:8px;transition:transform .12s}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 12px 24px -12px var(--accent)}.btn.ghost{background:transparent;color:var(--muted);padding:12px}@media(prefers-reduced-motion:reduce){.item.enter .g,.item.hint .g,.timer.warn{animation:none}}
