@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(./fredoka-hebrew-600-normal-CTBxhdlE.woff2) format("woff2"),url(./fredoka-hebrew-600-normal-BiVDObXj.woff) format("woff");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(./fredoka-latin-ext-600-normal-GoyidTAB.woff2) format("woff2"),url(./fredoka-latin-ext-600-normal-BExgZzUO.woff) format("woff");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:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(./fredoka-latin-600-normal-5ja5qWal.woff2) format("woff2"),url(./fredoka-latin-600-normal-CYd7pOmh.woff) format("woff");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:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(./fredoka-hebrew-700-normal-DBqnFHCe.woff2) format("woff2"),url(./fredoka-hebrew-700-normal-DiqR04Vd.woff) format("woff");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(./fredoka-latin-ext-700-normal--a2O67AJ.woff2) format("woff2"),url(./fredoka-latin-ext-700-normal-DBnuyHy7.woff) format("woff");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:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(./fredoka-latin-700-normal-C3QZl44p.woff2) format("woff2"),url(./fredoka-latin-700-normal-Bum4MpzC.woff) format("woff");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:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2) format("woff2"),url(./nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-cyrillic-700-normal-DP36NgGt.woff2) format("woff2"),url(./nunito-cyrillic-700-normal-DfHRUDv-.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-vietnamese-700-normal-Ch8EUCfz.woff2) format("woff2"),url(./nunito-vietnamese-700-normal-C9SQsXvj.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-latin-ext-700-normal-BWeMsAzO.woff2) format("woff2"),url(./nunito-latin-ext-700-normal-D4woHhbd.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(./nunito-latin-700-normal-OcDqTBcA.woff) format("woff");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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format("woff2"),url(./nunito-cyrillic-ext-800-normal-pjRatrRO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-cyrillic-800-normal-D3igD7Kl.woff2) format("woff2"),url(./nunito-cyrillic-800-normal-DymMgApb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-vietnamese-800-normal-D_CZYdm9.woff2) format("woff2"),url(./nunito-vietnamese-800-normal-Dz0hZPb5.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(./nunito-latin-ext-800-normal-CDcxIxx8.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(./nunito-latin-800-normal-D-J0wlBY.woff) format("woff");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:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-cyrillic-ext-900-normal-BLeVovcl.woff2) format("woff2"),url(./nunito-cyrillic-ext-900-normal-DKFql_-q.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-cyrillic-900-normal-CWPcV0_V.woff2) format("woff2"),url(./nunito-cyrillic-900-normal-Dr1fjxoU.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-vietnamese-900-normal-D6LWQAy_.woff2) format("woff2"),url(./nunito-vietnamese-900-normal-WV2-fBew.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-latin-ext-900-normal-Dllsvgjo.woff2) format("woff2"),url(./nunito-latin-ext-900-normal-CTBZd6bf.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-latin-900-normal-BVB1fGs6.woff2) format("woff2"),url(./nunito-latin-900-normal-CVn49sIn.woff) format("woff");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}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--text: #4d2636;--text-soft: #7a4a5e;--cream: #fff9f0;--pink: #ff5fa2;--pink-dark: #d6417f;--aqua: #43c7ff;--mint: #68dcae;--gold: #f2c75c;--gold-dark: #c98a12;--shadow: rgba(77, 38, 54, .16);--display: "Fredoka", "Nunito", ui-rounded, system-ui, sans-serif;--body: "Nunito", ui-rounded, system-ui, sans-serif;color:var(--text);font-family:var(--body);font-weight:800}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;user-select:none;-webkit-user-select:none;touch-action:manipulation}body{background:linear-gradient(160deg,#fff7f8,#ffd7ea 45%,#e8d9ff)}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible{outline:3px solid var(--aqua);outline-offset:2px}img{-webkit-user-drag:none}.app{position:relative;width:100%;height:100%;overflow:hidden}.screen{position:absolute;inset:0;display:none}.app[data-screen=loading] .loading-screen,.app[data-screen=title] .title-screen,.app[data-screen=map] .map-screen,.app[data-screen=game] .game-screen,.app[data-screen=home] .home-screen{display:flex}.loading-screen,.title-screen{flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px}.loading-cat{width:min(160px,30vh);animation:float 1.6s ease-in-out infinite}.loading-text,.tagline{margin:0;color:var(--text-soft);font-size:clamp(15px,2.4vh,19px)}.logo{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(38px,8vh,72px);line-height:1;color:#fff;-webkit-text-stroke:3px var(--pink-dark);paint-order:stroke fill;text-shadow:0 6px 0 #a8305f,0 10px 24px rgba(168,48,95,.35)}.title-cat{width:min(300px,42vh);animation:float 2.2s ease-in-out infinite;filter:drop-shadow(0 18px 24px rgba(168,48,95,.25))}.title-sound{position:absolute;top:16px;right:16px}.title-sparkles{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 15% 20%,#fff 0 3px,transparent 4px),radial-gradient(circle at 80% 30%,#fff 0 4px,transparent 5px),radial-gradient(circle at 25% 75%,#fff 0 3px,transparent 4px),radial-gradient(circle at 70% 82%,#fff 0 5px,transparent 6px),radial-gradient(circle at 90% 60%,#fff 0 3px,transparent 4px);animation:twinkle 3s ease-in-out infinite}.big-button{min-width:200px;min-height:56px;padding:0 28px;border-radius:20px;color:#fff;font-family:var(--display);font-size:23px;font-weight:700;letter-spacing:.01em;background:linear-gradient(180deg,#ff8cc4,var(--pink));box-shadow:0 6px 0 var(--pink-dark),0 14px 24px #ff5fa259,inset 0 2px #ffffff73;text-shadow:0 2px 0 rgba(168,48,95,.4);transition:transform .1s ease,box-shadow .1s ease;display:inline-flex;align-items:center;justify-content:center;gap:10px}.big-button:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px 0 var(--pink-dark),0 6px 14px #ff5fa24d}.big-button.gold{background:linear-gradient(180deg,#ffe27a,#f5b52c);box-shadow:0 6px 0 var(--gold-dark),0 14px 24px #f2b53259,inset 0 2px #ffffff8c;color:#7a4300;text-shadow:0 1px 0 rgba(255,255,255,.5)}.title-screen .big-button{margin-top:18px;min-width:240px;min-height:66px;font-size:30px;animation:breathe 1.8s ease-in-out infinite}.secondary-button{min-height:48px;min-width:180px;padding:0 22px;border-radius:16px;font-size:18px;background:linear-gradient(180deg,#fff,#ffe5f1);box-shadow:0 4px #f0bdd4,0 8px 18px var(--shadow)}.link-button{padding:8px 14px;color:var(--text-soft);font-size:16px;text-decoration:underline;text-underline-offset:3px}.round-button{width:48px;height:48px;flex:0 0 auto;display:grid;place-items:center;border-radius:16px;background:linear-gradient(180deg,#fff,#ffe5f1);box-shadow:0 4px #f0bdd4,0 8px 18px var(--shadow)}.round-button:active{transform:translateY(2px)}.round-button svg{width:26px;height:26px;fill:var(--pink);stroke:var(--text);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.round-button img{width:32px;height:32px}.sound-toggle .cross,.sound-toggle.muted .wave{display:none}.sound-toggle.muted .cross{display:block}.chip-button{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:#ffffffd9;box-shadow:0 3px #4d26361f;font-size:15px}.chip-button svg{width:20px;height:20px;fill:var(--pink);stroke:var(--text);stroke-width:1.8}.map-screen{flex-direction:column}.map-top{position:relative;z-index:3;display:flex;align-items:center;gap:10px;padding:12px 16px;background:linear-gradient(180deg,#fff7f8f2,#fff7f8b3);backdrop-filter:blur(6px);box-shadow:0 6px 18px #4d263614}.map-actions{margin-left:auto;display:flex;gap:8px}.pill{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px 0 6px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 2px #ffe0ee,0 4px 12px var(--shadow);font-size:19px}.pill img{width:30px;height:30px}.pill.center{margin:4px auto 6px}.gift-button{animation:wiggle 1.6s ease-in-out infinite}.map-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:18px 16px 60px}.map-column{display:flex;flex-direction:column}.chapter{width:100%;max-width:560px;margin:0 auto 22px;padding:16px 16px 26px;border-radius:30px;background:linear-gradient(180deg,var(--c1, #fff),var(--c2, #fff));box-shadow:0 14px 34px #4d26361f,inset 0 0 0 3px #ffffffb3}.chapter-locked{filter:saturate(.45);opacity:.75}.chapter-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.chapter-head small{color:var(--text-soft);font-size:13px}.chapter-head h2{margin:0;font-family:var(--display);font-size:28px;font-weight:700}.path{display:flex;flex-direction:column-reverse;align-items:center;gap:6px}.node-wrap{position:relative;transform:translate(var(--x));display:flex;flex-direction:column;align-items:center}.level-node{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-size:26px;font-weight:700;color:#fff;background:radial-gradient(circle at 35% 30%,#ffb3d6,var(--pink) 60%,var(--pink-dark));box-shadow:0 5px #a8305f,0 10px 18px #a8305f4d,inset 0 0 0 4px #ffffff8c;text-shadow:0 2px 0 rgba(122,49,85,.5)}.level-node.done{background:radial-gradient(circle at 35% 30%,#fff0a8,#ffc93c 60%,#e09612);box-shadow:0 5px #a8650a,0 10px 18px #b8730a4d,inset 0 0 0 4px #ffffff8c}.level-node.locked{background:radial-gradient(circle at 35% 30%,#fff,#e8dde3);box-shadow:0 5px #c9b4c0,inset 0 0 0 4px #fff9}.level-node.locked img{width:30px}.level-node.current{animation:breathe 1.4s ease-in-out infinite}.node-cat{position:absolute;top:-34px;left:50%;width:54px;margin-left:22px;animation:float 1.6s ease-in-out infinite;pointer-events:none}.node-stars{height:16px;display:flex;gap:2px;margin-top:4px}.node-stars i{width:14px;height:14px;background:#e2d3da;clip-path:polygon(50% 0,63% 35%,100% 38%,71% 61%,80% 100%,50% 78%,20% 100%,29% 61%,0 38%,37% 35%)}.node-stars i.on{background:#ffc93c}.finale{text-align:center;background:linear-gradient(180deg,#fff6d6,#ffe0ef)}.finale p{font-size:18px}.soft{color:var(--text-soft);font-size:15px!important}.game-screen{display:none;flex-direction:column;gap:8px;padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom))}.app[data-screen=game] .game-screen{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto;grid-template-areas:"top" "hud" "board" "side";align-content:space-evenly;max-width:560px;margin:0 auto}.game-top{grid-area:top;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}.game-top>:first-child{justify-self:start}.game-top-left,.game-top-actions{display:flex;gap:8px;justify-self:end}.level-chip{padding:8px 18px;border-radius:999px;background:#ffffffd9;box-shadow:0 4px 12px var(--shadow);font-family:var(--display);font-size:20px;font-weight:700}.hud{grid-area:hud;display:grid;grid-template-columns:.8fr 1.6fr 1fr;gap:8px}.card{min-width:0;border-radius:18px;padding:8px 8px 10px;text-align:center;background:linear-gradient(180deg,#fff,var(--cream));box-shadow:0 6px 16px var(--shadow),inset 0 0 0 1px #fff}.card>span{display:block;color:var(--text-soft);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.card strong{display:block;font-family:var(--display);font-size:clamp(22px,4.2vh,34px);font-weight:700;line-height:1.1}.moves-card strong{color:var(--pink-dark);font-size:clamp(28px,5.4vh,44px)}.moves-card.low strong{color:#e8344f;animation:breathe .9s ease-in-out infinite}.goal-list{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 10px;margin-top:4px}.goal{position:relative;display:flex;align-items:center;gap:2px}.goal img{width:clamp(28px,4.6vh,40px);height:clamp(28px,4.6vh,40px);object-fit:contain}.goal b{font-family:var(--display);font-size:clamp(16px,2.8vh,22px);font-weight:700;min-width:1.2em}.goal.done b{color:#2fae6f}.score-card strong{font-size:clamp(18px,3.2vh,26px)}.star-bar{position:relative;height:10px;margin:6px 6px 2px;border-radius:99px;background:#f3e3ea;box-shadow:inset 0 1px 2px #4d263626}.star-fill{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#ffd84d,#ff9f3d);transition:width .3s ease}.star-bar i{position:absolute;top:50%;width:16px;height:16px;transform:translate(-50%,-50%);background:#d9c5ce;clip-path:polygon(50% 0,63% 35%,100% 38%,71% 61%,80% 100%,50% 78%,20% 100%,29% 61%,0 38%,37% 35%)}.star-bar i.on{background:#ffc93c}.board-stage{grid-area:board;min-height:0;display:grid;place-items:center}.board-panel{width:min(calc(100vw - 20px),calc(100dvh - 290px),540px);aspect-ratio:1;border-radius:28px;background:linear-gradient(180deg,#fffdf899,#ffeccd8c);box-shadow:0 16px 34px #4d263624}#game-canvas,#game-canvas canvas{width:100%!important;height:100%!important;display:block}.hammering #game-canvas{cursor:crosshair}.side{grid-area:side;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.mascot{position:relative;width:clamp(76px,13vh,120px);flex:0 0 auto;cursor:pointer}.mascot img{width:100%;display:block;filter:drop-shadow(0 8px 10px rgba(168,48,95,.2))}.mascot img.pop{animation:pop .3s ease-out}.bubble{position:absolute;left:78%;bottom:70%;z-index:5;width:max-content;max-width:220px;padding:9px 13px;border-radius:16px 16px 16px 4px;background:#fff;box-shadow:0 8px 20px var(--shadow);font-size:15px;line-height:1.25;opacity:0;transform:translateY(6px) scale(.9);transform-origin:bottom left;transition:opacity .2s ease,transform .2s ease;pointer-events:none}.bubble.show{opacity:1;transform:none}.boosters{display:flex;gap:10px}.booster{position:relative;width:clamp(58px,9vh,72px);display:flex;flex-direction:column;align-items:center;gap:2px}.booster img{width:100%;aspect-ratio:1;border-radius:50%;box-shadow:0 5px #4d263626;transition:transform .1s ease}.booster:active img{transform:translateY(2px) scale(.96)}.booster small{font-size:11px;color:var(--text-soft);white-space:nowrap}.badge{position:absolute;top:-4px;right:-4px;min-width:24px;height:24px;padding:0 6px;border-radius:99px;display:grid;place-items:center;color:#fff;font-size:14px;background:var(--pink);box-shadow:0 0 0 2px #fff}.badge.plus{background:#2fae6f}.hammering .booster[data-id=paw] img{box-shadow:0 0 0 4px var(--pink),0 0 18px var(--pink)}.hammer-hint{position:absolute;left:50%;top:70px;z-index:6;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;border-radius:999px;background:#fff;box-shadow:0 8px 20px var(--shadow);font-size:15px;white-space:nowrap}.hammer-hint[hidden]{display:none}.hammer-hint button{padding:6px 12px;border-radius:99px;background:#ffe5f1}@media(min-aspect-ratio:5/4)and (min-width:640px){.app[data-screen=game] .game-screen{max-width:none;grid-template-columns:minmax(150px,1fr) minmax(0,auto) minmax(170px,1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"pause board actions" "chip board side" "hud board side";align-content:stretch;column-gap:22px;row-gap:10px;padding:14px max(22px,env(safe-area-inset-right)) 14px max(22px,env(safe-area-inset-left))}.game-top{display:contents}.game-top>:first-child{grid-area:pause;justify-self:start}.level-chip{grid-area:chip;justify-self:start}.game-top-actions{grid-area:actions;justify-self:end}.board-stage{align-self:center}.board-panel{width:min(calc(100dvh - 28px),calc(100vw - 400px))}.hud{grid-template-columns:1fr;align-content:center;justify-self:end;width:min(230px,100%);gap:12px}.goal-list{flex-direction:column;align-items:center}.side{flex-direction:column;align-items:flex-start;justify-content:center;gap:22px}.mascot{width:clamp(110px,20vh,170px)}.bubble{left:0;bottom:100%;max-width:min(220px,24vw);border-radius:16px 16px 16px 4px}.boosters{flex-direction:column}.booster{flex-direction:row;width:auto;gap:10px}.booster img{width:clamp(52px,8vh,64px)}.booster small{font-size:14px}.badge{left:calc(clamp(52px,8vh,64px) - 18px);right:auto}}.modal-layer{position:absolute;inset:0;z-index:20;display:none;place-items:center;padding:16px;background:#4d263661;backdrop-filter:blur(4px)}.modal-layer.open{display:grid}.modal{position:relative;width:min(100%,400px);max-height:calc(100% - 20px);overflow-y:auto;padding:26px 22px 20px;border-radius:30px;text-align:center;background:linear-gradient(180deg,#fff,#fff3fb 58%,#f0e8ff);box-shadow:0 24px 60px #4d263652,inset 0 0 0 3px #ffffffe6;animation:modal-in .28s cubic-bezier(.2,1.4,.4,1);display:flex;flex-direction:column;align-items:center;gap:10px}.modal h2{margin:0;font-family:var(--display);font-size:32px;font-weight:700;line-height:1.05}.modal p{margin:0;color:var(--text-soft);font-size:17px;line-height:1.4}.modal-cat{width:110px;margin-top:-6px;animation:float 2s ease-in-out infinite}.modal-cat.small{width:74px}.story-cat{width:140px}.eyebrow{color:var(--pink-dark);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.story-text{min-height:4.2em;color:var(--text)!important;font-size:18px!important}.dots{display:flex;gap:6px;margin:2px 0 4px}.dots i{width:8px;height:8px;border-radius:50%;background:#f0cfe0}.dots i.on{background:var(--pink)}.goal-row{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:4px 0}.goal-big{width:104px;padding:10px 6px;border-radius:18px;background:#ffffffd9;box-shadow:0 4px 12px var(--shadow);display:flex;flex-direction:column;align-items:center;gap:2px}.goal-big img{width:52px;height:52px;object-fit:contain}.goal-big b{font-family:var(--display);font-size:24px}.goal-big.done b{color:#2fae6f}.goal-big small{color:var(--text-soft);font-size:11px;line-height:1.2}.tip-line{padding:10px 14px;border-radius:16px;background:#ffffffbf;font-size:14px!important}.tip-head{display:flex;align-items:center;gap:10px}.tip-demo{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:20px;background:#ffffffd9;box-shadow:inset 0 0 0 2px #ffe0ee}.tip-demo img{width:64px;height:64px}.tip-demo b{font-size:26px;color:var(--pink)}.tip-demo .stack{position:relative;width:72px;height:72px}.tip-demo .stack img{position:absolute;inset:0;width:100%;height:100%}.tip-demo .stack img.inner{inset:14%;width:72%;height:72%}.tip-demo.swipe{position:relative}.tip-demo.swipe .mover{position:absolute;right:18px;top:-40px;animation:swipe-demo 2s ease-in-out infinite}.tip-demo .spin{animation:spin 4s linear infinite}.tip-demo .roll{animation:roll 2s ease-in-out infinite}.stars-row{display:flex;justify-content:center;align-items:flex-end;gap:4px;margin:4px 0}.stars-row img{width:64px;filter:grayscale(1) opacity(.35)}.stars-row img:nth-child(2){width:82px}.stars-row img.on{filter:drop-shadow(0 6px 8px rgba(214,138,12,.4));animation:star-in .5s cubic-bezier(.2,1.6,.4,1) both;animation-delay:calc(var(--i) * .25s + .2s)}.stars-row.small img{width:28px;animation:none}.stars-row.small img:nth-child(2){width:34px}.result-score{font-size:18px}.result-score b{font-family:var(--display);font-size:26px}.reward-row{display:flex;gap:12px}.reward{display:inline-flex;align-items:center;gap:6px;padding:6px 16px 6px 8px;border-radius:999px;background:#fff6d6;box-shadow:inset 0 0 0 2px #ffe08a;font-family:var(--display);font-size:20px;font-weight:700;color:#9a5a00}.reward img{width:34px;height:34px}.button-row{display:flex;flex-direction:column;gap:12px;width:100%;align-items:center;margin-top:4px}.price{display:inline-flex;align-items:center;gap:2px;padding:2px 10px 2px 4px;border-radius:99px;background:#ffffff8c;font-size:17px}.price img,.inline-coin{width:22px;height:22px}.shop-list{display:flex;flex-direction:column;gap:10px;width:100%}.shop-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:20px;background:#ffffffd9;box-shadow:0 4px 12px var(--shadow);text-align:left}.shop-item>img{width:56px;height:56px}.shop-item>div{flex:1;display:flex;flex-direction:column}.shop-item small{color:var(--text-soft);font-size:13px;line-height:1.25}.shop-item .owned{color:var(--pink-dark)}.buy-button{display:inline-flex;align-items:center;gap:4px;padding:8px 12px 8px 8px;border-radius:14px;background:linear-gradient(180deg,#ffe27a,#f5b52c);box-shadow:0 3px 0 var(--gold-dark);color:#7a4300;font-size:17px}.buy-button img{width:22px}.fly-layer{position:fixed;inset:0;z-index:30;pointer-events:none}.flyer{position:fixed;object-fit:contain;will-change:transform}.toast{position:fixed;left:50%;bottom:30px;z-index:40;padding:12px 20px;border-radius:999px;background:var(--text);color:#fff;font-size:16px;opacity:0;transform:translate(-50%,20px);pointer-events:none}.toast.show{animation:toast 2.2s ease forwards}.bump{animation:bump .22s ease-out}@keyframes bump{50%{transform:scale(1.12)}}@keyframes pop{45%{transform:translateY(-4px) scale(1.08)}}@keyframes float{50%{transform:translateY(-8px)}}@keyframes breathe{50%{transform:scale(1.06)}}@keyframes wiggle{0%,70%,to{transform:rotate(0)}80%{transform:rotate(-10deg)}90%{transform:rotate(10deg)}}@keyframes twinkle{50%{opacity:.4}}@keyframes modal-in{0%{transform:scale(.85) translateY(20px);opacity:0}}@keyframes star-in{0%{transform:scale(0) rotate(-40deg);opacity:0}}@keyframes toast{12%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,10px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes roll{50%{transform:translateY(14px) rotate(180deg)}}@keyframes swipe-demo{0%,20%{transform:translateY(0);opacity:0}30%{opacity:1}60%,80%{transform:translateY(40px);opacity:1}to{transform:translateY(40px);opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}.music-toggle .cross{display:none;stroke-width:3}.music-toggle.muted .cross{display:block}.music-toggle svg circle{fill:var(--pink)}.profile{display:inline-flex;align-items:center;gap:6px;max-width:34vw;height:40px;padding:0 12px 0 4px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 2px #e4d8ff,0 4px 12px var(--shadow);font-size:14px;cursor:default}.profile[data-act]{cursor:pointer;background:linear-gradient(180deg,#fff,#f0e8ff)}.profile img{width:32px;height:32px;border-radius:50%;object-fit:cover}.profile span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.profile[hidden]{display:none}.coins-pill{cursor:pointer}.pill-plus{display:grid;place-items:center;width:22px;height:22px;margin-left:2px;border-radius:50%;background:#2fae6f;color:#fff;font-size:16px;line-height:1}.map-scroll{padding-bottom:110px}.map-rail{position:absolute;left:10px;top:76px;z-index:4;display:flex;flex-direction:column;gap:10px}.rail-item{position:relative;width:64px;padding:6px 2px 4px;border-radius:18px;background:#ffffffeb;box-shadow:0 4px #4d26361a,0 8px 16px var(--shadow);display:flex;flex-direction:column;align-items:center;gap:2px}.rail-item img,.rail-item .rail-svg{width:38px;height:38px}.rail-item .rail-svg svg{width:38px;height:38px;fill:var(--pink);stroke:var(--text);stroke-width:1.6;stroke-linejoin:round}.rail-item small{max-width:60px;overflow:hidden;font-size:10px;line-height:1.1;text-align:center;color:var(--text-soft);white-space:nowrap;text-overflow:ellipsis}.rail-item .badge{top:-6px;right:-6px;animation:breathe 1.2s ease-in-out infinite}.rail-progress,.chest-bar i,.qbar{display:block;height:6px;width:48px;border-radius:99px;background:#f3e3ea;overflow:hidden}.rail-progress b,.chest-bar i b,.qbar b{display:block;height:100%;background:linear-gradient(90deg,#ffd84d,#ff9f3d)}.map-bottom{position:absolute;left:0;right:0;bottom:0;z-index:4;display:flex;justify-content:center;padding:14px 16px max(16px,env(safe-area-inset-bottom));background:linear-gradient(0deg,#fff7f8f2,#fff7f800);pointer-events:none}.map-bottom .big-button{pointer-events:auto;min-width:240px;animation:breathe 1.8s ease-in-out infinite}.level-node.hard:not(.locked){background:radial-gradient(circle at 35% 30%,#c9b4ff,#8f5bff 60%,#5a2ec2);box-shadow:0 5px #3e1f8a,0 10px 18px #5a2ec259,inset 0 0 0 4px #ffffff8c}.level-node.hard.done{background:radial-gradient(circle at 35% 30%,#fff0a8,#ffc93c 60%,#e09612)}.level-node.hard:after{content:"💀";position:absolute;top:-8px;left:-10px;font-size:18px}.level-node{position:relative}.streak{width:100%;padding:10px 12px;border-radius:18px;background:#ffffffd9;box-shadow:inset 0 0 0 2px #ffe0ee}.streak-head{display:flex;flex-direction:column;gap:2px;font-size:15px}.streak-head small{color:var(--text-soft);font-size:12px}.streak-steps{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:6px}.streak-steps>i{width:18px;height:4px;border-radius:2px;background:#f0cfe0}.streak-step{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#f3e3ea;filter:grayscale(1);opacity:.5}.streak-step img{width:34px;height:34px}.streak-step.on{background:#fff6d6;box-shadow:0 0 0 3px #ffd84d;filter:none;opacity:1}.pre-row{display:flex;flex-direction:column;align-items:center;gap:4px}.pre-row>small{color:var(--text-soft);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.pre-row>div{display:flex;gap:14px}.pre-booster{position:relative;width:76px;display:flex;flex-direction:column;align-items:center;gap:2px}.pre-booster img{width:56px;height:56px;border-radius:50%;background:#fff;box-shadow:0 4px #4d26361f}.pre-booster.on img{box-shadow:0 0 0 4px #2fae6f,0 0 16px #2fae6f80}.pre-booster small{font-size:11px;color:var(--text-soft)}.pre-booster .badge{right:4px}.pre-booster.on .badge{background:#2fae6f}.hard-ribbon{padding:8px 18px;border-radius:999px;background:linear-gradient(180deg,#a77bff,#6b3bd6);color:#fff;font-family:var(--display);font-size:20px;box-shadow:0 4px #3e1f8a}.modal.hard{background:linear-gradient(180deg,#fff,#f2ebff 58%,#e4d8ff)}.chest-bar{display:flex;align-items:center;gap:8px;width:100%;max-width:280px;cursor:pointer}.chest-bar img{width:40px;height:40px}.chest-bar i{flex:1;height:12px}.chest-bar span{font-size:14px;min-width:44px}.warn{padding:8px 12px;border-radius:14px;background:#fff0f3;color:#c2304f!important;font-size:14px!important}.toggle-row{display:flex;gap:12px}.calendar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%}.day{position:relative;padding:8px 4px;border-radius:16px;background:#ffffffd9;box-shadow:0 3px #4d263614;display:flex;flex-direction:column;align-items:center;gap:2px}.day img{width:36px;height:36px}.day small{font-size:11px;color:var(--text-soft)}.day b{font-size:14px}.day.big{grid-column:span 2;background:linear-gradient(180deg,#fff6d6,#ffe08a)}.day.today{box-shadow:0 0 0 3px var(--pink),0 6px 16px #ff5fa259;animation:breathe 1.4s ease-in-out infinite}.day.claimed{opacity:.55}.tick{position:absolute;inset:0;display:grid;place-items:center;font-size:34px;color:#2fae6f}.quest-list{display:flex;flex-direction:column;gap:8px;width:100%}.quest,.quest-bonus,.task{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:16px;background:#ffffffd9;box-shadow:0 3px 10px var(--shadow);text-align:left;width:100%}.quest>img,.quest-bonus>img{width:42px;height:42px;object-fit:contain}.quest>div{flex:1;display:flex;flex-direction:column;gap:3px;font-size:14px}.quest .qbar{width:100%}.quest small{color:var(--text-soft);font-size:12px}.quest.claimed,.quest-bonus.claimed,.task.done{opacity:.6}.quest-bonus span:not(.task-done){flex:1;font-size:13px}.task-done{color:#2fae6f;font-size:24px}.goal-intro{position:absolute;left:50%;top:38%;z-index:7;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 24px;border-radius:24px;background:#fffffff2;box-shadow:0 16px 40px #4d26364d;transform:translate(-50%,-50%) scale(.6);opacity:0;pointer-events:none}.goal-intro.show{animation:goal-intro 2s ease forwards}.goal-intro>b{font-family:var(--display);font-size:28px}.goal-intro div{display:flex;gap:12px}.goal-intro span{display:inline-flex;align-items:center;gap:2px;font-family:var(--display);font-size:22px}.goal-intro img{width:40px;height:40px;object-fit:contain}.hard-tag{padding:2px 10px;border-radius:99px;background:#6b3bd6;color:#fff;font-size:13px!important}@keyframes goal-intro{12%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}20%,80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-60%) scale(.95)}}.pointer{position:fixed;z-index:25;pointer-events:none;opacity:0;filter:drop-shadow(0 6px 8px rgba(77,38,54,.35))}.pointer.show{animation:pointer-drag 1.6s ease-in-out infinite}@keyframes pointer-drag{0%{opacity:0;transform:translate(0) scale(1.1)}15%{opacity:1;transform:translate(0) scale(1)}60%{opacity:1;transform:translate(var(--dx),var(--dy)) scale(1)}85%,to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1)}}.home-screen{flex-direction:column}.home-title{flex:1;margin:0;font-family:var(--display);font-size:22px;text-align:center}.home-body{flex:1;min-height:0;overflow-y:auto;padding:14px 16px 30px;display:flex;flex-direction:column;align-items:center;gap:12px}.room-stage{position:relative;width:min(100%,640px);aspect-ratio:4 / 3;border-radius:26px;overflow:hidden;box-shadow:0 16px 34px #4d26362e,inset 0 0 0 4px #fff;flex:0 0 auto}.room-svg{width:100%;height:100%;display:block}.room-svg .ghost rect{animation:twinkle 1.6s ease-in-out infinite}.room-svg .item.pop-in{transform-box:fill-box;transform-origin:center bottom;animation:build-pop .7s cubic-bezier(.2,1.6,.4,1)}@keyframes build-pop{0%{transform:scale(0) translateY(20px);opacity:0}}.room-cta{position:absolute;left:50%;bottom:14px;transform:translate(-50%);display:inline-flex;align-items:center;gap:6px;padding:10px 22px;border-radius:18px;color:#fff;font-family:var(--display);font-size:22px;background:linear-gradient(180deg,#8de08f,#2fae6f);box-shadow:0 5px #1f7a43,0 10px 20px #2fae6f59}.room-cta:not(:disabled){animation:breathe 1.6s ease-in-out infinite}.room-cta img{width:26px}.room-cta.done{background:linear-gradient(180deg,#ffe27a,#f5b52c);color:#7a4300;box-shadow:0 5px 0 var(--gold-dark)}.home-hint{margin:0;color:var(--text-soft);font-size:15px;text-align:center}.room-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.room-tab{width:38px;height:38px;border-radius:12px;background:#fff;box-shadow:0 3px #4d26361f;font-size:15px}.room-tab.on{background:var(--pink);color:#fff}.task-list{display:flex;flex-direction:column;gap:8px;width:min(100%,520px)}.task b{flex:1;font-size:14px}.task-num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#ffe0ee;color:var(--pink-dark)}.buy-button.star{background:linear-gradient(180deg,#8de08f,#2fae6f);box-shadow:0 3px #1f7a43;color:#fff}.chest-img.shake{animation:wiggle 1s ease-in-out infinite}@media(min-aspect-ratio:5/4)and (min-width:640px){.map-rail{left:20px;top:90px}.rail-item{width:76px}.home-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);align-items:start}.home-body>*{grid-column:2}.home-body .room-stage{grid-column:1;grid-row:1 / span 5;width:100%}}@media(max-width:480px){.map-top{flex-wrap:wrap;gap:6px;padding:8px 10px}.map-top .pill{height:34px;font-size:16px}.map-top .round-button{width:40px;height:40px}.profile{height:34px;max-width:40vw}.profile img{width:26px;height:26px}.map-scroll{padding-left:80px}}body{background:#ffd7ea var(--bg-art, none) center / cover no-repeat}.app:before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,#fff7f88c,#ffd7ea59 45%,#e8d9ff80);pointer-events:none}.screen,.modal-layer{z-index:1}.modal-layer{z-index:20}.chapter.painted{background:linear-gradient(180deg,#ffffff40,#ffffff1a),var(--art) center / cover no-repeat,var(--c1)}.chapter.painted .chapter-head{margin:-6px -6px 10px;padding:8px 12px;border-radius:20px;background:#ffffffd1;backdrop-filter:blur(4px)}.story-stage{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:4px;min-height:140px}.story-baron{width:130px;margin-bottom:-6px;animation:float 2.4s ease-in-out infinite reverse;filter:drop-shadow(0 8px 10px rgba(77,38,54,.2))}.room-svg image.item.pop-in,.room-svg .item.pop-in{transform-box:fill-box;transform-origin:center bottom;animation:build-pop .7s cubic-bezier(.2,1.6,.4,1)}.lang-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.lang{min-height:46px;padding:6px 10px;border-radius:14px;background:#fff;box-shadow:0 3px #4d26361a;font-size:16px}.lang.on{background:var(--pink);color:#fff;box-shadow:0 3px 0 var(--pink-dark)}:root:lang(ja),:root:lang(zh-Hans),:root:lang(ko){--display: "Fredoka", "Hiragino Maru Gothic ProN", "Apple SD Gothic Neo", "PingFang SC", "Yu Gothic UI", "Malgun Gothic", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--body: "Nunito", "Hiragino Maru Gothic ProN", "Apple SD Gothic Neo", "PingFang SC", "Yu Gothic UI", "Malgun Gothic", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif}.chapter-head>div{min-width:0}.chapter-head h2{font-size:clamp(19px,5.4vw,28px);line-height:1.1;overflow-wrap:break-word;hyphens:auto}.chapter-head .chip-button{flex:0 0 auto;white-space:nowrap}.booster small{max-width:84px;white-space:normal;text-align:center;line-height:1.1}.card>span{overflow-wrap:anywhere}@media(min-aspect-ratio:5/4)and (min-width:640px)and (max-height:560px){.side{justify-content:flex-end;gap:10px}.mascot{width:76px}.bubble{max-width:min(210px,26vw);padding:7px 11px;font-size:13px}.boosters{gap:6px}.booster img{width:46px}}@media(min-aspect-ratio:5/4)and (min-width:640px){.booster small{max-width:150px;text-align:left}}.modal.wide{display:block;width:min(100%,780px);columns:2;column-gap:28px;column-rule:1px solid rgba(240,189,212,.5)}.modal.wide>*{break-inside:avoid;margin:0 auto 8px}.modal.wide>img{display:block}.modal.wide>.big-button,.modal.wide>.secondary-button,.modal.wide>.link-button,.modal.wide>.toggle-row{display:flex;align-items:center;justify-content:center;width:fit-content}.modal.wide.m-language{columns:1}.modal.wide .lang-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(orientation:landscape)and (max-height:500px){.modal-layer{padding:8px}.modal{max-height:100%;padding:14px 18px 12px;gap:6px;border-radius:22px}.modal h2{font-size:24px}.modal p{font-size:14.5px;line-height:1.3}.modal-cat{width:64px;margin-top:0}.modal-cat.small{width:46px}.story-stage{min-height:0}.story-cat{width:78px}.story-baron{width:70px}.story-text{min-height:0;font-size:15px!important}.big-button{min-width:150px;min-height:44px;padding:0 20px;border-radius:16px;font-size:19px}.secondary-button{min-height:38px;font-size:16px}.link-button{padding:4px 10px;font-size:14px}.goal-big{width:82px;padding:6px 4px}.goal-big img{width:38px;height:38px}.goal-big b{font-size:20px}.tip-demo{padding:8px 14px}.lang{min-height:36px;font-size:14px}}@media(min-aspect-ratio:5/4)and (max-height:500px){.app[data-screen=game] .game-screen{grid-template-columns:minmax(112px,1fr) auto minmax(150px,1fr);column-gap:12px;row-gap:8px;padding:8px max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left))}.level-chip{padding:5px 12px;font-size:16px}.game-screen .round-button{width:40px;height:40px;border-radius:13px}.board-panel{width:min(calc(100dvh - 16px),calc(100vw - 310px));border-radius:20px}.hud{align-content:start;justify-self:stretch;width:100%;gap:6px}.card{padding:4px 6px 6px;border-radius:14px}.card>span{font-size:10px}.card strong{font-size:20px}.moves-card strong{font-size:26px}.goal-list img{width:22px;height:22px}.side{align-items:flex-start;justify-content:flex-end;gap:6px}.mascot{width:58px}.bubble{max-width:min(170px,24vw);padding:6px 9px;font-size:12px}.boosters{gap:4px}.booster{width:auto}.booster img{width:40px}.booster small{font-size:10px}}
