:root{font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#f7f5df;background:#1b453b;font-synthesis:none;--gold:#ffd17c;--ink:#183e34;--cream:#fff8dc;--glass:rgba(16,48,40,.77)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:3px solid #fff0a6;outline-offset:5px}button:disabled{cursor:wait;opacity:.65}.hidden{display:none!important}#game-app,#world,.vignette,#menu,#hud,#loading{position:absolute;inset:0}#game-app{height:100dvh;overflow:hidden}#world{width:100%;height:100%;display:block;touch-action:none}.vignette{pointer-events:none;background:linear-gradient(90deg,rgba(11,42,31,.78),rgba(17,52,39,.34) 35%,transparent 62%),linear-gradient(0deg,rgba(10,33,26,.48),transparent 23%,transparent 78%,rgba(10,33,26,.15));transition:opacity .8s}.playing .vignette{background:linear-gradient(0deg,rgba(10,33,26,.5),transparent 26%,transparent 74%,rgba(10,33,26,.42))}#brand{position:absolute;left:3.5vw;top:27px;display:flex;gap:12px;align-items:center;font-weight:900;font-size:22px;letter-spacing:2px;z-index:3}.brand-mark{font-size:39px;color:var(--gold);font-weight:400}#brand small{display:block;font-size:9px;letter-spacing:3.2px;font-weight:500;margin-top:2px}.playing #brand{display:none}#utilities{position:absolute;right:3vw;top:29px;display:flex;gap:10px;z-index:8}.round{border:1px solid #ffffff40;background:#143f356b;backdrop-filter:blur(15px);color:#fff8e1;width:44px;height:44px;border-radius:50%;font-size:21px}.round:hover{background:#365e4d}.menu-copy{position:absolute;left:7vw;top:50%;transform:translateY(-49%);max-width:480px}.eyebrow{font-size:13px;letter-spacing:4px;color:#e1ecca;display:flex;align-items:center;gap:10px}.eyebrow span{width:6px;height:6px;background:#dbf6a5;border-radius:50%;box-shadow:0 0 15px #e7efa1}.menu-copy h1{font-size:clamp(46px,4.3vw,73px);line-height:1.18;letter-spacing:7px;margin:27px 0 24px;text-shadow:0 3px 30px #153a37;font-weight:900}.menu-copy h1 span{font-family:Georgia,serif;font-weight:900;display:block;font-size:clamp(62px,7.1vw,115px);line-height:1.06;letter-spacing:-3px;color:var(--gold);margin-left:-3px;margin-bottom:14px}.intro{font-size:16px;line-height:1.95;color:#e4ebd7;margin:0 0 31px}.primary{display:flex;justify-content:space-between;align-items:center;gap:36px;background:var(--gold);color:#254430;border:0;padding:18px 27px;font-weight:800;letter-spacing:1px;font-size:17px;border-radius:10px;box-shadow:0 6px #b78845,0 12px 24px #163b3440;min-width:238px;transition:transform .2s,filter .2s}.primary:hover{transform:translateY(-2px);filter:brightness(1.08)}.primary span{font-size:23px}.secondary{border:1px solid #e7efca77;background:#1c4c3bb0;padding:13px 22px;color:var(--cream);border-radius:9px;margin-top:17px;font-size:15px}.text-button{background:none;color:#e7ebcc;border:0;padding:24px 0 12px;font-size:14px;display:block}.text-button span{margin-left:17px}.menu-foot{display:flex;gap:24px;font-size:12px;color:#d6e4cbab;letter-spacing:1px;margin-top:19px}.world-caption{position:absolute;bottom:24%;right:9%;display:flex;gap:15px;align-items:center;text-shadow:0 2px 10px #184838}.caption-line{width:36px;height:1px;background:#e6ecc299}.world-caption small{font-size:9px;letter-spacing:2.4px;color:#eaf6ddc2}.world-caption strong{display:block;font-size:15px;letter-spacing:2px;margin-top:7px}.menu-bottom{position:absolute;bottom:25px;left:3.5vw;right:3.5vw;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#e2eed0b0;letter-spacing:1px}.pill{border:1px solid #f5f6d332;background:#123e3599;border-radius:30px;padding:9px 16px;font-size:12px;color:#e7efda}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#173e35;z-index:20}.loading-star{font-size:65px;color:var(--gold);animation:breathe 1.6s ease-in-out infinite}.loading h1{font-size:25px;letter-spacing:3px}.loading p{color:#c4d8c4;font-size:14px}.load-track{width:min(280px,70vw);height:4px;background:#ffffff20;border-radius:4px;margin-top:16px}.load-track i{display:block;height:100%;width:0%;background:var(--gold);transition:width .3s}.loading button{margin-top:22px}#hud{pointer-events:none;z-index:4}#hud button{pointer-events:auto}.hero-panel{position:absolute;top:27px;left:27px;display:flex;align-items:center;gap:12px;background:var(--glass);padding:12px 18px 13px 12px;border:1px solid #eaffd726;border-radius:16px;backdrop-filter:blur(14px)}.hero-icon{font-size:30px;color:var(--gold);background:#ead29120;border:1px solid #e0bc7050;width:49px;height:49px;border-radius:13px;display:grid;place-items:center}.hero-bars{width:176px}.hero-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11px;color:#d6e7cd}.hero-title strong{font-size:14px;letter-spacing:1px}.health-track{height:9px;background:#061d2380;border-radius:5px;overflow:hidden}.health-track i{height:100%;display:block;background:linear-gradient(90deg,#69d0a1,#b5eca0);width:100%;border-radius:5px;transition:width .2s}.energy-track{height:4px;background:#061d2360;border-radius:4px;margin-top:5px;overflow:hidden}.energy-track i{display:block;height:100%;background:var(--gold);transition:width .2s}.chapter-panel{text-align:center;position:absolute;top:29px;left:50%;transform:translate(-50%);min-width:220px;text-shadow:0 2px 6px #173e35}.chapter-panel>span{font-size:10px;letter-spacing:3px;color:var(--gold)}.chapter-panel h2{margin:7px 0 5px;font-size:21px;letter-spacing:4px}.chapter-panel p{font-size:12px;margin:4px;color:#e3eccf}.chapter-progress{height:3px;background:#ffffff25;margin:12px auto 0;max-width:120px}.chapter-progress i{display:block;background:#ffe7a3;height:100%;transition:width .4s}.score-panel{position:absolute;right:31px;top:93px;display:flex;gap:18px;font-size:15px;color:#ffe2a0}.score-panel b{color:#fff5d8;font-variant-numeric:tabular-nums}.score-panel time{color:#e6efd8;font-size:13px;border-left:1px solid #ffffff35;padding-left:17px}.skills{position:absolute;bottom:25px;left:50%;transform:translate(-50%);display:flex;gap:10px}.skill{width:117px;height:104px;border:1px solid #f1f2bc40;border-radius:14px;background:var(--glass);color:var(--cream);display:flex;flex-direction:column;align-items:center;position:relative;backdrop-filter:blur(18px);padding:10px 4px;box-shadow:0 6px 20px #12372d20}.skill kbd{position:absolute;right:7px;top:5px;font-size:9px;color:#dbe7ca96}.skill-symbol{font-size:35px;height:44px;line-height:40px;color:var(--gold)}.skill strong{font-size:13px;letter-spacing:1px}.skill small{font-size:10px;color:#ccdcc3;margin-top:5px}.skill:hover{border-color:var(--gold);background:#32634dcc}.skill.ultimate{background:#5e6943cc;border-color:#f4d78080}.skill.ready{box-shadow:0 0 22px #ffe68255;border-color:#ffe993}.skill.cooldown{opacity:.65}.controls-hint{position:absolute;bottom:34px;left:29px;display:flex;flex-direction:column;gap:8px;font-size:11px;color:#e3ead1b5}.controls-hint kbd{display:inline-block;background:#163e36b0;border:1px solid #e5ecc933;border-radius:4px;font-size:10px;padding:3px 7px;min-width:60px;text-align:center;margin-right:7px}.boss-panel{position:absolute;left:50%;transform:translate(-50%);top:137px;width:260px;text-align:center}.boss-panel>span{font-size:13px;letter-spacing:2px;color:#ffdaa8;text-shadow:0 1px 5px #1c343d}.boss-panel>div{height:8px;background:#26363d99;border:1px solid #ffffff40;border-radius:8px;overflow:hidden;margin-top:8px}.boss-panel i{display:block;height:100%;background:linear-gradient(90deg,#ef976e,#ffe6a5);transition:width .2s}.combo{position:absolute;right:6%;top:34%;display:flex;flex-direction:column;align-items:center;transform:rotate(-8deg);color:var(--gold);text-shadow:0 3px 0 #5d5235,0 0 30px #f4d080}.combo b{font-family:Georgia,serif;font-size:78px;line-height:1}.combo span{font-size:19px;font-weight:800;letter-spacing:5px}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}.float-label{position:absolute;left:0;top:0;text-align:center;font-size:17px;font-weight:800;text-shadow:0 2px 3px #142e2f;white-space:nowrap;will-change:transform}.mob-label{position:absolute;left:0;top:0;width:45px;height:4px;border-radius:5px;background:#162a3daa;overflow:hidden}.mob-label i{display:block;background:#fff0bd;height:100%}#toast{position:absolute;left:50%;bottom:151px;transform:translate(-50%);padding:12px 20px;background:#173e36e8;backdrop-filter:blur(15px);border-radius:30px;font-size:13px;z-index:12;opacity:0;transition:opacity .3s;pointer-events:none;max-width:90vw;text-align:center;line-height:1.6;border:1px solid #f7eab437}#toast.show{opacity:1}#chapter-banner{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:7;text-shadow:0 3px 20px #092b31;animation:banner 3.5s both}#chapter-banner small{display:block;font-size:13px;letter-spacing:5px;color:#ffde91}#chapter-banner strong{display:block;font-size:45px;letter-spacing:8px;margin:12px 0}#chapter-banner span{font-size:15px;letter-spacing:2px}dialog{background:#f5f3db;color:#26483d;border:1px solid #fff9dd;border-radius:24px;padding:36px;width:min(640px,92vw);max-height:90dvh;box-shadow:0 30px 130px #001b2566;overflow-y:auto}dialog::backdrop{background:#102f3577;backdrop-filter:blur(9px)}dialog h2{font-size:29px;letter-spacing:2px;margin:12px 0 15px}dialog p{font-size:15px;line-height:1.85;color:#5d7161}dialog .eyebrow{color:#7e895b;font-size:11px}.modal-close{position:absolute;right:17px;top:12px;border:0;background:none;font-size:28px;color:#5d7161;z-index:2}dialog .primary{min-width:0;width:100%;justify-content:center;box-shadow:0 4px #c09c50}dialog .secondary{background:transparent;border-color:#65816877;color:#3c634e;width:100%;text-align:center}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:23px 0}.guide-grid div{padding:15px;border:1px solid #71947730;border-radius:12px;font-size:14px;line-height:1.7}.guide-grid strong{display:block;margin-bottom:4px}.guide-grid kbd{font-size:12px;background:#e2e7ce;padding:2px 5px;border-radius:4px}.upgrade-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0 5px}.upgrade-card{padding:20px 10px;border:1px solid #c1c9a3;background:#fffae7;border-radius:15px;color:#2a523f;text-align:center}.upgrade-card:hover{border-color:#69874b;transform:translateY(-3px)}.upgrade-card>span{font-size:39px;color:#a98c3c;display:block;margin-bottom:8px}.upgrade-card strong{display:block;margin-bottom:8px}.upgrade-card p{font-size:12px;line-height:1.7;margin:0}.result-stats{display:flex;justify-content:space-around;text-align:center;border-block:1px solid #7b8d6130;padding:17px 0;margin:24px 0}.result-stats strong{display:block;font-size:30px;font-family:Georgia,serif}.result-stats span{font-size:12px;color:#738164}.stars{font-size:32px;letter-spacing:8px;color:#c19940}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 0;border-bottom:1px solid #77856b30;font-size:15px}.setting-row select{background:#e5ead3;color:#315644;border:1px solid #82946640;padding:9px;border-radius:7px;max-width:55%;font:inherit;font-size:14px}.setting-row input{accent-color:#426f48;max-width:50%}.chapter-list{display:flex;flex-direction:column;gap:9px;margin:20px 0}.chapter-item{display:flex;align-items:center;gap:14px;border:1px solid #a2b38a55;background:#fffbe9;border-radius:12px;padding:13px 15px;text-align:left;color:#294c3c}.chapter-item:disabled{cursor:default;opacity:.5}.chapter-item b{font:25px Georgia,serif;color:#909660}.chapter-item strong{display:block;font-size:15px}.chapter-item small{font-size:12px;color:#7c8a6b}.chapter-item>span:last-child{margin-left:auto;color:#ae8b43;font-size:13px}.record-note{font-size:12px!important}#touch-controls{display:none}#joystick{position:absolute;bottom:35px;left:30px;width:112px;height:112px;border-radius:50%;background:#193f3545;border:1px solid #fffbc955;pointer-events:auto;touch-action:none}#stick{position:absolute;left:33px;top:33px;width:44px;height:44px;border-radius:50%;background:#ffedafa0;border:1px solid #fff5da88}.touch-jump{position:absolute;right:24px;bottom:145px;width:59px;height:59px;border-radius:50%;border:1px solid #ffffe166;background:#234c3ac0;color:#fff8e2;font-size:22px}.touch-jump small{display:block;font-size:10px}.playing #utilities{top:29px}body.reduced *{animation:none!important;scroll-behavior:auto!important;transition-duration:0s!important}@keyframes breathe{50%{transform:scale(1.16) rotate(12deg);opacity:.6}}@keyframes banner{0%{opacity:0;filter:blur(4px)}15%,73%{opacity:1;filter:none}to{opacity:0}}@media(pointer:coarse){#touch-controls{display:block}.controls-hint{display:none}.skills{left:auto;right:22px;transform:none;bottom:25px;gap:7px}.skill{width:76px;height:88px}.skill kbd{display:none}.skill-symbol{height:38px;font-size:30px}.skill strong{font-size:11px}.skill small{font-size:9px}.skill:first-child{width:83px}}@media(max-width:800px){#brand{left:24px;top:22px;font-size:18px}.brand-mark{font-size:31px}#utilities{right:21px;top:24px;gap:7px}.round{width:37px;height:37px;font-size:18px}.menu-copy{left:7vw;max-width:350px}.menu-copy h1{font-size:49px;letter-spacing:4px}.menu-copy h1 span{font-size:77px}.world-caption{right:6%;bottom:23%;max-width:190px}.world-caption strong{font-size:12px}.world-caption small{font-size:8px}.menu-bottom>span{display:none}.menu-bottom{justify-content:flex-end}.hero-panel{left:13px;top:17px;padding:9px;gap:8px}.hero-icon{width:37px;height:37px;font-size:24px}.hero-bars{width:119px}.hero-title{font-size:9px}.hero-title strong{font-size:12px}.chapter-panel{top:88px;min-width:200px}.chapter-panel h2{font-size:18px}.chapter-panel>span{display:none}.chapter-panel p{font-size:11px}.chapter-progress{margin-top:7px}.score-panel{right:20px;top:71px;font-size:12px;gap:10px}.score-panel time{font-size:11px}.boss-panel{top:160px;width:220px}.playing #utilities{top:21px;right:17px;gap:6px}.playing #guide-button,.controls-hint{display:none}.combo{right:5%;top:30%}.combo b{font-size:55px}dialog{padding:29px}.menu-foot{gap:15px}.intro{font-size:14px}#chapter-banner strong{font-size:30px;white-space:nowrap}#chapter-banner span{font-size:12px}.upgrade-list{gap:7px}.upgrade-card{padding:16px 7px}.upgrade-card p{font-size:11px}.guide-grid{gap:7px}.guide-grid div{padding:11px;font-size:12px}}@media(max-width:550px)and (orientation:portrait){.menu-copy{top:40%;left:8vw}.menu-copy h1{font-size:43px}.menu-copy h1 span{font-size:72px}.menu-copy .eyebrow{font-size:10px;letter-spacing:2px}.intro{max-width:250px;font-size:13px;line-height:1.8;margin-bottom:23px}.menu-copy h1{margin-top:20px;margin-bottom:19px}.primary{min-width:218px;font-size:15px;padding:16px 23px}.menu-foot{font-size:10px;margin-top:12px}.world-caption{bottom:17%;right:7%}.menu-copy .text-button{padding-top:23px}.menu-bottom{bottom:20px}.playing .chapter-panel{top:93px}.score-panel{top:72px}.skills{right:13px;bottom:30px}#joystick{left:19px;bottom:37px;width:94px;height:94px}#stick{left:24px;top:24px}.touch-jump{right:22px;bottom:139px}.skill{width:64px}.skill:first-child{width:70px}.skill strong{font-size:10px}.skill small{font-size:8px}.skill-symbol{font-size:30px}.hero-bars{width:110px}#toast{bottom:145px;width:max-content;font-size:12px}.upgrade-list{grid-template-columns:1fr}.upgrade-card{display:grid;grid-template-columns:40px 1fr;align-items:center;text-align:left;padding:12px 15px}.upgrade-card>span{grid-row:1/3;font-size:28px;margin:0}.upgrade-card strong{margin:0}.upgrade-card p{font-size:12px}.result-stats strong{font-size:25px}dialog h2{font-size:25px}}@media(max-height:600px)and (orientation:landscape){.menu-copy{top:52%;left:6vw}.menu-copy h1{font-size:32px;margin:10px 0}.menu-copy h1 span{font-size:52px;margin-bottom:7px}.intro{font-size:12px;line-height:1.5;margin-bottom:16px}.menu-copy .eyebrow{font-size:9px;margin-bottom:5px}.menu-copy .primary{padding:11px 20px;font-size:14px;min-width:205px}.menu-copy .text-button{padding:18px 0 4px;font-size:12px}.menu-foot,.world-caption{display:none}.menu-bottom{bottom:15px}.chapter-panel{top:21px}.playing .hero-panel{top:15px}.boss-panel{top:100px}.chapter-panel h2{font-size:17px}.skills{bottom:14px}.skill{height:79px}.controls-hint{bottom:16px}#chapter-banner strong{font-size:27px}.score-panel{top:72px}}#stick{left:50%;top:50%;transform:translate(-50%,-50%)}.interact-prompt{position:absolute;left:50%;bottom:150px;transform:translate(-50%);padding:11px 18px;border:1px solid #ffe6a3;border-radius:24px;background:#214e3bec;color:#fff2c8;font-size:14px;box-shadow:0 3px 20px #172e2755;display:flex;gap:10px;align-items:center;white-space:nowrap}.interact-prompt kbd{background:#ffd17c;color:#264838;border-radius:6px;padding:3px 7px;font-weight:800}.interact-prompt.blocked{border-color:#a5c48a;color:#dbe9cd}.chapter-panel p{font-size:13px}.menu-copy h1 span{font-family:inherit;letter-spacing:5px;font-size:clamp(62px,6.1vw,98px)}@media(pointer:coarse){.interact-prompt{bottom:145px;font-size:13px}.interact-prompt kbd{display:none}}.creature-link{display:block;color:#f6e3ad;font-size:13px;margin-top:14px;text-decoration:none}.creature-link:hover{text-decoration:underline}@media(pointer:coarse){.skill strong{font-size:12px}.skill small{font-size:10px}}.boss-panel small{display:block;margin-top:7px;font-size:11px;color:#ffefbb;letter-spacing:1px;text-shadow:0 1px 6px #183e34}.upgrade-card.selected{border-color:#527a3e;box-shadow:inset 0 0 0 2px #527a3e;background:#e7edcf}.next-stage{width:100%;margin-top:19px}.upgrade-card:focus-visible{outline-color:#527a3e}#chapter-banner.boss-callout{top:215px;transform:translate(-50%);max-width:90vw}#chapter-banner.boss-callout strong{font-size:25px;margin:7px 0}#chapter-banner.boss-callout small{font-size:10px}#chapter-banner.boss-callout span{font-size:12px}@media(max-width:800px){#chapter-banner.boss-callout{top:220px}#chapter-banner.boss-callout strong{font-size:21px}#chapter-banner.boss-callout span{font-size:11px;white-space:normal}}@media(max-height:600px)and (orientation:landscape){#chapter-banner.boss-callout{top:145px}}.chapter-title{display:flex;align-items:center;justify-content:center;gap:10px}#stage-info-button{padding:4px 9px;border:1px solid #f6e3ad66;border-radius:14px;font-size:11px;color:#fff0c6;background:#254b39b8;white-space:nowrap;pointer-events:auto}.chapter-panel{max-width:420px;width:max-content;background:#173e34c9;border:1px solid #e8e0ac35;border-radius:16px;padding:10px 14px}.chapter-panel h2{margin:6px 0}.journey-steps{display:flex;justify-content:center;gap:7px;margin:7px 0}.journey-steps span{font-size:11px;color:#dee8cd;background:#183e3475;border:1px solid #dfedc529;border-radius:12px;padding:3px 9px;white-space:nowrap}.journey-steps .current{background:#ffdc8c;color:#294635;border-color:#ffe9b7;font-weight:800}.journey-steps .done{color:#bdf4b7;border-color:#bdf4b766}.chapter-panel #objective{font-weight:700;line-height:1.55;margin:6px 0 2px;max-width:420px}#route-hint{font-size:11px;color:#f3eccb;display:block;line-height:1.55;max-width:420px;text-shadow:0 1px 5px #122e25}.stage-brief{list-style:none;padding:0;margin:18px 0;display:grid;gap:10px}.stage-brief li{display:flex;gap:13px;padding:13px 15px;background:#fff9e6;border:1px solid #b9c89e66;border-radius:13px}.stage-brief li>b{flex:0 0 28px;width:28px;height:28px;line-height:28px;text-align:center;background:#dce9c5;border-radius:50%;font-size:14px;color:#42633d}.stage-brief strong{font-size:15px}.stage-brief p{font-size:13px;margin:4px 0 0;line-height:1.7}.stage-brief em{display:block;font-style:normal;color:#926426;font-weight:700}.stage-brief kbd,.brief-controls kbd{background:#dde5c9;border-radius:4px;padding:1px 4px}dialog .brief-intro{margin:0;font-size:14px}dialog .brief-controls{font-size:12px;line-height:1.8;margin:16px 0}#brief-controls{margin-top:13px;padding:9px;font-size:13px}.boss-active .boss-panel{top:185px}.boss-active #chapter-banner.boss-callout{top:255px}@media(max-width:800px){.chapter-panel{width:calc(100vw - 26px);max-width:380px;padding:8px 10px}.chapter-title{gap:9px}.chapter-panel h2{font-size:18px;margin:3px 0}.journey-steps{margin:4px 0;gap:5px}.journey-steps span{font-size:10px;padding:2px 7px}.chapter-panel #objective{font-size:12px;margin:4px 0 1px}#route-hint{font-size:11px;margin:0 auto;max-width:350px}.chapter-panel .chapter-progress{margin-top:5px}.boss-active .boss-panel{top:234px}.boss-active #chapter-banner.boss-callout{top:295px}.stage-brief li{padding:10px;gap:10px}.stage-brief strong{font-size:14px}.stage-brief p{font-size:13px}}@media(max-height:600px)and (orientation:landscape){.chapter-panel{max-width:330px}.chapter-panel #objective{font-size:10px}#route-hint{font-size:9px}.chapter-title h2{font-size:15px}.journey-steps span{font-size:9px;padding:1px 6px}.boss-active .boss-panel{top:149px}.boss-active #chapter-banner.boss-callout{top:205px}}
