:root{color-scheme:dark;--bg:#090e19;--border:rgba(170,203,216,.14);--mint:#b6ff72;--primary:#b6ff72;--muted:#8c9aa9;--cyan:#66edec}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);font-family:Inter,"Arial",sans-serif;color:#f0f5f8}body{overflow-x:hidden;background:radial-gradient(ellipse at 50% 4%,#152d2e 0%,#090e19 54%);-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #dcffab;outline-offset:3px}#app{width:min(100%,1600px);margin:0 auto;padding:0 clamp(10px,2.4vw,34px);min-height:100dvh;display:flex;flex-direction:column}.topbar{height:82px;flex:0 0 82px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}.brand strong{display:block;font-family:Impact,"Arial Black",sans-serif;font-size:26px;letter-spacing:1px;line-height:1}.brand strong span{color:var(--mint)}.brand small{display:block;color:#71858c;font-size:9px;letter-spacing:2px;margin-top:6px;font-weight:800}.brand-icon{width:36px;height:36px;display:grid;grid-template-columns:repeat(2,1fr);gap:3px;transform:rotate(-10deg)}.brand-icon i{background:#d9feaa;border:3px solid #597f4d;box-shadow:3px 3px 0 #2f4839}.brand-icon i:nth-child(2){background:#85bd8c}.brand-icon i:nth-child(3){background:#6eab77}.brand-icon i:nth-child(4){background:#457c60}.header-mid{flex:1;display:flex;justify-content:center}.head-progress{width:min(100%,480px)}.progress-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.8px;color:#95aab5;font-weight:900}.progress-label b{color:var(--mint);font-size:13px;letter-spacing:1px}.bar{height:9px;border-radius:2px;background:#26363d;margin-top:9px;padding:2px;box-shadow:inset 0 1px 4px #050b12}.bar>div{height:5px;width:0;background:linear-gradient(90deg,#50a778,var(--mint));box-shadow:0 0 13px #81ee8e;transition:width .35s ease}.top-actions{display:flex;gap:8px}.icon-btn{height:39px;min-width:41px;border:1px solid #31464a;background:#142128;color:#dbeee5;border-radius:5px;font-size:20px;box-shadow:inset 0 1px 0 #314548}.icon-btn:hover{border-color:var(--mint);background:#20302c}.icon-btn span{font-size:10px;font-weight:900;vertical-align:middle}.game-frame{flex:1;min-height:440px;max-height:900px;height:calc(100dvh - 128px);position:relative;overflow:hidden;border:1px solid #294543;border-radius:9px;background:#152e32;box-shadow:0 18px 60px #0009,inset 0 0 0 3px #13272c}canvas{display:block;width:100%;height:100%;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(4,13,20,.33),transparent 24%,transparent 74%,rgba(3,10,20,.35)),linear-gradient(90deg,rgba(2,7,15,.15),transparent 25%,transparent 75%,rgba(2,7,15,.15))}.hud-left{position:absolute;top:23px;left:26px;pointer-events:none;text-shadow:0 2px 9px #051319}.stage-kicker{font-size:10px;letter-spacing:2px;font-weight:900;color:#c2dfe0}.stage-counter{font-family:Impact,"Arial Black",sans-serif;font-size:59px;line-height:1.06;letter-spacing:1px}.stage-counter>span:first-child{color:#f8fff0}.stage-total{font-size:23px;color:#9bc3c1}.stage-biome{display:inline-block;margin-top:7px;padding:6px 9px;border:1px solid #54877577;border-radius:3px;background:#0b222bbb;font-size:10px;font-weight:900;letter-spacing:1.25px;color:var(--mint)}.hud-right{position:absolute;top:25px;right:25px;display:flex;align-items:center;gap:8px;background:#081d26b8;border:1px solid #668c8e44;padding:10px 12px;border-radius:4px;font:800 10px/1 monospace;letter-spacing:1.2px;color:#c8e0dd;pointer-events:none}.hud-dot{width:6px;height:6px;background:var(--mint);box-shadow:0 0 7px var(--mint);border-radius:50%}.hud-separator{color:#56767b}.toast{position:absolute;top:125px;left:50%;transform:translate(-50%,-14px);opacity:0;transition:opacity .3s,transform .3s;z-index:5;pointer-events:none;white-space:nowrap;padding:13px 20px;background:#0c2025e8;border:1px solid #b8ff70b8;border-radius:4px;font-size:13px;font-weight:900;letter-spacing:1.3px;color:#d5ff9a;box-shadow:0 9px 22px #0008}.toast.show{opacity:1;transform:translate(-50%,0)}.dialogue{position:absolute;display:none;bottom:28px;left:50%;transform:translateX(-50%);width:min(92%,660px);z-index:9;background:rgba(5,9,19,.92);border:2px solid #a53d3a;padding:16px 22px;color:#e7e7e4;box-shadow:7px 7px 0 #000a;font-size:16px;line-height:1.6}.dialogue.show{display:block}.dialogue-name{display:block;color:#ff8780;font:bold 14px monospace;letter-spacing:3px;margin-bottom:5px}.door-btn{position:absolute;display:none;bottom:42px;left:50%;transform:translateX(-50%);z-index:8;white-space:nowrap;padding:15px 20px;background:#d8ff92;color:#13261d;border:0;border-bottom:5px solid #639d59;font-weight:1000;letter-spacing:1px;font-size:12px;box-shadow:0 0 32px #a9ff6a88}.door-btn.show{display:block}.door-btn small{font-size:10px;color:#507552}.touch-controls{display:none;position:absolute;bottom:20px;left:17px;right:17px;z-index:6;justify-content:space-between;pointer-events:none}.touch-left,.touch-right{display:flex;gap:11px;pointer-events:auto}.touch-btn{height:68px;width:72px;display:flex;align-items:center;justify-content:center;background:rgba(10,33,36,.8);border:2px solid rgba(215,252,215,.58);border-bottom:5px solid #6e9584;border-radius:11px;color:#f4ffe9;font-size:28px;touch-action:none;user-select:none;-webkit-user-select:none;backdrop-filter:blur(8px)}.touch-btn.pressed{background:#a9fb6b;color:#143125;transform:translateY(3px);border-bottom-width:2px}.touch-btn.jump{width:92px;height:82px;flex-direction:column;background:rgba(120,167,63,.78);border-color:#d9ff9c;border-bottom-color:#517b37}.touch-btn.jump small{font-size:10px;font-weight:1000;letter-spacing:2px}.bottom-bar{flex:0 0 46px;display:flex;align-items:center;gap:25px;justify-content:space-between;color:#81989f;font-size:9px;letter-spacing:1.15px;font-weight:900;white-space:nowrap}.bottom-bar i{width:8px;height:8px;display:inline-block;margin-right:7px;vertical-align:middle;background:#b5ff76}.bottom-bar .legend-yellow{background:#ffda78}.mobile-hint{display:none}.overlay{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;overflow:auto}.hidden{display:none!important}.start-overlay{background:linear-gradient(90deg,rgba(7,16,25,.96) 0%,rgba(7,18,26,.83) 58%,rgba(7,18,26,.42) 100%);backdrop-filter:blur(3px)}.intro-topline,.intro-bottomline{position:absolute;left:26px;right:26px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;font-size:10px;font-weight:900;letter-spacing:2px;color:#87a6a4}.intro-topline{top:20px}.intro-topline span{color:#b6ff72}.intro-bottomline{bottom:17px}.intro-card{position:relative;text-align:center;width:min(95%,550px);padding:25px 20px 27px}.intro-art{height:90px;position:relative;display:flex;align-items:center;justify-content:center}.intro-hood{display:block;width:74px;height:74px;background:#5b539b;border:8px solid #343158;box-shadow:inset 0 -18px 0 #312a51,10px 10px 0 #14282d;transform:rotate(-5deg);position:relative;font-size:0}.intro-hood:before{content:'';position:absolute;width:30px;height:28px;top:14px;left:14px;background:#e4b28a;box-shadow:inset 0 10px 0 #151721}.intro-hood:after{content:'••';position:absolute;top:14px;left:21px;letter-spacing:7px;font-size:15px;color:#e5ffb1}.intro-spark{position:absolute;color:#baf789;font-weight:900}.s1{transform:translate(-95px,-18px);font-size:30px}.s2{transform:translate(105px,22px);font-size:24px}.s3{transform:translate(118px,-35px);font-size:21px}.eyebrow{font-size:11px;color:var(--mint);letter-spacing:3.4px;font-weight:1000;margin:14px 0 9px}.intro-card h1,.pause-card h2{font:900 clamp(65px,9vw,112px)/.95 Impact,"Arial Black",sans-serif;margin:0;letter-spacing:2px;color:#fff;text-shadow:5px 6px 0 #162e30}.intro-card h1 span,.pause-card h2 span{color:#b6ff72}.intro-card h1 em{color:#b6ff72;font-style:normal}.intro-claim{font-weight:1000;font-size:clamp(19px,2.6vw,27px);line-height:1.3;letter-spacing:2.5px;margin:19px 0 0}.intro-claim strong{color:#b7ff7a}.intro-description{color:#acc0bf;line-height:1.65;font-size:14px;max-width:420px;margin:16px auto 25px}.primary-btn{width:min(100%,340px);border:0;padding:20px 24px;background:#baff75;color:#163122;border-bottom:6px solid #568f50;box-shadow:8px 8px 0 #0d2426,0 0 30px #baff7544;font-weight:1000;font-size:15px;letter-spacing:1.8px;transition:transform .1s,filter .1s}.primary-btn:hover{filter:brightness(1.08);transform:translateY(-2px)}.primary-btn:active{transform:translateY(3px);border-bottom-width:3px}.primary-btn span{margin-left:15px}.start-controls{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:27px;color:#97b4b2;font-weight:900;font-size:10px;letter-spacing:1px}.start-controls kbd{border:1px solid #688780;background:#20363a;min-width:21px;display:inline-block;text-align:center;padding:4px;border-bottom-width:3px;border-radius:3px;color:#d3f4d7;font:bold 11px monospace}.pause-overlay{background:#050d1aca;backdrop-filter:blur(10px)}.pause-card{text-align:center;background:#0d1a26;border:1px solid #4c7375;padding:35px;width:min(92%,380px)}.pause-card h2{font-size:75px}.pause-card p:not(.eyebrow){color:#a3b4ba;margin:23px 0}.pause-card .primary-btn{margin:12px 0}.secondary-btn{padding:13px;background:transparent;border:1px solid #466d70;color:#b8d3d0;font-weight:bold;letter-spacing:1px}.ending{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;overflow:auto;background:#020204;color:#e8e6e3;opacity:0;transition:opacity 2.3s ease}.ending.visible{display:flex;opacity:1}.ending-fog{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,rgba(53,18,35,.14),transparent 52%)}.ending-content{text-align:center;position:relative;padding:20px;opacity:0;transform:translateY(14px);transition:opacity 2.1s ease 1.4s,transform 2.1s ease 1.4s}.ending.visible .ending-content{opacity:1;transform:none}.end-sigil{font-size:43px;color:#9f3c4b;opacity:.8;margin-bottom:32px}.end-chapter{color:#8a6269;font:700 12px monospace;letter-spacing:4px}.ending h2{font:900 clamp(43px,9.3vw,104px)/1.16 Impact,"Arial Black",sans-serif;letter-spacing:4px;margin:32px 0 25px}.ending h2 span{color:#bd5b67}.end-rule{height:1px;width:84px;background:#8f4551;margin:0 auto 27px}.end-line{font:900 clamp(12px,2.5vw,17px)/1.5 monospace;letter-spacing:2px;color:#d0b8b8}.end-caption{color:#77717d;font-size:13px;margin-bottom:42px;letter-spacing:.4px}.end-replay,.end-sound{background:transparent;color:#a8a1a5;border:1px solid #49323a;padding:13px 18px;letter-spacing:1.4px;font-size:11px;font-weight:900;margin:5px}.end-replay:hover,.end-sound:hover{border-color:#d48c99;color:#fff}
@media (pointer:coarse),(max-width:740px){.touch-controls{display:flex}.desktop-hint{display:none}.mobile-hint{display:inline}.hud-right{top:17px;right:14px;padding:8px 9px;font-size:9px}.hud-left{top:15px;left:14px}.stage-counter{font-size:46px}.stage-kicker{font-size:9px}.stage-biome{font-size:9px;margin-top:4px}.dialogue{bottom:128px}.door-btn{bottom:137px}}@media (max-width:700px){#app{padding:0 5px}.topbar{height:69px;flex:0 0 69px;padding:0 8px;gap:9px}.brand-icon{width:29px;height:29px;gap:2px}.brand-icon i{border-width:2px;box-shadow:2px 2px 0 #2f4839}.brand{gap:6px}.brand strong{font-size:18px}.brand small{font-size:7px;letter-spacing:.8px;margin-top:4px}.top-actions{gap:5px}.icon-btn{height:34px;min-width:34px;font-size:16px}.header-mid{min-width:0}.head-progress{width:100%}.progress-label{font-size:8px;letter-spacing:0}.progress-label span{display:none}.progress-label b{font-size:11px}.bar{margin-top:7px}.game-frame{height:calc(100dvh - 101px);min-height:380px;border-radius:5px}.bottom-bar{flex:0 0 31px;gap:8px;font-size:8px;padding:0 7px;letter-spacing:.2px}.bottom-bar span:nth-child(2){display:none}.intro-topline{left:13px;right:13px;top:13px;font-size:9px;letter-spacing:1px}.intro-bottomline{left:13px;right:13px;font-size:8px;letter-spacing:.5px}.intro-bottomline span:nth-child(2){display:none}.intro-card{padding:16px 8px}.intro-art{height:74px}.intro-hood{transform:scale(.8) rotate(-5deg)}.intro-card h1{font-size:clamp(58px,15vw,90px)}.intro-claim{font-size:19px;letter-spacing:1.3px;margin:16px 0 0}.intro-description{font-size:13px;margin:12px auto 18px}.eyebrow{font-size:9px;letter-spacing:2px}.primary-btn{padding:16px 18px;font-size:13px}.start-controls{margin-top:20px;font-size:9px;gap:8px}.stage-biome{max-width:210px}.toast{font-size:10px;max-width:95%;white-space:normal;text-align:center}.hud-right .hud-separator,#record{display:none}}@media (max-width:360px){.brand small{display:none}.touch-btn{width:63px;height:64px}.touch-btn.jump{width:79px;height:73px}.intro-card h1{font-size:47px}.intro-card{padding-top:4px}.intro-description{max-width:290px}}@media (max-height:580px){.intro-art{height:45px}.intro-hood{transform:scale(.5)}.intro-card{padding:5px 8px}.intro-claim{margin-top:9px}.intro-description{margin:8px auto 12px}.start-controls{margin-top:12px}.intro-card h1{font-size:55px}.intro-topline,.intro-bottomline{display:none}.touch-btn{height:58px;width:67px}.touch-btn.jump{height:66px;width:77px}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* V2 finale: ensure the last-stage door prompt stays above mobile controls. */
@media (pointer:coarse),(max-width:740px){.door-btn{bottom:134px;width:min(92%,365px);white-space:normal;line-height:1.4;padding:12px 15px}.door-btn small{display:block;margin-top:3px}}
