@font-face{font-family:'Lilita One';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/lilita-one-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Lilita One';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/lilita-one-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Baloo 2';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/baloo2-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Baloo 2';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/baloo2-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Baloo 2';font-style:normal;font-weight:800;font-display:swap;src:url(assets/fonts/baloo2-800-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Baloo 2';font-style:normal;font-weight:800;font-display:swap;src:url(assets/fonts/baloo2-800-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--cols:8;--rows:8;--cell:40px;--tray-h:120px;--ad-h:50px;--bevel:calc(var(--cell) * 0.13);--pad:6px;--ink:#ffffff;--ink-dim:#a7aede;--bg-1:#2f3688;--bg-2:#1c2160;--bg-3:#0f1238;--vignette:0.42;--panel:#20264c;--rim:rgba(150,168,232,0.55);--rim-primed:rgba(196,226,255,0.9);--rim-glow:rgba(110,180,255,0.45);--well:#1a1f3f;--lattice:rgba(128,148,216,0.13);--accent:#7ea2ff;--font-ui:'Baloo 2',ui-rounded,'SF Pro Rounded',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,system-ui,sans-serif;--font-display:'Lilita One','Baloo 2',ui-rounded,Impact,'Arial Black',fantasy,sans-serif;--ease-out:cubic-bezier(0.22,0.8,0.32,1);--ease-back:cubic-bezier(0.34,1.56,0.64,1);--ease-pop:cubic-bezier(0.28,1.5,0.5,1);color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box}html,body{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:radial-gradient(135% 95% at 50% -12%,var(--bg-1) 0%,var(--bg-2) 42%,var(--bg-3) 100%),var(--bg-3);transition:background 900ms ease;color:var(--ink);font-family:var(--font-ui);font-weight:700;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none}body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(125% 88% at 50% 44%,rgba(0,0,0,0) 42%,rgba(0,0,0,calc(var(--vignette) * 0.56)) 76%,rgba(0,0,0,var(--vignette)) 100%)}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation}svg{display:block}.hidden{display:none !important}#shake{position:relative;z-index:1;width:100%;height:100%;will-change:transform}#app{display:flex;flex-direction:column;width:100%;max-width:480px;height:100%;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 10px) calc(env(safe-area-inset-right,0px) + 12px) calc(env(safe-area-inset-bottom,0px) + 8px) calc(env(safe-area-inset-left,0px) + 12px);touch-action:none}#board-area{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0}#board{position:relative;padding:var(--pad);border-radius:16px;background:var(--panel);box-shadow:inset 0 0 0 2.5px var(--rim),0 12px 30px rgba(0,0,0,0.42);transition:box-shadow 200ms var(--ease-out),background 900ms ease;touch-action:none}#board.primed{box-shadow:inset 0 0 0 2.5px var(--rim-primed),0 0 38px var(--rim-glow),0 12px 30px rgba(0,0,0,0.42)}#cells,#ghost-layer,#blocks,#lines-fx{position:absolute;inset:var(--pad)}#cells{display:grid;grid-template-columns:repeat(var(--cols),var(--cell));grid-template-rows:repeat(var(--rows),var(--cell))}#ghost-layer,#blocks,#lines-fx{pointer-events:none}#lines-fx{overflow:hidden;border-radius:calc(var(--pad) * 1.4)}.cell{position:relative;font-size:var(--cell)}.cell::before{content:'';position:absolute;inset:0;background:var(--well);box-shadow:inset 0 0 0 1px var(--lattice)}.cell::after{content:'';position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}.cell.will-clear::after{animation:hint-pulse 620ms ease-in-out infinite}@keyframes hint-pulse{0%,100%{opacity:0.05}50%{opacity:0.34}}.block{position:absolute;left:0;top:0;width:var(--cell);height:var(--cell);transform:translate3d(calc(var(--bc) * var(--cell)),calc(var(--br) * var(--cell)),0)}.block-inner{position:absolute;inset:0;font-size:var(--cell);border-radius:1px;background:var(--fc);border:var(--bevel) solid;border-top-color:var(--et);border-left-color:var(--el);border-right-color:var(--er);border-bottom-color:var(--eb)}.block-inner::before{content:'';position:absolute;inset:calc(var(--bevel) * -1);border-radius:inherit;background:#fff;opacity:0;pointer-events:none}.block-inner::after{content:'';position:absolute;inset:calc(var(--bevel) * -1);border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);pointer-events:none}.block.will-clear .block-inner::before{animation:hint-pulse 620ms ease-in-out infinite}.block.flash .block-inner::before{animation:none;opacity:1}.block.place .block-inner{animation:place-pop 260ms var(--ease-out) both}@keyframes place-pop{0%{transform:scale(0.46,0.46)}42%{transform:scale(1.16,0.86)}64%{transform:scale(0.93,1.08)}82%{transform:scale(1.03,0.98)}100%{transform:scale(1,1)}}.block.recolor .block-inner{animation:recolor-pop 190ms var(--ease-back) both}@keyframes recolor-pop{0%{transform:scale(1)}40%{transform:scale(1.2)}100%{transform:scale(1.07)}}.block.clearing .block-inner{animation:clear-swell 100ms var(--ease-out) both}@keyframes clear-swell{0%{transform:scale(1.07)}100%{transform:scale(1.3)}}.block.collapse{animation:collapse-fall 560ms cubic-bezier(0.5,0,0.9,0.4) both}@keyframes collapse-fall{0%{opacity:1;transform:translate3d(calc(var(--bc) * var(--cell)),calc(var(--br) * var(--cell)),0)}18%{opacity:1;transform:translate3d(calc(var(--bc) * var(--cell)),calc(var(--br) * var(--cell) - 0.18 * var(--cell)),0) scale(1.08)}100%{opacity:0;transform:translate3d(calc(var(--bc) * var(--cell)),calc(var(--br) * var(--cell) + 62vh),0) scale(0.78) rotate(28deg)}}#ghost-layer .block-inner{opacity:0.45;animation:ghost-breathe 1.5s ease-in-out infinite}@keyframes ghost-breathe{0%,100%{opacity:0.36}50%{opacity:0.56}}.sweep{position:absolute;overflow:hidden;pointer-events:none}.sweep::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(190,225,255,0.55) 38%,rgba(255,255,255,1) 50%,rgba(190,225,255,0.55) 62%,rgba(255,255,255,0) 100%);animation:sweep-across 420ms cubic-bezier(0.3,0,0.2,1) both}.sweep-row{left:0;right:0;height:var(--cell);transform:translate3d(0,calc(var(--br) * var(--cell)),0)}.sweep-col{top:0;bottom:0;width:var(--cell);transform:translate3d(calc(var(--bc) * var(--cell)),0,0)}.sweep-col::before{background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(190,225,255,0.55) 38%,rgba(255,255,255,1) 50%,rgba(190,225,255,0.55) 62%,rgba(255,255,255,0) 100%);animation-name:sweep-down}@keyframes sweep-across{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(100%,0,0)}}@keyframes sweep-down{from{transform:translate3d(0,-100%,0)}to{transform:translate3d(0,100%,0)}}#tray{flex:0 0 auto;display:flex;align-items:center;height:var(--tray-h);margin-top:8px;touch-action:none}.tray-slot{position:relative;flex:1 1 0;min-width:0;height:100%;display:flex;align-items:center;justify-content:center}.tray-piece{flex:0 0 auto;transform:scale(var(--s,0.65));transition:opacity 200ms linear}.tray-piece.dead{opacity:0.24}.piece{position:relative}.piece.pop{animation:piece-pop 400ms var(--ease-pop) both}@keyframes piece-pop{0%{opacity:0;transform:scale(0.15) rotate(-16deg)}55%{opacity:1;transform:scale(1.18) rotate(5deg)}76%{transform:scale(0.96) rotate(-2deg)}100%{opacity:1;transform:scale(1) rotate(0deg)}}#hud{flex:0 0 auto}.hud-top{position:relative;display:flex;align-items:center;justify-content:center;min-height:30px}.best{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:800;letter-spacing:0.02em;color:#cdd4ff}.crown{width:17px;height:auto;fill:#ffcf3d;filter:drop-shadow(0 1px 0 rgba(0,0,0,0.35))}.icon-btn{position:absolute;right:0;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:rgba(255,255,255,0.09);box-shadow:inset 0 1px 0 rgba(255,255,255,0.16);transition:transform 120ms var(--ease-out),opacity 120ms linear}.icon-btn:active{transform:translateY(-50%) scale(0.86)}.icon-btn svg{width:20px;height:20px;color:#dbe1ff}.icon-btn .stroke{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-btn .knob{fill:currentColor;stroke:#20264c;stroke-width:1.6}.icon-btn.icon-left{left:0;right:auto}.level-tag{display:flex;flex-direction:column;align-items:center;gap:1px}.level-tag-n{font-family:var(--font-display);font-size:15px;font-weight:900;letter-spacing:0.06em;color:#ffd12e;text-shadow:0 1px 0 rgba(0,0,0,0.35);line-height:1}.level-tag-name{font-size:10px;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;color:#b6bdf0;line-height:1}.score{font-family:var(--font-display);letter-spacing:0.01em;margin-top:2px;text-align:center;font-size:clamp(36px,12.5vw,56px);font-weight:900;line-height:1.05;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;text-shadow:0 3px 0 rgba(0,0,0,0.28),0 0 24px rgba(120,150,255,0.35);will-change:transform}.score.bump{animation:score-bump 320ms var(--ease-back)}@keyframes score-bump{0%{transform:scale(1)}30%{transform:scale(1.22)}58%{transform:scale(0.97)}100%{transform:scale(1)}}.score-row{position:relative;display:flex;align-items:center;justify-content:center}.score:not([data-tier="0"]){color:hsl(var(--streak-hue,210) 100% 80%);text-shadow:0 3px 0 rgba(0,0,0,0.28),0 0 24px hsl(var(--streak-hue,210) 100% 62% / 0.8)}.score[data-tier="2"]{text-shadow:0 3px 0 rgba(0,0,0,0.28),0 0 30px hsl(var(--streak-hue,210) 100% 62% / 0.85),0 0 60px hsl(var(--streak-hue,210) 100% 55% / 0.4)}.score[data-tier="3"]{text-shadow:0 3px 0 rgba(0,0,0,0.28),0 0 36px hsl(var(--streak-hue,210) 100% 64% / 0.95),0 0 72px hsl(var(--streak-hue,210) 100% 55% / 0.55)}.score.cooling{color:#b9c1e2;text-shadow:0 3px 0 rgba(0,0,0,0.28),0 0 12px rgba(150,160,210,0.3)}.score.combo-surge{animation:score-surge 640ms var(--ease-back)}@keyframes score-surge{0%{transform:scale(1);filter:brightness(1)}22%{transform:scale(1.48) rotate(-3deg);filter:brightness(1.7) saturate(1.5)}42%{transform:scale(0.93) rotate(1.5deg);filter:brightness(1.15)}62%{transform:scale(1.14) rotate(-0.5deg);filter:brightness(1.3)}80%{transform:scale(0.99);filter:brightness(1.05)}100%{transform:scale(1);filter:brightness(1)}}.goals{display:flex;justify-content:center;gap:8px;margin-top:3px;margin-bottom:12px}.goal-chip{display:flex;align-items:center;gap:6px;padding:4px 11px 5px;border-radius:999px;background:rgba(255,255,255,0.07);box-shadow:inset 0 1px 0 rgba(255,255,255,0.12)}.goal-label{font-size:9px;font-weight:800;letter-spacing:0.12em;color:rgba(220,228,255,0.6)}.goal-value{font-family:var(--font-display);font-size:13px;font-weight:900;font-variant-numeric:tabular-nums;color:#e6eaff}.goal-chip.done{background:rgba(90,220,140,0.16);box-shadow:inset 0 1px 0 rgba(140,255,180,0.25)}.goal-chip.done .goal-value{color:#7bf59a}.goal-chip.done .goal-label{color:rgba(160,245,190,0.7)}@media (prefers-reduced-motion:reduce){.score.combo-surge{animation:none}}.ad-slot{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:100%}#ad-banner{height:var(--ad-h);margin-top:8px}.ad-ph{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;max-width:320px;height:100%;border:1px dashed rgba(190,200,255,0.22);border-radius:11px;background:rgba(255,255,255,0.035);font-size:11px;font-weight:700;letter-spacing:0.13em;color:rgba(190,199,245,0.5)}.ad-ph-tag{padding:2px 7px;border-radius:5px;background:rgba(255,255,255,0.12);color:rgba(222,228,255,0.85);font-weight:900;letter-spacing:0.1em}#ad-panel{margin-top:18px}#ad-panel .ad-ph{flex-direction:column;gap:7px;height:auto;aspect-ratio:300 / 250;max-height:26vh}#fx-canvas{position:fixed;inset:0;z-index:5;pointer-events:none}#drag-layer{position:fixed;inset:0;z-index:6;pointer-events:none}#float-layer{position:fixed;inset:0;z-index:7;pointer-events:none}.drag-piece{position:fixed;left:0;top:0;transform-origin:0 0;will-change:transform;filter:drop-shadow(0 14px 16px rgba(0,0,0,0.5))}.drag-piece.lift{transition:transform 150ms cubic-bezier(0.24,1.35,0.4,1)}.drag-piece.returning{transition:transform 230ms var(--ease-out)}.float{font-family:var(--font-display);position:fixed;left:0;top:0;white-space:nowrap;font-weight:900;letter-spacing:-0.01em;text-shadow:0 3px 0 rgba(0,0,0,0.34),0 0 22px rgba(255,255,255,0.3);will-change:transform,opacity;animation:float-up 1000ms var(--ease-out) both}.float-points{font-size:31px;color:#fff}.float-points.big{font-size:45px;color:#ffe14d;text-shadow:0 3px 0 rgba(0,0,0,.34),0 0 30px rgba(255,210,60,0.7)}.float-combo{font-size:33px;color:#ffe07a;text-shadow:0 3px 0 rgba(0,0,0,.34),0 0 22px rgba(255,200,70,0.7)}.float-combo.t1{font-size:36px;color:#ffd12e;text-shadow:0 3px 0 rgba(0,0,0,.34),0 0 28px rgba(255,190,40,0.8)}.float-combo.t2{font-size:42px;color:#ff9c2e;text-shadow:0 4px 0 rgba(0,0,0,.34),0 0 34px rgba(255,140,30,0.9)}.float-combo.t3{font-size:48px;color:#ff5f4d;letter-spacing:0.02em;text-shadow:0 4px 0 rgba(0,0,0,.36),0 0 42px rgba(255,90,50,1),0 0 18px rgba(255,220,120,0.9)}.float-praise{font-size:31px;color:#7ef0ff;letter-spacing:0.05em;text-shadow:0 3px 0 rgba(0,0,0,.34),0 0 26px rgba(90,220,255,0.7)}@keyframes float-up{0%{opacity:0;transform:translate3d(var(--x),var(--y),0) translate(-50%,-50%) scale(0.3) rotate(-9deg)}16%{opacity:1;transform:translate3d(var(--x),var(--y),0) translate(-50%,-50%) scale(1.32) rotate(4deg)}32%{opacity:1;transform:translate3d(var(--x),var(--y),0) translate(-50%,-50%) scale(1) rotate(0deg)}72%{opacity:1}100%{opacity:0;transform:translate3d(var(--x),calc(var(--y) - 92px),0) translate(-50%,-50%) scale(0.94)}}.praise{font-family:var(--font-display);position:fixed;left:50%;top:42%;white-space:nowrap;font-size:clamp(34px,11.5vw,50px);font-weight:900;letter-spacing:0.015em;color:var(--praise-color,#fff);text-shadow:0 4px 0 rgba(0,0,0,0.35),0 0 36px var(--praise-glow,rgba(255,255,255,0.6));will-change:transform,opacity;animation:praise-in 1600ms var(--ease-out) both}@keyframes praise-in{0%{opacity:0;transform:translate(-50%,-50%) scale(0.35) rotate(-11deg)}11%{opacity:1;transform:translate(-50%,-50%) scale(1.28) rotate(5deg)}20%{transform:translate(-50%,-50%) scale(0.97) rotate(-1.5deg)}27%{transform:translate(-50%,-50%) scale(1) rotate(0deg)}70%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0deg)}100%{opacity:0;transform:translate(-50%,-76%) scale(1.12)}}.praise.soft{font-size:clamp(26px,8vw,36px);letter-spacing:0.16em;text-shadow:0 3px 0 rgba(0,0,0,0.32),0 0 18px var(--praise-glow,rgba(255,255,255,0.3))}#overlay{position:fixed;inset:0;z-index:10;display:flex;overflow-y:auto;padding:24px;background:rgba(7,9,30,0.72);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:fade-in 240ms ease-out both;touch-action:pan-y}@keyframes fade-in{from{opacity:0}to{opacity:1}}.panel{position:relative;width:100%;max-width:320px;margin:auto;padding:30px 24px 24px;border-radius:26px;text-align:center;background:linear-gradient(180deg,#303879 0%,#1e2359 100%);box-shadow:0 22px 50px rgba(0,0,0,0.5),inset 0 2px 0 rgba(255,255,255,0.12),inset 0 -3px 0 rgba(0,0,0,0.3);animation:panel-in 420ms var(--ease-pop) both}@keyframes panel-in{0%{opacity:0;transform:translateY(34px) scale(0.82)}100%{opacity:1;transform:none}}.badge{font-family:var(--font-display);position:absolute;top:-14px;left:50%;padding:6px 16px;border-radius:999px;font-size:13px;font-weight:900;letter-spacing:0.08em;color:#4a2b00;background:linear-gradient(180deg,#ffe580,#ffb521);box-shadow:0 5px 14px rgba(255,170,20,0.4),inset 0 -2px 0 rgba(150,90,0,0.35);transform:translateX(-50%);animation:badge-in 520ms var(--ease-pop) 160ms both}@keyframes badge-in{0%{opacity:0;transform:translateX(-50%) scale(0.3) rotate(-16deg)}65%{opacity:1;transform:translateX(-50%) scale(1.2) rotate(5deg)}100%{opacity:1;transform:translateX(-50%) scale(1) rotate(-3deg)}}#over-title{font-family:var(--font-display);font-size:27px;font-weight:900;letter-spacing:0.01em}.over-label{margin-top:16px;font-size:12px;font-weight:800;letter-spacing:0.16em;color:var(--ink-dim)}.over-score{font-family:var(--font-display);font-size:56px;font-weight:900;line-height:1.1;font-variant-numeric:tabular-nums;text-shadow:0 3px 0 rgba(0,0,0,0.3)}.over-best{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:2px;font-size:15px;color:#cdd4ff}.btn{font-family:var(--font-display);width:100%;margin-top:22px;padding:15px 20px;border-radius:18px;font-size:19px;font-weight:900;letter-spacing:0.02em;color:#06331a;background:linear-gradient(180deg,#7ff08f 0%,#35c95c 100%);box-shadow:0 6px 0 #1d8b3c,0 12px 22px rgba(0,0,0,0.35),inset 0 2px 0 rgba(255,255,255,0.45);transition:transform 90ms var(--ease-out),box-shadow 90ms var(--ease-out)}.btn:active{transform:translateY(4px);box-shadow:0 2px 0 #1d8b3c,0 6px 12px rgba(0,0,0,0.32),inset 0 2px 0 rgba(255,255,255,0.45)}.btn-ghost{margin-top:12px;padding:11px 18px;border-radius:14px;font-size:15px;font-weight:800;letter-spacing:0.03em;color:#bcc4ff;background:rgba(255,255,255,0.08);box-shadow:inset 0 1px 0 rgba(255,255,255,0.14);transition:transform 90ms var(--ease-out),opacity 90ms linear}.btn-ghost:active{transform:scale(0.95);opacity:0.8}#splash{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:28px;background-color:#0d1030;background-image:radial-gradient(120% 80% at 50% 18%,#3a42a0 0%,#1e2360 46%,#0d1030 100%);touch-action:none}#splash.out{animation:splash-out 460ms var(--ease-out) both}@keyframes splash-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.14)}}.splash-inner{width:100%;max-width:320px;text-align:center}.splash-logo{--logo:46px;--bevel:calc(var(--logo) * 0.13);position:relative;width:calc(var(--logo) * 3);height:calc(var(--logo) * 2);margin:0 auto 26px;animation:logo-bob 3.4s ease-in-out 800ms infinite}@keyframes logo-bob{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-8px) rotate(1.6deg)}}.logo-block{position:absolute;left:0;top:0;width:var(--logo);height:var(--logo);animation:logo-drop 760ms var(--ease-pop) both}.logo-block .block-inner{font-size:var(--logo)}@keyframes logo-drop{0%{opacity:0;transform:translate3d(calc(var(--bc) * var(--logo)),calc(var(--br) * var(--logo) - 130px),0) scale(0.5) rotate(-24deg)}62%{opacity:1;transform:translate3d(calc(var(--bc) * var(--logo)),calc(var(--br) * var(--logo) + 7px),0) scale(1.09) rotate(4deg)}100%{opacity:1;transform:translate3d(calc(var(--bc) * var(--logo)),calc(var(--br) * var(--logo)),0) scale(1) rotate(0deg)}}.splash-title{font-family:var(--font-display);font-size:clamp(34px,12vw,46px);font-weight:900;line-height:0.98;letter-spacing:0.02em;animation:splash-title-in 620ms var(--ease-pop) 260ms both}.splash-word{display:block}.splash-word.accent{background:linear-gradient(180deg,#ffe27a 0%,#ffb020 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 0 rgba(0,0,0,0.3))}@keyframes splash-title-in{0%{opacity:0;transform:translateY(22px) scale(0.8)}100%{opacity:1;transform:none}}.splash-load{margin-top:34px;animation:fade-up 520ms var(--ease-out) 420ms both}.load-track{position:relative;height:14px;border-radius:999px;overflow:hidden;background:rgba(10,12,40,0.7);box-shadow:inset 0 2px 5px rgba(0,0,0,0.55),inset 0 -1px 0 rgba(255,255,255,0.08)}.load-fill{position:relative;height:100%;width:0%;border-radius:999px;background:linear-gradient(180deg,#8df59c 0%,#35c95c 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,0.5),0 0 12px rgba(90,230,130,0.5)}.load-fill::after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,0.45) 50%,transparent 70%);background-size:220% 100%;animation:load-sheen 1.3s linear infinite}@keyframes load-sheen{0%{background-position:130% 0}100%{background-position:-30% 0}}.splash-load.done .load-fill::after{animation:none;opacity:0}.load-note{margin-top:11px;font-size:12px;font-weight:800;letter-spacing:0.18em;color:#b6bdf0;font-variant-numeric:tabular-nums}.splash-menu{animation:fade-up 460ms var(--ease-out) both}.btn-adventure{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:14px;animation:play-in 480ms var(--ease-pop) 220ms backwards;color:#101a4d;background:linear-gradient(180deg,#a9bcff 0%,#5e7cff 100%);box-shadow:0 6px 0 #3a55d9,0 12px 22px rgba(0,0,0,0.35),inset 0 2px 0 rgba(255,255,255,0.45)}.btn-adventure:active{transform:translateY(4px);box-shadow:0 2px 0 #3a55d9,0 6px 12px rgba(0,0,0,0.32),inset 0 2px 0 rgba(255,255,255,0.45)}.btn-note{font-family:var(--font-ui);font-size:12px;font-weight:800;letter-spacing:0.05em;opacity:0.72;line-height:1}.splash-best{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;font-size:13px;font-weight:800;letter-spacing:0.14em;color:#b6bdf0;animation:fade-up 520ms var(--ease-out) 460ms both}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:none}}.btn-play-wrap{animation:play-in 480ms var(--ease-pop) 40ms both}.btn-play{font-family:var(--font-display);margin-top:26px;animation:play-breathe 2.4s ease-in-out 1200ms infinite}@keyframes play-in{0%{opacity:0;transform:translateY(26px) scale(0.7)}100%{opacity:1;transform:none}}@keyframes play-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}.btn-play:active{animation:none}#splash-new{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:14px;padding:12px 18px;border-radius:16px;font-size:15px;font-weight:800;letter-spacing:0.03em;color:#c9f5d2;background:linear-gradient(180deg,rgba(90,220,130,0.18) 0%,rgba(50,160,90,0.10) 100%);border:1.5px solid rgba(110,230,150,0.42);box-shadow:inset 0 1px 0 rgba(255,255,255,0.18),0 4px 12px rgba(0,0,0,0.28);animation:fade-up 420ms var(--ease-out) 400ms backwards}#splash-new::before{content:'+';display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:15px;font-weight:900;line-height:1;color:#06331a;background:linear-gradient(180deg,#7ff08f,#35c95c);box-shadow:0 1px 0 rgba(0,0,0,0.25)}#splash-new:active{transform:scale(0.96);opacity:0.85}.modal{position:fixed;inset:0;z-index:14;display:flex;overflow-y:auto;padding:24px;background:rgba(7,9,30,0.66);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in 200ms ease-out both;touch-action:pan-y}#confirm{z-index:16}.panel.small{max-width:300px;padding:24px 20px 20px}.modal-title{font-family:var(--font-display);font-size:23px;font-weight:900;letter-spacing:0.01em}.modal-text{margin-top:9px;font-size:14px;font-weight:700;line-height:1.45;color:#b9c1ec}.modal-row{display:flex;gap:10px;margin-top:22px}.modal-row .btn,.modal-row .btn-ghost{flex:1;margin-top:0}.btn-ghost.wide{display:block;width:100%}.btn-warn{color:#4a1503;background:linear-gradient(180deg,#ffb27a 0%,#f4702f 100%);box-shadow:0 6px 0 #b24a15,0 12px 22px rgba(0,0,0,0.35),inset 0 2px 0 rgba(255,255,255,0.45)}.btn-warn:active{transform:translateY(4px);box-shadow:0 2px 0 #b24a15,0 6px 12px rgba(0,0,0,0.32),inset 0 2px 0 rgba(255,255,255,0.45)}.settings-toggles{display:flex;gap:12px;margin-top:18px}.toggle{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:15px 8px 13px;border-radius:16px;font-size:13px;font-weight:800;color:#dbe1ff;background:rgba(255,255,255,0.08);box-shadow:inset 0 1px 0 rgba(255,255,255,0.16);transition:transform 110ms var(--ease-out),opacity 120ms linear}.toggle:active{transform:scale(0.94)}.toggle svg{width:27px;height:27px;color:#dbe1ff}.toggle .spk{fill:currentColor}.toggle .stroke{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.toggle .wave,.toggle .slash{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.toggle .slash{opacity:0}.toggle.off{opacity:0.55}.toggle.off .wave{opacity:0}.toggle.off .slash{opacity:1}#settings .btn{margin-top:16px}#settings .btn-ghost.wide{margin-top:10px}#settings .btn-ghost.wide:first-of-type{margin-top:18px}.lv-stars{display:flex;justify-content:center;gap:12px;margin-top:16px}.lv-stars.none{display:none}.lv-star{width:42px;height:42px;fill:rgba(255,255,255,0.13)}.lv-star.tiny{width:12px;height:12px}.lv-stars .lv-star.earned,.lv-star.tiny.earned{fill:#ffd12e;filter:drop-shadow(0 2px 6px rgba(255,190,20,0.45))}.lv-stars .lv-star.earned{animation:star-pop 520ms var(--ease-pop) both}@keyframes star-pop{0%{opacity:0;transform:scale(0.2) rotate(-40deg)}62%{opacity:1;transform:scale(1.28) rotate(8deg)}100%{opacity:1;transform:scale(1) rotate(0deg)}}#level-over .btn{margin-top:20px}#level-over .btn-ghost.wide{margin-top:10px}#overlay .btn-ghost.wide{margin-top:10px}#levels{position:fixed;inset:0;z-index:21;display:flex;flex-direction:column;background-color:#0d1030;background-image:radial-gradient(120% 80% at 50% 18%,#3a42a0 0%,#1e2360 46%,#0d1030 100%);animation:fade-in 200ms ease-out both}.levels-head{display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top,0px) + 12px) calc(env(safe-area-inset-right,0px) + 16px) 10px calc(env(safe-area-inset-left,0px) + 16px)}.levels-head .icon-btn{position:static;transform:none;flex:0 0 auto}.levels-head .icon-btn:active{transform:scale(0.86)}#levels-title{flex:1;font-family:var(--font-display);font-size:22px;font-weight:900;letter-spacing:0.01em}.levels-stars{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;color:#ffd12e}#levels-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:2px calc(env(safe-area-inset-right,0px) + 16px) calc(env(safe-area-inset-bottom,0px) + 24px) calc(env(safe-area-inset-left,0px) + 16px)}#levels-grid{max-width:480px;margin:0 auto}.chapter-name{margin:20px 2px 10px;font-family:var(--font-display);font-size:14px;font-weight:900;letter-spacing:0.1em;text-transform:uppercase;color:#b6bdf0}.chapter:first-child .chapter-name{margin-top:6px}.chapter-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.level-btn{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:15px;background:rgba(255,255,255,0.07);box-shadow:inset 0 1px 0 rgba(255,255,255,0.12),0 3px 8px rgba(0,0,0,0.22);transition:transform 100ms var(--ease-out)}.level-btn:active:not(.locked){transform:scale(0.9)}.level-btn.cleared{background:linear-gradient(180deg,#39439c 0%,#272e75 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 3px 8px rgba(0,0,0,0.25)}.level-btn.next{color:#06331a;background:linear-gradient(180deg,#7ff08f 0%,#35c95c 100%);box-shadow:0 4px 0 #1d8b3c,0 8px 16px rgba(0,0,0,0.3),inset 0 2px 0 rgba(255,255,255,0.45);animation:play-breathe 2.4s ease-in-out infinite}.level-btn.next .lv-star{fill:rgba(6,51,26,0.25)}.level-btn.locked{opacity:0.35;cursor:default}.level-n{font-family:var(--font-display);font-size:17px;font-weight:900;line-height:1}.level-stars{display:flex;gap:2px}#tutorial{position:fixed;inset:0;z-index:12;pointer-events:none}#tutorial-spot{position:fixed;border-radius:16px;box-shadow:0 0 0 3px rgba(255,255,255,0.9),0 0 0 8px rgba(120,200,255,0.28),0 0 34px 8px rgba(110,190,255,0.5);transition:left 260ms var(--ease-out),top 260ms var(--ease-out),width 260ms var(--ease-out),height 260ms var(--ease-out);animation:spot-pulse 1.5s ease-in-out infinite;pointer-events:none}@keyframes spot-pulse{0%,100%{opacity:0.55}50%{opacity:1}}#tutorial-hand{position:fixed;left:0;top:0;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;background:rgba(255,255,255,0.3);box-shadow:0 0 0 3px rgba(255,255,255,0.75),0 0 22px 4px rgba(255,255,255,0.45);pointer-events:none;animation:hand-drag 2.6s ease-in-out infinite}@keyframes hand-drag{0%{opacity:0;transform:translate3d(var(--fx),var(--fy),0) scale(0.5)}10%{opacity:1;transform:translate3d(var(--fx),var(--fy),0) scale(1)}20%{opacity:1;transform:translate3d(var(--fx),var(--fy),0) scale(0.72)}68%{opacity:1;transform:translate3d(var(--tx),var(--ty),0) scale(0.72)}80%{opacity:1;transform:translate3d(var(--tx),var(--ty),0) scale(1)}100%{opacity:0;transform:translate3d(var(--tx),var(--ty),0) scale(1.5)}}#tutorial-card{position:fixed;left:50%;top:120px;width:min(340px,calc(100vw - 32px));padding:14px 18px 12px;border-radius:18px;text-align:center;background:rgba(14,18,52,0.92);box-shadow:0 12px 30px rgba(0,0,0,0.45),inset 0 1px 0 rgba(255,255,255,0.14);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transform:translateX(-50%);pointer-events:none}#tutorial-card.in{animation:tut-card-in 420ms var(--ease-pop) both}@keyframes tut-card-in{0%{opacity:0;transform:translateX(-50%) translateY(-14px) scale(0.88)}100%{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}#tutorial-text{font-size:15px;font-weight:800;line-height:1.35;color:#e6eaff}#tutorial-dots{display:flex;justify-content:center;gap:6px;margin-top:10px}.tut-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,0.24);transition:background 200ms linear,transform 200ms var(--ease-out)}.tut-dot.done{background:rgba(255,255,255,0.45)}.tut-dot.on{background:#ffd12e;transform:scale(1.5)}#tutorial-skip{position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);right:calc(env(safe-area-inset-right,0px) + 12px);padding:7px 15px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:0.06em;color:#dbe1ff;background:rgba(255,255,255,0.14);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 4px 14px rgba(0,0,0,0.3);pointer-events:auto;transition:transform 90ms var(--ease-out),opacity 90ms linear}#tutorial-skip:active{transform:scale(0.92);opacity:0.8}#app.tutoring .icon-btn{opacity:0;pointer-events:none}.block.demo .block-inner{animation-delay:var(--demo-delay,0ms);animation-fill-mode:both;animation-timing-function:var(--ease-out)}.block.demo .block-inner::before{animation:demo-flash 180ms ease-out var(--demo-delay,0ms) both}@keyframes demo-flash{0%{opacity:0.75}100%{opacity:0}}.block.demo-bloom .block-inner{animation-name:demo-bloom;animation-duration:320ms}@keyframes demo-bloom{0%{transform:scale(1) rotate(0deg);opacity:1}35%{transform:scale(1.18) rotate(calc(var(--demo-spin) * 0.08));opacity:1;filter:brightness(1.5) saturate(1.2)}100%{transform:scale(0.25) rotate(calc(var(--demo-spin) * 0.4));opacity:0;filter:brightness(2)}}.block.demo-drift .block-inner{animation-name:demo-drift;animation-duration:340ms;animation-timing-function:cubic-bezier(0.25,0.6,0.3,1)}@keyframes demo-drift{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(0,-0.95em) scale(0.72);opacity:0;filter:brightness(1.7)}}.block.demo-unravel .block-inner{animation-name:demo-unravel;animation-duration:300ms}@keyframes demo-unravel{0%{transform:translate(0,0) rotate(0deg) scale(1);opacity:1}100%{transform:translate(calc(var(--demo-dx) * 0.55em),calc(var(--demo-dy) * 0.55em)) rotate(calc(var(--demo-spin) * 2.2)) scale(0.2);opacity:0;filter:brightness(1.8)}}.block.demo-shimmer .block-inner{animation-name:demo-shimmer;animation-duration:260ms}@keyframes demo-shimmer{0%{transform:scale(1);opacity:1;filter:brightness(1)}40%{transform:scale(1.1);opacity:1;filter:brightness(2.6) saturate(0.7)}100%{transform:scale(0.9);opacity:0;filter:brightness(3.2) saturate(0.4)}}.block.demo-bubble .block-inner{animation-name:demo-bubble;animation-duration:300ms;animation-timing-function:cubic-bezier(0.3,0.7,0.2,1)}@keyframes demo-bubble{0%{transform:scale(1);opacity:1}70%{transform:scale(1.32);opacity:0.75;filter:brightness(1.5)}85%{transform:scale(1.38);opacity:0.5;filter:brightness(2.2)}100%{transform:scale(0.6);opacity:0;filter:brightness(2.4)}}.block.demo-crystalize .block-inner{animation-name:demo-crystalize;animation-duration:280ms;animation-timing-function:cubic-bezier(0.2,0.9,0.3,1)}@keyframes demo-crystalize{0%{transform:translate(0,0) scale(1);opacity:1;filter:saturate(1)}25%{transform:translate(0,0) scale(1.07);opacity:1;filter:brightness(2) saturate(0.4)}100%{transform:translate(calc(var(--demo-dx) * 0.55em),calc(var(--demo-dy) * 0.55em)) scale(0.3) rotate(calc(var(--demo-spin) * 0.6));opacity:0;filter:brightness(2.4) saturate(0.3)}}.block.demo-wisp .block-inner{animation-name:demo-wisp;animation-duration:330ms}@keyframes demo-wisp{0%{transform:translate(0,0) scale(1,1);opacity:1}45%{transform:translate(0,-0.2em) scale(0.72,1.18);opacity:0.9;filter:brightness(1.6)}100%{transform:translate(0,-0.85em) scale(0.2,1.5);opacity:0;filter:brightness(2)}}.block.demo-leaffall .block-inner{animation-name:demo-leaffall;animation-duration:350ms;animation-timing-function:cubic-bezier(0.4,0,0.75,0.6)}@keyframes demo-leaffall{0%{transform:translate(0,0) rotate(0deg);opacity:1}20%{transform:translate(0,-0.14em) rotate(calc(var(--demo-spin) * 0.12));opacity:1}100%{transform:translate(calc(var(--demo-dx) * 0.3em),calc(var(--demo-dy) * 1em)) rotate(var(--demo-spin)) scale(0.8);opacity:0}}.block.demo-ripple .block-inner{animation-name:demo-ripple;animation-duration:290ms}@keyframes demo-ripple{0%{transform:translate(0,0) scale(1);opacity:1}40%{transform:translate(0,0) scale(1.12,0.88);opacity:1;filter:brightness(1.5)}100%{transform:translate(calc(var(--demo-dx) * 1em),calc(var(--demo-dy) * 1em)) scale(0.08);opacity:0;filter:brightness(1.8)}}.block.demo-feather .block-inner{animation-name:demo-feather;animation-duration:360ms;animation-timing-function:ease-in-out}@keyframes demo-feather{0%{transform:translate(0,0) scale(1) rotate(0deg);opacity:1}100%{transform:translate(0,0.5em) scale(0.86) rotate(calc(var(--demo-spin) * 0.25));opacity:0}}.block.demo-starfall .block-inner{animation-name:demo-starfall;animation-duration:270ms;animation-timing-function:cubic-bezier(0.15,0.85,0.3,1)}@keyframes demo-starfall{0%{transform:translate(0,0) scale(1);opacity:1}30%{transform:translate(0,0) scale(0.55);opacity:1;filter:brightness(3)}100%{transform:translate(calc(var(--demo-dx) * 1em),calc(var(--demo-dy) * 1em)) scale(0.12);opacity:0;filter:brightness(3.4)}}.block.demo-veilpass .block-inner{animation-name:demo-veilpass;animation-duration:300ms}@keyframes demo-veilpass{0%{transform:translate(0,0) scale(1);opacity:1;filter:brightness(1)}50%{transform:translate(calc(var(--demo-dx) * 0.08em),calc(var(--demo-dy) * 0.08em)) scale(1.04);opacity:0.85;filter:brightness(2.2) saturate(0.5)}100%{transform:translate(calc(var(--demo-dx) * 0.35em),calc(var(--demo-dy) * 0.35em)) scale(0.94);opacity:0;filter:brightness(2.6) saturate(0.2)}}.block.demo-spiral .block-inner{animation-name:demo-spiral;animation-duration:300ms;animation-timing-function:cubic-bezier(0.6,0,0.8,0.4)}@keyframes demo-spiral{0%{transform:translate(0,0) rotate(0deg) scale(1);opacity:1}100%{transform:translate(calc(var(--demo-dx) * 1.3em),calc(var(--demo-dy) * 1.3em)) rotate(calc(var(--demo-spin) * 3)) scale(0.06);opacity:0;filter:brightness(1.8)}}.block.demo-chime .block-inner{animation-name:demo-chime;animation-duration:280ms;animation-timing-function:cubic-bezier(0.2,0.9,0.35,1)}@keyframes demo-chime{0%{transform:scale(1);opacity:1}22%{transform:scale(1.26);opacity:1;filter:brightness(2.2)}55%{transform:scale(0.92);opacity:0.8;filter:brightness(1.4)}100%{transform:scale(1.05);opacity:0;filter:brightness(2)}}.block.demo-frost .block-inner{animation-name:demo-frost;animation-duration:260ms;animation-timing-function:cubic-bezier(0.2,0.9,0.3,1)}@keyframes demo-frost{0%{transform:translate(0,0) scale(1);opacity:1;filter:brightness(1) saturate(1)}25%{transform:translate(0,0) scale(1.06);opacity:1;filter:brightness(2.4) saturate(0.25)}100%{transform:translate(calc(var(--demo-dx) * 0.7em),calc(var(--demo-dy) * 0.7em)) scale(0.35) rotate(calc(var(--demo-spin) * 0.5));opacity:0;filter:brightness(2.6) saturate(0.2)}}.block.demo-flutter .block-inner{animation-name:demo-flutter;animation-duration:340ms;animation-timing-function:cubic-bezier(0.3,0.6,0.3,1)}@keyframes demo-flutter{0%{transform:translate(0,0) scaleX(1) rotate(0deg);opacity:1}30%{transform:translate(0,-0.12em) scaleX(0.55) rotate(calc(var(--demo-spin) * 0.1));opacity:1;filter:brightness(1.6) saturate(1.3)}60%{transform:translate(0,-0.4em) scaleX(1.05) rotate(calc(var(--demo-spin) * 0.2));opacity:0.7}100%{transform:translate(0,-0.95em) scaleX(0.4) rotate(calc(var(--demo-spin) * 0.5));opacity:0}}.block.demo-ember .block-inner{animation-name:demo-ember;animation-duration:330ms}@keyframes demo-ember{0%{transform:translate(0,0) scale(1);opacity:1;filter:brightness(1)}30%{transform:translate(0,-0.08em) scale(1.08);opacity:1;filter:brightness(2) saturate(1.5)}100%{transform:translate(0,-0.8em) scale(0.5);opacity:0;filter:brightness(2.6) saturate(1.6)}}.block.demo-inferno .block-inner{animation-name:demo-inferno;animation-duration:320ms;animation-timing-function:cubic-bezier(0.3,0,0.4,1)}@keyframes demo-inferno{0%{transform:translate(0,0) scale(1);opacity:1;filter:brightness(1)}30%{transform:translate(0,-0.1em) scale(1.14);opacity:1;filter:brightness(2.2) saturate(1.6)}100%{transform:translate(0,-1.1em) scale(0.55);opacity:0;filter:brightness(3)}}.block.demo-nova .block-inner{animation-name:demo-nova;animation-duration:250ms;animation-timing-function:cubic-bezier(0.1,0.85,0.3,1)}@keyframes demo-nova{0%{transform:translate(0,0) scale(1);opacity:1;filter:brightness(1)}18%{transform:translate(0,0) scale(1.4);opacity:1;filter:brightness(4)}100%{transform:translate(calc(var(--demo-dx) * 1em),calc(var(--demo-dy) * 1em)) scale(0.15);opacity:0;filter:brightness(4)}}.block.demo-blossom .block-inner{animation-name:demo-blossom;animation-duration:350ms;animation-timing-function:cubic-bezier(0.25,0.9,0.3,1)}@keyframes demo-blossom{0%{transform:translate(0,0) scale(1) rotate(0deg);opacity:1}30%{transform:translate(0,0) scale(1.3) rotate(calc(var(--demo-spin) * 0.15));opacity:1;filter:brightness(1.9) saturate(1.4)}100%{transform:translate(calc(var(--demo-dx) * 0.8em),calc(var(--demo-dy) * 0.8em)) scale(0.2) rotate(calc(var(--demo-spin) * 0.9));opacity:0;filter:brightness(2.2)}}.block.demo-aurora .block-inner{animation-name:demo-aurora;animation-duration:340ms}@keyframes demo-aurora{0%{transform:translate(0,0) scaleY(1);opacity:1;filter:brightness(1) hue-rotate(0deg)}45%{transform:translate(calc(var(--demo-dx) * 0.1em),-0.1em) scaleY(1.2);opacity:0.9;filter:brightness(2.2) hue-rotate(40deg) saturate(1.4)}100%{transform:translate(calc(var(--demo-dx) * 0.4em),-0.45em) scaleY(0.3);opacity:0;filter:brightness(2.6) hue-rotate(80deg)}}.block.demo-storm .block-inner{animation-name:demo-storm;animation-duration:210ms;animation-timing-function:steps(4,end)}@keyframes demo-storm{0%{transform:scale(1,1);opacity:1;filter:brightness(1)}25%{transform:scale(1.3,0.82);opacity:1;filter:brightness(5)}50%{transform:scale(0.8,1.25);opacity:1;filter:brightness(1.4)}75%{transform:scale(1.15,0.9);opacity:1;filter:brightness(4)}100%{transform:scale(0.1,0.1);opacity:0;filter:brightness(5)}}.block.demo-comet .block-inner{animation-name:demo-comet;animation-duration:340ms;animation-timing-function:cubic-bezier(0.45,0,0.9,0.4)}@keyframes demo-comet{0%{transform:translate(0,0) rotate(0deg);opacity:1;filter:brightness(1)}15%{transform:translate(0,-0.18em) rotate(0deg);opacity:1;filter:brightness(2.6) saturate(1.5)}100%{transform:translate(calc(var(--demo-dx) * 0.4em),calc(var(--demo-dy) * 1em)) rotate(var(--demo-spin));opacity:0;filter:brightness(3)}}.block.demo-phoenix .block-inner{animation-name:demo-phoenix;animation-duration:340ms;animation-timing-function:cubic-bezier(0.2,0.85,0.3,1)}@keyframes demo-phoenix{0%{transform:translate(0,0) scale(1,1);opacity:1;filter:brightness(1)}28%{transform:translate(0,-0.1em) scale(1.35,0.85);opacity:1;filter:brightness(2.8) saturate(1.7)}100%{transform:translate(calc(var(--demo-dx) * 0.7em),calc(var(--demo-dy) * 0.7em - 0.5em)) scale(0.2,0.4);opacity:0;filter:brightness(3.4)}}.block.demo-runebreak .block-inner{animation-name:demo-runebreak;animation-duration:280ms;animation-timing-function:cubic-bezier(0.3,0.85,0.25,1)}@keyframes demo-runebreak{0%{transform:scale(1) rotate(0deg);opacity:1;filter:brightness(1)}20%{transform:scale(0.9) rotate(calc(var(--demo-spin) * -0.06));opacity:1;filter:brightness(0.7)}45%{transform:scale(1.24) rotate(calc(var(--demo-spin) * 0.1));opacity:1;filter:brightness(3.4) saturate(0.6)}100%{transform:scale(0.3) rotate(calc(var(--demo-spin) * 0.5));opacity:0;filter:brightness(3.6)}}.block.demo-singularity .block-inner{animation-name:demo-singularity;animation-duration:330ms;animation-timing-function:cubic-bezier(0.7,0,0.85,0.2)}@keyframes demo-singularity{0%{transform:translate(0,0) rotate(0deg) scale(1);opacity:1}30%{transform:translate(0,0) rotate(calc(var(--demo-spin) * 0.2)) scale(1.1);opacity:1;filter:brightness(1.6)}100%{transform:translate(calc(var(--demo-dx) * 1.6em),calc(var(--demo-dy) * 1.6em)) rotate(calc(var(--demo-spin) * 2)) scale(0.02);opacity:0;filter:brightness(3)}}.block.demo-galaxy .block-inner{animation-name:demo-galaxy;animation-duration:350ms;animation-timing-function:cubic-bezier(0.25,0.7,0.3,1)}@keyframes demo-galaxy{0%{transform:translate(0,0) rotate(0deg) scale(1);opacity:1}100%{transform:translate(calc(var(--demo-dx) * 1.2em),calc(var(--demo-dy) * 1.2em)) rotate(calc(var(--demo-spin) * 4)) scale(0.15);opacity:0;filter:brightness(2.4) saturate(1.4)}}.block.demo-celestial .block-inner{animation-name:demo-celestial;animation-duration:340ms;animation-timing-function:ease-in-out}@keyframes demo-celestial{0%{transform:scale(1);opacity:1;filter:brightness(1) saturate(1)}40%{transform:scale(1.16);opacity:1;filter:brightness(3) saturate(0.5)}100%{transform:scale(1.5);opacity:0;filter:brightness(4) saturate(0.2)}}@media (prefers-reduced-motion:reduce){.block.demo .block-inner,.block.demo .block-inner::before{animation-duration:1ms !important;animation-delay:0ms !important}}#theme-veil{position:fixed;inset:0;z-index:8;pointer-events:none;background:radial-gradient(135% 95% at 50% -12%,var(--veil-1) 0%,var(--veil-2) 42%,var(--veil-3) 100%),var(--veil-3);clip-path:circle(0px at var(--vx) var(--vy))}#theme-veil.sweep{animation:theme-wipe var(--dur,1500ms) cubic-bezier(0.33,0,0.2,1) both}@keyframes theme-wipe{0%{opacity:1;clip-path:circle(0px at var(--vx) var(--vy))}46%{opacity:1;clip-path:circle(var(--vr) at var(--vx) var(--vy))}100%{opacity:0;clip-path:circle(var(--vr) at var(--vx) var(--vy))}}#theme-veil::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--vx) var(--vy),transparent 0%,transparent 68%,rgba(255,255,255,0.14) 82%,transparent 96%);opacity:0}#theme-veil.sweep::after{animation:theme-edge var(--dur,1500ms) cubic-bezier(0.33,0,0.2,1) both}@keyframes theme-edge{0%{opacity:0}30%{opacity:1}100%{opacity:0}}.block.retint .block-inner{animation:retint-settle 420ms var(--ease-out) both}@keyframes retint-settle{0%{transform:scale(1)}40%{transform:scale(1.09)}100%{transform:scale(1)}}.tex-soft{--bevel:calc(var(--cell) * 0.115)}.tex-soft .block-inner::after{box-shadow:none;background:linear-gradient(180deg,rgba(255,255,255,0.10) 0%,rgba(255,255,255,0) 55%)}.tex-deep{--bevel:calc(var(--cell) * 0.155)}.tex-matte{--bevel:calc(var(--cell) * 0.125)}.tex-matte .block-inner::after{box-shadow:inset 0 0 0 1px rgba(0,0,0,0.18)}@media (prefers-reduced-motion:reduce){#theme-veil.sweep,#theme-veil.sweep::after,.block.retint .block-inner{animation-duration:1ms !important}}@media (prefers-reduced-motion:reduce){.piece.pop,.block.place,.block.collapse,.block.clearing,.block.recolor,.panel,.badge,.float,.sweep::before,.logo-block,.splash-title,.splash-best,.btn-play,#splash-new,#splash.out{animation-duration:1ms !important;animation-iteration-count:1 !important}.praise{transform:translate(-50%,-50%);animation:praise-hold 1600ms linear both !important}@keyframes praise-hold{0%,84%{opacity:1}100%{opacity:0}}.splash-logo,.btn-play{animation:none !important}.cell.will-clear::after{animation:none;opacity:0.24}.block.will-clear .block-inner::before{animation:none;opacity:0.24}#ghost-layer .block-inner{animation:none}}