@font-face{font-family:XiuxianKai;src:url('../kaiti.woff2') format('woff2');font-display:swap}
:root{color-scheme:light;--ink:#284c62;--muted:#58777c;--paper:#f7fcf4;--mint:#83d8b5;--lake:#65bfd5;--coral:#ff967e;--line:#294f6750;font-family:ui-rounded,'SF Pro Rounded',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-synthesis:none}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#a8dac3}
body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation;-webkit-user-select:none;user-select:none}
button{font:inherit;cursor:pointer;border:0;color:inherit}
button:disabled{cursor:default}
button:focus-visible,a:focus-visible{outline:3px solid #268bad;outline-offset:4px}
[hidden]{display:none!important}
.game{position:relative;width:100%;height:100dvh;min-height:360px;overflow:hidden;isolation:isolate;background:#a9dbc0}
#gameCanvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}
.scene-grain{display:none}
.main-menu{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:flex-start;padding:32px clamp(28px,6vw,96px) 23px;pointer-events:none;color:var(--ink);background:linear-gradient(90deg,#f1fbf0f0 0,#f1fbf0a8 29%,#f1fbf020 48%,transparent 62%)}
.main-menu button,.main-menu a,.root-choices{pointer-events:auto}
.edition{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:650;letter-spacing:1px;color:#4f7475}
.edition-mark{display:grid;place-items:center;width:29px;height:29px;transform:rotate(-10deg)}
.edition-mark svg{width:100%;height:100%}
.menu-title{margin-top:clamp(25px,5vh,52px)}
.eyebrow{margin:0 0 16px;font-size:10px;font-weight:750;letter-spacing:3px;color:#527d81}
.title-row{display:flex;align-items:flex-start;gap:14px}
h1{font-family:XiuxianKai,'Kaiti SC',STKaiti,KaiTi,serif;font-size:clamp(76px,10vw,118px);font-weight:900;line-height:.94;letter-spacing:3px;margin:0;color:#245169;text-shadow:2px 4px 0 #fcfff7}
.title-seal{margin-top:5px;writing-mode:vertical-rl;font-size:15px;font-weight:850;line-height:1.15;letter-spacing:5px;background:var(--coral);border:2px solid #35596b;border-radius:14px;padding:11px 7px 7px;transform:rotate(8deg);box-shadow:0 3px 0 #35596b22;color:#254b61}
.menu-tagline{font-size:22px;font-weight:800;letter-spacing:2px;margin:24px 0 11px;color:#356874}
.menu-description{margin:0;font-size:13px;font-weight:550;line-height:1.85;color:#57747a;letter-spacing:.1px}
.menu-actions{width:348px;max-width:100%;padding-top:26px;margin-top:auto}
.root-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 3px 10px;font-size:10px;font-weight:600;color:#658786}
.root-heading>span:first-child{color:#375b69;font-weight:800}
.root-choices{display:flex;gap:9px}
.root-choice{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 7px;background:#f6fff5d9;border:2px solid #52778645;border-radius:12px;box-shadow:0 3px 0 #5277861c;font-size:11px;font-weight:750;transition:transform .16s,background .16s,box-shadow .16s}
.root-choice strong{font-size:18px;font-weight:850;display:grid;place-items:center;line-height:1;width:24px;height:24px;border-radius:8px;background:#a8d7eb55;color:#385d79}
.root-choice[data-root=mu] strong{background:#a5e0b655;color:#408766}
.root-choice[data-root=huo] strong{background:#ffc0a866;color:#b8634a}
.root-choice[aria-pressed=true]{background:#c6eedb;border-color:#3e7c73;box-shadow:0 3px 0 #3e7c73;color:#295d61}
.root-choice[aria-pressed=true] strong{background:#f8fff2}
.root-choice:hover{transform:translateY(-2px)}
.root-choice:active{transform:translateY(2px);box-shadow:none}
.button{position:relative;min-height:46px;padding:13px 23px;border:2px solid #47708269;border-radius:14px;background:#f4fbf4;box-shadow:0 4px 0 #52798a28;font-size:15px;font-weight:800;letter-spacing:.8px;transition:transform .16s,box-shadow .16s,background .16s}
.button:hover{background:#fff;transform:translateY(-2px)}
.button:active{transform:translateY(3px);box-shadow:0 1px 0 #52798a28}
.button-gold{background:var(--coral);border-color:#a85c51;color:#294c60;box-shadow:0 5px 0 #bf6f60}
.button-gold:hover{background:#ffa68b}
.button-gold:active{box-shadow:0 1px 0 #bf6f60}
.button-dark{background:#72c8c8;color:#244e65;border-color:#39858e;box-shadow:0 4px 0 #39858e}
.start-button{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:14px;padding:15px 24px;font-size:21px;font-weight:900;letter-spacing:2px;border-radius:17px}
.start-button>span:last-child{display:grid;place-items:center;background:#fff6e75c;width:30px;height:30px;border-radius:50%;font-family:Arial,sans-serif;font-size:25px;letter-spacing:0}
.continue-button{display:flex;align-items:center;gap:8px;width:100%;margin-top:12px;padding:11px 13px;border:2px solid #588b963c;border-radius:13px;background:#f7fff3d9;text-align:left;font-size:12px;font-weight:750;color:#396577;transition:background .16s}
.continue-button:hover{background:#fff}
.continue-button span:first-child{margin-left:auto;font-size:10px;font-weight:600;color:#628283}
.continue-button span:last-child{font-size:17px}
.menu-control-hint{display:flex;align-items:center;justify-content:center;gap:8px;margin:15px 0 0;font-size:10px;font-weight:650;color:#527777;white-space:nowrap}
.menu-control-hint i{width:3px;height:3px;background:#75a69d;border-radius:50%}
.touch-hint{display:none}
.menu-footer{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:25px;font-size:10px;font-weight:550;color:#5b8181}
.menu-footer>div{display:flex;align-items:center;gap:12px}
.menu-footer button,.menu-footer a{padding:4px;font-size:11px;font-weight:650;background:none;color:#476f79;text-decoration:none}
.menu-footer a:hover{text-decoration:underline}
.menu-poem{display:none}
.sound-button{position:absolute;z-index:6;right:clamp(22px,4vw,55px);top:max(26px,env(safe-area-inset-top));display:flex;align-items:center;gap:5px;padding:8px 11px;border:2px solid #5080933d;border-radius:12px;background:#f8fff2e6;color:#3f6d7d;font-size:10px;font-weight:750;box-shadow:0 2px 0 #427c8718}
.sound-button>span:first-child{font-size:19px;line-height:1}
.game:not(.is-menu) .sound-button{top:auto;bottom:max(22px,env(safe-area-inset-bottom));right:24px;background:#f8fff2ed}
.hud{position:absolute;inset:0;z-index:3;pointer-events:none;color:#2b5267}
.player-hud{position:absolute;left:26px;top:max(23px,env(safe-area-inset-top));display:flex;align-items:center;gap:10px;min-width:260px;padding:11px 14px 11px 10px;border:2px solid #416d7b5c;border-radius:20px;background:#f6fff4f2;box-shadow:0 4px 0 #37657a21}
.root-emblem{flex:none;display:grid;place-items:center;width:43px;height:43px;border:2px solid #458495;background:#b4e5e4;border-radius:15px;font-size:24px;font-weight:850;color:#347082;transform:rotate(-4deg)}
.player-vitals{flex:1;min-width:168px}
.vitals-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:7px;font-size:12px;line-height:1.3}
.vitals-label b{font-weight:850;letter-spacing:.2px}
.vitals-label>span{font-size:9px;font-weight:650;color:#658487;white-space:nowrap}
.health-track{position:relative;height:13px;overflow:hidden;border:1px solid #407b655c;border-radius:7px;background:#d5e7d9}
.health-track>i{display:block;width:100%;height:100%;border-radius:inherit;background:#70c78a;transition:width .15s}
.health-track>span{position:absolute;inset:0;display:grid;place-items:center;font-size:9px;font-weight:850;letter-spacing:.2px;color:#174f4c;text-shadow:0 1px 0 #ffffff99;font-variant-numeric:tabular-nums}
.xp-track{height:5px;margin-top:5px;overflow:hidden;border-radius:5px;background:#d7e9ea}
.xp-track>i{display:block;width:0;height:100%;border-radius:inherit;background:#5bb9dd;transition:width .15s}
.stage-hud{position:absolute;top:23px;left:50%;transform:translateX(-50%);text-align:center;min-width:164px;padding:0 8px}
.stage-hud::before{content:'';position:absolute;inset:-7px -14px -10px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,#f4fff4e6 15%,#f4fff4b3 55%,#f4fff400 75%)}
.stage-hud>span{display:block;font-size:9px;font-weight:800;letter-spacing:2px;color:#527f87}
.stage-hud strong{display:block;font-size:25px;font-weight:900;letter-spacing:2px;line-height:1.55;color:#285b72;text-shadow:0 2px 0 #fff}
.stage-hud small{font-size:10px;font-weight:700;color:#507580}
.run-hud{position:absolute;right:26px;top:max(25px,env(safe-area-inset-top));display:flex;align-items:center;gap:12px;pointer-events:auto}
.run-stats{display:flex;align-items:center;gap:17px;padding:11px 14px;background:#f7fff4f0;border:2px solid #507b8a45;border-radius:14px;box-shadow:0 3px 0 #396c7920}
.run-stats>span{display:flex;align-items:center;gap:7px;font-size:13px}
.run-stats i{font-style:normal;font-size:15px;font-weight:850;color:#5f9997}
.run-stats b{font-weight:800;font-variant-numeric:tabular-nums}
.icon-button{height:40px;width:40px;border:2px solid #538395;border-radius:13px;background:#d0eef0;font-size:18px;font-weight:900;box-shadow:0 3px 0 #538395;color:#336c80}
.icon-button:active{translate:0 2px;box-shadow:none}
.boss-hud{position:absolute;top:109px;left:50%;transform:translateX(-50%);width:min(330px,50vw);padding:8px 12px 10px;border:2px solid #9864573b;border-radius:14px;background:#fff8edec;color:#98564c;box-shadow:0 3px 0 #8c5b4420}
.boss-hud>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;font-size:12px;font-weight:800}
.boss-hud>div:first-child>span:last-child{font-size:9px;font-weight:750;font-variant-numeric:tabular-nums}
.boss-track{height:7px;overflow:hidden;border-radius:5px;background:#eacfc2}
.boss-track i{display:block;width:100%;height:100%;border-radius:inherit;background:#ed8874;transition:width .15s}
.build-dock{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:7px;max-width:calc(100% - 260px);pointer-events:none}
.build-token{position:relative;display:grid;place-items:center;flex:0 1 44px;width:44px;height:44px;min-width:29px;border:2px solid #507c8b6b;border-radius:12px;background:#f7fff4ed;color:#508cad;box-shadow:0 3px 0 #3c687a24}
.build-token .token-glyph{display:grid;place-items:center;width:34px;height:34px}
.token-glyph svg{width:100%;height:100%}
.build-token .token-level{position:absolute;right:-3px;bottom:-4px;display:grid;place-items:center;min-width:15px;height:15px;border:1px solid #4c8091;border-radius:6px;background:#b2e1e9;color:#2e5c70;font-size:9px;font-weight:850;line-height:1}
.build-empty{padding:9px 13px;border-radius:12px;background:#f4fff0d9;color:#528079;font-size:11px;font-weight:700;white-space:nowrap}
.dash-button{position:absolute;right:max(40px,env(safe-area-inset-right));bottom:max(78px,env(safe-area-inset-bottom));z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;width:82px;height:82px;border:3px solid #38738b;border-radius:50%;background:#a4ddeb;box-shadow:0 5px 0 #32647c,0 8px 16px #396a7026;color:#245b77;touch-action:none;transition:background .12s,transform .12s}
.dash-button:active{transform:translateY(3px);box-shadow:0 2px 0 #32647c}
.dash-glyph{font-size:30px;font-weight:900;line-height:1.2}
.dash-button>span:last-of-type{font-size:10px;font-weight:850;letter-spacing:1px;color:#477d93}
.dash-button svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);fill:none;stroke:#f6fff6;stroke-width:4}
.dash-button circle{stroke-dasharray:289;stroke-dashoffset:0;transition:stroke-dashoffset .08s}
.dash-button.is-cooling{background:#bed6d9;border-color:#6d979f;box-shadow:0 4px 0 #6d979f;color:#608b95}
.move-stick{position:absolute;left:max(35px,env(safe-area-inset-left));bottom:max(82px,env(safe-area-inset-bottom));z-index:4;display:none;width:100px;height:100px;touch-action:none;pointer-events:auto}
.stick-ring{position:absolute;inset:0;border:2px solid #467d8863;border-radius:50%;background:#f2fff260;box-shadow:inset 0 0 0 9px #e4f8e943}
.stick-knob{position:absolute;left:29px;top:29px;width:42px;height:42px;border:2px solid #518591;border-radius:50%;background:#c3e5dbea;box-shadow:0 3px 0 #51859166;pointer-events:none}
.move-stick small{position:absolute;left:0;right:0;top:107px;text-align:center;color:#456f74;font-size:10px;font-weight:800;letter-spacing:1px;text-shadow:0 1px 0 #f7fff0}
.playing-hint{position:absolute;top:23%;left:50%;transform:translateX(-50%);z-index:3;width:max-content;max-width:80%;padding:11px 17px;border:2px solid #4e8b7d40;border-radius:14px;background:#f7fff2f2;color:#3b736b;text-align:center;white-space:nowrap;font-size:12px;font-weight:700;line-height:1.6;box-shadow:0 3px 0 #4373611a;pointer-events:none;animation:hint-in .2s ease-out}
.toast{position:absolute;bottom:22%;left:50%;transform:translateX(-50%);z-index:20;max-width:85vw;padding:12px 19px;border:2px solid #44747d;border-radius:15px;background:#f2fff3f5;color:#3a6d71;text-align:center;font-size:13px;font-weight:750;line-height:1.7;box-shadow:0 4px 0 #44747d33;pointer-events:none}
.dialog-layer{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:28px;background:#254f6252;backdrop-filter:blur(3px)}
.dialog{position:relative;width:min(850px,100%);max-height:calc(100dvh - 56px);overflow:auto;overscroll-behavior:contain;padding:35px 36px 30px;border:3px solid #548395;border-radius:28px;background:#f8fff4;box-shadow:0 8px 0 #345c735c,0 20px 60px #204e6433;text-align:center;color:var(--ink)}
.dialog.narrow{max-width:430px}
.dialog-kicker{margin:0 0 9px;color:#569489;font-size:10px;font-weight:850;letter-spacing:2px}
.dialog h2{margin:0 0 12px;font-size:30px;font-weight:900;line-height:1.4;letter-spacing:1px;color:#2e6276}
.dialog-copy{max-width:530px;margin:0 auto 22px;color:#628085;font-size:13px;font-weight:550;line-height:1.85}
.upgrade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0 13px}
.upgrade-card{position:relative;display:flex;flex-direction:column;align-items:center;min-height:265px;padding:18px 15px 15px;border:2px solid #66999470;border-radius:21px;background:#eff9ee;box-shadow:0 5px 0 #81aaa04a;text-align:center;transition:transform .17s,box-shadow .17s,background .17s}
.upgrade-card:hover,.upgrade-card:focus-visible{transform:translateY(-5px);border-color:#4b9794;background:#f5fff1;box-shadow:0 9px 0 #81aaa04a}
.upgrade-card:active{transform:translateY(2px);box-shadow:0 1px 0 #81aaa04a}
.upgrade-art{display:grid;place-items:center;width:92px;height:92px;margin-bottom:12px;border-radius:27px;background:color-mix(in srgb,var(--card-color,#62b5ce) 16%,#fafff5);color:var(--card-color,#62b5ce);transform:rotate(-3deg)}
.upgrade-art svg{width:77px;height:77px;transform:rotate(3deg)}
.upgrade-card strong{font-size:20px;font-weight:850;line-height:1.3;letter-spacing:.5px;color:#355f70}
.upgrade-rank{margin:9px 0 13px;padding:4px 8px;border-radius:7px;background:#d5ece0;color:#4e8a74;font-size:9px;font-weight:800;letter-spacing:.3px}
.upgrade-card p{margin:0;color:#5e7f7a;font-size:13px;font-weight:550;line-height:1.75}
.choose-mark{margin-top:auto;padding-top:17px;font-size:10px;font-weight:800;letter-spacing:1px;color:#66958a}
.dialog-note{margin:14px 0 0;color:#7a9590;font-size:10px;font-weight:600;line-height:1.7}
.dialog-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:13px;margin-top:24px;padding-bottom:5px}
.dialog-actions .button{min-width:150px}
.dialog-stack{display:flex;flex-direction:column;gap:13px;margin-top:23px;padding-bottom:5px}
.text-button{padding:12px;background:none;color:#6f8d90;font-size:12px;font-weight:700}
.journey-path{display:flex;justify-content:center;margin:28px 0;gap:0}
.journey-step{position:relative;flex:1;padding-top:42px;font-size:12px;font-weight:750;color:#84a298}
.journey-step::before{position:absolute;top:1px;left:calc(50% - 14px);z-index:1;content:'·';display:grid;place-items:center;width:28px;height:28px;border:2px solid #b9d6c2;border-radius:50%;background:#e1f0e3;color:#7da692;font-size:22px;line-height:1}
.journey-step::after{position:absolute;content:'';left:50%;top:15px;width:100%;height:3px;background:#c8e3d0}
.journey-step:last-child::after{display:none}
.journey-step.is-done::before{content:'✓';background:#9edbb7;border-color:#71aa90;color:#3b7a68;font-size:17px}
.journey-step.is-next{color:#317e90}
.journey-step.is-next::before{content:'➜';background:#b3e2ed;border-color:#68a9bc;color:#397e97;font-size:17px}
.result-mark{display:grid;place-items:center;width:78px;height:78px;margin:3px auto 18px;border:2px solid #71aba4;border-radius:26px;background:#cbebd7;color:#498d84;font-size:43px;font-weight:900;line-height:1;transform:rotate(-5deg)}
.result-stats{display:flex;justify-content:center;margin-top:21px;padding:19px 0;border-top:2px dashed #c7e1cf;border-bottom:2px dashed #c7e1cf}
.result-stats>div{flex:1;padding:0 8px;border-right:1px solid #c7e1cf}
.result-stats>div:last-child{border:0}
.result-stats b{display:block;font-size:25px;font-weight:900;line-height:1.2;color:#438b90;font-variant-numeric:tabular-nums}
.result-stats span{display:block;margin-top:7px;color:#76928b;font-size:10px;font-weight:700;letter-spacing:1px}
.result-build{margin:20px 0 0;font-size:12px;font-weight:600;line-height:2;color:#698980}
.help-list{display:grid;gap:18px;margin:22px 0 14px;text-align:left}
.help-list>div{display:flex;align-items:center;gap:14px}
.help-list i{flex:none;display:grid;place-items:center;width:35px;height:35px;border:2px solid #78ada8;border-radius:12px;background:#d0eee0;color:#4f9184;font-size:16px;font-weight:900;font-style:normal}
.help-list b{display:block;margin-bottom:5px;font-size:14px;font-weight:800}
.help-list p{margin:0;color:#72908b;font-size:11px;font-weight:550;line-height:1.8}
.fatal-error{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:var(--paper);color:var(--ink)}
.fatal-error button{padding:13px 27px;border:2px solid #5b8995;border-radius:14px;background:#bde5e5;font-weight:800}
.fatal-error a{color:var(--muted)}
@keyframes hint-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@media(pointer:coarse){.desktop-hint{display:none}.touch-hint{display:inline}.move-stick{display:block}.upgrade-card:hover{transform:none}}
@media(max-height:750px) and (min-width:701px){.main-menu{padding-top:23px;padding-bottom:18px}.menu-title{margin-top:24px}h1{font-size:91px}.menu-tagline{margin:18px 0 8px;font-size:20px}.menu-description{font-size:12px}.menu-actions{padding-top:18px}.menu-footer{margin-top:20px}.menu-control-hint{margin-top:13px}.eyebrow{margin-bottom:13px}.title-seal{font-size:14px}.dialog{padding-top:27px;padding-bottom:23px}.upgrade-card{min-height:245px}.upgrade-art{width:80px;height:80px}.upgrade-art svg{width:67px;height:67px}.dialog h2{font-size:28px}}
@media(max-width:700px){
.main-menu{padding:max(23px,env(safe-area-inset-top)) 23px max(16px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#f1fcf0d9 0,#f1fcf030 39%,transparent 52%,#f1fcf080 68%,#f1fcf0f2 90%)}
.edition{font-size:9px;letter-spacing:.6px;gap:7px}.edition-mark{width:24px;height:24px}.menu-title{margin-top:23px}.eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:12px}.title-row{gap:10px}h1{font-size:75px;letter-spacing:1px;line-height:.95}.title-seal{margin-top:2px;padding:9px 5px 5px;font-size:12px;letter-spacing:4px;border-radius:11px}.menu-tagline{margin:19px 0 9px;font-size:18px;letter-spacing:1px}.menu-description{font-size:11px;line-height:1.75}.menu-actions{width:100%;padding-top:20px}.root-heading{font-size:9px;margin-bottom:9px}.root-choices{gap:7px}.root-choice{gap:5px;padding:9px 5px;font-size:10px;border-radius:11px}.root-choice strong{font-size:16px;width:22px;height:22px;border-radius:7px}.start-button{margin-top:13px;padding:12px 20px;font-size:19px;letter-spacing:1px;border-radius:15px}.start-button>span:last-child{width:27px;height:27px;font-size:23px}.continue-button{margin-top:11px;padding:9px 11px;font-size:11px}.continue-button span:first-child{font-size:9px}.menu-control-hint{font-size:9px;gap:6px;margin-top:14px}.menu-footer{margin-top:23px;font-size:8px;font-weight:600}.menu-footer>div{gap:7px}.menu-footer button,.menu-footer a{padding:3px;font-size:10px}.desktop-hint{display:none}.touch-hint{display:inline}.sound-button{right:20px;top:max(23px,env(safe-area-inset-top));padding:6px 8px;border-width:1.5px;border-radius:10px;font-size:9px}.sound-button>span:first-child{font-size:17px}.game:not(.is-menu) .sound-button{right:14px;bottom:max(17px,env(safe-area-inset-bottom));padding:5px 7px;font-size:8px}
.player-hud{left:12px;top:max(16px,env(safe-area-inset-top));min-width:181px;padding:8px 9px 8px 7px;gap:7px;border-width:1.5px;border-radius:16px}.root-emblem{width:32px;height:35px;font-size:19px;border-width:1.5px;border-radius:11px}.player-vitals{min-width:120px}.vitals-label{font-size:10px;gap:7px;margin-bottom:5px}.vitals-label>span{font-size:8px}.health-track{height:11px}.health-track>span{font-size:8px}.xp-track{height:4px;margin-top:4px}.stage-hud{top:89px;min-width:145px}.stage-hud>span{font-size:8px;letter-spacing:1.5px}.stage-hud strong{font-size:21px;letter-spacing:1px;line-height:1.5}.stage-hud small{font-size:9px}.stage-hud::before{inset:-7px -11px -10px}.run-hud{right:12px;top:max(17px,env(safe-area-inset-top));gap:7px}.run-stats{flex-direction:column;align-items:flex-start;gap:4px;padding:6px 7px;border-width:1.5px;border-radius:11px}.run-stats>span{min-width:40px;font-size:10px;gap:4px}.run-stats i{font-size:10px}.icon-button{width:30px;height:32px;border-width:1.5px;border-radius:10px;font-size:15px}.boss-hud{top:162px;width:63vw;padding:7px 10px 8px;border-width:1.5px;border-radius:12px}.boss-hud>div:first-child{margin-bottom:5px;font-size:10px}.boss-hud>div:first-child>span:last-child{font-size:8px}.boss-track{height:6px}.build-dock{left:15px;bottom:max(20px,env(safe-area-inset-bottom));transform:none;max-width:calc(100% - 90px);gap:5px}.build-token{flex-basis:30px;width:30px;min-width:22px;height:33px;border-width:1.5px;border-radius:9px}.build-token .token-glyph{width:27px;height:27px}.build-token .token-level{min-width:12px;height:13px;right:-3px;bottom:-4px;font-size:8px;border-radius:4px}.build-empty{padding:9px 10px;font-size:9px;border-radius:10px}.dash-button{right:24px;bottom:max(83px,env(safe-area-inset-bottom));width:72px;height:72px}.dash-glyph{font-size:26px}.dash-button>span:last-of-type{font-size:9px}.move-stick{display:block;left:26px;bottom:max(84px,env(safe-area-inset-bottom));width:94px;height:94px}.stick-knob{left:26px;top:26px}.move-stick small{top:101px;font-size:9px}.playing-hint{top:28%;max-width:84%;padding:9px 12px;border-width:1.5px;border-radius:12px;white-space:normal;font-size:11px;line-height:1.7}.toast{bottom:26%;font-size:11px;padding:10px 14px;border-radius:12px}
.dialog-layer{padding:16px}.dialog{max-height:calc(100dvh - 32px);padding:26px 20px 22px;border-width:2px;border-radius:23px}.dialog h2{font-size:25px;letter-spacing:.5px;margin-bottom:10px}.dialog-kicker{font-size:9px;letter-spacing:1.5px}.dialog-copy{font-size:12px;line-height:1.8;margin-bottom:17px}.upgrade-grid{grid-template-columns:1fr;gap:11px;margin:20px 0 12px}.upgrade-card{display:grid;grid-template-columns:68px minmax(0,1fr);grid-template-rows:auto auto auto;align-items:center;column-gap:13px;min-height:112px;padding:13px 12px;text-align:left;border-radius:17px}.upgrade-art{grid-column:1;grid-row:1/4;width:67px;height:67px;border-radius:20px;margin:0}.upgrade-art svg{width:59px;height:59px}.upgrade-card strong{grid-column:2;grid-row:1;font-size:17px;letter-spacing:.2px}.upgrade-rank{grid-column:2;grid-row:2;justify-self:start;margin:5px 0 6px;padding:3px 6px;border-radius:5px;font-size:9px}.upgrade-card p{grid-column:2;grid-row:3;font-size:11px;line-height:1.65}.choose-mark{display:none}.dialog-note{font-size:9px;margin-top:14px}.dialog-actions{gap:10px;margin-top:21px}.dialog-actions .button{flex:1;min-width:0;padding:11px 10px;font-size:12px;letter-spacing:.4px}.dialog-stack{gap:12px;margin-top:20px}.dialog-stack .button{font-size:13px;padding:12px 14px}.journey-path{margin:23px 0}.journey-step{font-size:10px}.result-mark{width:64px;height:64px;font-size:35px;border-radius:22px;margin-bottom:16px}.result-stats{padding:16px 0}.result-stats b{font-size:22px}.result-stats span{font-size:9px;letter-spacing:.5px}.result-build{font-size:11px;line-height:1.9}.help-list{gap:17px}.help-list>div{gap:12px}.help-list b{font-size:13px}.help-list p{font-size:10px}
}
@media(max-height:690px) and (max-width:700px){.main-menu{padding-top:17px;padding-bottom:13px}.edition{font-size:8px}.edition-mark{width:21px;height:21px}.menu-title{margin-top:17px}.eyebrow{margin-bottom:10px;font-size:7px}h1{font-size:61px}.title-seal{font-size:11px}.menu-tagline{font-size:16px;margin:14px 0 8px}.menu-description{font-size:10px}.menu-actions{padding-top:16px}.root-heading{margin-bottom:7px}.root-choice{padding-top:7px;padding-bottom:7px}.start-button{padding:10px 18px;margin-top:11px}.continue-button{padding:8px 10px;margin-top:10px}.menu-control-hint{font-size:8px;margin-top:11px}.menu-footer{margin-top:17px}.dialog{padding-top:22px;padding-bottom:19px}.dialog h2{font-size:23px}.dialog-copy{margin-bottom:14px}.upgrade-grid{gap:9px;margin-top:16px}.upgrade-card{min-height:99px;padding:11px}.upgrade-art{width:59px;height:59px}.upgrade-art svg{width:53px;height:53px}.upgrade-card{grid-template-columns:60px minmax(0,1fr);column-gap:10px}.upgrade-card strong{font-size:16px}.upgrade-card p{font-size:10px}.upgrade-rank{margin:4px 0 5px}}
@media(max-width:360px){.main-menu{padding-left:20px;padding-right:20px}.root-choice{padding-left:4px;padding-right:4px;gap:4px;font-size:9px}.root-choice strong{font-size:15px;width:20px;height:21px}.root-heading{font-size:8px}.root-choices{gap:6px}.menu-control-hint{font-size:8px;gap:5px}.menu-footer{font-size:7px}.menu-footer button,.menu-footer a{font-size:9px}.menu-footer>div{gap:5px}.player-hud{left:10px;padding-left:6px;padding-right:8px;min-width:178px}.run-hud{right:10px;gap:6px}.run-stats{padding:6px}.run-stats>span{min-width:37px}.dialog{padding-left:15px;padding-right:15px}.upgrade-card{column-gap:9px;grid-template-columns:59px minmax(0,1fr)}.upgrade-art{width:58px;height:58px}.upgrade-art svg{width:52px;height:52px}.upgrade-card strong{font-size:16px}.upgrade-card p{font-size:10px}}
@media(max-height:480px) and (min-width:601px){.main-menu{padding:16px 27px}.edition{font-size:9px}.menu-title{margin-top:15px}.eyebrow{font-size:7px;margin-bottom:10px}h1{font-size:61px}.title-seal{font-size:11px}.menu-tagline{font-size:16px;margin-top:13px}.menu-description{font-size:10px}.menu-actions{position:absolute;right:39px;bottom:56px;width:290px}.menu-footer{margin-top:auto}.root-choice{font-size:10px;padding:8px 5px}.start-button{padding:10px 18px;font-size:18px}.stage-hud{top:16px}.player-hud,.run-hud{top:15px}.boss-hud{top:89px}.build-dock{bottom:16px}.dash-button{bottom:43px;width:64px;height:64px}.dash-glyph{font-size:24px}.move-stick{bottom:40px;width:80px;height:80px}.stick-knob{left:20px;top:20px;width:40px;height:40px}.move-stick small{top:86px}.dialog{padding:21px 26px;border-radius:23px}.dialog h2{font-size:24px}.dialog-copy{font-size:11px;margin-bottom:11px}.dialog-kicker{font-size:9px}.upgrade-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.upgrade-card{display:flex;min-height:187px;padding:11px;text-align:center}.upgrade-art{width:53px;height:53px;border-radius:17px;margin-bottom:9px}.upgrade-art svg{width:48px;height:48px}.upgrade-card strong{font-size:16px}.upgrade-rank{margin:6px 0 9px;font-size:8px}.upgrade-card p{font-size:10px;line-height:1.5}.choose-mark{display:none}.dialog-note{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Twelve learned abilities remain visible without borrowing the sound or
   movement controls' space on a narrow screen. */
@media(max-width:700px){.build-dock{flex-wrap:wrap;align-content:flex-end;max-width:calc(100% - 94px);gap:7px 5px}.build-token{flex:0 0 28px;width:28px;min-width:28px;height:31px}.build-token .token-glyph{width:24px;height:24px}}
@media(max-width:700px) and (min-height:481px){.move-stick,.dash-button{bottom:calc(112px + env(safe-area-inset-bottom,0px))}}
@media(max-height:480px) and (min-width:601px) and (max-width:700px){.build-dock{left:50%;transform:translateX(-50%);max-width:calc(100% - 220px);justify-content:center}}
