@font-face{font-family:Fredoka;src:url(/fonts/fredoka.ttf) format("truetype");font-weight:400 700;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/nunito.ttf) format("truetype");font-weight:400 800;font-display:swap}:root{font-family:Nunito,Trebuchet MS,sans-serif;color:#29443a;background:#dae9df;font-synthesis:none;--ink:#29443a;--muted:#65766b;--paper:#f5f7e8;--coral:#ee8c74;--shadow:#203f3915}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button{color:inherit}button,dialog{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid #526b50;outline-offset:2px}.primary:focus-visible{outline:2px solid #f5f5de;outline-offset:-6px}button{touch-action:manipulation}button svg{width:21px;height:21px;flex-shrink:0}button{transition:background .18s,transform .18s,box-shadow .18s}button:active:not(:disabled){transform:translateY(2px)}[hidden]{display:none!important}.game{position:relative;height:100svh;min-height:540px;overflow:hidden;background:radial-gradient(ellipse at 70% 39%,#e8efd9 0,transparent 58%),linear-gradient(155deg,#deebe1,#c8dbc9)}#scene{position:absolute;inset:0;touch-action:none}#scene canvas{display:block;width:100%;height:100%}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 -90px 110px -95px #96b499}.topbar{height:106px;position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;z-index:5;pointer-events:none}.topbar button{pointer-events:auto}.brand{border:0;background:none;display:flex;align-items:center;gap:13px;padding:4px 0;font-family:Fredoka,sans-serif;font-weight:600;font-size:28px;letter-spacing:-1px}.brand-light{font-weight:400}.brand-dot{color:#bf6e57}.brand-face{display:block;width:32px;height:33px;border-radius:8px;background:var(--coral);transform:rotate(-8deg);position:relative;box-shadow:2px 3px #d27561}.brand-face i{position:absolute;top:13px;width:4px;height:7px;background:var(--ink);border-radius:2px}.brand-face i:first-child{left:8px}.brand-face i:nth-child(2){right:7px}.brand-face i:before{content:"";position:absolute;top:-4px;left:-2px;width:9px;height:3px;background:var(--ink);transform:rotate(22deg)}.brand-face i:nth-child(2):before{transform:rotate(-22deg)}.brand-face b{position:absolute;width:12px;height:5px;bottom:6px;left:10px;border-top:2px solid var(--ink);border-radius:50%}.top-actions{display:flex;gap:10px}.icon-button{width:43px;height:43px;border:1px solid #29443a23;background:#ffffff25;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.icon-button:hover{background:#f5f7e899}.icon-button.muted{opacity:.55;position:relative}.icon-button.muted:after{content:"";position:absolute;width:25px;height:2px;background:var(--ink);transform:rotate(-45deg)}.welcome{position:absolute;z-index:3;left:7.5%;top:50%;transform:translateY(-48%);max-width:520px}.edition{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:2px;margin-bottom:23px}.edition>span{width:7px;height:7px;border-radius:50%;background:#789966}.welcome h1{font:500 clamp(42px,4.6vw,72px)/1.05 Fredoka,sans-serif;letter-spacing:-2px;margin:0 0 25px}.welcome h1 em{font-style:normal;color:#bd6a54;position:relative}.welcome h1 em:after{content:"";position:absolute;left:1px;right:0;bottom:0;height:5px;border-top:3px solid #bd6a5455;border-radius:50%;transform:rotate(-4deg)}.welcome p{font-size:16px;line-height:1.8;color:#576f61;margin:0 0 30px}.primary{display:flex;align-items:center;justify-content:center;gap:12px;border:0;background:var(--ink);color:#f5f5de;padding:17px 25px;border-radius:14px;font-weight:800;font-size:16px;box-shadow:0 5px #17332d,0 10px 25px #29443a1a;min-height:54px}.primary:hover{background:#3e5f4b;transform:translateY(-2px);box-shadow:0 7px #17332d,0 12px 25px #29443a1a}.primary:disabled{opacity:.4}.start-button{min-width:241px;justify-content:flex-start}.start-button>svg{width:20px;fill:currentColor;stroke-width:1}.key-hint{margin-left:auto;font-size:19px;color:#acbfa8;padding-left:22px}.text-button{border:0;background:none;padding:8px 0;display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:800;letter-spacing:.1px;color:#526a5c}.text-button:hover{color:#a35440}.text-button svg{width:17px;height:17px}.welcome>.text-button{margin-top:18px}.welcome-controls{display:flex;align-items:center;gap:14px;margin-top:35px;font-size:12px;line-height:1.8;color:#526a5c}.welcome-controls small{color:#708374;font-size:11px}.mini-keys{font-family:Nunito,sans-serif;line-height:1.2;text-align:center;font-size:17px;letter-spacing:2px;color:#718774}.cube-caption{position:absolute;left:65%;top:69%;font-family:Fredoka,sans-serif;font-size:17px;transform:rotate(-3deg);white-space:nowrap;pointer-events:none}.caption-line{width:1px;height:30px;background:#58766466;position:absolute;left:30px;bottom:60px;transform:rotate(14deg)}.cube-caption small{display:block;font:11px Nunito,sans-serif;letter-spacing:.5px;margin-top:6px;color:#6f806e;text-align:right}.menu-bottom{position:absolute;bottom:30px;left:4.5%;right:4.5%;display:flex;justify-content:space-between;align-items:center;gap:20px}.menu-bottom>span{font-size:9px;letter-spacing:1.7px;font-weight:800;color:#65816e}.menu-bottom .text-button{font-size:11px}.is-menu .in-game{display:none!important}.game:not(.is-menu) .menu-only{display:none!important}.chapter{border:0;background:none;text-align:center;padding:3px 15px;position:absolute;left:50%;transform:translate(-50%)}.eyebrow{display:block;font-size:10px;letter-spacing:2px;font-weight:800;color:#67816d}.chapter>span:last-child{display:flex;align-items:center;justify-content:center;font:400 17px Fredoka,sans-serif;gap:10px;margin-top:8px}.chapter b{font-size:21px;font-weight:500}.chapter .chapter-divider{opacity:.3}.chapter svg{width:12px;height:12px;margin-left:6px;opacity:.6}.chapter:active:not(:disabled){transform:translate(-50%)}.play-hud{position:absolute;top:127px;left:4.5%;right:4.5%;display:flex;justify-content:space-between;pointer-events:none;gap:20px}.level-copy{max-width:350px}.level-copy h1{font:500 29px/1.2 Fredoka,sans-serif;letter-spacing:-.5px;margin:8px 0}.level-copy p{font-size:13px;line-height:1.6;color:#5c7464;max-width:300px;margin:0}.level-copy button{pointer-events:auto;font-size:11px;text-decoration:underline;text-underline-offset:4px;margin-top:7px}.score-panel{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.star-row{display:flex;gap:7px;font-size:25px;color:#68876440;letter-spacing:1px}.star.collected{color:#bd842f;filter:drop-shadow(0 2px 0 #fff3c3)}.move-count{display:flex;align-items:center;gap:9px}.move-count b{font:400 26px Fredoka,sans-serif;font-variant-numeric:tabular-nums}.move-count span{font-size:9px;font-weight:800;letter-spacing:1.5px;color:#6a7f6b}.game-footer{position:absolute;bottom:27px;left:4.5%;right:4.5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-actions{display:flex;gap:10px}.utility-button{border:1px solid #29443a22;background:#ffffff38;border-radius:10px;padding:11px 13px;display:flex;gap:8px;align-items:center;font-size:12px;font-weight:800}.utility-button svg{width:16px;height:16px}.utility-button:hover:not(:disabled){background:#ffffff80}.utility-button:disabled{opacity:.35}.utility-button kbd{margin-left:5px;font-size:10px;background:transparent;color:#68836e;border:1px solid #68836e38;border-radius:4px;padding:1px 5px}.keyboard-note{display:flex;align-items:center;gap:5px;font-size:10px;color:#6a806d}.keyboard-note kbd{font:13px Nunito,sans-serif;border:1px solid #6a806d35;border-bottom-width:2px;padding:2px 5px;border-radius:4px}.keyboard-note>span{margin-left:6px}.subtitle{position:absolute;left:50%;bottom:104px;transform:translate(-50%);display:flex;align-items:center;gap:15px;background:#f5f7e8ed;padding:16px 20px;box-shadow:0 6px 25px #29443a0b;border:1px solid #d0d9c2;border-radius:15px;max-width:580px;min-width:230px;z-index:7;font:500 16px/1.5 Fredoka,sans-serif}.subtitle-face{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;background:#ed957b;color:#384d3f;font-size:13px;border-radius:7px;transform:rotate(-7deg)}.voice-bars{display:flex;align-items:center;gap:3px;margin-left:auto;height:18px}.voice-bars i{width:3px;height:7px;background:#759877;border-radius:4px;animation:speaking .6s infinite alternate}.voice-bars i:nth-child(2){height:16px;animation-delay:-.2s}.voice-bars i:nth-child(3){height:11px;animation-delay:-.4s}@keyframes speaking{to{height:3px}}.toast{position:absolute;left:50%;top:100px;transform:translate(-50%);max-width:460px;width:max-content;background:#29443a;color:#f4f6e4;padding:13px 20px;border-radius:12px;font-size:13px;line-height:1.5;box-shadow:0 5px 20px #29443a22;z-index:9;text-align:center}.touch-controls{display:none}dialog{border:1px solid #fff9;background:#f3f5e5;color:var(--ink);border-radius:25px;padding:40px;max-width:min(480px,calc(100vw - 30px));width:480px;max-height:calc(100svh - 32px);box-shadow:0 25px 100px #183d3440;overflow:auto;text-align:center}dialog::backdrop{background:#24453d44;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}dialog h2{font:500 34px/1.12 Fredoka,sans-serif;letter-spacing:-.5px;margin:15px 0}dialog p{color:#687862;font-size:14px;line-height:1.65;margin:14px 0 26px}dialog .primary{width:100%;margin-top:16px}dialog .secondary{width:100%;margin-top:15px}dialog .text-button{margin-top:12px}dialog .eyebrow{margin-top:5px}.dialog-close{position:absolute;right:16px;top:16px;width:32px;height:32px;border:0}.dialog-close svg{width:18px;height:18px}.secondary{border:1px solid #29443a25;background:transparent;border-radius:12px;padding:13px;font-size:14px;font-weight:800}.secondary:hover{background:#e4ead3}.result-stars{font-size:52px;letter-spacing:9px;margin-top:24px;color:#d6ddc6;text-shadow:0 3px 0 #b6c0a577}.result-stars .earned{color:#e2b150;text-shadow:0 3px 0 #b89446}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:22px 0 30px;gap:10px}.result-stats>div{border-right:1px solid #29443a15}.result-stats>div:last-child{border:0}.result-stats b{font:400 29px Fredoka,sans-serif;display:block}.result-stats span{font-size:9px;letter-spacing:1px;color:#71826a;display:block;margin-top:5px}.result-face{display:inline-flex;gap:7px;align-items:center;justify-content:center;background:var(--coral);width:90px;height:90px;border-radius:19px;font:500 35px Fredoka,sans-serif;margin:24px auto 0;box-shadow:5px 6px #d77d66;transform:rotate(-6deg)}.result-face span{font-size:24px;margin-top:25px}.level-list{display:flex;flex-direction:column;margin-top:22px;gap:8px}.level-choice{border:1px solid #29443a18;border-radius:12px;display:flex;align-items:center;padding:14px;gap:14px;background:#ffffff5c;text-align:left}.level-choice:hover:not(:disabled){background:#e2eace}.level-choice-number{font:400 25px Fredoka,sans-serif;color:#849a78}.level-choice strong{display:block;font-size:14px}.level-choice small{display:block;font-size:11px;color:#79866d;margin-top:4px}.level-choice-arrow{margin-left:auto;display:flex}.locked{opacity:.45}.settings-fields{margin:26px 0;text-align:left}.range-label{display:block;margin-bottom:24px}.range-label>span{display:flex;justify-content:space-between;font-size:14px;font-weight:800}.range-label output{font-weight:400;font-size:12px;color:#718064}.range-label input{width:100%;accent-color:#557b59;margin-top:13px;cursor:pointer}.toggle-label{display:flex;gap:20px;align-items:center;justify-content:space-between;border-top:1px solid #29443a17;padding:17px 0}.toggle-label strong{font-size:13px;display:block}.toggle-label small{font-size:11px;color:#75816b;display:block;line-height:1.5;margin-top:4px}.toggle-label input{accent-color:#557b59;width:18px;height:18px;flex-shrink:0}.credits-list{display:flex;flex-direction:column;gap:5px;margin-top:26px}.credits-list span{font-size:10px;color:#859073;margin-top:15px;letter-spacing:.7px}.credits-list strong{font-size:14px;font-weight:800}.graphics-error{position:absolute;inset:35% 10%;text-align:center;background:#f4f5e2;padding:25px;border-radius:20px;z-index:10}.graphics-error h2{font-family:Fredoka,sans-serif}.cube-caption{top:77%}.reduced-motion *{animation:none!important;scroll-behavior:auto!important}.reduced-motion button{transition:none}@media(min-width:1600px){.welcome{left:10%;max-width:620px}.welcome h1{font-size:80px}}@media(max-width:1100px){.welcome{left:5%;max-width:410px}.welcome h1{font-size:51px}.cube-caption{left:63%;font-size:14px}.keyboard-note{display:none}.level-copy{max-width:280px}.level-copy h1{font-size:25px}.level-copy p{max-width:250px}}@media(max-width:720px){.game{min-height:650px}.topbar{height:84px;padding:0 6%}.brand{font-size:24px;gap:9px}.brand-face{transform:scale(.85) rotate(-8deg);margin-left:-3px}.top-actions{gap:7px}.icon-button{width:37px;height:37px}.top-actions .in-game{display:none}.chapter{left:auto;right:6%;top:101px;transform:none;padding:0}.chapter:active:not(:disabled){transform:none}.chapter .eyebrow{display:none}.chapter>span:last-child{margin:0;font-size:14px}.chapter svg{margin:0}.welcome{top:114px;left:7%;transform:none;max-width:88%;pointer-events:none}.welcome button{pointer-events:auto}.edition{font-size:9px;letter-spacing:1.4px;margin-bottom:15px}.welcome h1{font-size:43px;letter-spacing:-1px;margin-bottom:14px}.welcome p{font-size:13px;line-height:1.65;margin-bottom:21px}.start-button{min-width:200px;min-height:49px;padding:12px 18px;font-size:14px;border-radius:12px}.welcome>.text-button{font-size:11px;margin-top:12px}.welcome-controls{display:none}.cube-caption{inset:auto 7% 16% auto;font-size:13px}.caption-line{display:none}.cube-caption small{font-size:9px}.menu-bottom{bottom:21px;left:7%;right:7%;gap:12px}.menu-bottom>span{display:none}.menu-bottom .text-button{font-size:10px}.play-hud{top:106px;left:6%;right:6%}.level-copy h1{font-size:27px;margin-top:7px}.level-copy .eyebrow{font-size:9px}.level-copy p{font-size:12px;max-width:235px}.score-panel{position:absolute;right:0;top:54px;gap:5px}.star-row{font-size:20px;gap:2px}.move-count b{font-size:23px}.move-count span{font-size:8px}.touch-controls{position:absolute;right:6%;bottom:82px;display:grid;grid-template-columns:repeat(3,43px);grid-template-rows:repeat(2,40px);gap:5px;z-index:7}.touch-controls button{background:#f4f6e8c9;border:1px solid #29443a20;border-bottom-width:3px;border-radius:11px;font-size:22px}.touch-controls button:first-child{grid-column:2;grid-row:1}.touch-controls button:nth-child(2){grid-column:1;grid-row:2}.touch-controls button:nth-child(3){grid-column:2;grid-row:2}.touch-controls button:nth-child(4){grid-column:3;grid-row:2}.game-footer{bottom:23px;left:6%;right:6%}.utility-button{padding:10px;font-size:11px}.utility-button kbd{display:none}.subtitle{bottom:182px;max-width:88%;width:max-content;min-width:0;font-size:13px;padding:12px 15px;gap:10px}.subtitle-face{width:23px;height:23px;font-size:11px}.toast{top:230px;max-width:88%;font-size:12px;padding:12px 16px}.level-copy button{font-size:10px}.game.is-menu #scene{top:230px;bottom:60px}.game:not(.is-menu) #scene{top:60px;bottom:110px}.vignette{box-shadow:none}dialog{padding:32px 24px;border-radius:20px}dialog h2{font-size:29px}.result-stars{font-size:43px}.result-stats{margin-bottom:22px}.settings-fields{margin-top:25px}}@media(max-height:600px)and (min-width:721px){.game{min-height:360px}.topbar{height:70px}.welcome h1{font-size:44px}.welcome{top:52%}.edition{margin-bottom:12px}.welcome p{font-size:13px;margin-bottom:18px}.welcome-controls{display:none}.welcome>.text-button{margin-top:9px}.start-button{min-height:45px;padding:12px 20px}.play-hud{top:84px}.level-copy h1{font-size:23px}.level-copy p{font-size:11px;max-width:230px}.game-footer{bottom:17px}.subtitle{bottom:75px;font-size:13px;padding:10px 16px}.menu-bottom{bottom:16px}.cube-caption{top:75%}.toast{top:76px}.touch-controls{display:grid;position:absolute;right:4.5%;bottom:70px;grid-template-columns:repeat(3,35px);gap:4px}.touch-controls button{border:1px solid #29443a20;border-radius:8px;background:#f4f6e8a0;width:35px;height:33px}.touch-controls button:first-child{grid-column:2}.touch-controls button:nth-child(2){grid-column:1;grid-row:2}.touch-controls button:nth-child(3){grid-column:2;grid-row:2}.touch-controls button:nth-child(4){grid-column:3;grid-row:2}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}:root{--muted: #526559;--paper: #faf8ee}.topbar{height:84px;padding:0 32px}.icon-button{width:44px;height:44px;background:#faf8eebb;border-color:#29443a38}.eyebrow{color:#526559;font-size:11px;letter-spacing:1.5px}.chapter{display:flex;align-items:center;gap:16px;padding:10px 17px;border:1px solid #29443a38;border-radius:12px;background:var(--paper);min-height:44px}.chapter-label{font-size:14px}.chapter>span:last-child{margin:0;gap:7px;font-size:16px}.chapter b{font-size:18px}.chapter svg{width:16px;height:16px;opacity:1}.chapter .chapter-divider{opacity:.65}.game:not(.is-menu) .topbar{background:transparent;border:0}.game:not(.is-menu) #scene{inset:211px 24px 163px}.play-hud{top:100px;left:32px;right:32px;gap:24px;align-items:center}.level-copy{display:grid;grid-template-columns:1fr auto;column-gap:24px;max-width:none;flex:1}.level-copy .eyebrow{grid-column:1}.level-copy h1{font-size:30px;margin:5px 0 7px;grid-column:1}.level-copy p{font-size:15px;line-height:1.45;max-width:none;margin:0;grid-column:1;color:#445e4e}.level-copy button{grid-column:2;grid-row:1 / 4;align-self:center;pointer-events:auto;font-size:14px;margin:0;text-decoration:none;min-height:44px;background:var(--paper)}.score-panel{flex-direction:row;align-items:center;gap:26px;padding:10px 0 10px 26px;border-left:1px solid #29443a30}.collectibles{text-align:center}.star-row{justify-content:center;gap:3px;color:#93a18a;font-size:26px;line-height:1.2}.star.collected{color:#a56b12}#star-count{font-size:13px;display:block;white-space:nowrap;margin-top:6px}.move-count{flex-direction:column;gap:4px;min-width:88px}.move-count b{font-size:32px;line-height:1.1}.move-count>span{font-size:13px;color:#445e4e;letter-spacing:0;white-space:nowrap}.game-footer{bottom:0;left:0;right:0;height:138px;padding:24px 32px;background:transparent;border:0;justify-content:flex-start;gap:32px}.footer-actions{gap:10px}.utility-button{min-height:46px;font-size:14px;padding:12px 16px;border-color:#29443a40;background:#fffdf4}.utility-button svg{width:19px;height:19px}.utility-button:disabled{opacity:.45}.utility-button kbd{font-size:12px;color:#445e4e}.keyboard-note{display:none}.touch-controls{display:grid;position:absolute;right:32px;bottom:18px;grid-template-columns:repeat(3,56px);grid-template-rows:46px 46px;gap:6px;z-index:7}.control-label{position:absolute;right:198px;top:39px;font-size:11px;letter-spacing:1px;white-space:nowrap}.touch-controls button{border:1px solid #29443a40;border-bottom:3px solid #839580;border-radius:10px;background:#fffdf4;display:flex;align-items:center;justify-content:center;gap:6px;width:auto;height:auto}.touch-controls button:hover{background:#e4ecd6}.touch-controls button>span{font-size:17px;line-height:1}.touch-controls kbd{font:700 14px Nunito,sans-serif;color:#445e4e;white-space:nowrap}.touch-controls button:nth-of-type(1){grid-column:2;grid-row:1}.touch-controls button:nth-of-type(2){grid-column:1;grid-row:2}.touch-controls button:nth-of-type(3){grid-column:2;grid-row:2}.touch-controls button:nth-of-type(4){grid-column:3;grid-row:2}.subtitle{bottom:151px;max-width:min(620px,85%);padding:10px 16px;min-height:48px;font-family:Nunito,sans-serif;font-size:16px;background:#fffdf4f5;border-color:#9dad92}.toast{top:211px;font-size:15px;max-width:min(560px,90%)}.game.is-menu .subtitle{bottom:95px}dialog{background:var(--paper);padding:40px 32px 30px;border:1px solid #9dad92;border-radius:20px}dialog p{color:#526559;font-size:15px}.dialog-close{width:44px;height:44px;top:8px;right:8px}.secondary{font-size:15px;min-height:44px;border-color:#29443a40}.text-button{min-height:44px;font-size:14px;color:#445e4e}.level-choice{padding:15px;border-color:#29443a30;background:#fffdf4}.level-choice strong{font-size:16px}.level-choice small{font-size:13px;color:#526559}.level-choice-number{color:#526b50}.range-label>span,.toggle-label strong{font-size:15px}.range-label output,.toggle-label small,.credits-list span{font-size:13px;color:#526559}.range-label input{height:28px;margin-top:5px}.toggle-label{min-height:60px}.toggle-label input{width:24px;height:24px}.credits-list strong{font-size:16px}.result-stats span{font-size:11px;color:#526559}@media(max-width:1000px){.level-copy{column-gap:14px}.score-panel{gap:14px;padding-left:18px}.control-label{display:none}.game-footer{gap:24px}}@media(max-width:720px){.game{min-height:560px}.topbar{height:72px;padding:0 16px}.brand{font-size:22px;gap:7px}.top-actions{gap:5px}.top-actions .in-game{display:inline-flex}.top-actions .icon-button{width:40px;height:44px;border-radius:10px}.chapter{right:16px;top:85px;padding:7px 10px;gap:8px}.chapter-label{font-size:13px}.chapter>span:last-child{font-size:13px}.chapter b{font-size:15px}.chapter svg{display:none}.play-hud{top:87px;left:16px;right:16px;display:block}.level-copy{display:block;padding-top:0}.level-copy .eyebrow{font-size:10px}.level-copy h1{font-size:25px;margin:8px 110px 10px 0;line-height:1.1}.level-copy p{font-size:14px;max-width:none;line-height:1.4;padding-right:0}.level-copy button{position:absolute;top:113px;right:0;min-height:44px;padding:10px 14px}.score-panel{position:static;margin-top:14px;padding:0;border:0;flex-direction:row;justify-content:flex-start;gap:20px;height:44px}.collectibles{display:flex;gap:7px;align-items:center}.star-row{font-size:19px;gap:0}#star-count{font-size:12px;margin:0}.move-count{min-width:0;flex-direction:row;gap:5px}.move-count b{font-size:23px}.move-count>span{font-size:12px}.game:not(.is-menu) #scene{inset:261px 0 184px}.game-footer{height:130px;padding:16px;align-items:flex-start;flex-direction:column;justify-content:center;gap:17px}.utility-button{padding:10px;font-size:13px;min-height:44px;gap:6px}.utility-button kbd{display:none}.footer-actions{gap:7px}.touch-controls{right:16px;bottom:16px;grid-template-columns:repeat(3,44px);grid-template-rows:46px 46px;gap:6px}.touch-controls button{flex-direction:row;gap:5px;border-radius:9px}.touch-controls button>span{font-size:15px}.touch-controls kbd{font-size:12px}.subtitle{bottom:139px;max-width:calc(100% - 32px);font-size:14px;padding:8px 12px;gap:10px;min-height:40px}.toast{top:253px;font-size:14px}.welcome{top:100px}.welcome>.text-button{font-size:14px;margin-top:12px}.menu-bottom .text-button{font-size:12px}.game.is-menu #scene{top:315px;bottom:66px}.cube-caption{display:none}dialog{padding:40px 22px 24px}}@media(max-width:380px){.brand{font-size:19px}.brand-face{display:none}.level-copy h1{font-size:22px}.move-count>span{font-size:11px}.score-panel{gap:10px}}@media(max-height:600px)and (min-width:721px){.game{min-height:360px}.topbar{height:60px;padding:0 20px}.brand{font-size:23px}.play-hud{top:78px;left:20px;width:220px;display:block}.level-copy{display:block}.level-copy h1{font-size:24px}.level-copy p{font-size:13px;max-width:220px}.level-copy button{font-size:13px;margin-top:12px;padding:8px 14px}.score-panel{border:0;padding:14px 0 0;justify-content:flex-start}.game:not(.is-menu) #scene{inset:68px 140px 79px 245px}.game-footer{height:68px;padding:12px 20px}.touch-controls{right:20px;bottom:84px;grid-template-columns:repeat(3,44px);grid-template-rows:44px 44px}.touch-controls button{flex-direction:row;gap:5px}.touch-controls kbd{font-size:12px}.subtitle{bottom:77px;left:54%;max-width:330px;font-size:13px;padding:7px 12px;min-height:36px}.toast{top:70px;left:62%;max-width:360px;font-size:13px}}.game.is-complete .toast,.game.is-complete .play-hud,.game.is-complete .game-footer,.game.is-complete .touch-controls,.game.is-complete .top-actions,.game.is-complete .chapter{visibility:hidden}.game.is-complete:not(.is-menu) #scene{inset:90px calc(min(420px,42vw) + 64px) 90px 24px}dialog.completion{position:fixed;inset:50% 32px auto auto;transform:translateY(-50%);margin:0;width:min(420px,42vw);max-width:none;max-height:calc(100svh - 48px);padding:32px 28px;background:#faf8eee8;border:1px solid #ffffffb3;box-shadow:0 16px 60px #29443a14;text-align:left}dialog.completion::backdrop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}dialog.completion h2{font-size:34px;margin:16px 0 12px}dialog.completion p{margin:0 0 22px}dialog.completion .result-stars{margin-top:14px;font-size:44px;line-height:1.2}dialog.completion .result-stats{text-align:center;margin:24px 0}.completion-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px}dialog.completion .completion-actions .primary{grid-column:1 / -1;margin:0 0 3px}dialog.completion .completion-actions .secondary,dialog.completion .completion-actions .text-button{margin:0;width:100%;justify-content:center;font-size:14px}.game.is-complete .subtitle{left:calc((100% - min(420px,42vw) - 40px)/2);bottom:34px;max-width:calc(100% - min(420px,42vw) - 90px);width:max-content}@media(max-width:720px){dialog.completion{inset:auto 16px 16px;transform:none;width:auto;padding:20px;max-height:52svh;border-radius:18px}dialog.completion h2{font-size:26px;margin:8px 0}dialog.completion p{font-size:14px;line-height:1.4;margin:0 0 12px}dialog.completion .result-stars{font-size:30px;margin-top:8px}dialog.completion .result-stats{margin:14px 0}dialog.completion .result-stats b{font-size:24px}dialog.completion .result-stats span{font-size:10px}dialog.completion .primary{min-height:46px;padding:12px 18px}.completion-actions{gap:10px}.game.is-complete:not(.is-menu) #scene{inset:74px 0 calc(var(--completion-panel-height, 360px) + 78px)}.game.is-complete .subtitle{left:50%;bottom:calc(var(--completion-panel-height, 360px) + 27px);max-width:calc(100% - 32px);font-size:13px}}@media(max-height:600px)and (min-width:721px){dialog.completion{right:16px;width:min(360px,42vw);max-height:calc(100svh - 24px);padding:18px 22px}dialog.completion h2{font-size:25px;margin:8px 0}dialog.completion p{display:none}dialog.completion .result-stars{font-size:28px;margin-top:8px}dialog.completion .result-stats{margin:12px 0}dialog.completion .result-stats b{font-size:23px}dialog.completion .primary{min-height:44px;padding:10px}.game.is-complete:not(.is-menu) #scene{inset:65px calc(min(360px,42vw) + 32px) 68px 16px}.game.is-complete .subtitle{left:calc((100% - min(360px,42vw) - 32px)/2);bottom:18px;max-width:calc(100% - min(360px,42vw) - 60px)}}@media(max-width:720px),(max-height:600px){.control-label{display:block;right:0;top:-23px;width:100%;text-align:center;font-size:10px}}#cube-comment{pointer-events:none;gap:12px;opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s;min-width:0}#cube-comment[data-visible=true]{opacity:1;visibility:visible}#face-portrait{width:56px;height:56px;flex:0 0 56px;border-radius:13px;background:#ee9477;box-shadow:inset 0 -4px #b7654933;transform:rotate(-4deg)}#cube-comment.portrait-only{padding:6px;border-radius:18px;background:#fffdf4d9}#subtitle{min-width:0}.reduced-motion #cube-comment{transition:none}@media(max-width:720px),(max-height:600px){#cube-comment{gap:10px}#face-portrait{width:46px;height:46px;flex-basis:46px;border-radius:11px}}.game[data-world=snow]{background:radial-gradient(ellipse at 70% 22%,#f5f7f9,#d7e8ef 48%,#b6d0de)}dialog.world-picker{width:min(1000px,calc(100vw - 40px));max-width:none;height:min(690px,calc(100svh - 40px));max-height:none;padding:28px;text-align:left;overflow:hidden}.world-picker #dialog-content{height:100%;display:flex;flex-direction:column}.picker-heading{flex:0 0 auto;padding:2px 12px 18px}.picker-heading h2{margin:8px 0 0}.world-browser{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;min-height:0;flex:1}.world-tabs{display:flex;flex-direction:column;gap:14px}.world-tab{border:1px solid #9eaf9366;background:#e1ead8;border-radius:16px;padding:0 0 16px;text-align:left;overflow:hidden}.world-tab.snow{background:#dcecf3;border-color:#a7c7d5}.world-tab[aria-pressed=true]{outline:2px solid #456b57;outline-offset:-2px}.world-tab:hover{filter:brightness(1.03)}.world-art{display:block;height:95px;padding:8px 20px 0}.puzzle-preview{display:block;width:100%;height:100%;overflow:visible}.world-tab-copy{display:block;padding:8px 18px 0}.world-tab-copy small{display:block;font-size:10px;letter-spacing:1px}.world-tab-copy strong{display:block;font:500 24px Fredoka,sans-serif;margin:4px 0}.world-tab-copy>span{font-size:12px;color:#526b5b}.world-puzzles{min-width:0;min-height:0;overflow-y:auto;padding:0 5px 4px;scrollbar-width:thin}.world-puzzles-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}.world-puzzles-heading h3{font:500 25px Fredoka,sans-serif;margin:0}.world-puzzles-heading p{font-size:12px;margin:5px 0 0}.world-puzzles-heading>span{white-space:nowrap;font-size:11px;color:#526b5b}.puzzle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.puzzle-card{position:relative;min-width:0;min-height:135px;border:1px solid #adbba080;border-radius:12px;padding:10px 12px;background:#eaf0e2;text-align:left}.snow .puzzle-card{background:#e8f1f5;border-color:#a9c8d488}.puzzle-card:hover:not(:disabled){background:#fffdf4;border-color:#526b50}.puzzle-card.is-locked{filter:saturate(.5)}.puzzle-number{position:absolute;top:8px;left:10px;font:500 13px Fredoka,sans-serif;color:#617968}.puzzle-card .puzzle-preview{height:73px;padding:0 5px;margin-bottom:5px}.puzzle-card strong{display:block;font-size:12px;line-height:1.25}.puzzle-card small{display:flex;justify-content:space-between;font-size:10px;color:#526b5b;margin-top:5px}@media(max-width:720px){dialog.world-picker{width:calc(100vw - 24px);height:calc(100svh - 24px);padding:18px 12px 12px;border-radius:20px}.picker-heading{padding:4px 8px 16px}.picker-heading h2{font-size:29px}.world-browser{display:flex;flex-direction:column;gap:18px}.world-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.world-art{display:none}.world-tab{padding:9px 0;border-radius:12px}.world-tab-copy{padding:2px 12px}.world-tab-copy strong{font-size:21px}.world-tab-copy>span{font-size:11px}.world-puzzles{flex:1}.world-puzzles-heading h3{font-size:22px}.world-puzzles-heading>span{display:none}.puzzle-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.puzzle-card{min-height:130px;padding:8px 10px}}@media(max-height:600px)and (min-width:721px){dialog.world-picker{padding:16px}.picker-heading{padding-bottom:12px}.picker-heading h2{font-size:26px;margin-top:4px}.world-browser{grid-template-columns:165px minmax(0,1fr);gap:16px}.world-art{height:40px}.world-tab{padding-bottom:8px}.world-tab-copy{padding-top:0}.world-tab-copy strong{font-size:20px}.world-tabs{overflow-y:auto}}.game[data-world=ruins]{background:radial-gradient(ellipse at 70% 22%,#f4eee0,#e1d8bc 48%,#c1c4a7)}.world-tab.ruins{background:#e8dfc9;border-color:#bbab85}.ruins .puzzle-card{background:#efe8d8;border-color:#c7b89488}.world-tabs{overflow-y:auto;padding:2px}@media(min-width:721px){.world-art{height:68px}.world-tab{flex-shrink:0}}@media(max-width:720px){.world-tabs{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;flex-shrink:0;padding:2px}.world-tab{flex:0 0 145px}}.developer-testing{display:block;margin-top:12px;font-size:13px}.developer-testing>span{display:flex;align-items:center;gap:8px;font-weight:800}.developer-testing input{width:18px;height:18px;margin:0;accent-color:#456b57}.developer-testing small{display:block;margin:4px 0 0 26px;font-size:11px;color:#526b5b}@media(min-width:721px){.picker-heading{position:relative}.developer-testing{position:absolute;right:32px;bottom:20px;margin-top:0}}.world-picker .dialog-close{z-index:2}
