@font-face{font-family:Fredoka;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/fredoka-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fredoka;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/fredoka-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}:root{--bg-deep:#150c26;--bg-glow:#3a2470;--panel:#ffffff12;--panel-line:#ffffff24;--socket:#00000042;--text:#f4eeff;--text-dim:#d3c8ec;--accent:#ff4d6d;--berry:#ff4d6d;--berry-l:#ff8ba0;--berry-d:#c62a49;--citrus:#ffb020;--citrus-l:#ffd37a;--citrus-d:#cc7d00;--lime:#3fd67a;--lime-l:#8bf0b3;--lime-d:#1c9a4e;--sky:#35b6ff;--sky-l:#8ad6ff;--sky-d:#0b7dc2;--grape:#a367ff;--grape-l:#c9a3ff;--grape-d:#6f31d1;--candy:#ff6fd8;--candy-l:#ffaee9;--candy-d:#cc3fa6;--radius:22%;--spring:cubic-bezier(.22, 1.4, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--board-size:min(92vw, 420px, 48dvh);color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font:400 16px/1.4 Fredoka,system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 50% -10%, var(--bg-glow), transparent 55%), var(--bg-deep);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background-attachment:fixed;min-height:100dvh;margin:0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}.app{width:100%;max-width:460px;padding:62px 12px 16px;padding-right:calc(12px + env(safe-area-inset-right));padding-bottom:calc(16px + env(safe-area-inset-bottom));padding-left:calc(12px + env(safe-area-inset-left));flex-direction:column;align-items:center;gap:10px;margin:0 auto;display:flex;position:relative}.app[data-ads=false]{padding-top:calc(14px + env(safe-area-inset-top))}.ad-banner{top:env(safe-area-inset-top);z-index:40;width:320px;height:50px;position:fixed;left:50%;transform:translate(-50%)}.ad-slot{width:100%;height:100%}@media (width>=728px){.ad-banner{width:728px;height:90px}.app{padding-top:102px}}@media (height<=560px){:root{--board-size:min(64vw, 300px, 74dvh)}}.mute{border:1px solid var(--panel-line);background:var(--panel);width:32px;height:32px;color:var(--text-dim);transition:transform .18s var(--spring), color .18s ease;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.mute-float{z-index:5;position:absolute;top:0;right:0}.bar-end{align-items:center;gap:6px;display:flex}.mute:hover{color:var(--text);transform:scale(1.08)}.mute:active{transform:scale(.92)}.route{display:contents}.screen,.game{width:100%;animation:route-in .42s var(--ease-out) backwards;flex-direction:column;align-items:center;gap:12px;display:flex}.btn{border:1px solid var(--panel-line);background:var(--panel);letter-spacing:.01em;transition:transform .16s var(--spring), filter .16s ease, box-shadow .16s ease;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:12px 22px;font-weight:600;display:flex;position:relative;overflow:hidden}.btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.btn:active{transition-duration:60ms;transform:translateY(1px)scale(.985)}.btn-lg{width:min(280px,80vw);padding:16px 22px;font-size:1.15rem}.btn-primary{background: linear-gradient(180deg, #ffffff57, #fff0 40%),  linear-gradient(180deg, #00000024, #0000004d), var(--accent);color:#fff;text-shadow:0 1px 3px #00000080;border-color:#0000;font-weight:700;box-shadow:0 5px #00000057,0 10px 22px #0000004d}.btn-primary:active{box-shadow:0 2px #00000057}.btn-primary:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 35%,#fff6 50%,#0000 65%);animation:4.5s ease-in-out 1.2s infinite sheen;position:absolute;inset:0;transform:translate(-120%)}.btn-quiet{color:var(--text-dim);background:0 0;border-color:#0000}.btn-sub{align-items:center;gap:5px;font-size:.8rem;font-weight:500;display:flex}.chip{border:1px solid var(--panel-line);background:var(--panel);color:var(--text-dim);transition:transform .16s var(--spring), color .16s ease;border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:.8rem;font-weight:500;display:inline-flex}.chip:hover{color:var(--text)}.chip:active{transform:scale(.94)}.chip-ghost{background:0 0;border-color:#0000}.inline-icon{vertical-align:-.12em;width:1em;height:1em}.inline-stone{vertical-align:-.1em;background:linear-gradient(#9a93ad,#5d566f);border-radius:3px;width:.9em;height:.9em;display:inline-block}.start{gap:22px;padding-top:5vh;position:relative}.logo{text-align:center;animation:logo-in .7s var(--spring) both}.logo-title{letter-spacing:.01em;text-transform:uppercase;background:linear-gradient(180deg, #fff, var(--citrus) 45%, var(--accent));color:#0000;filter:drop-shadow(0 4px #00000059);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.4rem,12vw,3.4rem);font-weight:700}.logo-tag{color:var(--text-dim);margin:6px 0 0;font-size:.92rem}.menu{flex-direction:column;align-items:center;gap:12px;display:flex}.menu>*{animation:rise-in .5s var(--ease-out) both}.menu>:first-child{animation-delay:.1s}.menu>:nth-child(2){animation-delay:.18s}.menu>:nth-child(3){animation-delay:.26s}.help{border:1px solid var(--panel-line);background:var(--panel);max-width:340px;color:var(--text-dim);animation:rise-in .34s var(--ease-out) both;border-radius:14px;padding:14px 16px;font-size:.86rem}.help p{margin:0 0 10px}.help-list{gap:6px;margin:0;padding-left:18px;display:grid}.game-bar{width:var(--board-size);justify-content:space-between;align-items:center;gap:8px;display:flex}.game-title{font-size:.95rem;font-weight:600}.hud{width:var(--board-size)}.hud-row{justify-content:space-between;align-items:flex-end;display:flex}.stat{flex-direction:column;display:flex}.stat-right{align-items:flex-end}.stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:500}.stat-value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700;line-height:1.1}.stat-score{transform-origin:0;animation:score-bump .42s var(--spring);display:inline-block}.stat-warn{color:var(--citrus);animation:1.4s ease-in-out infinite warn-pulse}.objectives{gap:6px;margin-top:8px;display:grid}.objective{color:var(--text-dim);grid-template-columns:18px auto 1fr;align-items:center;gap:8px;font-size:.84rem;transition:color .3s;display:grid}.objective.done{color:var(--lime)}.objective.done .objective-icon{animation:score-bump .5s var(--spring)}.objective-icon{width:16px;height:16px}.objective-text{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}.objective-bar{background:var(--socket);border-radius:999px;height:6px;overflow:hidden}.objective-fill{background:linear-gradient(90deg, var(--sky), var(--lime));height:100%;transition:width .45s var(--ease-out);border-radius:999px;display:block}.combo-flag{color:var(--citrus);text-shadow:0 0 12px #ffb0208c;animation:combo-in .45s var(--spring);margin-top:6px;font-size:.85rem;font-weight:700}.board-wrap{width:var(--board-size);height:var(--board-size);animation:board-in .5s var(--ease-out) both;position:relative}.board{border:1px solid var(--panel-line);touch-action:none;background:#00000038;border-radius:16px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:100%;height:100%;display:grid;box-shadow:inset 0 2px 12px #0006,0 18px 40px #00000059}.cell{padding:6%;position:relative}.cell:before{content:"";border-radius:var(--radius);background:var(--socket);transition:background .14s,box-shadow .14s;position:absolute;inset:6%}.cell.ghost:before{background:#ffffff42;animation:1.1s ease-in-out infinite ghost-breathe;box-shadow:inset 0 0 0 2px #ffffff8c}.cell.ghost-bad:before{background:#ff4d6d52;box-shadow:inset 0 0 0 2px #ff4d6d99}.cell.targeted:after{content:"";border-radius:var(--radius);box-shadow:inset 0 0 0 2px var(--citrus);animation:.7s ease-in-out infinite aim-pulse;position:absolute;inset:3%}.aiming .board{cursor:crosshair}.block{border-radius:var(--radius);background:linear-gradient(180deg, var(--c-l), var(--c) 55%, var(--c-d));width:100%;height:100%;animation:drop-in .26s var(--spring) both;display:block;position:relative;box-shadow:inset 0 2px #ffffff73,inset 0 -3px #00000038,0 2px 4px #0000004d}.block:before{content:"";pointer-events:none;background:linear-gradient(#ffffff80,#0000);border-radius:999px;position:absolute;inset:8% 12% 55%}.board.entering .block{animation-delay:var(--enter,0s)}.block-berry{--c:var(--berry);--c-l:var(--berry-l);--c-d:var(--berry-d)}.block-citrus{--c:var(--citrus);--c-l:var(--citrus-l);--c-d:var(--citrus-d)}.block-lime{--c:var(--lime);--c-l:var(--lime-l);--c-d:var(--lime-d)}.block-sky{--c:var(--sky);--c-l:var(--sky-l);--c-d:var(--sky-d)}.block-grape{--c:var(--grape);--c-l:var(--grape-l);--c-d:var(--grape-d)}.block-candy{--c:var(--candy);--c-l:var(--candy-l);--c-d:var(--candy-d)}.block-gem{--c:#45e0d0;--c-l:#9ff4ea;--c-d:#12908a;place-items:center;display:grid}.block-gem:before,.block-ice:before{display:none}.block-glyph{color:#f3fffd;filter:drop-shadow(0 1px 1px #00000059);width:62%;height:62%;animation:2.6s ease-in-out infinite gem-shine}.block-stone{--c:#7b7490;--c-l:#a49db8;--c-d:#494256;background-image:radial-gradient(circle at 30% 30%, #ffffff38, transparent 45%), linear-gradient(180deg, var(--c-l), var(--c) 55%, var(--c-d))}.block-ice{--c:#7fd4ff;--c-l:#d6f2ff;--c-d:#3f8fc4;opacity:.92;place-items:center;display:grid}.ice-frost{background:#fff3;border:2px solid #ffffffa6;border-radius:12%;position:absolute;inset:12%}.ice-2 .ice-frost{border-width:3px;inset:8%}.ice-3 .ice-frost{border-width:4px;inset:5%}.ice-count{color:#0d3b57;font-size:.8em;font-weight:700;position:relative}.board-overlay{pointer-events:none;border-radius:16px;position:absolute;inset:0;overflow:hidden}.toast-layer{pointer-events:none;position:absolute;inset:0}.beam{opacity:0;position:absolute}.beam-row{width:100%;height:12.5%;animation:beam-h .5s var(--ease-out);background:linear-gradient(90deg,#0000,#ffffffe6,#0000);left:0}.beam-col{width:12.5%;height:100%;animation:beam-v .5s var(--ease-out);background:linear-gradient(#0000,#ffffffe6,#0000);top:0}.pop{width:12.5%;height:12.5%;padding:6%;position:absolute}.pop-block{animation:burst .42s var(--ease-out) both;animation-delay:var(--d,0s);position:absolute;inset:6%}.pop-block .block{animation:none}.pop-flash{opacity:0;animation:.42s ease-out both flash;animation-delay:var(--d,0s);background:radial-gradient(circle,#fff,#fff0 68%);border-radius:50%;position:absolute;inset:-30%}.pop-blast .pop-flash{background:radial-gradient(circle, var(--citrus-l), #ffb02000 68%)}.shockwave{width:12.5%;height:12.5%;animation:shockwave .5s var(--ease-out) both;border:3px solid #ffd37ae6;border-radius:50%;margin:-6.25% 0 0 -6.25%;position:absolute}.toast{color:#fff;text-shadow:0 2px 6px #0009;white-space:nowrap;animation:rise .9s var(--ease-out) forwards;font-size:1.1rem;font-weight:700;position:absolute;transform:translate(-50%,-50%)}.toast-big{color:var(--citrus-l);text-shadow:0 2px 8px #0009,0 0 18px #ffb020b3;font-size:1.5rem}.tray{width:var(--board-size);min-height:calc(var(--board-size) * .3);border:1px solid var(--panel-line);background:var(--panel);touch-action:none;border-radius:16px;grid-template-columns:repeat(3,1fr);align-items:center;gap:6px;padding:8px 6px;display:grid}.tray-slot{min-height:calc(var(--board-size) * .22);place-items:center;display:grid}.tray-piece{touch-action:none;cursor:grab;animation:tray-in .45s var(--spring) both;animation-delay:var(--slot,0s);transition:transform .16s var(--spring), opacity .16s ease}.tray-piece:hover{transform:scale(1.06)}.tray-piece:active{cursor:grabbing;transform:scale(1.1)}.tray-piece.dragging{opacity:.2;transform:scale(.9)}.tray-piece.dead{opacity:.55;filter:grayscale(.55)}.piece{display:grid}.piece-cell{padding:6%}.piece-drag{filter:drop-shadow(0 10px 14px #00000080);animation:lift .16s var(--spring) both}.drag-layer{z-index:50;pointer-events:none;will-change:transform;position:fixed;top:0;left:0}.powerups{gap:10px;display:flex}.powerup{border:1px solid var(--panel-line);background:var(--panel);width:52px;height:52px;color:var(--text);transition:transform .16s var(--spring), background .2s ease, box-shadow .2s ease;border-radius:16px;place-items:center;padding:0;display:grid;position:relative}.powerup:not(:disabled):hover{transform:translateY(-2px)}.powerup:not(:disabled):active{transform:scale(.93)}.powerup:disabled{opacity:.5;cursor:not-allowed}.powerup.armed{border-color:var(--citrus);background:#ffb0202e;animation:1.3s ease-in-out infinite armed-pulse;box-shadow:0 0 0 3px #ffb02040}.powerup-icon{width:26px;height:26px}.powerup-count{background:var(--accent);color:#fff;border-radius:999px;min-width:20px;padding:1px 5px;font-size:.7rem;font-weight:700;position:absolute;bottom:-4px;right:-4px}.aim-hint{color:var(--citrus);animation:rise-in .3s var(--ease-out) both;align-items:center;gap:8px;margin:0;font-size:.85rem;font-weight:500;display:flex}.aim-warn{color:var(--berry-l)}.levels{gap:14px}.level-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;width:100%;display:grid}.level-tile{aspect-ratio:1;border:1px solid var(--panel-line);background:var(--panel);text-align:center;animation:tile-in .4s var(--spring) both;animation-delay:calc(var(--i,0) * 22ms);transition:transform .16s var(--spring), border-color .2s ease;border-radius:16px;place-items:center;gap:2px;padding:6px;display:grid}.level-tile:not(:disabled):hover{border-color:#ffffff59;transform:translateY(-3px)}.level-tile:not(:disabled):active{transform:scale(.95)}.level-tile.cleared{background:#3fd67a1f;border-color:#3fd67a73}.level-tile.locked{color:var(--text-dim);cursor:not-allowed;opacity:.62}.level-number{font-size:1.3rem;font-weight:700}.level-name{color:var(--text-dim);font-size:.72rem;line-height:1.15}.level-lock{width:22px;height:22px}.level-stars{gap:2px;display:flex}.star-mini{color:#ffffff57;width:11px;height:11px}.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0516b8;place-items:center;padding:20px;animation:.24s fade;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--panel-line);text-align:center;width:min(340px,100%);animation:modal-in .44s var(--spring) both;background:linear-gradient(#2b1c50,#1a1030);border-radius:22px;padding:22px;box-shadow:0 24px 60px #0000008c}.modal-title{margin:0 0 4px;font-size:1.5rem;font-weight:700}.modal-win .modal-title{color:var(--lime)}.modal-lose .modal-title{color:var(--berry-l)}.modal-subtitle{color:var(--text-dim);margin:0;font-size:.9rem}.modal-actions{gap:8px;margin-top:18px;display:grid}.modal-actions>*{animation:rise-in .4s var(--ease-out) both;animation-delay:.18s}.star-row{justify-content:center;gap:10px;margin-top:14px;display:flex}.star{color:#ffffff52;width:42px;height:42px}.star-on{color:var(--citrus);filter:drop-shadow(0 0 10px #ffb02099);animation:star-in .55s var(--spring) backwards}.star-row .star-on:first-child{animation-delay:.15s}.star-row .star-on:nth-child(2){animation-delay:.32s}.star-row .star-on:nth-child(3){animation-delay:.49s}@keyframes route-in{0%{opacity:0;transform:translateY(10px)}}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}}@keyframes logo-in{0%{opacity:0;transform:translateY(-14px)scale(.9)}}@keyframes board-in{0%{opacity:0;transform:scale(.94)}}@keyframes sheen{0%{transform:translate(-120%)}22%,to{transform:translate(120%)}}@keyframes drop-in{0%{opacity:0;transform:scale(.5)rotate(-6deg)}60%{opacity:1;transform:scale(1.08)rotate(1deg)}to{transform:scale(1)rotate(0)}}@keyframes burst{0%{opacity:1;transform:scale(1)}30%{opacity:1;transform:scale(1.22)rotate(6deg)}to{opacity:0;transform:scale(.2)rotate(24deg)}}@keyframes flash{0%{opacity:0;transform:scale(.4)}35%{opacity:.95;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}@keyframes beam-h{0%{opacity:0;transform:translate(-60%)scaleY(.5)}35%{opacity:1;transform:translate(0)scaleY(1)}to{opacity:0;transform:translate(60%)scaleY(.5)}}@keyframes beam-v{0%{opacity:0;transform:translateY(-60%)scaleX(.5)}35%{opacity:1;transform:translateY(0)scaleX(1)}to{opacity:0;transform:translateY(60%)scaleX(.5)}}@keyframes shockwave{0%{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(4.5)}}@keyframes rise{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}22%{opacity:1;transform:translate(-50%,-75%)scale(1.15)}40%{transform:translate(-50%,-85%)scale(1)}to{opacity:0;transform:translate(-50%,-170%)scale(.95)}}@keyframes score-bump{0%{transform:scale(1)}35%{transform:scale(1.16)}to{transform:scale(1)}}@keyframes combo-in{0%{opacity:0;transform:scale(.5)translateY(6px)}60%{opacity:1;transform:scale(1.14)}to{transform:scale(1)}}@keyframes tray-in{0%{opacity:0;transform:translateY(18px)scale(.7)}}@keyframes lift{0%{transform:scale(.85)}}@keyframes tile-in{0%{opacity:0;transform:translateY(14px)scale(.85)}}@keyframes ghost-breathe{50%{background:#fff6}}@keyframes aim-pulse{50%{opacity:.4}}@keyframes armed-pulse{50%{box-shadow:0 0 0 7px #ffb0201f}}@keyframes warn-pulse{50%{opacity:.55}}@keyframes gem-shine{0%,70%,to{opacity:1}80%{opacity:.55}}@keyframes fade{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(18px)scale(.9)}}@keyframes star-in{0%{opacity:0;transform:scale(.2)rotate(-50deg)}65%{opacity:1;transform:scale(1.28)rotate(6deg)}to{transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
