:root{color-scheme:light;--ink:#173e4c;--cream:#fff8e7;--orange:#ff7955;--mint:#b9f3d6;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:ui-rounded,"Trebuchet MS",system-ui,sans-serif;background:#b9dce6;color:var(--ink);-webkit-tap-highlight-color:transparent}button,a{-webkit-user-select:none;user-select:none}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #ff8a45;outline-offset:5px}[hidden]{display:none!important}#sky{display:block;position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:none}.grain{position:fixed;inset:0;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.3' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.screen{position:fixed;inset:0;z-index:20}.title-screen{display:flex;align-items:center;padding:65px 8vw;background:linear-gradient(90deg,rgba(238,249,244,.97),rgba(238,249,244,.83) 43%,rgba(238,249,244,0) 69%)}.title-content{position:relative;max-width:660px;z-index:1}.studio{position:absolute;top:-68px;color:var(--ink);text-decoration:none;font-size:16px;font-weight:900;letter-spacing:.09em}.studio span{margin-left:10px;font-size:9px;font-weight:700;letter-spacing:.16em;opacity:.65}.edition{font-size:10px;letter-spacing:.16em;font-weight:800;display:flex;align-items:center;gap:9px;margin-bottom:23px}.edition>span{width:7px;height:7px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px #ff79551a}.title-content h1{font-family:Georgia,"Times New Roman",serif;font-weight:700;letter-spacing:-.065em;font-size:clamp(60px,7.8vw,116px);line-height:.89;margin:0;position:relative}.title-content h1 em{font-weight:400;color:#2c857a;letter-spacing:-.065em}.title-star{font-family:serif;font-size:70px;position:absolute;color:#eea54c;margin-left:16px;transform:rotate(13deg)}.subtitle{letter-spacing:.29em;font-size:13px;font-weight:800;margin:26px 0}.intro{font-size:16px;line-height:1.8;max-width:440px;color:#46636a}.title-buttons{display:flex;align-items:center;gap:24px;margin-top:28px}.primary-button{background:var(--ink);color:var(--cream);border:0;border-radius:14px;padding:18px 24px;font-size:15px;font-weight:800;box-shadow:0 5px 0 #0d2a35;transition:transform .15s,background .15s;min-height:52px}.primary-button:hover{background:#266270;transform:translateY(-2px)}.primary-button:active{transform:translateY(3px);box-shadow:none}.primary-button>span{margin-left:22px;color:#ffc075;font-size:22px}.text-button{border:0;background:transparent;font-size:13px;font-weight:700;padding:12px 0}.text-button>span{display:inline-grid;place-items:center;border:1px solid #173e4c50;border-radius:50%;width:20px;height:20px;margin-left:5px}.game-tags{display:flex;align-items:center;gap:12px;margin-top:29px;font-size:10px;color:#526e72}.game-tags i{font-size:11px;font-style:normal;color:#c28a44}.record{font-size:11px;font-weight:700;color:#36776a;height:14px}.title-credit{position:absolute;bottom:25px;left:8vw;font-size:11px;color:#4b7076;text-decoration:none}.title-credit b{margin-left:4px}.postcard{position:absolute;right:5vw;bottom:8vh;transform:rotate(-5deg);background:#fff9e6e8;padding:20px 25px;border:1px solid #ffffff;box-shadow:0 9px 35px #25475c15;display:flex;gap:25px;align-items:center}.stamp{border:1px dashed #669783;border-radius:50%;width:62px;height:62px;display:grid;place-content:center;text-align:center;font-size:9px;letter-spacing:.12em;line-height:1.7;color:#438278}.postcard-caption{font-family:Georgia,serif;font-style:italic;font-size:17px;line-height:1.4}
.hud{position:fixed;inset:0;pointer-events:none;z-index:5}.mission-panel{position:absolute;top:calc(23px + var(--safe-top));left:28px;padding:15px 20px;background:#fff9e7ed;border:1px solid #ffffffc0;border-radius:18px;box-shadow:0 6px 30px #153e4a12;min-width:245px}.eyebrow{font-size:9px;letter-spacing:.2em;font-weight:900;color:#658281}.mission-panel h1{font-family:Georgia,serif;font-size:25px;margin:6px 0 12px;letter-spacing:-.035em}.counters{display:flex;align-items:center;gap:15px;font-size:13px;font-weight:800}.divider{width:1px;height:14px;background:#173e4c25}#health{color:#db644c;letter-spacing:2px;font-size:16px}#spark-count{color:#9d6819}#pet-count{color:#2f7d80}.top-actions{position:absolute;right:28px;top:calc(24px + var(--safe-top));display:flex;gap:10px;pointer-events:auto}.icon-button{background:#fff9e7ed;border:1px solid #ffffffaa;border-radius:50%;height:43px;width:43px;font-weight:800;font-size:20px;box-shadow:0 3px 15px #183b4c12}.objective{position:absolute;left:50%;top:calc(28px + var(--safe-top));transform:translateX(-50%);display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800;background:#173e4ce8;color:#fff9e7;padding:12px 18px;border-radius:30px;max-width:calc(100% - 620px);text-align:center;line-height:1.4}.objective-dot{width:6px;height:6px;border-radius:50%;background:#f7bc65;flex:none}.map-panel{position:absolute;right:28px;top:calc(86px + var(--safe-top));padding:7px;background:#fff9e7dd;border:1px solid #fff9e7;border-radius:16px;text-align:center}#map{width:140px;height:102px;display:block;border-radius:10px}#map-caption{font-size:7px;letter-spacing:.11em;display:block;margin:5px 0 3px;font-weight:800;color:#5b7c7a}.flight-label{position:absolute;bottom:calc(32px + var(--safe-bottom));left:28px}#score{font-family:Georgia,serif;font-size:31px;letter-spacing:-.03em}.flight-label small{font-size:8px;letter-spacing:.2em;margin-left:4px}#secret-count{display:block;font-size:10px;margin-top:4px;color:#48747a;font-weight:700}.boss-panel{position:absolute;top:calc(88px + var(--safe-top));left:50%;transform:translateX(-50%);width:260px;text-align:center}#boss-caption{font-size:10px;font-weight:900;letter-spacing:.13em;background:#fff8e8ed;padding:6px 13px;border-radius:12px;display:inline-block}.boss-track{height:11px;margin-top:7px;border:2px solid #fff8e8;border-radius:15px;background:#173e4c33;overflow:hidden}.boss-track i{display:block;background:#ff977b;height:100%;width:100%;transition:width .25s}.controls{position:fixed;inset:0;pointer-events:none;z-index:7}.abilities{position:absolute;bottom:calc(27px + var(--safe-bottom));right:28px;display:flex;gap:12px;align-items:flex-end;pointer-events:auto}.ability{border:1px solid #ffffffa8;width:82px;height:91px;border-radius:23px;background:#fff9e7ee;box-shadow:0 5px 20px #173e4c1a;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;touch-action:none}.ability-icon{font-size:26px;line-height:1.15}.ability b{font-size:11px}.ability small{font-size:8px;letter-spacing:.09em;opacity:.7}.ability:disabled{opacity:.52;cursor:default}.ability.pulse{background:#bcefdce8}.ability.ready{box-shadow:0 0 0 3px #fff8e78a,0 5px 20px #173e4c1a}.keyboard-tip{position:absolute;bottom:37px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:800;background:#fff8e7cc;padding:10px 14px;border-radius:15px;white-space:nowrap}.keyboard-tip span{opacity:.55;font-size:9px;margin:0 12px 0 4px}.keyboard-tip span:last-child{margin-right:0}.keyboard-tip b{font-size:10px}.joystick{position:absolute;left:25px;bottom:calc(25px + var(--safe-bottom));width:118px;height:118px;background:#fff9e738;border:1px solid #fff9e7bd;border-radius:50%;pointer-events:auto;touch-action:none;display:none;box-shadow:inset 0 0 22px #fff9e726}.joy-cross{position:absolute;inset:0;display:grid;place-items:center;color:#173e4c38;font-size:48px;font-weight:200}#stick{position:absolute;left:35px;top:35px;width:46px;height:46px;border-radius:50%;background:#fff9e7d9;box-shadow:0 4px 16px #173e4c22;border:1px solid white;pointer-events:none}#toast{position:fixed;left:50%;bottom:calc(136px + var(--safe-bottom));transform:translateX(-50%);z-index:10;background:#fff8e7f5;color:var(--ink);padding:13px 23px;border-radius:15px;font-size:13px;font-weight:700;box-shadow:0 8px 30px #173e4c20;max-width:min(500px,calc(100% - 32px));text-align:center;pointer-events:none;line-height:1.5}
.modal-screen{display:grid;place-items:center;background:#143c4e66;backdrop-filter:blur(9px);padding:20px}.modal-card{background:var(--cream);border:1px solid #fff;border-radius:28px;width:min(540px,100%);max-height:calc(100dvh - 40px);overflow-y:auto;padding:30px;text-align:center;box-shadow:0 24px 100px #12374333}.modal-eyebrow{font-size:9px;letter-spacing:.2em;color:#6a8783;font-weight:900}.modal-art{font-family:Georgia,serif;color:#e7a74c;font-size:58px;line-height:1.1;margin:20px 0 13px}.modal-card h2{font-family:Georgia,serif;font-size:34px;letter-spacing:-.04em;margin:0 0 14px;line-height:1.05}.modal-card p{font-size:14px;line-height:1.8;color:#53716f;margin:0 auto 16px;max-width:400px}.modal-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:20px}.modal-actions .text-button{padding:14px}.lesson{display:grid;grid-template-columns:34px 1fr;text-align:left;gap:10px;margin:13px 0;padding:11px 13px;background:#e5ede0;border-radius:12px;font-size:12px;line-height:1.6}.lesson b{display:block}.lesson-icon{font-size:23px;align-self:center;color:#2c857a}.upgrades{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.upgrade{border:1px solid #b9d4c5;border-radius:17px;background:#f2f4e5;padding:15px 10px;line-height:1.4}.upgrade:hover,.upgrade[aria-pressed="true"]{background:#ccebd5;border-color:#4c9a7e}.upgrade .symbol{font-size:27px;display:block;margin-bottom:6px}.upgrade b{display:block;font-size:13px}.upgrade small{font-size:11px;display:block;color:#5a7772;margin-top:5px}.medals{font-family:Georgia,serif;font-size:42px;color:#e6a03c;letter-spacing:10px;margin:13px 0}.summary-stats{display:flex;justify-content:center;gap:25px;font-size:12px;padding:15px 0}.summary-stats b{display:block;font-family:Georgia,serif;font-size:27px;margin-bottom:5px}.final-note{padding:16px;background:#e3eddb;border-radius:15px;font-size:12px;line-height:1.7}.final-note a{color:var(--ink);font-weight:800}
@media(pointer:coarse){.joystick{display:block}.keyboard-tip{display:none}.flight-label{bottom:calc(158px + var(--safe-bottom))}.ability{width:79px;height:86px}.abilities{bottom:calc(35px + var(--safe-bottom))}}
@media(max-width:1000px){.objective{top:calc(151px + var(--safe-top));left:28px;transform:none;max-width:300px;font-size:11px;padding:9px 14px}.boss-panel{top:calc(201px + var(--safe-top));left:28px;transform:none;width:230px}.keyboard-tip{bottom:130px}.postcard{right:3vw;bottom:9vh;padding:15px;gap:10px}.title-star{font-size:50px}}
@media(max-width:600px){.title-screen{padding:calc(78px + var(--safe-top)) 25px 60px;align-items:flex-start;background:linear-gradient(180deg,#eef9f4ed,#eef9f4e8 50%,#eef9f400)}.title-content{width:100%}.studio{top:-42px;font-size:13px}.studio span{font-size:8px}.edition{font-size:8px;letter-spacing:.1em;margin-bottom:20px;max-width:300px;line-height:1.5}.title-content h1{font-size:clamp(57px,15vw,78px);line-height:.92}.title-star{font-size:42px;margin-left:10px}.subtitle{font-size:10px;letter-spacing:.24em;margin:20px 0 15px}.intro{font-size:13px;line-height:1.7}.title-buttons{gap:20px;flex-wrap:wrap;margin-top:22px}.primary-button{font-size:13px;padding:15px 19px}.primary-button>span{margin-left:12px}.text-button{font-size:12px}.game-tags{font-size:8px;gap:7px;margin-top:21px;flex-wrap:wrap}.postcard{display:none}.title-credit{left:25px;bottom:calc(18px + var(--safe-bottom));font-size:10px;background:#eef9f4cb;padding:8px 12px;border-radius:20px}.mission-panel{top:calc(13px + var(--safe-top));left:13px;min-width:0;padding:12px 14px;border-radius:15px}.mission-panel h1{font-size:21px;margin:5px 0 9px}.eyebrow{font-size:8px}.counters{font-size:11px;gap:10px}#health{font-size:14px;letter-spacing:1px}.top-actions{top:calc(14px + var(--safe-top));right:13px;gap:7px}.icon-button{height:36px;width:36px;font-size:17px}.objective{left:13px;top:calc(125px + var(--safe-top));font-size:10px;max-width:calc(100% - 26px)}.map-panel{right:13px;top:calc(65px + var(--safe-top));padding:4px;border-radius:12px}#map{width:82px;height:62px}#map-caption{display:none}.boss-panel{left:13px;top:calc(176px + var(--safe-top));width:210px}#boss-caption{font-size:8px}.flight-label{left:19px;bottom:calc(153px + var(--safe-bottom))}#score{font-size:24px}.joystick{left:19px;width:108px;height:108px;display:block}#stick{left:30px;top:30px}.abilities{right:17px;gap:9px;bottom:calc(34px + var(--safe-bottom))}.ability{width:72px;height:81px;border-radius:21px}.ability-icon{font-size:25px}.ability b{font-size:10px}.ability small{font-size:7px}.keyboard-tip{display:none}.modal-card{padding:25px 20px;border-radius:23px}.modal-card h2{font-size:29px}.modal-card p{font-size:13px}.modal-art{font-size:48px;margin-top:16px}#toast{font-size:12px;bottom:calc(212px + var(--safe-bottom));padding:10px 15px;width:max-content}.lesson{font-size:11px}.record{font-size:10px}.upgrades{gap:8px}.upgrade{padding:13px 8px}}
@media(max-height:540px){.title-screen{padding:45px 6vw 20px;align-items:center}.title-content h1{font-size:58px}.studio{top:-24px;font-size:11px}.edition{display:none}.subtitle{font-size:9px;margin:13px 0}.intro{font-size:12px;line-height:1.5;margin:10px 0}.title-buttons{margin-top:12px}.primary-button{padding:12px 17px;min-height:42px;font-size:12px}.game-tags{margin-top:16px;font-size:8px}.record{display:none}.title-credit{bottom:10px;font-size:9px}.postcard{display:none}.map-panel{display:none}.mission-panel{padding:10px 14px}.mission-panel h1{font-size:20px;margin:4px 0 8px}.objective{left:50%;transform:translateX(-50%);top:18px;max-width:280px;font-size:10px}.boss-panel{left:50%;transform:translateX(-50%);top:68px;width:230px}.joystick{width:100px;height:100px;bottom:15px}#stick{left:26px;top:26px}.abilities{bottom:16px}.ability{height:73px;width:68px}.flight-label{bottom:130px}.keyboard-tip{bottom:20px}.modal-card{max-height:calc(100dvh - 24px);padding:20px}.modal-art{font-size:30px;margin:10px 0}.modal-card h2{font-size:26px}.modal-card p{font-size:12px;line-height:1.5}.modal-actions{margin-top:12px}.lesson{padding:7px 12px;margin:7px 0}.upgrades{margin:10px 0}.summary-stats{padding:5px 0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
