@font-face{font-family:Urbanist;src:url(assets/Urbanist.ttf);font-display:swap}@font-face{font-family:Inter;src:url(assets/Inter.ttf);font-display:swap}
:root{color-scheme:light;--ink:#264b47;--muted:#658078;--teal:#167e78;--border:#cadbd0;--cream:#fffef5;--surface:#fffffaf2}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#e5f1e8;color:var(--ink);font-family:Urbanist,system-ui;overscroll-behavior:none}body{touch-action:none}button,input{font:inherit;color:inherit}button{border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:3px solid #197e87;outline-offset:4px}button:disabled{cursor:default}button{transition:transform .15s,background .15s}button:active:not(:disabled){transform:translateY(2px)}#app{height:100%;position:relative;isolation:isolate}canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#fx{pointer-events:none}header{position:absolute;top:0;left:0;right:0;padding:25px 34px;display:flex;align-items:center;justify-content:space-between;z-index:10}.wordmark{background:none;padding:5px 0;font-size:23px;font-weight:900;letter-spacing:-.8px}.wordmark span{color:#27a499;margin:0 2px}.top-actions{display:flex;gap:7px}.top-actions button{background:#ffffefb3;border:1px solid #d1ded1;padding:10px 14px;min-height:42px;border-radius:30px;font-size:14px;font-weight:650}#pause{font-size:18px;min-width:44px}.screen{position:absolute;inset:0;padding:110px 7vw 70px;display:flex;align-items:center;background:linear-gradient(90deg,#e5f1e8 0%,#e5f1e8f0 27%,#e5f1e870 45%,transparent 64%)}.menu-copy{width:340px;max-width:42vw;margin-top:-15px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.8px;color:#698379;margin-bottom:22px}h1{font-size:68px;letter-spacing:-3px;line-height:.99;margin:0 0 24px;font-weight:850}h1 span{color:#17867d}.intro{font-size:20px;line-height:1.45;margin:0 0 23px;color:#57756a}#nicknameForm label{display:block;font-size:14px;font-weight:700;margin-bottom:8px}input{width:100%;border:1px solid #bed2c4;border-radius:16px;background:#fffff7;padding:17px 18px;font-size:20px;font-weight:600;outline:none;box-shadow:inset 0 2px 4px #315c3710}input::placeholder{color:#8ba193}.local-note{font-size:13px;color:#728c7f;margin:10px 0 24px}.primary{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:18px 22px;background:#197f75;border-radius:17px;color:#fffef2;font-weight:750;font-size:18px;box-shadow:0 5px 0 #11655f,0 10px 24px #31756818}.primary:hover{background:#126f66}.primary>span{font-size:24px}.primary small{font-size:11px;letter-spacing:.8px}.secondary{display:block;width:100%;background:#f0f4e9;border:1px solid #ccdacc;border-radius:14px;padding:14px;margin-top:12px;font-size:16px;font-weight:650}.secondary:hover{background:#e7efdf}.text-button{display:block;background:none;font-size:14px;color:#658274;margin:14px auto 0;padding:9px}.menu-links{display:flex;flex-wrap:wrap;gap:0 22px;margin-top:20px}.menu-links button{background:none;padding:9px 0;font-size:15px;color:#607e70;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#b3c8b8}.best{font-size:13px;color:#6e897b;margin-top:20px}.signature{position:absolute;left:7vw;bottom:28px;font-size:12px;color:#7d9587}.signature span{margin:0 10px}.hidden{display:none!important}.hud-top{position:absolute;top:91px;left:34px;right:34px;display:flex;justify-content:space-between;pointer-events:none}.sector{width:250px}.sector>span,.score>span{font-size:12px;letter-spacing:1px;color:#6a8376;font-weight:750}.sector strong{display:block;font-size:27px;letter-spacing:-.5px;margin:6px 0 12px;font-weight:800}.score{text-align:right}.score strong{display:block;font-size:36px;line-height:1.1;margin-top:6px;font-weight:850}.score small{font-size:12px;color:#6d8778}.progress{height:6px;border-radius:6px;background:#bdd1bf80;overflow:hidden}.progress i{display:block;height:100%;width:0;background:#3e9e8a;border-radius:6px;transition:width .25s}.journey{position:absolute;left:34px;top:187px;width:250px;color:#5e7f6d}.journey>div:first-child{display:flex;justify-content:space-between;font-size:13px;font-weight:650}.journey b{font-variant-numeric:tabular-nums}.journey-track{height:3px;background:#cbdbce;margin-top:9px;border-radius:3px}.journey-track i{display:block;height:100%;background:#95b5a0;transition:width .2s}.hud-bottom{position:absolute;bottom:35px;left:34px;display:flex;gap:24px;align-items:center;pointer-events:none}.hull>span,.wire>span{font-size:11px;letter-spacing:1px;color:#6c8879;font-weight:700}#hearts{display:flex;gap:4px;margin-top:9px}.heart{height:15px;width:16px;background:#e79c83;clip-path:polygon(50% 18%,65% 0,86% 0,100% 19%,100% 43%,50% 100%,0 43%,0 19%,14% 0,35% 0)}.heart.empty{background:#c4d6c7}.wire>div{height:5px;width:125px;background:#c1d5c6;margin-top:12px;border-radius:5px;overflow:hidden}.wire i{display:block;height:100%;background:#248d80}.hint{position:absolute;left:50%;transform:translateX(-50%);bottom:34px;font-size:14px;font-weight:600;color:#607d6b;text-align:center;max-width:36%;line-height:1.4}.toast{position:absolute;top:117px;left:50%;transform:translateX(-50%);font-size:20px;font-weight:750;color:#267f6d;text-align:center;max-width:45%;pointer-events:none}.build{position:absolute;left:34px;top:235px;font-size:12px;color:#769382;line-height:1.7;max-width:190px;pointer-events:none}.abilities{position:absolute;right:34px;bottom:27px;display:flex;align-items:flex-end;gap:12px}.abilities button{width:78px;height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #c4d9c9;background:#fffff4;border-radius:27px;color:#508875;touch-action:none;user-select:none;box-shadow:0 5px 0 #bbd1bf}.abilities #dash{width:94px;height:94px;background:#248f7f;border-color:#187a6b;color:#fffff1;box-shadow:0 5px 0 #197365;border-radius:31px}.abilities .symbol{font-size:29px;line-height:1}.abilities b{font-size:11px;letter-spacing:.7px;margin-top:4px}.abilities small{font-size:11px;font-weight:650;margin-top:4px}.abilities .cooling{opacity:.65}.abilities .locked{opacity:.48;box-shadow:none!important;background:#d7e3d5!important;color:#657e6b!important;border-color:transparent!important}.keyboard-hint{position:absolute;right:34px;bottom:142px;font-size:11px;color:#7a9383}.keyboard-hint b{font-size:13px;color:#607e6b;margin-left:4px}.keyboard-hint span{margin:0 8px}.stick-rim{width:116px;height:116px;border-radius:50%;border:2px solid #c1d7c7;background:#fffef380;position:relative;box-shadow:inset 0 2px 5px #74887712}.stick-rim:after,.stick-rim:before{content:'';position:absolute;background:#abc8b340;left:15px;right:15px;height:1px;top:50%}.stick-rim:after{top:15px;bottom:15px;height:auto;width:1px;left:50%;right:auto}#stick{position:absolute;left:32px;top:32px;width:48px;height:48px;background:linear-gradient(135deg,#82bba5,#57987f);border:3px solid #e1eee1;border-radius:50%;box-shadow:0 4px 7px #5e85632b;z-index:1}#joystick{position:absolute;bottom:29px;left:28px;display:none;touch-action:none;user-select:none}#joystick>span{display:block;text-align:center;font-size:11px;letter-spacing:1px;margin-top:9px;color:#7c9584}.overlay{position:absolute;inset:0;background:#d9e8ddcc;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:25px;z-index:20;touch-action:pan-y;overflow:auto}.panel{width:100%;max-width:820px;background:#fffef6;border:1px solid #cfddca;border-radius:27px;padding:38px;box-shadow:0 24px 80px #60796430;max-height:calc(100dvh - 45px);overflow:auto}.panel.narrow{max-width:510px}.panel .eyebrow{margin-bottom:14px}.panel h2{font-size:38px;letter-spacing:-1px;line-height:1.08;margin:0 0 15px;font-weight:850}.panel p{color:#66816f;font-size:16px;line-height:1.55;margin:0 0 24px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0 5px}.card{background:#edf3e6;border:1px solid #d1dfc7;text-align:left;border-radius:20px;padding:23px 20px;min-height:235px;display:flex;flex-direction:column}.card:hover{border-color:#7bac8b;transform:translateY(-3px);background:#e1eed7}.card .tag{font-size:11px;color:#639267;letter-spacing:1.4px;font-weight:800}.card h3{font-size:25px;letter-spacing:-.4px;margin:18px 0 10px}.card p{font-size:15px;line-height:1.45;margin:0 0 18px;flex:1}.card small{color:#6c8b73;font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:26px 0}.stats div{padding:16px 5px;border-top:1px solid #d7dfce}.stats strong{display:block;font-size:31px;margin-bottom:4px}.stats span{font-size:10px;color:#7c927c}.help-row{display:flex;gap:15px;padding:15px 0;border-top:1px solid #d8e1d0}.help-row b{color:#478e71;font-size:21px;min-width:44px}.help-row div{font-size:15px;line-height:1.45;color:#718571}.help-row strong{display:block;color:#345b45;margin-bottom:4px}.help-keys{font-size:14px!important;margin:20px 0}.render-mode{position:absolute;bottom:9px;right:14px;font-size:10px;color:#87a08f;pointer-events:none}#fatal{position:absolute;inset:0;display:grid;place-content:center;padding:30px;background:#e5f1e8;z-index:100}.tutorial{position:absolute;z-index:8;left:50%;transform:translateX(-50%);top:88px;width:450px;padding:18px 24px 14px;background:#fffef4ef;border:1px solid #d4dfcb;border-radius:24px;box-shadow:0 9px 27px #78846b14;text-align:center}.tutorial-heading{display:flex;justify-content:space-between;font-size:10px;font-weight:800;color:#7f947b;letter-spacing:1px;margin-bottom:10px}.tutorial-heading span:last-child{letter-spacing:0;color:#519c78}.tutorial h2{font-size:26px;letter-spacing:-.6px;line-height:1.1;margin:0 0 8px;font-weight:850}.tutorial p{font-size:15px;line-height:1.4;color:#6b816d;margin:0 0 12px}#lessonTask{font-size:14px;color:#33866d;font-weight:750}.lesson-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px;border-top:1px solid #dce4d3;padding-top:8px}.lesson-actions span{font-size:11px;color:#8b9c84}.lesson-actions button{font-size:12px;padding:5px 0;background:none;color:#7b927c}.is-tutorial .hud-top,.is-tutorial #build,.is-tutorial #toast,.is-tutorial .journey,.is-tutorial .hud-bottom,.is-tutorial .abilities,.is-tutorial .hint{display:none}.coach{position:absolute;z-index:15;bottom:30px;left:50%;transform:translateX(-50%);width:min(650px,calc(100% - 40px));display:flex;align-items:center;gap:18px;padding:22px 25px;background:#fffef5;border:1px solid #ccdbbf;border-radius:26px;box-shadow:0 15px 45px #57745a2b}.coach-icon{flex:none;width:60px;height:60px;border-radius:21px;background:#dcebd9;display:grid;place-items:center;font-size:32px;color:#4b9470}.coach-copy>span{font-size:10px;font-weight:850;letter-spacing:1.2px;color:#8a9d7b}.coach h2{font-size:23px;line-height:1.1;margin:5px 0 8px}.coach p{font-size:15px;color:#69836c;line-height:1.4;margin:0}.coach small{display:block;font-size:12px;color:#9aab8c;margin-top:7px}.coach button{flex:none;align-self:flex-end;border-radius:13px;background:#258776;color:white;padding:13px 18px;font-size:15px;font-weight:750}.coaching #controls{pointer-events:none;opacity:.5}
@media(pointer:coarse){#joystick{display:block}.keyboard-hint{display:none}.hud-bottom{bottom:184px}.hint{bottom:173px}.is-tutorial .tutorial{top:85px}}
@media(max-width:700px){header{padding:18px 19px}.wordmark{font-size:19px}.top-actions{gap:5px}.top-actions button{font-size:12px;padding:8px 11px;min-height:37px}#motion{display:none}.screen{padding:93px 28px 45px;align-items:flex-start;background:linear-gradient(180deg,#e5f1e8 0%,#e5f1e8f0 43%,transparent 76%)}.menu-copy{width:100%;max-width:100%;margin:0}.eyebrow{font-size:10px;letter-spacing:1.5px;margin-bottom:17px}h1{font-size:52px;letter-spacing:-2px;margin-bottom:15px}.intro{font-size:18px;margin-bottom:17px}#nicknameForm label{font-size:13px}input{font-size:18px;padding:14px 17px;border-radius:14px}.local-note{font-size:12px;margin:8px 0 18px}.primary{padding:15px 18px;font-size:17px;border-radius:15px}.text-button{margin-top:12px;font-size:13px}.menu-links{gap:0 19px;margin-top:20px}.menu-links button{font-size:14px}.signature{left:28px;bottom:20px;font-size:11px}.signature span{margin:0 5px}.hud-top{top:77px;left:20px;right:20px}.sector{width:220px;max-width:72%}.sector>span,.score>span{font-size:10px;letter-spacing:.8px}.sector strong{font-size:25px;margin:5px 0 10px}.score strong{font-size:30px;margin-top:5px}.score small{font-size:10px}.journey{left:20px;top:168px;width:calc(100% - 40px)}.journey>div:first-child{font-size:12px}.journey-track{margin-top:7px}.hud-bottom{bottom:176px;left:25px;right:25px;justify-content:space-between;gap:15px}.hull>span,.wire>span{font-size:10px}.heart{width:14px;height:13px}.wire>div{width:92px}.hint{bottom:223px;font-size:12px;max-width:80%;width:max-content}.toast{top:219px;font-size:18px;max-width:90%;width:max-content}.build{top:194px;left:20px;max-width:90%;font-size:10px}.abilities{right:25px;bottom:46px;gap:10px}.abilities button{width:67px;height:70px;border-radius:24px}.abilities #dash{width:81px;height:88px;border-radius:29px}.abilities b{font-size:10px}.abilities small{font-size:10px}#joystick{display:block;left:24px;bottom:32px}.stick-rim{width:108px;height:108px}#stick{left:28px;top:28px}.keyboard-hint{display:none}.overlay{padding:15px}.panel{padding:28px 23px;border-radius:24px;max-height:calc(100dvh - 30px)}.panel h2{font-size:32px}.panel p{font-size:15px;margin-bottom:18px}.cards{grid-template-columns:1fr;margin-top:20px;gap:10px}.card{min-height:0;padding:17px 20px;display:block}.card h3{font-size:23px;margin:8px 0}.card p{font-size:14px;margin:0 0 8px}.stats strong{font-size:26px}.stats span{font-size:10px}.tutorial,.is-tutorial .tutorial{left:16px;right:16px;transform:none;top:77px;width:auto;padding:16px 18px 11px;border-radius:21px}.tutorial-heading{font-size:9px;margin-bottom:10px}.tutorial h2{font-size:24px}.tutorial p{font-size:14px;line-height:1.4;margin-bottom:10px}#lessonTask{font-size:13px}.lesson-actions{gap:8px;margin-top:10px;padding-top:7px}.lesson-actions span{font-size:10px}.lesson-actions button{font-size:11px}.coach{bottom:155px;padding:18px;width:calc(100% - 30px);gap:13px;align-items:flex-start;flex-wrap:wrap;border-radius:23px}.coach-icon{width:45px;height:45px;border-radius:16px;font-size:25px}.coach-copy{flex:1}.coach h2{font-size:23px}.coach p{font-size:14px}.coach small{font-size:11px}.coach button{margin-left:auto;padding:11px 23px;font-size:14px}.render-mode{font-size:9px;right:15px;bottom:7px}}
@media(max-height:720px) and (max-width:700px){.screen{padding-top:80px}h1{font-size:45px;margin-bottom:12px}.intro{margin-bottom:12px}.eyebrow{margin-bottom:14px}.local-note{margin-bottom:15px}.signature{bottom:15px}.tutorial,.is-tutorial .tutorial{top:69px;padding:12px 16px 8px}.tutorial h2{font-size:22px}.tutorial p{font-size:13px}.tutorial-heading{margin-bottom:7px}.hud-top{top:70px}.sector strong{font-size:23px}.journey{top:153px}.hud-bottom{bottom:155px}.hint{bottom:201px}.abilities{bottom:31px}#joystick{bottom:20px}.coach{bottom:141px}.build{top:177px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.settings-done{margin-top:24px}body:has(#overlay:not(.hidden)) #controls{pointer-events:none}@media(max-width:700px){#sound{display:none}.top-actions #settings{min-height:44px}}

.signature a{color:#456b5e;text-decoration:underline;text-decoration-color:#8daa99;text-underline-offset:3px;border-radius:3px}.signature a:hover{color:#126f66;text-decoration-color:currentColor}.signature a:focus-visible{outline:3px solid #197e87;outline-offset:5px}
