:root{color-scheme:dark;
/* 语义色：与 art-tokens.js 的 CSS_VARS 同步（--ink/--cyan/--gold 为镜像） */
--ink:#101923;--paper:#e9eddf;--muted:#8b9ca6;
--cyan:#55d8c2;--gold:#ffd16a;--line:#28343c;
/* 完整语义组，新增 UI 请优先使用 */
--art-night:#101923;--art-steel:#405966;--art-fog:#83949b;--art-gold:#e8aa63;
--art-player:#55d8c2;--art-tech:#61b8ff;--art-enemy:#f06f61;--art-elite:#c77af2;
--art-reward:#ffd16a;--art-rim:#8deae4}*{box-sizing:border-box}body{margin:0;background:#080e15;color:var(--paper);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:14px;background-image:radial-gradient(ellipse at 50% 0%,#273b44 0,transparent 65%)}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid #3b4b55;background:#18232b;color:var(--paper);border-radius:5px;padding:11px 16px;transition:background .15s,border-color .15s,transform .15s}button:hover{background:#2a3941;border-color:var(--cyan)}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4;cursor:default}.primary{background:var(--gold);color:#111b21;border-color:var(--gold);font-weight:800}.primary:hover{background:#ffe0a5;border-color:#ffe0a5}.shell{width:min(1440px,100%);margin:auto;padding:20px 32px 18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:800;text-decoration:none;color:var(--paper);letter-spacing:3px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--gold);color:var(--gold);font-size:30px}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:400;color:var(--muted);margin-top:3px}.mission{font-size:12px;letter-spacing:2px;white-space:nowrap}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan);margin-right:8px}.muted{color:var(--muted)}nav{display:flex;gap:6px}nav button{font-size:12px;padding:8px 11px;background:transparent}.hud{display:grid;grid-template-columns:1fr 1.15fr 1.2fr .65fr;gap:32px;margin-bottom:16px;align-items:center}.meter>div:first-child{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:8px}.meter strong{color:var(--paper);font-size:12px;letter-spacing:1px}.track{height:5px;background:#29353c;overflow:hidden}.track i{display:block;height:100%;transition:width .15s}.health i{background:var(--gold)}.tide i{background:var(--cyan)}.experience i{background:#d99aee}.run-clock{display:flex;justify-content:space-between;align-items:center;gap:8px}.run-clock strong{font-size:24px;font-weight:400;font-variant-numeric:tabular-nums}.run-clock span{font-size:11px;color:var(--muted);white-space:nowrap}.viewport{position:relative;overflow:hidden;aspect-ratio:16/9;border:1px solid #46505a;background:#142a35;box-shadow:0 18px 70px #0007;border-radius:3px}canvas{display:block;width:100%;height:100%}.scene-label{position:absolute;top:16px;left:18px;right:18px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#d8e3ddaa;pointer-events:none}.overlay{position:absolute;inset:0;display:grid;place-items:center;padding:24px;pointer-events:none;background:linear-gradient(90deg,#08121bb8,#0d1c2240)}.overlay:has(> :not([hidden])){background:linear-gradient(90deg,#08121bdf,#0d1c2260)}.panel{pointer-events:auto;width:min(880px,100%);background:#0b161eee;border:1px solid #58707770;border-radius:8px;padding:28px 34px;box-shadow:0 24px 60px #0007;max-height:100%;overflow:auto}.start-panel{width:670px;margin-left:0;margin-right:auto;background:linear-gradient(115deg,#0a151ef7,#10252ce6);border-left:3px solid var(--gold)}.eyebrow{font-size:10px;font-weight:600;letter-spacing:3px;color:var(--gold);margin-bottom:10px}h1{font-size:clamp(32px,4vw,66px);letter-spacing:8px;line-height:1.1;margin:10px 0 14px;font-weight:900}h1 span{color:var(--gold)}.intro{font-size:15px;line-height:1.7;color:#b9c9c9;margin:0 0 18px}.mission-line{display:flex;gap:20px;align-items:center;border-block:1px solid #34444b;padding:12px 0;margin-bottom:18px;font-size:12px;color:#97b1b8}.mission-line b{color:var(--cyan)}.start-fields{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}.start-fields label{font-size:11px;color:var(--muted)}input,select{display:block;width:100%;border:1px solid #3d5059;background:#07131b;color:var(--paper);padding:10px 12px;border-radius:4px;margin-top:6px}.start-actions{display:flex;gap:10px;margin-top:16px}.start-actions .primary{flex:1;display:flex;justify-content:space-between;text-align:left}.tutorial{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}.tutorial>div{display:flex;gap:4px;align-items:center}.tutorial span{font-size:10px;margin-left:3px;color:var(--muted)}kbd{font-family:inherit;font-size:10px;display:inline-block;border:1px solid #4b5c63;border-radius:3px;padding:3px 5px;color:#dde3da;background:#243038}.start-tip{color:#91a8b1;line-height:1.65;font-size:11px;margin:14px 0 0}h2{font-size:30px;letter-spacing:2px;margin:8px 0 12px}.panel>p{color:#a9bcc1;line-height:1.7}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.choices button{min-height:170px;text-align:left;padding:20px;background:linear-gradient(150deg,#223b43,#101e28);border:1px solid #49656c;border-top:3px solid var(--cyan);font-size:14px;line-height:1.6}.choices button:hover{background:linear-gradient(150deg,#31565c,#132833);transform:translateY(-3px)}.choices button strong,.choices h3{display:block;font-size:20px;color:var(--gold);margin:0 0 10px}.choices button small,.choices button p{display:block;font-size:12px;color:#b3c8ca}.choices button span{display:block}.panel-note{text-align:center;font-size:11px}.compact-panel{max-width:420px;text-align:center}.compact-panel button{display:block;width:100%;margin-top:12px}.result-panel{max-width:680px}.result-stats{display:flex;flex-wrap:wrap;justify-content:space-between;gap:15px;padding:18px 0;border-block:1px solid #40515a;color:var(--cyan);line-height:1.8}.result-stats strong{font-size:25px}.result-builds{line-height:1.7;color:#adbbc2;margin:18px 0}.loadout{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:25px;padding:18px 0;border-bottom:1px solid #293841}.section-label{display:block;font-size:10px;letter-spacing:2px;color:var(--muted);margin-bottom:10px}.section-label small{font-size:9px;letter-spacing:0}.chips{display:flex;gap:6px;flex-wrap:wrap;min-height:28px}.chips span,.chips .chip{font-size:11px;background:#152630;padding:6px 9px;border:1px solid #2b4650;border-radius:3px;color:#c7dbdd}.chips .muted{color:#728c99;background:transparent;border-color:transparent}.footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:14px}.touch-controls{display:flex;flex-wrap:wrap;gap:6px}.touch-controls button{font-size:11px;padding:7px 12px}.touch-controls kbd{margin-left:5px;padding:1px 3px;font-size:9px}#storageNote{font-size:10px;color:var(--muted)}.notice{position:absolute;top:15%;left:50%;transform:translateX(-50%);max-width:80%;text-align:center;color:var(--gold);font-size:16px;font-weight:700;letter-spacing:1px;text-shadow:0 2px 5px #000;pointer-events:none}.notice:not(:empty){background:#0b1b24d9;border:1px solid #ffce7d70;padding:10px 22px;border-radius:5px}.boss-hud{position:absolute;top:38px;left:30%;width:40%;color:#ffb8a9;font-size:11px}.boss-hud>div:first-child{display:flex;justify-content:space-between;margin-bottom:8px}.boss-hud .track{height:7px;background:#572e35}.boss-hud i{background:#ff766b}.vehicle-status{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);color:var(--cyan);font-size:15px;font-weight:700;text-shadow:0 2px 5px #000}.vehicle-status:not(:empty){background:#102d38da;padding:8px 18px;border:1px solid #4bbcb6;border-radius:4px}dialog{width:min(900px,92vw);max-height:85vh;background:#0d1c25;color:var(--paper);border:1px solid #4b7177;border-radius:10px;padding:30px;box-shadow:0 25px 100px #000c}dialog::backdrop{background:#020910cd;backdrop-filter:blur(6px)}.research-head{display:flex;justify-content:space-between;gap:20px}.research-head button{align-self:start}.research-items{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:24px}.research-items button,.research-items>div{padding:18px;text-align:left;background:#182b34;border:1px solid #38515b;line-height:1.7}.research-items h3{margin:0;color:var(--gold)}.research-items p{font-size:12px;color:#a9bec4}.research-items button:disabled{opacity:.5}#researchPoints{color:var(--gold);font-size:22px}[hidden]{display:none!important}@media(max-width:1100px){.shell{padding:14px 18px}.mission{display:none}.hud{gap:18px}.start-panel{padding:20px 26px;width:570px}.start-panel h1{font-size:42px;margin:4px 0 10px}.start-panel .intro{font-size:12px;margin-bottom:10px}.mission-line{margin-bottom:12px;padding:8px 0}.tutorial{margin-top:14px;gap:10px}.start-tip{font-size:10px;margin-top:10px}.start-fields input,.start-fields select{padding:8px}.start-actions{margin-top:12px}.start-actions button{padding:9px 12px}.overlay{padding:18px}.loadout{gap:14px}.choices button{padding:15px;min-height:150px}.footer{align-items:start;flex-direction:column;gap:8px}}@media(max-width:700px){.shell{padding:10px}.topbar{margin-bottom:14px;gap:8px;align-items:start}.brand{font-size:15px;letter-spacing:1px;gap:8px}.brand-mark{width:30px;height:30px;font-size:22px}.brand small{font-size:7px}nav{flex-wrap:wrap;justify-content:end;max-width:240px}nav button{font-size:10px;padding:5px 7px}.hud{gap:10px;grid-template-columns:1fr 1fr}.run-clock strong{font-size:20px}.viewport{aspect-ratio:auto;height:470px}canvas{object-fit:cover}.overlay{padding:10px}.start-panel{padding:17px;width:100%;background:#0a151eee}.start-panel h1{font-size:36px}.scene-label{font-size:8px}.choices{gap:7px;margin-top:14px}.choices button{padding:10px;font-size:11px;min-height:150px}.choices button strong,.choices h3{font-size:16px}.choice-panel{padding:18px 14px}.panel h2{font-size:24px}.loadout{grid-template-columns:1fr;gap:12px}.touch-controls button{padding:8px 9px}.research-items{grid-template-columns:1fr}dialog{padding:20px}.boss-hud{left:15%;width:70%}}
.research-transfer{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);display:flex;gap:14px;align-items:center;flex-wrap:wrap}.research-transfer label{flex:1;min-width:160px;color:var(--muted);font-size:12px}.research-transfer input{max-width:100%;font-size:12px}.research-transfer p{width:100%;margin:0;color:var(--cyan);font-size:12px}.result-stats small{display:block;color:var(--muted);font-size:11px}.result-builds>span{display:inline-block;margin:0 6px 6px 0;padding:5px 9px;background:#152c32;border:1px solid #355158;border-radius:3px;color:var(--cyan);font-size:12px}
.loadout{grid-template-columns:1.25fr 1fr 1fr 1fr}.chips span{border-left:2px solid var(--accent,#2b4650)}.result-loadout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.result-loadout section{min-width:0;padding:12px;background:#101f28;border:1px solid #2f454e;border-radius:4px}.result-loadout section>b,.result-builds>b{display:block;color:var(--gold);font-size:12px;margin-bottom:8px}.result-loadout section>div,.result-builds>div{display:flex;flex-wrap:wrap;gap:6px}.result-loadout section span{display:inline-block;padding:5px 7px;background:#182a32;border:1px solid #31454d;border-radius:3px;color:#c6d4d6;font-size:11px;line-height:1.5}.result-builds{padding:12px;background:#0d1a21;border:1px solid #2f454e}.result-builds p{font-size:11px;margin:12px 0 0;color:var(--muted)}@media(max-width:1100px){.loadout{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.result-loadout{grid-template-columns:1fr}.loadout{grid-template-columns:1fr}}
.chips .evolved{border-color:#ffe08a;color:#fff1bd;box-shadow:inset 0 0 14px #ffdb7520}.chips .active-build{flex:1 1 100%;padding:8px 10px;border-color:#6f6250;background:linear-gradient(110deg,#302719,#1d2930)}.active-build b{display:block;color:#ffe29c;font-size:12px}.active-build small{display:block;margin-top:4px;color:#b8c5bf;font-size:10px;line-height:1.45}
/* P5 v5: full-road canvas with persistent desktop build rail. */
.shell{width:min(1760px,100%);padding:16px 24px}.play-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;align-items:start}.viewport{grid-column:2;grid-row:1;aspect-ratio:16/9;height:auto;min-width:0}canvas{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.loadout{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:13px;padding:14px;background:#0d1b24;border:1px solid #30444e;border-radius:5px;max-height:none}.section-label{margin-bottom:6px}.chips{display:grid;grid-template-columns:1fr;gap:5px}.chips .slot{display:block;min-width:0;padding:7px 8px}.slot>b,.slot>small{display:block}.slot>b{font-size:11px;color:#e4e8dc}.slot>small{font-size:9px;line-height:1.5;color:#94a9b1}.slot>small:first-child{color:var(--accent);font-size:8px;letter-spacing:1px}.slot.empty{border-style:dashed;background:#0b151b;color:#74848c}.fallback-note{font-size:10px;line-height:1.5;color:var(--muted)}.chips .active-build{display:block}.mobile-slots{display:none}.footer{align-items:center}.touch-controls{display:flex;flex-wrap:nowrap;gap:8px;align-items:stretch;width:100%}.touch-controls button{min-height:48px;touch-action:none}.touch-controls [data-action=jump]{margin-left:auto;min-width:96px;border-color:#c8aa75}.active-control{min-width:164px;border-color:#66c9bc;background:#133236;text-align:left}.active-control strong,.active-control small{display:block}.active-control strong{font-size:12px}.active-control small{font-size:10px;color:#9cded3}.active-control kbd{float:right}.compact-panel{max-width:620px;text-align:left}.active-options{display:grid;gap:7px}.active-options button{margin:0;text-align:left}.active-options small{display:block;font-size:10px;line-height:1.5;color:#a9bec1}.active-options [aria-pressed=true]{border-color:var(--gold);background:#354134}.choices{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.choices button{border-top-color:var(--accent);min-height:0}.choices .upgrade-numbers{color:#9ce6db}.choices .replacement-warning{color:#ffd29a;border-top:1px solid #836c48;padding-top:8px}.panel{max-height:100%}#loadoutDetails{display:grid;gap:18px}#loadoutDetails .chips{grid-template-columns:repeat(3,minmax(0,1fr))}#loadoutDialog{max-width:800px}.overlay{padding:14px}.start-panel{padding:20px 26px}.start-panel h1{font-size:42px}.start-panel .intro{font-size:12px}.start-tip{font-size:10px}.scene-label{top:12px;left:12px;right:12px}
@media(min-width:1450px){.play-layout{grid-template-columns:260px minmax(0,1fr)}.loadout{padding:16px}.slot>b{font-size:12px}.slot>small{font-size:10px}.start-panel{padding:28px 34px}.start-panel h1{font-size:56px}}
@media(max-width:1000px){.shell{padding:12px}.play-layout{grid-template-columns:190px minmax(0,1fr);gap:10px}.loadout{padding:9px;gap:10px}.slot>small:last-child{font-size:8px}.viewport{height:auto}.hud{gap:12px}.footer{flex-direction:column;align-items:stretch}}
@media(max-width:700px){.shell{padding:8px}.play-layout{display:flex;flex-direction:column;gap:7px}.viewport{width:100%;aspect-ratio:16/9;height:auto}.loadout{display:none}.mobile-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;width:100%}.mobile-slots button{padding:8px 4px;font-size:10px;min-height:38px;background:#132630}.mobile-slots b{display:block;color:#76e6dc;font-size:10px}.topbar{margin-bottom:10px}.hud{margin-bottom:10px;gap:8px}.meter>div:first-child{font-size:9px;margin-bottom:5px}.meter strong{font-size:10px}.run-clock strong{font-size:18px}.scene-label{font-size:6px;top:6px;left:7px;right:7px;letter-spacing:1px}.notice{font-size:10px}.notice:not(:empty){padding:5px 9px}.boss-hud{top:22px;font-size:8px}.vehicle-status{font-size:10px;bottom:15px}.touch-controls{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:7px}.touch-controls button{font-size:11px;padding:10px 6px;min-height:52px}.touch-controls [data-action=jump]{margin:0;min-width:0;grid-column:3;grid-row:1}.touch-controls [data-action=interact]{grid-column:1/3;grid-row:2}.touch-controls .active-control{grid-column:3;grid-row:2;min-width:0}.active-control strong{font-size:10px}.active-control small{font-size:9px}.active-control kbd{display:none}.overlay:not([hidden]){position:fixed;inset:75px 8px 12px;z-index:5;padding:8px;background:#07121bf0;border:1px solid #48606a;border-radius:8px;pointer-events:auto}.overlay .panel{width:100%;max-height:100%;padding:18px;border:0;box-shadow:none}.choices{grid-template-columns:1fr;gap:9px}.choices button{padding:14px}.choices button strong{font-size:17px}.start-panel h1{font-size:36px}.start-fields{grid-template-columns:1fr}.start-actions{flex-wrap:wrap}.result-loadout{grid-template-columns:1fr}.result-stats strong{font-size:20px}#loadoutDialog{width:calc(100vw - 16px);padding:16px;max-height:90vh}#loadoutDialog h2{font-size:20px}#loadoutDetails .chips{grid-template-columns:1fr}.slot>small:last-child{font-size:10px}.result-panel h2{font-size:24px}}
@media(max-width:700px) and (orientation:landscape){.overlay:not([hidden]){inset:8px}.hud{grid-template-columns:1fr 1fr 1fr .6fr}.touch-controls{display:flex}.touch-controls button{flex:1}.mobile-slots b{display:inline;margin-left:4px}}

.resource-status{font-size:10px;line-height:1.6;color:#9fc9c7;margin:0 0 8px}
/* Keep controls visible on ordinary laptop viewports; descriptions remain in paused details. */
@media(min-width:701px){.shell{padding-top:12px;padding-bottom:10px}.topbar{margin-bottom:14px}.hud{margin-bottom:12px}.viewport{max-height:calc(100dvh - 185px)}.viewport canvas{height:100%;width:100%;object-fit:contain}.loadout{max-height:calc(100dvh - 185px);overflow-y:auto;padding:9px;gap:8px;scrollbar-width:thin}.loadout .chips{gap:3px}.loadout .slot{padding:4px 6px;min-height:30px;display:flex;gap:7px;align-items:center}.loadout .slot>small:first-child{font-size:8px;flex-shrink:0}.loadout .slot>b{font-size:10px;line-height:1.3}.loadout .slot>small:last-child:not(:first-child){display:none}.loadout .section-label{font-size:9px;letter-spacing:1px;margin-bottom:4px}.loadout .fallback-note{font-size:9px;line-height:1.4}.loadout #modules{grid-template-columns:1fr 1fr}.loadout #modules .slot{display:block}.loadout #modules .slot>small:first-child{font-size:7px}.loadout #modules .slot>b{font-size:9px}.loadout .resource-status{font-size:8px;margin:0 0 4px}.loadout .active-build{padding:5px}.loadout .active-build small{display:none}.loadout .chips>.muted{font-size:9px;padding:4px}.touch-controls button{min-height:44px}.footer{padding-top:10px}#storageNote{white-space:nowrap}}
#loadoutDetails .slot{display:block;padding:9px}#loadoutDetails .slot>small{display:block;font-size:10px}#loadoutDetails .slot>b{font-size:12px}
@media(max-width:1000px) and (max-height:500px){.shell{padding:6px 10px}.topbar{margin-bottom:5px}.brand{font-size:14px}.brand-mark{width:28px;height:28px;font-size:22px}.brand small{font-size:7px}nav button{font-size:10px;padding:5px 7px}.hud{grid-template-columns:1fr 1fr 1fr .7fr;margin-bottom:6px;gap:12px}.run-clock strong{font-size:18px}.meter>div:first-child{margin-bottom:4px}.play-layout{display:flex;flex-direction:column;gap:5px}.loadout{display:none}.mobile-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;width:100%}.mobile-slots button{font-size:9px;padding:4px 8px;min-height:34px}.mobile-slots b{font-size:9px;display:inline}.viewport{width:100%;height:calc(100dvh - 186px);max-height:none;aspect-ratio:auto}.viewport canvas{width:100%;height:100%;object-fit:contain}.touch-controls{display:flex}.touch-controls button{min-height:39px;font-size:10px;padding:5px 9px;flex:1}.touch-controls [data-action=jump]{margin-left:0;min-width:0}.touch-controls .active-control{min-width:0;flex:1.5}.active-control strong{font-size:10px}.active-control small{font-size:8px}.footer{padding-top:6px;flex-direction:row;gap:5px}#storageNote{display:none}.overlay:not([hidden]){position:fixed;inset:6px;z-index:5;pointer-events:auto;background:#08131bf2}.overlay .panel{max-height:100%;width:min(800px,100%)}.scene-label{font-size:8px}.notice{font-size:12px}}
.node-badge{display:inline-block;font-size:8px;font-style:normal;font-weight:400;color:#ffd694;border:1px solid #6b684e;padding:1px 3px;margin-left:3px;border-radius:2px;white-space:nowrap}

/* v6: scene owns the window. All controls are overlays; the build rail is details-only. */
html,body{width:100%;height:100%;margin:0;overflow:hidden}.shell{position:relative;width:100%;height:100dvh;padding:0;max-width:none}.play-layout{position:absolute;inset:0;display:block}.viewport{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none}#game{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:fill}.topbar{position:absolute;top:12px;left:14px;right:14px;z-index:3;margin:0;pointer-events:none}.topbar a,.topbar nav{pointer-events:auto}.brand{font-size:15px;gap:8px}.brand-mark{width:28px;height:28px;font-size:22px}.brand small{font-size:7px}.mission{display:none}nav button{min-height:36px;background:#0c2028dd;backdrop-filter:blur(4px);padding:7px 10px}.hud{position:absolute;left:14px;top:62px;width:min(550px,calc(100% - 28px));z-index:3;grid-template-columns:1fr .9fr 1.15fr .65fr;gap:12px;margin:0;padding:8px 10px;border:1px solid #76b0b13b;border-radius:8px;background:#0b1e28d9;pointer-events:none}.hud .meter>div:first-child{font-size:9px}.hud .meter strong{font-size:10px}.run-clock strong{font-size:18px}.run-clock span{font-size:8px}.loadout{display:none!important}#mobileSlots.mobile-slots{position:absolute;left:14px;top:121px;z-index:3;display:flex;align-items:start;gap:5px;width:auto;max-width:calc(100% - 28px);background:none}.icon-group{display:flex;gap:3px;padding-left:4px;border-left:1px solid #a3d5dd44}.mobile-slots .hud-icon,.mobile-slots .avatar-icon{width:44px;min-width:44px;height:48px;min-height:48px;padding:3px 2px;background:#0b202cdd;border-radius:7px;border:1px solid #72989966;backdrop-filter:blur(3px)}.hud-icon span,.avatar-icon{font-size:22px;color:var(--accent,#b3efe0)}.hud-icon small,.avatar-icon small{display:block;font-size:8px;line-height:13px;color:#e0e9df;white-space:nowrap}.hud-icon.empty{opacity:.55}.hud-icon:hover{border-color:var(--accent)}.footer{position:absolute;bottom:12px;left:14px;right:14px;z-index:3;display:flex;align-items:end;gap:12px;padding:0;pointer-events:none}.footer button{pointer-events:auto;background:#0e2733e8;min-height:48px;touch-action:none}.touch-controls{display:flex;gap:6px;width:auto;flex:1;justify-content:flex-end}.touch-controls button{flex:0 1 auto}.touch-controls [data-action=jump]{margin-left:8px;min-width:85px}.touch-controls .active-control{min-width:140px}.armory-control{position:relative;min-width:180px;padding:8px 12px;text-align:left;border-color:#bbaa69!important}.armory-control b,.armory-control small{display:block}.armory-control b{font-size:12px;color:#ffdd92}.armory-control small{font-size:9px;color:#bdd8d3;margin-top:3px}#storageNote{display:none}.scene-label{top:auto;bottom:79px;left:14px;font-size:9px;right:auto}.scene-label span:last-child{display:none}.boss-hud{top:190px;left:30%;width:40%;z-index:2}.notice{top:28%;font-size:13px}.overlay:not([hidden]){position:absolute;inset:0;z-index:5;pointer-events:auto;padding:18px;background:#07121bcc;border:0;border-radius:0}.panel{width:min(880px,100%);max-height:calc(100dvh - 36px)}.choices{grid-template-columns:repeat(3,minmax(0,1fr))}.start-panel{position:relative;margin:auto;width:min(670px,100%)}.start-panel>.eyebrow{padding-right:100px}.vehicle-status{bottom:85px}#loadoutDetails>div{display:block}#loadoutDetails .chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:700px){.topbar{top:8px;left:8px;right:8px}.brand{font-size:12px}.brand small{display:none}.brand-mark{width:24px;height:24px}.topbar nav{gap:3px;max-width:none;flex-wrap:nowrap}.topbar nav button{padding:5px 6px;font-size:9px;min-height:32px}.hud{left:8px;top:49px;width:calc(100% - 16px);padding:6px;gap:7px}.hud .meter>div:first-child{font-size:8px}.hud .meter strong{font-size:8px}.run-clock strong{font-size:14px}.run-clock span{font-size:7px}#mobileSlots.mobile-slots{left:8px;top:100px;flex-wrap:wrap;max-width:calc(100% - 16px);gap:4px}.icon-group{gap:2px;padding-left:3px}.mobile-slots .hud-icon,.mobile-slots .avatar-icon{width:44px;min-width:44px;height:44px;min-height:44px}.hud-icon span{font-size:18px}.gear-icons{flex-basis:auto}.footer{left:8px;right:8px;bottom:8px;flex-wrap:wrap;gap:6px}.armory-control{min-width:0;min-height:44px!important;padding:5px 9px}.armory-control small{font-size:8px}.touch-controls{display:flex;flex-wrap:wrap;gap:5px}.touch-controls button{min-height:48px;padding:7px 9px;font-size:10px;flex:1}.touch-controls [data-action=jump]{min-width:0;margin:0}.touch-controls .active-control{min-width:90px}.touch-controls [data-action=interact]{max-width:95px}.touch-controls kbd{display:none}.active-control strong{font-size:10px}.active-control small{font-size:8px}.scene-label{bottom:119px;font-size:8px}.boss-hud{top:220px;left:15%;width:70%}.overlay:not([hidden]){inset:0;padding:10px}.overlay .panel{max-height:calc(100dvh - 20px);padding:18px}.choices{grid-template-columns:1fr;gap:8px}.choices button{padding:12px}#loadoutDetails .chips{grid-template-columns:1fr 1fr}.notice{top:36%;font-size:11px}.notice:not(:empty){padding:6px 10px}.vehicle-status{bottom:120px}.start-fields{grid-template-columns:1fr 1fr}.start-panel h1{font-size:36px}}
@media(max-height:500px) and (orientation:landscape){.topbar{top:6px}.brand{font-size:12px}.brand small{display:none}.hud{top:44px;width:420px;padding:5px}.hud .track{height:3px}#mobileSlots.mobile-slots{top:87px}.gear-icons{display:none}.mobile-slots .hud-icon,.mobile-slots .avatar-icon{height:44px;min-height:44px}.footer{flex-wrap:nowrap;bottom:6px}.armory-control{min-width:140px}.touch-controls button{min-height:44px}.scene-label{bottom:66px}.boss-hud{top:141px}.notice{top:42%}.choices{grid-template-columns:repeat(3,minmax(0,1fr))}.panel h2{font-size:22px}.start-panel .tutorial,.start-panel .start-tip{font-size:9px}.start-panel h1{font-size:28px}}
#game{position:absolute;inset:0;z-index:1}#game-fallback{position:absolute;inset:0;z-index:2;pointer-events:none}.scene-label{z-index:3}.overlay{z-index:5}

.hud-icon{position:relative}.module-dot{position:absolute;right:2px;top:0;font-style:normal;font-size:9px;color:#ffe39c}

.start-panel{position:relative}.language-menu{position:absolute;top:16px;right:18px;z-index:10;color:var(--paper)}.language-menu summary{display:flex;align-items:center;gap:7px;min-height:34px;padding:0 11px;border:1px solid #52616a;border-radius:7px;background:#101922eF;color:#dfe6df;font-size:11px;font-weight:700;letter-spacing:.04em;cursor:pointer;list-style:none;user-select:none}.language-menu summary::-webkit-details-marker{display:none}.language-menu summary svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;opacity:.82}.language-chevron{margin-left:3px;color:#99a6aa;font-size:13px;transition:transform .15s}.language-menu[open] .language-chevron{transform:rotate(180deg)}.language-menu summary:hover,.language-menu[open] summary{border-color:var(--gold);color:var(--gold)}.language-options{position:absolute;top:calc(100% + 7px);right:0;width:148px;padding:5px;border:1px solid #394852;border-radius:9px;background:#101820f7;box-shadow:0 12px 30px #0009;backdrop-filter:blur(12px)}.language-options button{display:flex;align-items:center;width:100%;min-height:34px;padding:6px 10px;border:0;border-radius:5px;background:transparent;color:#dfe6df;text-align:left;font-size:12px}.language-options button:hover,.language-options button[aria-selected=true]{background:#25343d;color:var(--gold)}.language-options button:focus-visible,.language-menu summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.start-panel>.eyebrow{padding-right:112px}@media(max-width:650px){.language-menu{top:10px;right:10px}.language-menu summary{min-height:32px;padding:0 9px;font-size:10px}.language-menu summary svg{width:14px;height:14px}.language-options{width:136px}.start-panel>.eyebrow{padding-right:105px}}
#heroTitle{font-size:clamp(28px,3.5vw,46px);letter-spacing:.08em;line-height:1.15;overflow-wrap:anywhere}.language-menu summary{white-space:nowrap}@media(max-width:650px){.language-options button{min-height:40px}}

/* =============================================================================
   P5 统一响应式层 v14
   合并 v7–v13.4 的全部追加规则（原先 10 段覆盖 → 现在 4 层）
   层级：1 视觉系统  2 触屏操作  3 竖屏布局  4 矮屏降级
   改动此文件请只在本段内追加，不要再散落到上方基础样式里。
   ============================================================================= */

/* ---------------------------------------------------------------- 1 视觉系统 */
/* 生命：10 段刻度舱 */
.health .track{position:relative;height:10px;background:#101d24;border:1px solid #2e444d;border-radius:2px;overflow:hidden}
.health .track i{background:linear-gradient(90deg,#d99a5d,#ffd16a);box-shadow:0 0 10px #ffd16a3d}
.health .track::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 1.5px),#0a141a calc(10% - 1.5px),#0a141a 10%)}
body.low-hp .health .track i{background:linear-gradient(90deg,#b8403a,#f06f61);
  box-shadow:0 0 16px #f06f6170;animation:hpPulse 1.1s ease-in-out infinite}
@keyframes hpPulse{0%,100%{opacity:1}50%{opacity:.5}}

/* 速度：潮汐刻度（0/75/150/225） */
.tide .track{position:relative;height:6px;background:#101d24;border-radius:2px;overflow:hidden}
.tide .track i{background:linear-gradient(90deg,#2f8f92,#55d8c2)}
.tide .track::after{content:'';position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,transparent 0,transparent calc(33.33% - 1px),#4a6570 calc(33.33% - 1px),#4a6570 33.33%),
  linear-gradient(90deg,transparent 0,transparent calc(66.66% - 1px),#4a6570 calc(66.66% - 1px),#4a6570 66.66%)}

/* 经验与等级徽章 */
.experience .track{height:3px;background:#101d24}
.experience .track i{background:#9b7ad6}
#xpText{display:inline-block;padding:0 5px;border:1px solid #4b3a66;background:#221b30;
  border-radius:3px;color:#cbb4f2;font-size:11px;letter-spacing:0}

/* 武器节点点 3/6/9/10 */
.node-dots{display:inline-flex;gap:3px;margin-left:5px;vertical-align:middle}
.node-dots i{display:block;width:5px;height:5px;border-radius:50%;background:#2f4650}
.node-dots i.on{background:#ffd16a;box-shadow:0 0 6px #ffd16a99}

/* 桌面 HUD 排布（P1-1：字号由 9→11/12） */
@media(min-width:901px){
  .hud{grid-template-columns:1.05fr .95fr 1.1fr auto;gap:26px;align-items:end;margin-bottom:14px}
  .hud .meter>div:first-child{font-size:11px}
  .hud .meter strong{font-size:12px}
  .run-clock{flex-direction:column;align-items:flex-end;gap:1px}
  .run-clock strong{font-size:30px;line-height:1;letter-spacing:1px;text-shadow:0 0 18px #55d8c22e}
  .run-clock span{font-size:10px;letter-spacing:1px}
}

/* 画布盒子契约：三者必须是同一矩形（合并时曾丢失此条，导致画面被压扁+底部露底） */
#game-fallback{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:fill}

/* 场景标签：压在画面里也要读得清 */
.scene-label span{background:#08131ac2;padding:2px 7px;border-radius:3px;color:#d3e3de;backdrop-filter:blur(2px);letter-spacing:1px}
.scene-label span:last-child{color:#9fb3b6}

/* ---------------------------------------------------------------- 2 触屏操作 */
.move-zone,.btn-armory{display:none}
@media (max-width:900px), (pointer:coarse){
  .touch-controls .pad-move{display:none}
  .armory-control{display:none}
  #storageNote{display:none}
  .footer{position:static;display:block;margin:0;padding:0}

  .touch-controls{position:fixed;left:0;right:0;bottom:calc(10px + env(safe-area-inset-bottom));z-index:6;
    display:flex;justify-content:space-between;align-items:flex-end;width:auto;flex:initial;
    padding:0 12px;gap:0;pointer-events:none}
  .touch-controls .pad{flex:0 0 auto;min-width:0}
  .touch-controls .pad button{flex:0 0 auto;max-width:none}
  .touch-controls kbd{display:none}
  .pad{display:flex;align-items:flex-end;gap:10px;pointer-events:auto}

  /* 左手滑动区 */
  .move-zone{display:flex;position:relative;width:132px;height:64px;border-radius:32px;flex:0 0 auto;
    background:#0e2733d9;border:1px solid #6f9aa0aa;align-items:center;justify-content:center;
    touch-action:none;user-select:none;-webkit-user-select:none;overflow:hidden;pointer-events:auto}
  .mz-arrow{position:absolute;top:50%;transform:translateY(-50%);font-size:18px;line-height:1;
    color:#7fa4a8;opacity:.55;pointer-events:none}
  .mz-arrow:first-child{left:12px}
  .mz-arrow:last-child{right:12px}
  .mz-knob{display:block;width:46px;height:46px;border-radius:50%;pointer-events:none;
    background:#1d4a52;border:1px solid #7fd6c8;box-shadow:0 0 12px #55d8c244;transition:transform .06s linear}

  /* 右手四键 2×2 */
  .pad-act{display:grid;grid-template-columns:46px 72px;grid-template-rows:58px 72px;
    gap:8px;align-items:center;justify-items:center}
  .pad-act button{min-height:0;min-width:0;padding:0;border-radius:50%;display:grid;place-items:center;line-height:1.15}
  .pad-act .btn-armory{grid-area:1/1;display:grid;width:46px;height:46px;min-width:0;font-size:0;
    background:#0e2733d9;border:1px solid #6f9aa0aa;color:#dff3ef}
  .pad-act .btn-armory::before{content:'▣';font-size:17px;line-height:1}
  .pad-act .active-control{grid-area:1/2;width:56px;height:56px;min-width:0;font-size:10px;overflow:hidden;
    background:#123236e8;border:2px solid #66c9bc88;text-align:center}
  .pad-act .active-control strong{display:none}
  .pad-act .active-control small{display:none}
  .pad-act .active-control::before{content:'⚡';font-size:24px;line-height:1;color:#9fe6da}
  .pad-act .active-control:disabled::before{opacity:.4}
  .pad-act [data-action=interact]{grid-area:2/1;width:46px;height:46px;min-width:0;font-size:0;
    background:#0e2733d9;border:1px solid #6f9aa0aa}
  .pad-act [data-action=interact]::before{content:'⇣';font-size:16px;line-height:1}
  .pad-act .btn-jump{grid-area:2/2;width:72px;height:72px;min-width:0;font-size:13px;font-weight:700;
    background:#1b3a42e8;border:2px solid #c8aa7599;color:#ffe6bb}
  .pad-act .btn-jump:active{background:#2b5a62e8}

  /* 拇指区暂停已取消：与战况卡冲突，暂停保留在顶栏 */

}
@media (max-width:420px){
  .move-zone{width:118px;height:58px}
  .mz-knob{width:42px;height:42px}
  .pad-act{grid-template-columns:42px 64px;grid-template-rows:52px 64px;gap:6px}
  .pad-act .btn-armory{width:42px;height:42px}
  .pad-act .active-control{width:52px;height:52px;min-width:0}
  .pad-act [data-action=interact]{width:42px;height:42px;min-width:0}
  .pad-act .btn-jump{width:64px;height:64px;min-width:0;font-size:12px}
}

/* ---------------------------------------------------------------- 3 竖屏布局 */
.region-strip{display:none}
@media (max-width:900px) and (orientation:portrait){
  .shell{display:flex;flex-direction:column;gap:8px;height:100dvh;
    padding:8px 8px calc(156px + env(safe-area-inset-bottom))}
  .topbar{position:static;margin:0;display:flex;align-items:center;justify-content:space-between;
    gap:4px;flex:0 0 auto}
  nav{gap:4px}
  nav button{padding:6px 5px;font-size:9px;letter-spacing:0;white-space:nowrap;min-height:44px}
  #openResearch span{display:none}

  .hud{position:static;left:auto;right:auto;top:auto;width:100%;margin:0;flex:0 0 auto;
    padding:5px 8px;gap:2px 10px;border-radius:7px}
  .hud .meter>div:first-child{margin-bottom:2px;font-size:9px}
  .hud .meter strong{font-size:10px}
  .hud .track{height:7px}
  .experience .track{display:none}
  .run-clock strong{font-size:17px}

  .region-strip{display:flex;order:2;align-items:center;gap:8px;height:24px;padding:0 2px;
    font-size:10px;color:#8fb0b5;flex:0 0 auto}
  .region-strip b{color:#ffd16a;font-size:11px;letter-spacing:1px}
  .pr-track{flex:1;height:3px;background:#16262e;border-radius:2px;overflow:hidden}
  .pr-track em{display:block;height:100%;width:0;background:linear-gradient(90deg,#2f8f92,#55d8c2)}
  #prNext{font-variant-numeric:tabular-nums;color:#7f9aa0}

  .play-layout{position:static;display:contents}
  #mobileSlots.mobile-slots{position:static;left:auto;right:auto;top:auto;order:3;max-width:none;
    display:flex;flex-wrap:nowrap;gap:5px;overflow-x:auto;padding:0 0 2px;
    scrollbar-width:none;flex:0 0 auto;
    -webkit-mask-image:none;mask-image:none}
  #mobileSlots.mobile-slots::-webkit-scrollbar{display:none}
  #mobileSlots.mobile-slots[data-edge=start]{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 20px),transparent 100%);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 20px),transparent 100%)}
  #mobileSlots.mobile-slots[data-edge=end]{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 100%);mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 100%)}
  #mobileSlots.mobile-slots[data-edge=middle]{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 20px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 20px),transparent 100%)}
  .mobile-slots .hud-icon,.mobile-slots .avatar-icon{width:42px;min-width:42px;height:44px;min-height:44px}

  /* 舞台：吃满剩余高度；上限 74% 宽度 → 横向裁切不超过 12%（P0-1） */
  .viewport{position:relative;inset:auto;order:4;width:100%;flex:1 1 auto;
    min-height:120px;max-height:calc((100vw - 16px) * .74);margin-block:auto;
    aspect-ratio:auto;background:#08131a;border:0}
  .loadout{display:none!important}

  .portrait-bar{display:flex;flex-direction:column;gap:8px;order:5;flex:0 0 auto;min-height:0}
  .rotate-card{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;
    border:1px solid #c8aa7555;border-radius:10px;flex:0 0 auto;
    background:linear-gradient(110deg,#2a2118f2,#0d1c22f2)}
  .rotate-copy{flex:1;min-width:0}
  .rotate-copy b{display:block;font-size:12px;line-height:1.4;color:#ffd16a}
  .rotate-copy small{display:block;font-size:10px;line-height:1.4;color:#9fb3b6;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rotate-btn{flex:0 0 auto;min-height:44px;padding:0 16px;border-radius:8px;
    font-size:12px;font-weight:800;color:#111b21;background:#ffd16a;border:1px solid #ffd16a}
  .rotate-btn:active{background:#ffe3a3}
  .rotate-close{position:absolute;right:2px;top:0;width:28px;height:28px;min-height:0;padding:0;
    border:0;background:transparent;color:#8299a0;font-size:11px;line-height:1}

  .portrait-info{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;
    padding:9px 11px;border:1px solid #76b0b12e;border-radius:10px;background:#0b1e28cc}
  .pi-head{display:flex;align-items:baseline;gap:8px;font-size:10px;letter-spacing:2px;color:#7f949d}
  .pi-head span:first-child{margin-right:auto}
  .pi-head span:last-child{color:#7f9aa0;font-size:10px;letter-spacing:0}
  .pi-head b{font-size:16px;letter-spacing:0;color:#eaf3ec;font-variant-numeric:tabular-nums}
  .pi-track{height:4px;border-radius:2px;background:#16262e;overflow:hidden;margin-top:1px}
  .pi-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2f8f92,#55d8c2)}
  .pi-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;min-width:0}
  .pi-cell{min-width:0;display:flex;flex-direction:column;gap:1px}
  .pi-cell>span{font-size:9px;letter-spacing:1px;color:#7f949d}
  .pi-cell>b{font-size:11px;color:#dfe9e2;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pi-cell.pi-wide{grid-column:1/-1}
  .pi-sub{font-style:normal;font-size:10px;color:#9fb3b6;display:flex;align-items:center;gap:6px}
  
  

  /* 面板必须脱离舞台，否则被 overflow:hidden 裁切 */
  .overlay:not([hidden]){position:fixed;inset:0;z-index:20;padding:10px;background:#061019f2}
  .overlay .panel{max-height:calc(100dvh - 20px);overflow:auto;margin:auto}
}
@media (max-width:560px) and (orientation:portrait){
  .hud{grid-template-columns:1fr 1fr;row-gap:5px}
  .run-clock{flex-direction:row;align-items:baseline;justify-self:end;gap:6px}
}
/* P1-2：≤480 顶栏改图标，避免 9px 文字挤爆 */
@media (max-width:480px) and (orientation:portrait){
  #brandTitle,.brand small{display:none}
  .brand-mark{width:32px;height:32px;font-size:24px}
  .topbar nav button{font-size:0;padding:0;width:44px}
  #openResearch::before{content:'◎';font-size:15px}
  #soundToggle::before{content:'♪';font-size:15px}
  #shakeToggle::before{content:'≋';font-size:15px}
  #fullscreen::before{content:'⛶';font-size:15px}
  #pause::before{content:'Ⅱ';font-size:15px}
}

/* 横屏手机：构筑条下移，避开 HUD */
@media (max-width:900px) and (orientation:landscape){
  #mobileSlots.mobile-slots{top:132px}
}

/* ---------------------------------------------------------------- 4 矮屏降级 */
/* 640–700：去掉横屏卡与战况卡，保留区域条与构筑条 */
@media (max-width:900px) and (orientation:portrait) and (max-height:700px){
  .rotate-card{display:none}
  .portrait-bar{display:none}
}
/* ≤640：只留 HUD + 舞台 + 一行紧凑战况 + 操作（P1-3） */
@media (max-width:900px) and (orientation:portrait) and (max-height:640px){
  #regionStrip,#mobileSlots.mobile-slots{display:none!important}
  .shell{padding-bottom:calc(160px + env(safe-area-inset-bottom))}
  .viewport{flex:1 1 auto;min-height:120px;max-height:none;aspect-ratio:auto;margin-block:0}
  .portrait-bar{display:flex}
  .rotate-card{display:none}
  .portrait-info{padding:4px 10px;border-radius:8px}
  .pi-grid,.pi-track{display:none}
  .pi-head{font-size:9px}
  .pi-head b{font-size:13px}
  .overlay .panel{max-height:calc(100dvh - 16px)}
}

/* 换装选择：三格满员后点新武器才弹出来，用来选"换掉哪一把" */
.replace-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}
.replace-options button{text-align:left;padding:16px;background:linear-gradient(150deg,#223b43,#101e28);border:1px solid #49656c;border-top:3px solid var(--accent,#77dccd)}
.replace-options button:hover{background:linear-gradient(150deg,#31565c,#132833);transform:translateY(-2px)}
.replace-options strong{display:block;font-size:16px;color:var(--gold);margin-bottom:6px}
.replace-options small{display:block;font-size:11px;line-height:1.6;color:#b3c8ca}
#replaceDialog{width:min(720px,92vw)}
@media(max-width:700px){.replace-options{grid-template-columns:1fr}}

/* 构筑图鉴 · "还差一步"清单（v0.13.0-alpha.10）
   已解锁的走 .active-build（金色），未解锁的走 .build-goal（青色、压低）。
   两者刻意不同色：这是「我已经有」和「我还在追」的区别，同色会读成同一类东西。 */
.chips .build-goal{flex:1 1 100%;display:block;padding:6px 9px;border:1px solid #35514f;border-left:2px solid #6fd7c4;border-radius:3px;background:linear-gradient(110deg,#142b2b,#101d24)}
.build-goal b{display:block;font-size:11px;color:#9fe6d8}
.build-goal small{display:block;margin-top:2px;font-size:9px;line-height:1.45;color:#8fb0ab}

/* 选项卡顶对齐（v0.13.0-alpha.10）。
   <button> 在网格里被拉成同高后，Chrome 对按钮内容的内部布局会把它**垂直居中**，
   于是文字短的卡（「武器槽扩容」只有四行）会飘到卡片中间，和旁边顶对齐的卡错位——
   这不是新问题，只是以前没有短到能看出来的卡。显式声明 flex 列容器并顶对齐。 */
.choices button{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}

/* ── 后期赌约 HUD ──
   合约期内必须常驻一条倒计时。理由很实际：签完就忘的机制等于没做 ——
   玩家不会记得"我这 90 秒在冒风险"，只会觉得"这游戏突然变难了"。
   放右侧：左边被主 HUD 占着，中间被 Boss 血条占着，右边一直是空的。 */
.pact-hud{position:absolute;top:62px;right:14px;width:min(320px,38%);z-index:3;
  padding:9px 12px;border:1px solid #ffffff1f;border-left:3px solid var(--accent,#ffd166);
  border-radius:6px;background:#0b1e28e0;pointer-events:none;font-size:11px;color:#dbe7e2}
.pact-hud>div:first-child{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}
.pact-hud span{font-weight:800;letter-spacing:1px;color:var(--accent,#ffd166)}
.pact-hud strong{font-variant-numeric:tabular-nums;font-size:12px;color:#e8f2ee}
.pact-hud .track{height:4px;background:#2a3a42}
.pact-hud .track i{background:var(--accent,#ffd166)}
.pact-hud p{margin:7px 0 0;font-size:10px;line-height:1.5;color:#a8c0c2}
@media(max-width:700px){.pact-hud{top:auto;bottom:190px;right:8px;width:min(230px,64%);padding:7px 9px;font-size:10px}
  .pact-hud strong{font-size:11px}.pact-hud p{font-size:9px;margin-top:5px}}
@media(max-height:500px) and (orientation:landscape){.pact-hud{top:auto;bottom:130px;width:min(220px,42%)}}

/* ── 补给入口的三个状态 ──
   判据来自 engine 的 supplyPile()，UI 不自己算 —— 否则"面板里能买、按钮还是灰的"会再次发生。
   这里的关键不是"哪个条件该亮"，而是**亮的方式分配**：

   · .stock 有货 —— 描边略提亮（一个读数，不需要动）。
   · .ready 积压 —— 换成**填充亮金**，不是只换描边。实测 canSpendNow 在真实对局里占 100% 帧，
     所以"能买"不能当高亮条件；改成"攒到 6 点或 2 券还没花"，实测占 32.5% 帧，才有起伏。
     换填充而不是换描边，是因为描边在余光里几乎不可见 —— 手指在按钮上，眼睛在屏幕中间。
   · .gain 到账 —— 0.4 秒闪一下。状态灯会被眼睛过滤掉，事件闪光不会。
   底色的金边是原来就有的，保留：不为一个提示去压低常规状态（那会被读成"按钮变灰了"）。 */
/* 三档用同一套词汇递进，才读得出来是一个东西在升级：圆点点亮 → 圆点发光 → 整块点亮。
   只有颜色差两档金色是不够的（#ffdd92 vs #ffe9a8 肉眼分不出），第一版就是这样，抓图才发现。
   ① 空：无圆点 ② 有货：实心圆点、无光晕、边框提亮 ③ 积压：发光圆点 + 填充亮金 + 呼吸。 */
.armory-control.stock{border-color:#ffd166!important;background:#12232ef2!important}
.armory-control.stock b{color:#fff0c8}
.armory-control.stock::after{content:'';position:absolute;top:-3px;right:-3px;width:8px;height:8px;border-radius:50%;background:#e8c980}
.armory-control.ready{border-color:#ffe08a!important;background:#3b2f14f2!important;animation:armoryReady 1.6s ease-in-out infinite}
.armory-control.ready b{color:#fff6de}
.armory-control.ready small{color:#ffe7b4}
.armory-control.ready::after{content:'';position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:#ffd166;box-shadow:0 0 8px #ffd166,0 0 18px #ffb84a}
.btn-armory.stock{color:#fff0c8;border-color:#ffd166!important;box-shadow:0 0 0 1px #ffd16666}
.btn-armory.ready{border-color:#ffe08a!important;background:#3b2f14f2!important;color:#fff6de}
@keyframes armoryReady{
 0%,100%{box-shadow:0 0 0 1px #ffd16655,0 0 10px #ffb84a33}
 50%{box-shadow:0 0 0 2px #ffd166dd,0 0 26px #ffb84aaa}}
@keyframes armoryGain{
 0%{box-shadow:0 0 0 2px #fff3c4,0 0 30px #ffd166cc;filter:brightness(1.7)}
 100%{box-shadow:0 0 0 0 #fff3c400;filter:brightness(1)}}
.armory-control.gain{animation:armoryGain .42s ease-out 1}
@media(prefers-reduced-motion:reduce){
 .armory-control.ready{animation:none;box-shadow:0 0 0 2px #ffd166cc,0 0 18px #ffb84a77}
 .armory-control.gain{animation:none;box-shadow:0 0 0 2px #fff3c4dd}}
