@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:wght@400;600;700;800;900;1000&display=swap');
/* Keep a growing collection and enlarged text inside the character picker. */
.emoji-choices{max-height:180px;overflow-y:auto;padding:8px 4px 7px;scrollbar-width:thin;scrollbar-color:#dda2be transparent}
.start-card{max-height:100%;overflow-y:auto}
:root{color-scheme:light;--ink:#59384f;--pink:#d84a85;--cream:#fffdf8;--purple:#73539b;--rose:#f8dde9;font-family:'Nunito',ui-rounded,system-ui,sans-serif;font-size:16px;color:var(--ink);background:#f9edf1}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 5% 5%,#ffeff4,transparent 55%),radial-gradient(ellipse at 95% 100%,#e6efe8,transparent 50%),#f8edf0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #764da9;outline-offset:5px}button:disabled{cursor:default}button{touch-action:manipulation}button:active{transform:translateY(2px)}[hidden]{display:none!important}.app{width:min(1320px,100%);padding:28px 38px 20px;margin:0 auto}.masthead{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px}.wordmark{display:flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;font-family:'Fredoka',ui-rounded,sans-serif;font-weight:600;font-size:26px;letter-spacing:-1px}.wordmark>span:not(.brand-face):not(.brand-dot){color:var(--pink)}.brand-face{font-size:31px;margin-right:6px;transform:rotate(-10deg)}.brand-dot{font-size:16px;margin-left:1px;color:var(--pink);align-self:flex-start;padding-top:3px}.world-label{font-size:12px;letter-spacing:2.3px;font-weight:900;color:#8b657c}.icon-button{width:46px;height:46px;display:grid;place-items:center;border:1px solid #e3ccda;background:#fffaf7;border-radius:15px;box-shadow:0 3px 0 #e6d1df;color:#755469;flex-shrink:0}.sound{font-size:25px;position:relative}.sound-slash{position:absolute;width:23px;height:2px;background:currentColor;transform:rotate(-48deg);border:1px solid #fffaf7;box-sizing:content-box}.sound[aria-pressed=true] .sound-slash{display:none}.game-shell{position:relative;height:min(670px,calc(100dvh - 158px));min-height:490px;border:7px solid #fffaf7;border-radius:29px;box-shadow:0 12px 45px #78405913,0 2px 0 #dac4ce;overflow:hidden;background:linear-gradient(#fbe8f2,#e7f4ed 78%,#f6b8d0 78%);isolation:isolate}canvas{display:block;width:100%;height:100%}.game-hud{position:absolute;inset:20px 22px auto;display:flex;align-items:center;gap:14px;z-index:3;pointer-events:none}.game-hud>*{pointer-events:auto}.game-hud .home{background:#fffdfaee;box-shadow:0 3px 0 #d7b8cd}.level-badge{display:flex;flex-direction:column;gap:2px;background:#fff9f1db;padding:8px 16px;border-radius:14px}.level-badge>span{font-size:11px;letter-spacing:1.9px;font-weight:1000;color:#a95880}.level-badge strong{font-size:15px;font-weight:900}.coin-counter{margin-left:auto;display:flex;gap:7px;align-items:center;background:#fffcf1ed;border:2px solid #fff9f0;border-radius:22px;padding:8px 15px;box-shadow:0 3px 0 #cba57428;min-width:113px;font-size:18px;font-weight:800;color:#856335}.coin-counter strong{color:#74512b;font-size:23px}.coin-counter>span:last-child{font-size:15px;color:#99774e}.coin-icon{width:25px;height:27px;border-radius:50%;display:grid;place-items:center;background:#ffd764;border:2px solid #e5a33a;color:#b57524;font-weight:1000;box-shadow:inset 0 0 0 2px #ffeaa0;font-size:17px}.screen{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:78px 18px 20px;background:linear-gradient(90deg,#fce7ee18,#f9e1eb10)}.start-card{text-align:center;width:570px;max-width:100%;padding:18px 30px 24px;border-radius:32px;background:#fffaf4ed;box-shadow:0 8px 40px #87546615;border:2px solid #fffdf8;backdrop-filter:blur(5px)}.eyebrow{font-size:11px;font-weight:1000;letter-spacing:2px;color:#a65c85}h1{font-family:'Fredoka',ui-rounded,sans-serif;line-height:.98;font-weight:600;font-size:clamp(53px,6.2vw,82px);letter-spacing:-3px;margin:14px 0 13px;color:#664167}h1>span{color:#df6396;display:block;position:relative;max-width:max-content;margin:auto;text-shadow:0 3px #f9cfdd}.title-sparkle{position:absolute;right:-32px;top:0;font-size:32px;color:#ebbc57;transform:rotate(12deg);text-shadow:none}.start-description{font-size:15px;font-weight:700;color:#87617a;margin:0 0 23px}.emoji-picker{border:0;padding:0;margin:0 0 20px}.emoji-picker legend{font-size:14px;font-weight:900;margin-bottom:12px;width:100%}.emoji-choices{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.emoji-choice{border:2px solid #eddfe7;border-radius:18px;background:#fffdfa;padding:9px 3px 7px;width:73px;transition:transform .15s,background .15s,border-color .15s;position:relative}.emoji-choice .face{display:block;font-size:36px;line-height:1.3}.emoji-choice .name{font-size:11px;font-weight:800;display:block;margin-top:2px}.emoji-choice[aria-checked=true]{background:#ffe4ee;border:2px solid #de71a0;box-shadow:0 4px 0 #eeb4cf;transform:translateY(-3px)}.emoji-choice[aria-checked=true]::after{content:'✓';position:absolute;right:-5px;top:-7px;background:#d45b90;color:white;border-radius:50%;width:19px;height:19px;font-size:12px;line-height:19px;font-weight:1000;border:1px solid white}.primary-button{background:#d75289;border:2px solid #cc477e;color:white;border-radius:17px;box-shadow:0 5px 0 #ad3266;font-size:19px;font-weight:1000;padding:13px 28px;min-width:240px}.primary-button:hover{background:#cd427c}.small-note{font-size:12px;line-height:1.6;color:#8d6c7e;margin:14px 0 0;font-weight:700}.play-overlay{position:absolute;inset:0;z-index:2;pointer-events:none}.play-overlay button{pointer-events:auto}.hint-bubble{position:absolute;top:99px;left:50%;transform:translateX(-50%);border-radius:18px;background:#fffaf2ee;padding:9px 17px;font-size:14px;font-weight:800;white-space:nowrap;transition:opacity .3s;max-width:90%;text-align:center;box-shadow:0 3px 12px #77435b0a}.touch-controls{position:absolute;right:25px;bottom:23px;display:flex;align-items:flex-end;gap:17px;pointer-events:auto}.control-button{display:flex;flex-direction:column;align-items:center;justify-content:center;width:82px;height:82px;border-radius:25px;border:3px solid #fff6fa;box-shadow:0 6px 0 #bd6994,0 8px 17px #78576528;background:#f690bd;color:#5d3454;touch-action:none;user-select:none;-webkit-user-select:none}.control-button>span{font-size:41px;font-weight:900;line-height:1}.control-button small{font-size:11px;font-weight:1000;letter-spacing:1px;margin-top:4px}.move-control{background:#addecf;box-shadow:0 6px 0 #70aa9b;color:#335e55}.control-button.is-held{transform:translateY(4px);box-shadow:0 2px 0 #ac5484}.move-control.is-held{box-shadow:0 2px 0 #70aa9b}.chest-action{position:absolute;left:50%;bottom:135px;transform:translateX(-50%);background:#fff4bd;border:3px solid #ffdb78;color:#895823;border-radius:20px;box-shadow:0 5px 0 #d7a74f;padding:12px 19px;font-size:18px;font-weight:1000;white-space:nowrap;animation:glow 1.5s ease-in-out infinite}.chest-action:active{transform:translateX(-50%) translateY(2px)}.chest-action span{margin-left:7px}.win-screen{background:#f4e9f294;backdrop-filter:blur(6px);z-index:7;padding-top:30px}.win-card{background:#fffaf3;border:3px solid white;border-radius:31px;padding:27px 30px 23px;text-align:center;max-width:480px;box-shadow:0 15px 60px #70406930}.reward-emoji{font-size:80px;line-height:1.2;margin:14px 0 2px;filter:drop-shadow(0 6px 0 #eed9e7);animation:float 2s ease-in-out infinite}h2{font-family:'Fredoka',sans-serif;font-size:42px;margin:5px 0;color:#78456b}.win-card>p:not(.small-note){font-size:16px;margin:8px 0 15px;font-weight:700}.level-complete{font-size:13px;letter-spacing:.2px;color:#b27835;font-weight:900;margin:0 0 23px}.text-button{display:block;margin:13px auto 0;border:0;background:none;text-decoration:underline;text-underline-offset:4px;font-weight:900;font-size:14px;padding:5px 10px}.game-toast{position:absolute;z-index:9;left:50%;top:84px;transform:translate(-50%,-8px);background:#674269;color:white;border-radius:16px;padding:9px 17px;font-size:14px;font-weight:800;opacity:0;transition:opacity .2s,transform .2s;text-align:center;pointer-events:none;max-width:90%;width:max-content}.game-toast.visible{opacity:1;transform:translate(-50%,0)}footer{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:18px 8px 0;font-size:13px;font-weight:800;color:#8c6a7f}.footer-goal>span{color:#ca8d37;margin-right:7px}.keyboard-guide{display:flex;align-items:center;gap:7px}kbd{font:inherit;font-size:11px;min-width:23px;text-align:center;background:#fffbf7;border:1px solid #e0ccd5;border-bottom-width:2px;border-radius:6px;padding:2px 5px}.mobile-guide{display:none}@keyframes float{50%{transform:translateY(-5px) rotate(3deg)}}@keyframes glow{50%{box-shadow:0 5px 0 #d7a74f,0 0 24px #ffe67e}}@media(min-width:1500px){.app{padding-top:40px}.game-shell{height:710px;max-height:calc(100dvh - 170px)}}@media(max-width:800px){.app{padding:17px 16px 15px}.masthead{margin-bottom:16px}.world-label{display:none}.game-shell{height:calc(100dvh - 135px);min-height:510px;border-width:5px;border-radius:25px}.game-hud{inset:15px 14px auto;gap:9px}.level-badge{padding:7px 10px}.level-badge strong{font-size:13px}.coin-counter{padding:7px 10px;min-width:99px}.touch-controls{right:19px;bottom:20px}.keyboard-guide{display:none}.mobile-guide{display:inline}.footer-goal{font-size:12px}footer{padding:15px 3px 0;font-size:12px}.hint-bubble{font-size:12px;white-space:normal;min-width:250px}}@media(max-width:500px){.app{padding:12px 9px 12px}.wordmark{font-size:23px}.brand-face{font-size:28px}.masthead{margin:0 5px 13px}.masthead .icon-button{width:39px;height:39px;border-radius:12px}.game-shell{height:calc(100dvh - 110px);min-height:545px;border-radius:23px}.game-hud{inset:13px 11px auto;gap:7px}.game-hud .home{width:39px;height:40px;border-radius:12px}.level-badge{background:#fff9f1bd;padding:5px 7px}.level-badge>span{font-size:10px;letter-spacing:1px}.level-badge strong{font-size:11px;max-width:111px;line-height:1.3}.coin-counter{min-width:90px;padding:5px 8px;gap:5px}.coin-counter strong{font-size:20px}.coin-counter>span:last-child{font-size:13px}.coin-icon{width:23px;height:25px}.screen{padding:69px 10px 18px}.start-card{padding:21px 12px 21px;border-radius:25px}.eyebrow{font-size:10px;letter-spacing:1.5px}h1{font-size:64px;letter-spacing:-2px}.start-description{font-size:12px;margin-bottom:21px}.emoji-choices{gap:6px}.emoji-choice{width:51px;border-radius:14px;padding:8px 1px 6px}.emoji-choice .face{font-size:30px}.emoji-choice .name{font-size:9px}.emoji-picker{margin-bottom:22px}.primary-button{min-width:220px;padding:12px 20px;font-size:18px}.small-note{font-size:11px}.touch-controls{right:17px;bottom:18px;gap:16px}.control-button{width:78px;height:79px;border-radius:24px}.hint-bubble{top:81px;font-size:12px}.footer-goal{display:none}.mobile-guide{margin:auto;font-size:12px}footer{padding-top:11px}.win-card{padding:24px 20px;max-width:330px}.win-screen{padding-top:15px}.win-card .reward-emoji{font-size:70px}.win-card h2{font-size:39px}}@media(max-height:570px) and (orientation:landscape){.app{padding:7px 14px}.masthead{display:none}.game-shell{height:calc(100dvh - 35px);min-height:300px;border-width:4px}footer{padding-top:5px}.game-hud{inset:9px 12px auto}.start-screen{padding:10px 15px}.start-card{padding:10px 20px;width:490px}.start-card h1{font-size:43px;line-height:1;margin:5px 0}.start-card h1>span{display:inline}.start-description,.start-card .eyebrow,.startNote{display:none}.emoji-picker{margin-bottom:10px}.emoji-picker legend{margin:5px 0 8px;font-size:12px}.emoji-choice{width:57px;padding:3px}.emoji-choice .face{font-size:28px}.emoji-choice .name{font-size:9px}.primary-button{padding:7px 20px;font-size:16px}.small-note{margin-top:8px;font-size:10px}.touch-controls{right:15px;bottom:13px}.control-button{width:66px;height:66px;border-radius:20px}.control-button>span{font-size:33px}.hint-bubble{top:67px}.win-card{padding:13px 25px}.win-card .reward-emoji{font-size:44px;margin:5px}.win-card h2{font-size:30px}.win-card>p:not(.small-note){font-size:13px;margin:5px 0}.level-complete{margin:5px 0 10px}.win-card .small-note{display:none}.text-button{margin-top:8px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
