@font-face{font-family:Barlow Condensed;src:url('../fonts/barlow-condensed-extrabold.ttf') format('truetype');font-weight:800 900;font-display:swap}
:root{color-scheme:dark;--paper:#f0ede0;--ink:#0b151e;--muted:#9fb2b5;--accent:#ffc66d;--line:#52657166;--sans:Inter,Arial,"PingFang SC","Microsoft YaHei",sans-serif;--display:"Barlow Condensed","Arial Narrow",var(--sans)}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#08131c;color:var(--paper);font-family:var(--sans)}button,a,input{ -webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #a9dce5;outline-offset:4px}button:disabled{cursor:default;opacity:.5}a{color:inherit;text-decoration:none}button{border:1px solid var(--line);background:#1a2d38;border-radius:7px}button:hover{background:#2a424f;border-color:#d1dfcd88}button:active{transform:translateY(1px)}button.primary{background:var(--accent);border-color:var(--accent);color:#14212a;font-weight:800;box-shadow:0 4px 0 #76592d;padding:17px 25px;font-size:17px;letter-spacing:.02em}button.primary:hover{background:#ffdb98}button.secondary{padding:13px 18px;font-size:14px}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}button.icon{width:44px;height:44px;display:grid;place-items:center;padding:0;background:#0e1d27}button.icon[aria-pressed=true]{color:var(--accent);border-color:#bdab7766}
.topbar{height:66px;max-width:1500px;margin:auto;padding:10px 26px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #41586244}.brand{display:flex;gap:9px;align-items:center;font:800 22px var(--display);letter-spacing:.07em}.brand svg{width:28px;height:28px;color:var(--accent)}.brand .again{color:#91a8af}.top-title{font-size:12px;letter-spacing:.21em;color:#90a6b0}.top-actions{display:flex;gap:8px;align-items:center}.language{height:44px;min-width:48px;font-weight:700;font-size:14px}.layout{height:calc(100dvh - 66px);display:flex;align-items:center;justify-content:center;gap:30px;padding:14px 22px 16px;background:radial-gradient(ellipse at 50% 25%,#23394555,transparent 65%)}.rail-panel{width:204px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}.rail-panel.right{width:190px}.eyebrow{font-size:11px;letter-spacing:.17em;color:#aabfc3;text-transform:uppercase;font-weight:700;margin:0 0 11px}.side-title{font:800 39px/1 var(--display);margin:0 0 12px;letter-spacing:.02em}.side-desc{font-size:14px;line-height:1.65;color:#9fb2b5;margin:0}.side-line{height:1px;background:var(--line);margin:23px 0}.build-art{height:150px;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse,#50728a22,transparent 70%);border-bottom:1px solid var(--line);margin-bottom:20px}.build-art canvas{width:170px;height:170px}.side-stat{display:flex;justify-content:space-between;padding:10px 0;color:#a6b6b8;font-size:13px}.side-stat b{color:var(--paper);font-variant-numeric:tabular-nums}.milestone-list{padding:0;margin:20px 0;list-style:none}.milestone-list li{border-left:2px solid #354955;padding:8px 0 14px 16px;font-size:12px;color:#84999f;line-height:1.5}.milestone-list li strong{display:block;font-size:15px;color:#aebfc0}.milestone-list li.done{border-color:var(--accent)}.milestone-list li.done strong{color:var(--paper)}kbd{font:700 12px var(--sans);padding:4px 7px;background:#263c49;border:1px solid #647983;border-bottom-width:3px;border-radius:4px;color:#c8d2cf;display:inline-block}.controls-copy{font-size:12px;color:#829aa2;line-height:2}.cockpit{height:100%;width:min(680px,calc((100dvh - 97px)*.79));min-width:290px;display:flex;flex-direction:column;border:1px solid #5d72766b;border-radius:12px;overflow:hidden;box-shadow:0 20px 80px #0005;background:#10202a;position:relative}.hud{flex:none;height:66px;padding:12px 17px;background:#102330;display:flex;align-items:center;justify-content:space-between;gap:14px;z-index:1}.health{width:135px}.health-top{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#b2c2c2;letter-spacing:.05em;margin-bottom:7px}.health-top b{font-size:14px;color:#e9e9d9;letter-spacing:0}.bar{height:6px;background:#344651;border-radius:2px;overflow:hidden}.bar>i{height:100%;display:block;width:100%;background:#b0d0b5;transition:width .2s}.health.low .bar>i{background:#ff8b6e}.time{text-align:center;font:800 30px/.9 var(--display);font-variant-numeric:tabular-nums;letter-spacing:.025em}.time small{display:block;font:500 10px var(--sans);color:#90a5ac;margin-top:6px;letter-spacing:.15em}.hud-path{text-align:right;font-size:11px;line-height:1.7;color:var(--accent);max-width:130px}.hud-path strong{font:800 20px var(--display);display:block;letter-spacing:.035em}.timeline{height:3px;flex:none;background:#253e4b;z-index:2}.timeline i{display:block;background:var(--accent);height:100%;width:0}.arena{position:relative;flex:1;min-height:0;touch-action:none;overflow:hidden}.arena canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.bottom-bar{min-height:57px;display:flex;align-items:center;gap:10px;padding:8px 12px;background:#102330;z-index:2}.burst{height:42px;flex:1;position:relative;overflow:hidden;text-align:center;background:#1c3541;color:#9fb4bc;font-size:13px;font-weight:800;letter-spacing:.045em}.burst .fill{position:absolute;inset:0;transform-origin:left;background:#ffc66d22;pointer-events:none}.burst span{position:relative}.burst.ready{background:var(--accent);color:#152734;border-color:var(--accent);box-shadow:0 0 20px #ffc66d22}.burst.ready .fill{background:transparent}.burst.live{background:#ffdfa2;color:#132633}.mobile-pause{display:none}.hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);max-width:90%;background:#0c1a23e8;border:1px solid #a6b8b566;padding:10px 15px;text-align:center;font-size:13px;line-height:1.5;pointer-events:none;border-radius:6px;color:#e6e5d4;z-index:3;white-space:normal}.hint:empty{display:none}.boss-hud{display:none;position:absolute;top:14px;left:8%;width:84%;pointer-events:none;background:#112330e6;border:1px solid #b78c6255;padding:11px 15px;border-radius:6px;z-index:3}.boss-hud.show{display:block}.boss-hud strong{font:800 20px var(--display);letter-spacing:.06em;display:block;margin-bottom:8px}.boss-hud .bar>i{background:#edb57b}.combo{position:absolute;right:18px;top:24px;pointer-events:none;text-align:right;color:#ffe1a2;font:800 33px var(--display);text-shadow:0 2px 15px #000}.combo small{font:700 10px var(--sans);display:block;letter-spacing:.12em;color:#cfb78c}.boss-hud.show~.combo{top:90px}.toast{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);background:#10212bf2;border-block:1px solid #a6b79c66;padding:18px 36px;min-width:65%;text-align:center;pointer-events:none;z-index:4;opacity:0;transition:opacity .2s}.toast.show{opacity:1}.toast strong{font:800 32px var(--display);display:block;color:#ffe0a3;letter-spacing:.03em}.toast small{display:block;color:#b8c8c2;font-size:12px;margin-top:7px}.overlay{position:fixed;inset:66px 0 0;z-index:9;display:flex;align-items:center;justify-content:center;background:#06121a8a;backdrop-filter:blur(6px);padding:20px;overflow:auto}.overlay[hidden]{display:none}.modal{width:min(880px,100%);max-height:100%;overflow:auto;border:1px solid #87999566;border-radius:13px;background:linear-gradient(145deg,#203642fa,#10232cfc);box-shadow:0 25px 90px #0007;padding:32px}.menu-modal{display:grid;grid-template-columns:1.02fr 1fr;gap:32px}.game-title{font:800 clamp(48px,7vw,90px)/.9 var(--display);letter-spacing:.01em;margin:7px 0 15px}.game-title .line{color:var(--accent)}.chinese-title{font-size:18px;letter-spacing:.3em;color:#b8c5bf;margin:0 0 15px}.pitch{font-size:15px;color:#bcc9c7;line-height:1.7;max-width:330px;margin:0 0 20px}.promise{display:flex;gap:13px;font-size:11px;letter-spacing:.03em;color:#99b0b7;border-block:1px solid var(--line);padding:13px 0;margin:18px 0}.launch{display:grid;gap:12px}.build-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mini-build{background:#0b1d2877;border:1px solid #576c7655;border-radius:7px;overflow:hidden;padding:3px 10px 11px;border-bottom:2px solid var(--path);text-align:center}.mini-build canvas{width:100px;height:92px;display:block;margin:auto}.mini-build strong{font:800 17px var(--display);letter-spacing:.03em;color:var(--path)}.mini-build p{font-size:11px;margin:5px 0 0;color:#aebfc2}.menu-aside .eyebrow{margin-top:4px}.settings{margin-top:18px;border-top:1px solid var(--line);padding-top:13px}.settings summary{cursor:pointer;font-size:13px;color:#afc1c4;padding:6px 0}.settings-inner{display:grid;gap:14px;margin-top:12px;font-size:13px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-row label{display:flex;align-items:center;gap:9px;line-height:1.4}input[type=checkbox]{accent-color:var(--accent);width:18px;height:18px}input[type=range]{accent-color:var(--accent);max-width:140px}.option-row{display:flex;gap:7px;flex-wrap:wrap}.option-row button{flex:1;padding:10px 6px;font-size:12px;min-height:44px}.option-row button.selected{border-color:var(--accent);background:#d5ad6522;color:#ffe0a6}.operation-desc{font-size:12px;line-height:1.55;color:#a9bbc0;min-height:35px;margin:8px 0 15px}.option-label{font-size:11px;letter-spacing:.10em;color:#9cafb2;margin-bottom:7px}.settings-note{font-size:12px;color:#afc0c0;line-height:1.6;margin:0}.modal-title{font:800 clamp(28px,4vw,43px)/1.1 var(--display);letter-spacing:.03em;margin:8px 0 12px}.modal-intro{font-size:14px;line-height:1.6;color:#b7c9ca;margin:0 0 22px}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.choice{position:relative;text-align:left;border:1px solid #78909577;border-bottom:3px solid var(--path);background:#102732;padding:17px 17px 19px;display:grid;grid-template-columns:75px 1fr;gap:13px;align-items:center;min-height:142px}.choice:hover{border-color:var(--path);background:#29444e}.choice canvas{width:75px;height:90px}.choice strong{font:800 24px var(--display);letter-spacing:.02em;color:var(--path);display:block;line-height:1.1}.choice p{margin:10px 0 0;font-size:13px;line-height:1.6;color:#ccdad7}.choice .choice-key{position:absolute;top:7px;right:10px;font-size:10px;color:#819a9f}.evolution-track{display:flex;gap:6px;margin-top:20px}.evolution-track i{height:4px;flex:1;background:#37515c}.evolution-track i.active{background:var(--accent)}.small-modal{max-width:430px;text-align:center}.small-modal .launch{margin-top:23px}.result-mark{font:800 82px/.9 var(--display);color:var(--accent);margin:12px 0}.result-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left;margin:22px 0}.result-stats>div{background:#0e222c;border:1px solid var(--line);padding:13px 16px;border-radius:5px}.result-stats b{display:block;font:800 30px var(--display)}.result-stats span{font-size:12px;color:#99b1b5}.route-history{font-size:12px;color:#b7c6c8;line-height:1.9;padding:10px 0;border-top:1px solid var(--line)}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.qa-strip{position:fixed;left:0;bottom:0;z-index:30;background:#102331;padding:5px;font:12px monospace;color:white}.qa-strip button{margin:3px;padding:5px}
@media(min-width:1600px){.layout{gap:55px}.rail-panel{width:230px}.cockpit{max-width:750px}}@media(max-width:1100px){.rail-panel.right{display:none}.layout{gap:22px}.rail-panel{width:180px}.side-title{font-size:32px}}@media(max-width:800px){.rail-panel{display:none}.layout{padding:8px}.cockpit{width:min(100%,610px)}.topbar{padding:9px 14px}.top-title{display:none}.menu-modal{gap:22px;padding:25px}.game-title{font-size:68px}}@media(max-width:600px){.topbar{height:54px;padding:5px 11px}.brand{font-size:18px;gap:6px}.brand svg{width:21px}.top-actions{gap:5px}.top-actions .icon,.language{height:40px;width:40px;min-width:40px}.layout{height:calc(100dvh - 54px);padding:0;gap:0}.cockpit{width:100%;height:100%;border:0;border-radius:0}.hud{height:60px;padding:10px 14px}.time{font-size:27px}.health{width:114px}.hud-path{max-width:110px}.hud-path strong{font-size:17px}.bottom-bar{padding-bottom:max(9px,env(safe-area-inset-bottom));min-height:60px}.overlay{inset:54px 0 0;padding:12px;align-items:center}.modal{padding:22px 18px;border-radius:10px}.menu-modal{display:block;max-width:400px}.game-title{font-size:64px;margin-bottom:10px}.chinese-title{font-size:14px;margin-bottom:8px}.pitch{font-size:14px;margin-bottom:10px;max-width:none;line-height:1.5}.promise{margin:12px 0;padding:10px 0;gap:14px}.menu-aside{margin-top:17px}.build-grid{grid-template-columns:repeat(4,1fr);gap:5px}.mini-build{padding:1px 3px 8px}.mini-build canvas{width:62px;height:56px}.mini-build strong{font-size:12px;letter-spacing:0}.mini-build p{display:none}.menu-aside>.eyebrow{display:none}.menu-aside .settings{margin-top:12px}.operation-desc{margin-bottom:10px;min-height:0}.choice-grid{gap:10px}.choice{display:block;padding:12px;min-height:180px}.choice canvas{width:65px;height:62px;margin-bottom:6px}.choice strong{font-size:19px}.choice p{font-size:12px;margin-top:7px;line-height:1.55}.modal-intro{margin-bottom:16px;font-size:13px}.modal-title{font-size:30px}.result-mark{font-size:64px}.result-stats{margin:16px 0}.hint{font-size:12px;bottom:12px;max-width:94%;padding:8px 12px}.toast{padding:15px 22px;min-width:85%}.toast strong{font-size:27px}}
@media(max-width:360px){.game-title{font-size:54px}.modal{padding:17px 14px}.choice{min-height:175px;padding:10px}.choice strong{font-size:17px}.promise{font-size:10px;gap:10px}.mini-build strong{font-size:11px}.mini-build canvas{width:56px}.health{width:97px}.hud{gap:8px}.top-actions .icon{width:37px}.brand{font-size:16px}}
@media(max-height:730px) and (max-width:600px){.overlay{padding:8px}.menu-modal{padding:17px}.game-title{font-size:49px}.chinese-title{margin-bottom:6px}.pitch{font-size:13px;line-height:1.45}.promise{margin:9px 0;padding:9px 0}.menu-aside{margin-top:13px}.mini-build canvas{height:43px;width:49px}.mini-build{padding-bottom:6px}.launch{gap:9px}button.primary{padding:13px 20px}.settings{margin-top:10px}.operation-desc{font-size:11px}.choice{min-height:155px}.choice canvas{height:48px;width:52px}.choice p{font-size:12px}.modal-intro{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.language{white-space:nowrap;padding:0}.mini-build strong{display:block;min-height:2.1em;line-height:1.1}.toast.show{pointer-events:none}

.toast.compact{top:auto;bottom:16px;left:16px;transform:none;min-width:0;max-width:75%;padding:9px 15px;text-align:left;border:1px solid #a6b79c66;border-radius:5px}.toast.compact strong{font-size:20px}.toast.compact small{font-size:10px;margin-top:3px}

/* The two combat decisions stay reachable beside the aiming area on phones. */
.bottom-bar .burst{min-width:0;flex:1;font-size:14px;white-space:normal;line-height:1.25;height:48px;padding-inline:8px}
.bottom-bar .special{flex:1.25}
.special.ready{border-color:#f0ca87;box-shadow:inset 0 0 22px #f0ca871c}
.encounter{position:absolute;top:12px;left:50%;transform:translateX(-50%);max-width:92%;width:max-content;padding:9px 14px;border:1px solid #cfb48766;border-left:3px solid #ffc66d;background:#101e2ee6;color:#efe6cc;font-size:14px;line-height:1.4;letter-spacing:.04em;pointer-events:none;opacity:0;transition:opacity .2s;text-align:center}
.encounter.show{opacity:1}
.encounter::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:3px;background:#ffd38b;transform:scaleX(var(--objective,0));transform-origin:left}
.encounter.harvest{border-color:#8fd5bb88;border-left-color:#8fd5bb;color:#c9f3dd}
.encounter.finale{top:91px;font-size:13px}
.boss-hud.show~.combo{top:145px}
.combo{top:76px}
@media(max-width:420px){.bottom-bar .burst{font-size:14px;letter-spacing:0;padding-inline:5px}.bottom-bar{gap:6px}.encounter{font-size:12px;padding:7px 10px}.bottom-bar>.icon{width:38px;flex-shrink:0}}
