:root{font-family:Fredoka,ui-rounded,system-ui,sans-serif;color:#fff;background:#08182c;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{position:fixed;inset:0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}button{font:inherit;cursor:pointer;border:2px solid #fff8;border-radius:16px;color:#fff;background:#112943;box-shadow:0 4px #050f20;touch-action:none;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #fff;outline-offset:3px}button:active,button.pressed{transform:translateY(2px);box-shadow:0 1px #050f20;background:#306b9e}[hidden]{display:none!important}.game-shell{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#08182c;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.view{position:relative;width:var(--view-width,100%);height:var(--view-height,100%);max-width:100%;max-height:100%;overflow:hidden;background:#000;isolation:isolate}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;outline:none;touch-action:none}.hud{position:absolute;top:8px;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.health{display:flex;gap:4px;background:#0a1b32d9;border:1px solid #fff5;padding:5px 9px;border-radius:20px}.pip{color:#44637a;text-shadow:0 2px #071728;font-size:clamp(16px,2.8vh,25px)}.pip.filled{color:#ffda54}.top-actions{display:flex;gap:8px;pointer-events:auto}.top-actions button{width:44px;height:40px;border-radius:14px;font-size:21px}.touch-controls{position:absolute;left:12px;right:12px;bottom:12px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.directions,.abilities{display:flex;gap:18px;pointer-events:auto}.touch-controls button{position:relative;width:clamp(56px,15vh,76px);height:clamp(56px,15vh,76px);border-radius:20px;background:#102943dd;font-size:26px;border-color:#fff9}.touch-controls button:after{content:"";position:absolute;inset:-8px;background:transparent}.touch-controls button.pressed{background:#f3bd32;color:#09203a}.abilities button{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ed4d56dd}.abilities button[data-input=web]{background:#2270bedd}.abilities small{font-size:11px;letter-spacing:1px}.dialogue{position:absolute;top:56px;left:50%;transform:translate(-50%);width:min(76%,440px);text-align:center;background:#10243bea;border:1px solid #fff8;padding:6px 12px;border-radius:10px;font-size:clamp(12px,2vh,18px);pointer-events:none}.dev-label{position:absolute;bottom:3px;left:50%;transform:translate(-50%);max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:9px system-ui,sans-serif;color:#fff;background:#0b1e36bb;padding:2px 6px;border-radius:5px;pointer-events:none}.menu{position:absolute;inset:0;background:linear-gradient(115deg,#073772f0,#0c6fb5dc);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px;gap:10px}.menu:before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-conic-gradient(from 22deg at 20% 35%,transparent 0deg 17deg,#ffffff0a 18deg 19deg);pointer-events:none}.title-kicker{font-size:clamp(10px,2.5vh,15px);letter-spacing:3px;color:#abe8ff;font-weight:600}h1{margin:0;line-height:.86;font-weight:700;font-size:clamp(52px,18vh,106px);letter-spacing:3px;color:#ffe25a;text-shadow:3px 3px 0 #ef4554,6px 6px 0 #081b38;transform:rotate(-3deg)}h1 small{display:block;font-size:.36em;margin-bottom:8px;letter-spacing:1px}h2{font-size:clamp(26px,7vh,48px);margin:0;color:#ffe25a;text-shadow:2px 2px #163955}.menu p{margin:0;font-size:clamp(13px,3.5vh,21px)}.menu button{min-width:180px;min-height:44px;padding:8px 24px}.menu .primary{background:#ffda48;color:#122d49;border:3px solid #ffefaf;font-weight:700;font-size:clamp(16px,4vh,24px);min-height:50px;border-radius:22px}.menu .text-button{box-shadow:none;background:transparent;border:0;min-height:28px;padding:0;font-size:13px;color:#d2e7f7}.legend{font:10px/1.6 system-ui,sans-serif;color:#c4d9ef;letter-spacing:1px}.compact{background:#081c35e8}.pilot-note{max-width:460px;color:#bcd8ed}.rotate{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;z-index:20;background:radial-gradient(120% 120% at 50% 20%,#164574,#092341 70%,#06152b);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:calc(18px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom))}.rotate h2{font-size:25px;margin:0;color:#ffe25a;text-shadow:2px 2px #163955}.rotate p{font-size:15px;margin:0;color:#d0e4f8}.rotate-wordmark{width:min(70%,320px);max-height:22vh;object-fit:contain;pointer-events:none}.rotate-fallback{font-weight:700;color:#ffe25a;font-size:clamp(28px,7vh,44px);letter-spacing:2px;text-shadow:2px 2px 0 #ef4554,4px 4px 0 #081b38;transform:rotate(-3deg)}.rotate-family{width:min(80%,420px);height:auto;aspect-ratio:640/220;image-rendering:pixelated;pointer-events:none}.rotate-phone{position:relative;width:84px;height:84px;display:flex;align-items:center;justify-content:center}.rotate-phone-body{width:32px;height:58px;border:3px solid #ffda48;border-radius:8px;animation:phone-turn 2.4s ease-in-out infinite}.rotate-arrow{position:absolute;right:6px;bottom:8px;font-size:34px;line-height:1;color:#ffda48}@keyframes phone-turn{0%,15%{transform:rotate(-90deg)}55%,to{transform:rotate(0)}}@media(prefers-reduced-motion:reduce){.rotate-phone-body{animation:none}}@media(min-height:600px){.touch-controls{bottom:18px;left:18px;right:18px}.top-actions button{width:52px;height:46px}.dev-label{font-size:11px}}@media(hover:hover)and (pointer:fine){.touch-controls button{opacity:.72}}@media(max-height:330px){.menu{gap:7px}h1{font-size:65px}.menu .primary{min-height:40px}.legend{display:none}.touch-controls{bottom:8px}.hud{top:5px}.dialogue{top:49px}}.title-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.menu>*:not(.title-bg){position:relative;z-index:1}.wordmark{max-width:min(78%,420px);max-height:30vh;object-fit:contain}.tagline{margin:0;font-size:clamp(13px,3.5vh,21px)}.story{margin:0;max-width:min(80%,440px);font-size:clamp(12px,2.8vh,17px);line-height:1.45;color:#eaf4ff}.stage-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:min(84%,460px)}.stage-list button{min-width:0;min-height:38px;padding:6px 14px;font-size:clamp(12px,2.8vh,16px)}.stage-list button:disabled{opacity:.55;cursor:default}.transition{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#081c35f2;font-size:clamp(15px,4vh,24px);letter-spacing:2px;color:#ffe25a;animation:veil-in .25s ease-out}@keyframes veil-in{0%{opacity:0}to{opacity:1}}.dialogue{max-width:min(76%,440px);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stage-picker{font-size:12px;color:#d0ebff}.stage-picker summary{cursor:pointer;padding:8px}.stage-picker[open]{background:#0a254de8;padding:8px;border-radius:12px}.stage-picker .stage-list{max-width:420px}.birthday [data-menu=cleared]{background:transparent;justify-content:flex-start;padding-top:24px}.birthday [data-menu=cleared] h2{max-width:90%;font-size:clamp(24px,6vh,42px)}.birthday [data-menu=cleared] .stage-list{display:none}.birthday [data-menu=cleared] button{min-height:36px;padding:6px 20px}.birthday .hud{display:none}.menu .story{font-size:clamp(12px,2.6vh,17px)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.title-menu{background:radial-gradient(120% 120% at 50% 20%,#0e3a6be8,#071d3af2 70%,#040f20f5);gap:clamp(8px,2.4vh,18px);overflow:hidden}.title-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}.title-menu>*:not(.title-bg){position:relative;z-index:1}.title-wordmark{width:min(84%,440px);max-height:32vh;object-fit:contain;pointer-events:none;margin:0}.title-fallback{margin:0;max-width:94%;font-size:clamp(40px,12vh,84px)}.title-family{width:min(92%,560px);height:auto;aspect-ratio:640/220;image-rendering:pixelated;pointer-events:none}.title-menu>.title-play{margin-top:auto;margin-bottom:calc(1vh + env(safe-area-inset-bottom));min-width:min(72%,300px)}@media(max-height:330px){.title-wordmark{max-height:28vh}.title-family{width:min(80%,440px)}.title-menu{gap:6px}}.game-shell,.view{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.view canvas{pointer-events:none}.hud,.dialogue,.dev-label,.touch-controls,.directions,.abilities{pointer-events:none}.touch-controls button,.top-actions button{pointer-events:auto}.menu{pointer-events:none}.menu button,.menu summary{pointer-events:auto}.title-bg,.title-wordmark,.title-family{pointer-events:none}.intro video{pointer-events:none}.intro{position:absolute;inset:0;z-index:40;background:#000;display:flex;align-items:center;justify-content:center}.intro video{width:100%;height:100%;object-fit:contain;background:#000}.intro-skip{position:absolute;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:41;min-width:0;min-height:32px;padding:4px 14px;font-size:13px;letter-spacing:1px;border-radius:12px;background:#0a1b32d9;border-color:#fff6}.title-menu>.title-wordmark{position:absolute;top:3%;width:78%;height:34%;max-height:none;animation:wordmark-breathe 4s ease-in-out infinite}.title-menu>.title-family{position:absolute;top:25%;width:92%;height:58%;object-fit:contain}.title-menu>.title-play{position:absolute;bottom:3%;margin:0;min-height:40px}@keyframes wordmark-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@media(prefers-reduced-motion:reduce){.title-wordmark{animation:none!important}}.game-shell{padding:0;align-items:flex-end}.hud{top:calc(8px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right))}.touch-controls{left:calc(18px + env(safe-area-inset-left));right:calc(18px + env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom))}.hud{position:fixed;z-index:15}.touch-controls{position:fixed;z-index:5}.menu{z-index:10}.top-actions button{position:relative}.top-actions button:after{content:"";position:absolute;inset:-6px;background:transparent}.top-actions{gap:14px}
