:root{--ink:#264439;--muted:#789087;--green:#438d58;--paper:#fbfaf4;--line:#e9eee4}*{box-sizing:border-box}html{background:#f8f8f0;min-height:100%}body{color:var(--ink);background:radial-gradient(at 50% 0,#fffdf5 0,#f6f8ef 68%,#f2f5ea 100%);margin:0;font-family:Avenir Next,Trebuchet MS,system-ui,sans-serif}button{font:inherit}.page-shell{width:min(1160px,100% - 48px);margin:0 auto;padding:27px 0 19px}.topbar{border-bottom:1px solid #4e745821;justify-content:space-between;align-items:center;padding:0 2px 24px;display:flex}.brand{color:#284539;letter-spacing:-.45px;align-items:center;gap:11px;font-family:Avenir Next,Trebuchet MS,system-ui,sans-serif;font-size:17px;font-weight:900;text-decoration:none;display:inline-flex}.brand i{color:#77877e;font-style:normal;font-weight:600}.brand-mark{color:#f7ffe9;background:#53a663;border-radius:11px;place-items:center;width:33px;height:33px;font-size:20px;display:grid;box-shadow:inset 0 -3px #1b51292b}.top-note{color:#809087;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.sun-dot{background:#f6c963;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #f6c96326}.intro{justify-content:space-between;align-items:end;padding:34px 4px 23px;display:flex;position:relative}.intro-copy{max-width:690px}.eyebrow{color:#6d9b6d;letter-spacing:1.65px;align-items:center;gap:7px;margin:0 0 9px;font-size:10px;font-weight:800;display:flex}.eyebrow span{color:#f5bd4b;font-size:16px}h1{color:#284438;letter-spacing:-1.8px;margin:0;font-family:Avenir Next,Trebuchet MS,system-ui,sans-serif;font-size:clamp(31px,4.3vw,45px);font-weight:900;line-height:1.08}h1 em{color:#50a367;font-style:normal}.intro-text{color:#788b80;max-width:510px;margin:11px 0 0;font-size:14px;line-height:1.55}.mascot-note{color:#63a56b;margin:0 31px 3px 0;font-family:Avenir Next,Trebuchet MS,system-ui,sans-serif;font-size:14px;font-weight:900;display:grid;position:relative;transform:rotate(5deg)}.note-spark{color:#edb949;font-size:23px;line-height:1}.note-arrow{color:#7aab7b;font-family:sans-serif;font-size:38px;font-weight:400;position:absolute;top:18px;right:-31px;transform:rotate(18deg)}.fs-button{color:#5f8a68;cursor:pointer;touch-action:manipulation;background:#f6faf3;border:1px solid #e3eadf;border-radius:12px;flex:none;place-items:center;width:36px;height:36px;margin-left:10px;display:grid}.fs-button:hover{background:#ecf5e8}.fs-button:active{transform:scale(.94)}.game-card{background:#fffffcf0;border:1px solid #e6ebdf;border-radius:20px;overflow:hidden;box-shadow:0 18px 50px #32503b18,0 2px 6px #32503b09}.game-toolbar{border-bottom:1px solid #edf0e7;justify-content:space-between;align-items:center;height:66px;padding:0 22px;display:flex}.level-label{align-items:center;gap:10px;display:flex}.level-button{color:inherit;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:14px;padding:4px 8px 4px 4px}.level-button:hover{background:#f1f6ec}.level-chevron{color:#8aa68d;margin-left:2px;font-size:14px;font-style:normal}.ghost-button{color:#5f8a68;font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin:10px auto 0;padding:6px 12px;font-size:12px;font-weight:700;text-decoration:underline;display:block}.stage-overlay{z-index:5;background:#1c483957}.stage-menu{background:#fffffaf7;border-radius:20px;flex-direction:column;width:min(620px,96%);max-height:94%;display:flex;overflow:hidden;box-shadow:0 13px 38px #1e3c2d40}.stage-menu-head{color:#2d4a39;justify-content:space-between;align-items:center;padding:12px 14px 8px 18px;font-family:Avenir Next,Trebuchet MS,system-ui,sans-serif;font-size:18px;display:flex}.stage-close{color:#5f7a66;cursor:pointer;background:#eef3ea;border:0;border-radius:11px;width:34px;height:34px;font-size:15px}.stage-grid{overscroll-behavior:contain;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;padding:6px 14px 14px;display:grid;overflow-y:auto}.stage-tile{color:#3d5848;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:#f6f8f1;border:2px solid #0000;border-radius:13px;gap:2px;padding:6px 6px 7px;display:grid;position:relative}.stage-tile:hover{background:#eef5e8}.stage-tile.current{background:#eaf6e6;border-color:#4ba263}.stage-thumb{background:linear-gradient(to bottom, var(--sky-a), var(--sky-b) 62%, var(--ground) 62%);border-radius:8px;height:34px}.stage-tile b{color:#fff;text-shadow:0 1px 2px #00000073;font-size:13px;position:absolute;top:9px;left:11px}.stage-tile small{color:#5a7364;font-size:10px;font-weight:700;line-height:1.2}.level-icon{color:#5f9e61;background:#edf7e8;border-radius:11px;place-items:center;width:34px;height:34px;font-size:19px;display:grid}.level-label span:nth-child(2){gap:2px;display:grid}.level-label small{color:#9aaa9d;letter-spacing:1.25px;font-size:8px;font-weight:800}.level-label strong{color:#3d5848;font-size:13px;font-weight:800}.star-counter{background:#fffaf0;border:1px solid #f0e8c8;border-radius:12px;align-items:center;gap:6px;height:36px;padding:0 12px;display:flex}.star-counter span{color:#efb740;font-size:19px}.star-counter strong{color:#6a5832;font-size:13px}.star-counter small{color:#a49575;font-size:10px}.connection{color:#9aa99e;align-items:center;gap:7px;font-size:10px;font-weight:600;display:flex}.connection>span{background:#bfcbbf;border-radius:50%;width:7px;height:7px}.connection.connected{color:#5c9667}.connection.connected>span{background:#62b776;box-shadow:0 0 0 3px #e6f5e6}.canvas-wrap{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#d8eed4;position:relative;overflow:hidden}.canvas-wrap canvas{aspect-ratio:16/9;outline:none;width:100%;height:auto;display:block}.canvas-wrap:focus-within canvas{outline:none}.game-overlay{background:linear-gradient(90deg,#1c48391a,#ffffff2b,#1c48391a);place-items:center;padding:18px;display:grid;position:absolute;inset:0}.overlay-card{text-align:center;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#fffffaf2;border:1px solid #fffc;border-radius:22px;width:min(390px,94%);padding:23px 27px 25px;box-shadow:0 13px 38px #2e513a2b}.overlay-kicker{color:#79a17b;letter-spacing:1.55px;font-size:9px;font-weight:800}.overlay-card h2{color:#2d4a39;letter-spacing:-.75px;margin:6px 0 2px;font-family:Avenir Next,Trebuchet MS,system-ui,sans-serif;font-size:29px;font-weight:900}.overlay-card p{color:#7c8d82;margin:4px 0 16px;font-size:12px;line-height:1.5}.start-button{color:#fff;cursor:pointer;background:#4ba260;border:0;border-radius:14px;min-height:46px;padding:0 21px;font-size:13px;font-weight:800;transition:transform .16s,background .16s;box-shadow:inset 0 -3px #1b562d29,0 4px 12px #3a935333}.start-button:hover{background:#408e55;transform:translateY(-1px)}.start-button span{margin-left:8px;font-size:17px}.finish-card{padding-top:17px}.finish-icon{color:#e8b64f;margin-bottom:5px;font-size:34px;display:block}.finish-overlay{background:#fffae252}.canvas-caption{color:#53745b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fffff9c7;border:1px solid #ffffff94;border-radius:30px;width:max-content;max-width:calc(100% - 24px);padding:7px 11px;font-size:10px;font-weight:600;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.caption-heart{color:#e78476;margin-right:5px}.game-controls{justify-content:space-between;align-items:center;gap:18px;min-height:85px;padding:13px 20px;display:flex}.control-hint{align-items:center;gap:10px;min-width:190px;display:flex}.hulk-dot{color:#fff;background:#64b962;border-radius:50%;place-items:center;width:34px;height:34px;font-family:Avenir Next,Trebuchet MS,system-ui,sans-serif;font-size:19px;font-weight:900;display:grid;box-shadow:inset 0 -3px #225b272b}.control-hint>span:last-child{gap:3px;display:grid}.control-hint b{color:#45604e;font-size:11px}.control-hint small{color:#9aa79c;font-size:10px}.key-hint{color:#9ba99e;white-space:nowrap;font-size:9px}.key-hint kbd{color:#708476;background:#f8faf5;border:1px solid #e2e9df;border-bottom-width:2px;border-radius:5px;margin:0 2px;padding:3px 5px;font-family:inherit;font-size:8px;font-weight:800}.key-hint>span{color:#bdc7bc;margin:0 4px}.game-card.is-fullscreen{z-index:1000;width:100vw;height:100dvh;box-shadow:none;background:#173d2d;border:0;border-radius:0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.is-fullscreen .canvas-wrap{flex:none;width:min(100vw,177.778dvh)}.is-fullscreen .canvas-wrap canvas{width:100%;height:auto}.is-fullscreen .game-toolbar{top:max(8px, env(safe-area-inset-top));left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));z-index:3;background:#fffffadb;border:0;border-radius:15px;height:46px;padding:0 8px 0 12px;position:absolute}.is-fullscreen .game-controls,.is-fullscreen .control-hint,.is-fullscreen .key-hint,.is-fullscreen .canvas-caption{display:none}.page-footer{color:#a0aca1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:16px 4px 0;font-size:10px;display:flex}.page-footer b{color:#e98a7d;margin-left:3px}.footer-credits{text-align:right;max-width:52%;font-size:9px;line-height:1.5}.footer-credits a{color:inherit;text-decoration:underline}.footer-stars{color:#e5bd60;letter-spacing:2px}@media (max-width:760px){.page-shell{width:min(100% - 24px,600px);padding-top:15px}.topbar{padding-bottom:15px}.brand{font-size:14px}.brand-mark{width:30px;height:30px}.top-note{font-size:0}.sun-dot{width:9px;height:9px}.intro{padding:24px 2px 17px}.intro-text{max-width:390px;font-size:12px}.mascot-note{margin-right:15px;font-size:11px}.note-arrow{font-size:31px;right:-24px}.game-card{border-radius:16px}.game-toolbar{height:57px;padding:0 12px}.connection{font-size:0}.connection>span{width:8px;height:8px}.canvas-caption{padding:5px 8px;font-size:8px;bottom:7px}.game-controls{flex-wrap:wrap;gap:10px;padding:12px}.control-hint{justify-content:center;width:100%;min-width:0}.key-hint{display:none}.page-footer{font-size:9px}.footer-credits{text-align:left;order:3;max-width:100%}}@media (max-width:420px){.page-shell{width:calc(100% - 16px)}.intro{align-items:center}.eyebrow{font-size:8px}h1{font-size:29px}.intro-text{font-size:11px}.mascot-note{display:none}.level-icon{width:30px;height:30px}.level-label strong{font-size:11px}.star-counter{gap:4px;padding:0 8px}.star-counter small{font-size:9px}.overlay-card{border-radius:17px;padding:15px 14px 17px}.overlay-kicker{font-size:7px}.overlay-card h2{font-size:23px}.overlay-card p{margin-bottom:10px;font-size:10px}.start-button{min-height:39px;font-size:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
