@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");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{--ink: #26215c;--ink-soft: #4a4580;--muted: #8a86a8;--primary: #5b47e0;--primary-2: #7b6cf6;--paper: #ffffff;--bg: #f7f4ee;--line: #e7e3f4;--well: #efecff;--well-ring: #cdc6fb;--good: #14a46c;--good-bg: #e2f8ee;--good-ring: #8fdfbc;--warn: #f2685c;--gold: #ffc94d;--radius-s: 12px;--radius-m: 18px;--radius-l: 26px;--shadow-1: 0 1px 2px rgba(38, 33, 92, .06), 0 4px 14px -6px rgba(38, 33, 92, .18);--shadow-2: 0 2px 4px rgba(38, 33, 92, .06), 0 18px 40px -12px rgba(38, 33, 92, .28);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--lv: #22b07d;font-family:Nunito Variable,ui-rounded,SF Pro Rounded,Segoe UI,system-ui,sans-serif;color:var(--ink);-webkit-tap-highlight-color:transparent;font-synthesis:none;text-rendering:optimizeLegibility}.lv1{--lv: #22b07d}.lv2{--lv: #12a5b8}.lv3{--lv: #4c7cf0}.lv4{--lv: #8a56e2}.lv5{--lv: #e5486b}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:radial-gradient(60vmax 40vmax at 0% 0%,#ffe9d6 0%,transparent 60%),radial-gradient(60vmax 45vmax at 100% 100%,#e3e6ff 0%,transparent 60%),var(--bg);overscroll-behavior:none;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}button:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.app{height:100dvh;display:flex;flex-direction:column;max-width:1200px;margin:0 auto;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.top{display:flex;align-items:center;gap:8px;padding:2px 2px 8px}.brand{display:flex;align-items:center;gap:9px;margin-right:auto;min-width:0}.brand svg{flex-shrink:0;filter:drop-shadow(0 3px 6px rgba(80,56,216,.3))}.wordmark{font-size:1.35rem;font-weight:900;letter-spacing:-.02em;color:var(--ink)}.wordmark b{font-weight:900;color:var(--primary)}.level-btn,.icon-btn{height:44px;border:none;border-radius:999px;background:var(--paper);box-shadow:var(--shadow-1);transition:transform .15s var(--ease-spring)}.level-btn:active,.icon-btn:active{transform:scale(.94)}.level-btn{display:inline-flex;align-items:center;gap:8px;padding:0 12px 0 5px;font-weight:800;font-size:.98rem;color:var(--ink)}.level-btn svg{color:var(--muted)}.icon-btn{width:44px;display:grid;place-items:center;color:var(--ink-soft)}.level-badge{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;font-weight:900;background:var(--lv);box-shadow:inset 0 -2px #00000026}@media(max-width:420px){.wordmark{display:none}}.game{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}.board-area{flex:1;min-height:0;display:grid;place-items:center}.board{display:grid;grid-template-columns:repeat(var(--cols),var(--cell));grid-auto-rows:var(--cell);gap:var(--gap);padding:calc(var(--cell) * .24 + 2px);border-radius:calc(var(--cell) * .3 + 10px);background:radial-gradient(circle at 1px 1px,rgba(91,71,224,.09) 1px,transparent 1.5px) 0 0 / calc(var(--cell) / 2) calc(var(--cell) / 2),var(--paper);box-shadow:var(--shadow-2),inset 0 0 0 1px #5b47e00f}.cell{display:grid;place-items:center;border-radius:calc(var(--cell) * .24);font-weight:850;font-size:calc(var(--cell) * .56);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.cell.d2{font-size:calc(var(--cell) * .5)}.cell.d3{font-size:calc(var(--cell) * .38)}.cell.given{background:#fbfaff;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line),0 1.5px 0 var(--line)}.cell.symbol{color:var(--warn);font-weight:900;font-size:calc(var(--cell) * .5);background:#fff4f2;border-radius:calc(var(--cell) * .5);transform:scale(.78)}.board.compact{padding:calc(var(--cell) * .12 + 2px)}.board.compact .cell.symbol{transform:none;justify-self:center;align-self:center;width:var(--sym);height:var(--sym);font-size:calc(var(--sym) * .74)}.cell.symbol[aria-label=equals]{color:var(--primary);background:#f1efff}.cell.gap{padding:0;border:none;color:var(--good);transition:transform .18s var(--ease-spring),background .2s,box-shadow .2s}.cell.gap.open{background:var(--well);box-shadow:inset 0 0 0 2px var(--well-ring),inset 0 3px 6px #5038d824}.board.receptive .cell.gap.open{box-shadow:inset 0 0 0 2px var(--primary-2),inset 0 3px 6px #5038d824,0 0 0 3px #7b6cf62e;animation:breathe 1.3s ease-in-out infinite}.cell.gap.target,.board.receptive .cell.gap.target{background:#fff3c4;transform:scale(1.16);box-shadow:inset 0 0 0 2.5px var(--primary),0 6px 16px -4px #5038d880;animation:none;z-index:2}.cell.gap.filled{cursor:default;background:var(--good-bg);box-shadow:inset 0 0 0 2px var(--good-ring)}.cell.gap.fb-correct{animation:pop .42s var(--ease-spring)}.cell.gap.fb-wrong{animation:shake .42s ease,flash .6s ease}@keyframes breathe{50%{transform:scale(1.06)}}@keyframes pop{0%{transform:scale(.6)}to{transform:scale(1)}}@keyframes shake{20%{translate:-4px 0}40%{translate:4px 0}60%{translate:-3px 0}80%{translate:2px 0}}@keyframes flash{0%,60%{background:#ffe1dc;box-shadow:inset 0 0 0 2px var(--warn)}}.tray{flex:none;width:min(100%,680px);margin:0 auto;padding:10px 12px 12px;border-radius:var(--radius-l);background:#ffffffc7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-1),inset 0 0 0 1px #ffffffe6}.tray-head{display:flex;align-items:center;gap:10px;padding:0 4px}.hint{flex:1;margin:0;font-weight:800;font-size:.98rem;color:var(--ink-soft);min-height:1.4em}.hint.correct{color:var(--good)}.hint.wrong{color:#e0663a}.progress-label{font-weight:900;font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}.progress{height:6px;margin:7px 4px 10px;border-radius:99px;background:#ece9f7;overflow:hidden}.progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--lv),color-mix(in srgb,var(--lv) 60%,#fff));transition:width .4s var(--ease-spring)}.bank{--tile: 54px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.bank.many{--tile: 46px;gap:7px}.tile,.ghost{--t1: #8b7cfb;--t2: #5b47e0;--t3: #4231b8;width:var(--tile);height:var(--tile);border:none;border-radius:15px;display:grid;place-items:center;color:#fff;font-weight:900;font-size:calc(var(--tile) * .42);letter-spacing:-.03em;font-variant-numeric:tabular-nums;text-shadow:0 1px 0 rgba(0,0,0,.12);background:linear-gradient(180deg,var(--t1),var(--t2));box-shadow:inset 0 1.5px #ffffff59,0 3px 0 var(--t3),0 8px 14px -6px var(--t3)}.tile{position:relative;padding:0;touch-action:none;cursor:grab;transition:transform .16s var(--ease-spring),opacity .2s,box-shadow .16s}.tile:hover:not(:disabled){transform:translateY(-2px)}.tile:active:not(:disabled){cursor:grabbing}.tile.h1,.ghost.h1{--t1: #3fd6b4;--t2: #13a989;--t3: #0c8068}.tile.h2,.ghost.h2{--t1: #ff8f7e;--t2: #ee5f4f;--t3: #c4463a}.tile.h3,.ghost.h3{--t1: #62b0ff;--t2: #2f84e6;--t3: #2063b4}.tile.h4,.ghost.h4{--t1: #f483bd;--t2: #d84d93;--t3: #ab3572}.tile.h5,.ghost.h5{--t1: #ffd36b;--t2: #f4a91e;--t3: #c88510}.tile.armed{transform:translateY(-4px) scale(1.06);box-shadow:inset 0 1.5px #ffffff59,0 3px 0 var(--t3),0 0 0 3px #fff,0 0 0 6px var(--t2)}.tile.lifted{opacity:.25;transform:scale(.92)}.tile.used{background:transparent;box-shadow:inset 0 0 0 2px #e5e2f2;color:#d0cce4;text-shadow:none;cursor:default}.tile-count{position:absolute;top:-6px;right:-6px;min-width:22px;height:22px;padding:0 5px;border-radius:99px;display:grid;place-items:center;font-size:.72rem;font-weight:900;color:var(--ink);text-shadow:none;background:#fff;box-shadow:0 2px 6px #26215c40}.ghost{position:fixed;left:0;top:0;z-index:50;pointer-events:none;will-change:transform;box-shadow:inset 0 1.5px #ffffff59,0 3px 0 var(--t3),0 22px 30px -10px #26215c8c;rotate:-4deg}.ghost.returning{transition:transform .26s cubic-bezier(.2,.8,.2,1),rotate .26s;rotate:0deg}.ghost.snapping{transition:transform .13s ease-out,rotate .13s,opacity .13s;rotate:0deg}.text-btn{min-height:46px;padding:8px 18px;border:none;background:transparent;color:var(--primary);font-weight:800;font-size:1rem;border-radius:999px}.text-btn:hover{background:#5b47e014}.big-btn{display:block;width:100%;min-height:60px;margin-bottom:4px;border:none;border-radius:var(--radius-m);color:#fff;font-size:1.3rem;font-weight:900;background:linear-gradient(180deg,#2fd08f,#14a46c);box-shadow:inset 0 1.5px #ffffff59,0 4px #0e7f53,0 12px 20px -8px #0e7f53;transition:transform .12s}.big-btn:active{transform:translateY(3px)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:16px;background:#26215c52;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade .2s ease}.sheet{position:relative;width:min(100%,440px);max-height:92dvh;overflow:auto;padding:22px 18px 14px;border-radius:30px;text-align:center;background:var(--paper);box-shadow:var(--shadow-2);animation:rise .32s var(--ease-spring)}.sheet h2{margin:0 0 14px;font-size:1.5rem;font-weight:900;letter-spacing:-.02em}.level-list{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}.level-option{display:flex;align-items:center;gap:12px;min-height:66px;padding:10px 12px;border:none;border-radius:var(--radius-m);text-align:left;background:#f6f5fb;box-shadow:inset 0 0 0 2px transparent;transition:transform .15s var(--ease-spring),box-shadow .15s}.level-option:hover{transform:translateY(-1px)}.level-option.current{background:#fff;box-shadow:inset 0 0 0 2.5px var(--lv),0 6px 16px -8px var(--lv)}.level-option .level-badge{width:40px;height:40px;font-size:1.15rem;flex-shrink:0}.level-text{display:flex;flex-direction:column;flex:1;min-width:0}.level-text strong{font-size:1.08rem;font-weight:900}.level-text small{color:var(--muted);font-size:.86rem;font-weight:700}.level-ops{display:flex;gap:3px}.level-ops i{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;font-style:normal;font-weight:900;font-size:.85rem;color:var(--lv);background:color-mix(in srgb,var(--lv) 12%,#fff)}.level-solved{font-weight:900;font-size:.85rem;color:#e09a00}.win h2{font-size:1.9rem;margin-bottom:6px}.win p{margin:0 0 18px;color:var(--muted);font-weight:700}.win-badge{width:84px;height:84px;margin:0 auto 10px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#fff6d8,#ffeab0);box-shadow:0 0 0 8px #fff8e6;animation:pop .6s var(--ease-spring)}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-20px;width:9px;height:15px;border-radius:3px;animation:fall 2.4s cubic-bezier(.3,.4,.6,1) forwards}.confetti i.round{width:11px;height:11px;border-radius:50%}@keyframes fall{to{transform:translateY(110dvh) rotate(600deg)}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(24px) scale(.96);opacity:0}}.app-footer{flex:none;display:flex;justify-content:center;padding-top:4px}.legal-links{display:flex;justify-content:center;gap:6px;font-size:.72rem;font-weight:700;color:var(--muted)}.legal-links a,.legal-links .legal-btn{color:var(--muted);text-decoration:none;padding:2px 4px}.legal-links .legal-btn{border:none;background:none;font:inherit;cursor:pointer}.legal-links a:hover,.legal-links a:focus-visible,.legal-links .legal-btn:hover,.legal-links .legal-btn:focus-visible{color:var(--primary);text-decoration:underline}.legal-links.in-paywall{margin-top:4px}.paywall p{margin:0 0 16px;color:var(--ink-soft);font-weight:700;line-height:1.45}.paywall-points{margin:0 0 18px;padding:0;list-style:none;text-align:left;display:grid;gap:8px}.paywall-points li{position:relative;padding:10px 12px 10px 38px;border-radius:var(--radius-s);background:#f6f5fb;font-weight:700;color:var(--ink)}.paywall-points li:before{content:"✓";position:absolute;left:13px;top:9px;color:var(--good);font-weight:900}.paywall .paywall-fine{margin:10px 0 0;font-size:.8rem;color:var(--muted)}.paywall .paywall-note{padding:8px 12px;border-radius:var(--radius-s);background:#fff6e0;color:#9a6400}.big-btn:disabled{opacity:.7;cursor:progress}.gate-text strong{color:var(--primary);font-weight:900}.gate-dots{display:flex;justify-content:center;gap:10px;margin-bottom:14px}.gate-dots span{width:14px;height:14px;border-radius:50%;background:#e7e3f4}.gate-dots span.on{background:var(--primary)}.gate-pad{display:grid;grid-template-columns:repeat(3,64px);gap:10px;justify-content:center;margin-bottom:8px}.gate-pad button{height:56px;border:none;border-radius:var(--radius-m);background:#f1efff;color:var(--ink);font-size:1.4rem;font-weight:900}.gate-pad button:active{background:#e2ddff}.paywall .gate-msg{min-height:1.3em;margin:6px 0;color:#e0663a}.restore-box{margin:0 0 16px;padding:12px;border-radius:var(--radius-m);background:#f6f5fb}.paywall .restore-label{margin:0 0 4px;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.paywall .restore-code{margin:0 0 6px;font-size:1.25rem;font-weight:900;letter-spacing:.06em;color:var(--ink);font-variant-numeric:tabular-nums;-webkit-user-select:all;user-select:all}.restore-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:8px}.chip-btn{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:none;border-radius:999px;background:#fff;box-shadow:var(--shadow-1);color:var(--primary);font-weight:800;font-size:.92rem;text-decoration:none}.restore-input{display:block;width:100%;min-height:52px;margin:0 0 12px;padding:0 14px;border:2px solid var(--well-ring);border-radius:var(--radius-m);font:inherit;font-size:1.1rem;font-weight:800;letter-spacing:.06em;text-align:center;text-transform:uppercase;color:var(--ink)}.restore-input:focus{outline:3px solid var(--primary);outline-offset:2px}.email-restore{display:grid;gap:10px;margin-top:6px;padding-top:12px;border-top:1px solid var(--line)}.email-restore .paywall-fine{margin:0}.restore-input.email{margin:0;text-transform:none;letter-spacing:0;font-size:1rem}.turnstile-box:empty{display:none}.picker-restore{margin:4px 0 2px;font-size:.8rem;font-weight:700;color:var(--muted)}.picker-restore strong{color:var(--ink);letter-spacing:.04em;-webkit-user-select:all;user-select:all}.spinner{width:40px;height:40px;margin:4px auto 10px;border-radius:50%;border:4px solid #e7e3f4;border-top-color:var(--primary);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:900px)and (min-aspect-ratio:11/10){.game{flex-direction:row;gap:24px;padding-bottom:8px}.tray{width:380px;align-self:center;max-height:100%;overflow:auto;padding:16px}.bank.many{--tile: 50px}}@media(max-width:480px){.app{padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}.tray{padding:6px 6px 7px;border-radius:18px}.tray-head{padding:0 3px}.hint{font-size:.86rem;min-height:1.25em}.progress{height:4px;margin:4px 3px 6px}.bank,.bank.many{container-type:inline-size;--tile: calc((100cqw - 32px) / 9);gap:4px}.tile{border-radius:11px;font-size:calc(var(--tile) * .46);box-shadow:inset 0 1.5px #ffffff59,0 2.5px 0 var(--t3),0 5px 9px -5px var(--t3)}.tile-count{top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;font-size:.64rem}}@media(orientation:landscape)and (max-height:500px){.app{display:grid;grid-template-columns:minmax(0,1fr) 252px;grid-template-rows:auto minmax(0,1fr) auto;column-gap:10px;row-gap:6px;max-width:none;padding-top:max(6px,env(safe-area-inset-top));padding-bottom:max(6px,env(safe-area-inset-bottom))}.game{display:contents}.board-area{grid-column:1;grid-row:1 / span 3}.app-footer{grid-column:2;grid-row:3;padding-top:0}.top{grid-column:2;grid-row:1;padding:0;gap:6px}.brand{display:none}.level-btn{flex:1;min-width:0;height:40px;padding-right:8px}.level-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.level-badge{width:30px;height:30px}.icon-btn{width:40px;height:40px}.tray{grid-column:2;grid-row:2;width:auto;margin:0;align-self:start;max-height:100%;overflow:auto;padding:6px;border-radius:16px}.tray-head{padding:0 2px}.hint{font-size:.78rem;min-height:1.2em}.progress{height:4px;margin:4px 2px 6px}.bank,.bank.many{container-type:inline-size;--tile: calc((100cqw - 20px) / 6);gap:4px}.tile{border-radius:10px;font-size:calc(var(--tile) * .46);box-shadow:inset 0 1.5px #ffffff59,0 2.5px 0 var(--t3),0 5px 9px -5px var(--t3)}.tile-count{top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;font-size:.62rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.confetti{display:none}.ghost{rotate:0deg}.cell.gap.target{transform:none}}
