@font-face{font-family:Fredoka;font-style:normal;font-weight:400 700;font-display:swap;src:url(./fredoka-latin-ext-CYrqKuxd.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:Fredoka;font-style:normal;font-weight:400 700;font-display:swap;src:url(./fredoka-latin-DM6njrJ3.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}*{box-sizing:border-box}@property --sky-a{syntax: "<color>"; inherits: true; initial-value: #bfe6ff;}@property --sky-b{syntax: "<color>"; inherits: true; initial-value: #8ec5f0;}@property --sky-c{syntax: "<color>"; inherits: true; initial-value: #5d8fd6;}html,body{margin:0;height:100%;overflow:hidden;font-family:Fredoka,Segoe UI,system-ui,sans-serif;color:#1d2340;background:radial-gradient(ellipse at 50% 30%,var(--sky-a) 0%,var(--sky-b) 45%,var(--sky-c) 100%)}html{transition:--sky-a 1.2s,--sky-b 1.2s,--sky-c 1.2s}#scene{display:block;width:100vw;height:100vh;touch-action:none}.hud,.actions,.dpad,.hint,.controls-help,.card,.menu-main,.menu-panel{zoom:var(--ui, 1)}:root{--safe-t: calc(env(safe-area-inset-top, 0px) / var(--ui, 1));--safe-r: calc(env(safe-area-inset-right, 0px) / var(--ui, 1));--safe-b: calc(env(safe-area-inset-bottom, 0px) / var(--ui, 1));--safe-l: calc(env(safe-area-inset-left, 0px) / var(--ui, 1))}.hud{position:fixed;top:calc(16px + var(--safe-t));left:calc(16px + var(--safe-l));right:calc(16px + var(--safe-r));display:flex;justify-content:space-between;align-items:flex-start;gap:12px;pointer-events:none}.panel{background:#ffffffc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;padding:12px 16px;box-shadow:0 6px 24px #14285a2e;pointer-events:auto}.level-num{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#6a58c9}.level-name{font-size:22px;font-weight:800;margin:2px 0 6px}.stats{display:flex;gap:16px;font-size:14px;color:#4a5070}.stats b{color:#1d2340;font-variant-numeric:tabular-nums}.buttons{display:flex;gap:6px;padding:6px}.buttons button.icon{width:42px;height:42px;padding:0;display:grid;place-items:center;color:#3b2a8f}.buttons button.icon svg{width:22px;height:22px}button{font:inherit;font-weight:600;font-size:14px;border:none;border-radius:10px;padding:8px 14px;background:#eef1fb;color:#1d2340;cursor:pointer;transition:transform .08s,background .15s}button:hover{background:#dfe5fa}button:active{transform:scale(.95)}button.primary{background:#7b5cff;color:#fff}button.primary:hover{background:#6a4af0}.hint{position:fixed;bottom:calc(48px + var(--safe-b));left:50%;transform:translate(-50%);width:max-content;max-width:min(640px,max(220px,calc(100vw / var(--ui, 1) - 380px)));background:#1d2340d1;color:#fff;padding:10px 18px;border-radius:999px;font-size:15px;text-align:center;transition:opacity .6s}.hint.faded{opacity:0;pointer-events:none}.bubble{position:fixed;left:0;top:0;pointer-events:none;z-index:2}.bubble.hidden{display:none}.bubble-inner{zoom:var(--ui, 1);position:absolute;left:0;bottom:10px;transform:translate(-50%);width:max-content;padding:8px 16px;border-radius:18px;background:#fff;color:#1d2340;font-size:17px;font-weight:700;box-shadow:0 4px #d9dcef,0 8px 18px #141e4638;transform-origin:50% 100%;animation:bubble-pop .35s cubic-bezier(.3,1.6,.5,1) both,bubble-bob 1.8s ease-in-out .35s infinite}.bubble-inner:after{content:"";position:absolute;left:50%;bottom:-9px;margin-left:-9px;border:9px solid transparent;border-bottom:0;border-top-color:#fff}@keyframes bubble-pop{0%{transform:translate(-50%) scale(.2);opacity:0}}@keyframes bubble-bob{50%{transform:translate(-50%) translateY(-4px) rotate(-2deg)}}body.touch .hint{bottom:auto;top:calc(var(--hud-h, 120px) / var(--ui, 1) + 12px);max-width:calc(100vw / var(--ui, 1) - 32px);font-size:13px;border-radius:14px}@media(orientation:landscape){body.touch .hint{max-width:min(520px,calc(100vw / var(--ui, 1) - 440px))}}.controls-help{position:fixed;bottom:calc(14px + var(--safe-b));left:50%;transform:translate(-50%);width:max-content;text-align:center;font-size:12px;color:#ffffffe6;text-shadow:0 1px 3px rgba(0,0,0,.35);pointer-events:none}.dpad{position:fixed;right:calc(16px + var(--safe-r));bottom:calc(90px + var(--safe-b));display:none;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,56px);gap:4px}.dpad button{font-size:20px;padding:0;border-radius:16px;color:#5438d6;background:#ffffffeb;box-shadow:0 4px #cfc6fb}.dpad button:active{transform:translateY(3px);box-shadow:0 1px #cfc6fb}.dpad [data-dir=up]{grid-area:1 / 2}.dpad [data-dir=left]{grid-area:2 / 1}.dpad [data-dir=right]{grid-area:2 / 3}.dpad [data-dir=down]{grid-area:3 / 2}body.touch .dpad{display:grid}body.touch .controls-help{display:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;background:#14103259;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);transition:opacity .3s}.overlay.hidden{opacity:0;pointer-events:none}.card{background:#fff;border-radius:20px;padding:28px 36px;text-align:center;box-shadow:0 20px 60px #14103259;max-width:calc(100vw / var(--ui, 1) - 32px);animation:pop .35s cubic-bezier(.2,1.4,.4,1)}.overlay.hidden .card{animation:none}.card h1{margin:0 0 8px;font-size:30px;color:#6a4af0}.card p{margin:0 0 20px;color:#4a5070}.card-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}@keyframes pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:560px){.hud{top:12px;left:12px;right:12px;gap:8px}.title-panel{padding:8px 12px}.level-num{font-size:10px}.level-name{font-size:16px;margin:0 0 3px}.stats{font-size:12px;gap:10px}.buttons{padding:5px;gap:4px}.dpad{bottom:calc(40px + var(--safe-b))}.card{padding:22px 20px}.card h1{font-size:26px}}@media(max-width:720px){.controls-help{display:none}}@media(max-height:500px){.dpad{bottom:calc(16px + var(--safe-b))}}body.in-menu .hud,body.in-menu .actions,body.in-menu .hint,body.in-menu .dpad,body.in-menu .controls-help{display:none!important}.menu{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;align-items:center;padding:0 7vw;transition:opacity .4s}.menu:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,#36248c61,#36248c1f 40%,#36248c00 60%)}.menu.hidden{opacity:0}.menu.hidden *{pointer-events:none!important}.menu-main{position:relative;width:min(400px,100%);display:flex;flex-direction:column;gap:34px}.menu-main.hidden,.menu-panel.hidden{display:none}.logo{text-align:left}.title{margin:0;font-size:150px;line-height:.82;font-weight:700;letter-spacing:-.01em;color:#ff8a3d;text-shadow:0 3px 0 #f2701f,0 6px 0 #dd5f14,0 9px 0 #c24e0c,0 12px 0 #9f3e07,0 20px 26px rgba(40,20,90,.45)}.title span{display:inline-block;position:relative;animation:letter-in .7s cubic-bezier(.2,1.6,.4,1) backwards,letter-bob 3.2s ease-in-out .8s infinite}.title span:nth-child(2){animation-delay:.08s,1s}.title span:nth-child(3){animation-delay:.16s,1.2s}@keyframes letter-in{0%{transform:translateY(-80px) scale(.6);opacity:0}}@keyframes letter-bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(-3deg)}}.subtitle{margin:44px 0 0 6px;font-size:21px;font-weight:500;color:#fff;text-shadow:0 2px 8px rgba(40,20,110,.45)}.menu-actions{display:flex;flex-direction:column;gap:14px;pointer-events:auto}.btn-play{display:flex;align-items:center;gap:16px;padding:16px 28px;border-radius:24px;background:linear-gradient(180deg,#ffa24f,#ff7a2e);color:#fff;font-size:30px;font-weight:700;text-align:left;box-shadow:0 7px #c9541a,0 16px 28px #8c32004d;animation:play-breathe 2.6s ease-in-out infinite}.btn-play:hover{background:linear-gradient(180deg,#ffb066,#ff8640)}.btn-play:active{transform:translateY(5px);box-shadow:0 2px #c9541a,0 6px 12px #8c32004d;animation:none}.btn-play svg{width:36px;height:36px;fill:#fff;flex:none;filter:drop-shadow(0 2px 0 rgba(150,50,0,.4))}.play-text{display:flex;flex-direction:column;line-height:1.05;text-shadow:0 2px 0 rgba(150,50,0,.35)}.play-text small{font-size:16px;font-weight:500;opacity:.92}.play-text small:empty{display:none}@keyframes play-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}.btn-levels{display:flex;align-items:center;justify-content:space-between;padding:15px 22px;border-radius:20px;background:#fff;color:#5438d6;font-size:22px;font-weight:700;box-shadow:0 6px #cfc6fb,0 12px 22px #28146e2e}.btn-levels:hover{background:#faf8ff}.btn-levels:active{transform:translateY(4px);box-shadow:0 2px #cfc6fb}.star-total{font-size:16px;font-weight:600;color:#8a5a00;background:#fff3cf;border-radius:999px;padding:4px 12px}.menu-icons{display:flex;gap:12px}button.round{width:56px;height:56px;padding:0;border-radius:50%;display:grid;place-items:center;background:#fff;color:#5438d6;box-shadow:0 5px #cfc6fb,0 10px 18px #28146e2e}button.round:active{transform:translateY(4px);box-shadow:0 1px #cfc6fb}button.round svg{width:28px;height:28px}button.round.off{color:#a3a8c2}button svg{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}button svg circle{fill:currentColor}.menu-panel{position:relative;pointer-events:auto;width:min(420px,100%);background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:26px;padding:24px;box-shadow:0 20px 60px #14285a47;display:flex;flex-direction:column;gap:12px;animation:menu-in .45s cubic-bezier(.2,1.2,.4,1)}@keyframes menu-in{0%{opacity:0;transform:translateY(18px) scale(.97)}}.menu-panel h2{margin:0;font-size:26px;font-weight:700;color:#3b2a8f}.level-grid{display:flex;flex-direction:column;gap:18px;max-height:min(62vh,560px);overflow-y:auto;overscroll-behavior:contain;margin:0 -8px;padding:4px 8px 10px}.chapter-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:17px;font-weight:700;color:#3b2a8f}.ch-stars{font-size:14px;font-weight:600;color:#8a5a00}.level-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.level-tile{aspect-ratio:1;padding:0;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:linear-gradient(180deg,#8f75ff,#6a4af0);color:#fff;font-size:20px;font-weight:700;box-shadow:0 4px #4a31c9}.level-tile:hover:not(:disabled){background:linear-gradient(180deg,#9d86ff,#7657f7)}.level-tile:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #4a31c9}.level-tile .lt-stars{font-size:10px;line-height:1}.level-tile .star{color:#ffffff59;text-shadow:none}.level-tile .star.on{color:#ffd04d}.level-tile.current{box-shadow:0 4px #4a31c9,0 0 0 3px #ffb020}.level-tile.locked{background:#e6e8f3;color:#a3a8c2;box-shadow:0 4px #d3d7e8;font-size:15px;cursor:default}.level-tile.locked .lt-stars{display:none}.btn-back{align-self:flex-start;padding:10px 16px;border-radius:14px;font-size:16px}.star{color:#d6dbee}.star.on{color:#ffc233;text-shadow:0 1px 0 #d99a00}.stars{font-size:42px;letter-spacing:6px;margin:-2px 0 8px}.stars .star{display:inline-block}.overlay:not(.hidden) .stars .star.on{animation:star-pop .5s cubic-bezier(.2,1.8,.4,1) backwards}.overlay:not(.hidden) .stars .star:nth-child(2){animation-delay:.15s}.overlay:not(.hidden) .stars .star:nth-child(3){animation-delay:.3s}@keyframes star-pop{0%{transform:scale(0) rotate(-40deg)}}.card p{line-height:1.5}@media(max-aspect-ratio:4/5){.menu{align-items:stretch;justify-content:center;padding:calc(28px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom))}.menu:before{background:linear-gradient(180deg,#36248c4d,#36248c00 30%,#36248c00 62%,#36248c57)}.menu-main{width:100%;max-width:440px;justify-content:space-between}.logo{text-align:center}.title{font-size:112px}.subtitle{margin:34px 0 0;font-size:18px}.btn-play{font-size:26px;padding:14px 24px;justify-content:center}.menu-icons{justify-content:center}.menu-panel{margin-top:auto;width:100%;max-width:440px;align-self:center;padding:20px}.level-grid{max-height:58vh}}@media(max-width:380px){.level-tiles{gap:7px}}.title .i:after{content:"";position:absolute;left:50%;top:.04em;width:.2em;height:.2em;margin-left:-.1em;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#7ff6ff 45%,#2fd3e6);animation:antenna-glow 1.6s ease-in-out infinite}@keyframes antenna-glow{0%,to{box-shadow:0 0 12px #7ff6ff,0 0 26px #7ff6ff73;transform:scale(1)}50%{box-shadow:0 0 22px #7ff6ff,0 0 52px #7ff6ffe6;transform:scale(1.12)}}.actions{position:fixed;left:calc(16px + var(--safe-l));bottom:calc(16px + var(--safe-b));z-index:2;display:flex;gap:14px}button.action{--edge: #5438d6;width:68px;height:68px;padding:0;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 5px 0 var(--edge),0 10px 18px #141e4640}button.action svg{width:34px;height:34px;stroke-width:2.8}button.action:active{transform:translateY(4px);box-shadow:0 1px 0 var(--edge),0 4px 8px #141e4640}button.action.undo{--edge: #d68600;background:linear-gradient(180deg,#ffc247,#ffa51f)}button.action.undo:hover{background:linear-gradient(180deg,#ffcc62,#ffb033)}button.action.restart{background:linear-gradient(180deg,#9277ff,#7254f7)}button.action.restart:hover{background:linear-gradient(180deg,#9f87ff,#7f63ff)}button.action.ask{--edge: #1f8f84;background:linear-gradient(180deg,#5fe0d2,#2bb3a6)}button.action.ask:hover{background:linear-gradient(180deg,#74e8db,#36bfb2)}body.touch .actions{flex-direction:column-reverse;bottom:calc(40px + var(--safe-b))}@media(max-height:500px){body.touch .actions{bottom:calc(16px + var(--safe-b))}}button.action.undo.nudge{animation:nudge 1.6s ease-in-out infinite}@keyframes nudge{0%,55%,to{transform:rotate(0) scale(1);box-shadow:0 6px 0 var(--edge),0 0 #ffc247b3}62%{transform:rotate(-14deg) scale(1.08)}70%{transform:rotate(12deg) scale(1.08)}78%{transform:rotate(-8deg) scale(1.05);box-shadow:0 6px 0 var(--edge),0 0 0 14px #ffc24700}86%{transform:rotate(4deg) scale(1.02)}}
