.survivor-entry { display:flex; align-items:center; gap:22px; padding:14px 22px; margin:0 0 20px; border:1px solid #c8a665; color:#ffe1a0; background:#172b29; text-decoration:none; font-size:20px; font-weight:bold; }
.survivor-entry span {font-size:12px;font-weight:normal;color:#d5d1bf}
.survivor-trial #difficultyMenu,.survivor-trial #resourcePanel,.survivor-trial #objectivePanel,.survivor-trial #grandpaDialogueContainer {display:none!important}
.trial-overlay[hidden],.trial-hud[hidden],.trial-result[hidden] {display:none}
.trial-overlay {position:fixed;inset:0;z-index:5000;display:grid;place-items:center;overflow:auto;padding:28px;box-sizing:border-box;background:radial-gradient(ellipse at 80% 10%,#34584988,transparent 55%),linear-gradient(125deg,#0b1719f7,#111c19f5);color:#ece8d8;font-family:'Microsoft YaHei',sans-serif}
.trial-sheet {position:relative;width:min(680px,100%);padding:44px 48px;border:1px solid #b79b604d;border-top:3px solid #c8a665;background:#111f20;box-sizing:border-box;box-shadow:0 30px 100px #0005}
.trial-eyebrow {font-size:11px;letter-spacing:3px;color:#bbaa7c;margin-bottom:24px}
.trial-sheet h1 {font:normal clamp(42px,6vw,64px)/1.15 'STKaiti','KaiTi','Microsoft YaHei',serif;letter-spacing:7px;color:#f2ddb0;margin:0 0 18px;text-align:left}
.trial-sheet p {font-size:14px;line-height:1.9;color:#b8c5bc;margin:0 0 24px}
.trial-sigil {position:absolute;right:40px;top:26px;font:100px 'KaiTi',serif;color:#bfa06417;transform:rotate(-9deg);pointer-events:none}
.trial-beats {list-style:none;margin:0 0 26px;padding:0;border-top:1px solid #d9c08d26}
.trial-beats li {position:relative;padding:14px 0 14px 40px;border-bottom:1px solid #d9c08d26;font-size:14px;color:#e4dcc7}
.trial-beats b {position:absolute;left:0;top:16px;color:#b9a273;font:12px Georgia,serif}
.trial-beats span {display:block;font-size:12px;color:#8ea79e;margin-top:6px}
.trial-primary {display:flex;justify-content:space-between;align-items:center;width:100%;padding:16px 20px;background:#dbbd7b;color:#162421;border:0;cursor:pointer;font:bold 17px 'Microsoft YaHei',sans-serif}
.trial-primary:hover {background:#f0d99e}.trial-primary:focus-visible,.survivor-entry:focus-visible{outline:3px solid #a8eed8;outline-offset:4px}
.trial-primary span {font:14px Georgia,serif}
.trial-controls {font-size:11px;line-height:1.8;color:#95aca3;margin-top:16px}
.trial-footnote {display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#768d83;margin-top:24px}.trial-footnote a {color:#c7ba98}
.trial-result {border-left:3px solid #bdf6d9;background:#bdf6d911;padding:14px;margin-bottom:20px;font-size:14px;color:#cbffe7}
.trial-hud {position:fixed;top:64px;right:18px;width:270px;z-index:30;background:#0e201dee;border:1px solid #b89e6455;padding:15px 18px;color:#eee4ca;pointer-events:none;font:12px 'Microsoft YaHei',sans-serif;box-sizing:border-box}
.trial-clock {display:flex;justify-content:space-between;align-items:center;color:#bdcca9;letter-spacing:2px}.trial-clock strong {font:26px Georgia,serif;color:#f0d59b;font-variant-numeric:tabular-nums}
.trial-progress {height:2px;background:#ffffff20;margin:10px 0 14px}.trial-progress i {display:block;height:100%;background:#d8ba75;width:0}
#trialPhase {display:block;font-size:16px;letter-spacing:1px;margin-bottom:7px}#trialHint {display:block;font-size:11px;color:#9db8ae;line-height:1.7}
.trial-build {border-top:1px solid #e4cb9130;margin-top:12px;padding-top:10px;font-size:11px;color:#e3c992;line-height:1.8}
.trial-xp {margin-top:10px;color:#91d8cc;font-size:11px}
.trial-paths {display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 24px}
.trial-paths button {position:relative;display:flex;flex-direction:column;gap:9px;text-align:left;padding:18px 14px;background:#142624;border:1px solid #687d704d;color:#a9b9af;cursor:pointer;font-family:inherit}
.trial-paths button[aria-pressed="true"] {border-color:var(--path-color);background:#263833;color:var(--path-color);box-shadow:inset 0 -3px var(--path-color)}
.trial-paths b {font:38px 'KaiTi',serif;color:var(--path-color)}
.trial-paths strong {font-size:16px;letter-spacing:3px}.trial-paths span {font-size:11px;line-height:1.7}
.trial-paths button:focus-visible,.trial-manual summary:focus-visible {outline:2px solid #e4c88d;outline-offset:3px}
/* 成型构筑体验：两套预设两列并排，结束时提供同构筑重试 / 换构筑 / 退出 */
.trial-paths.trial-builds {grid-template-columns:repeat(2,1fr)}
.trial-paths.trial-builds strong {font-size:15px;letter-spacing:1px}
.trial-paths.trial-builds span {display:block;margin-top:6px}
.trial-build-actions {display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 16px}
.trial-build-actions[hidden] {display:none}
.trial-build-actions button {padding:12px 10px;background:#142624;border:1px solid #b89e6477;color:#e7d6ab;cursor:pointer;font:13px 'Microsoft YaHei',sans-serif}
.trial-build-actions button:hover {background:#233b31}
.trial-build-actions button:focus-visible {outline:2px solid #e4c88d;outline-offset:3px}
.trial-manual {pointer-events:auto;margin-top:10px}.trial-manual summary {cursor:pointer;color:#b8b8a0;font-size:11px;padding:4px 0}
.trial-manual .trial-build {white-space:pre-line;margin-top:4px}
.trial-clock > span {max-width:145px;line-height:1.7;letter-spacing:1px}.trial-clock strong{flex-shrink:0}
#trialPhase[hidden] {display:none}
#trialBoss[hidden],#trialExport[hidden],#trialContributions[hidden]{display:none}
#trialBoss{margin-top:12px;color:#efcba1;font-size:12px}#trialBoss progress{display:block;width:100%;height:10px;margin-top:7px;accent-color:#ed987a}
#trialContributions table{width:100%;border-collapse:collapse;font-size:12px;margin:12px 0 16px;color:#c7d8ce;text-align:left}
#trialContributions caption{text-align:left;color:#e6cca0;margin-bottom:8px}#trialContributions th,#trialContributions td{padding:7px 4px;border-bottom:1px solid #bda87330}
#trialExport{padding:8px 16px;margin-bottom:20px;background:#1a3932;border:1px solid #b89e64;color:#f1d6a3;cursor:pointer}
.trial-result{white-space:pre-line;line-height:1.8}
@media(max-width:700px){.trial-paths{gap:6px;margin-bottom:18px}.trial-paths button{padding:12px 8px;gap:6px}.trial-paths b{font-size:30px}.trial-paths strong{font-size:14px}.trial-paths span{font-size:10px}.trial-sheet p{margin-bottom:18px}.trial-paths.trial-builds{grid-template-columns:1fr}.trial-build-actions{grid-template-columns:1fr;gap:6px}}
.survivor-trial #inventoryBtn,.survivor-trial #minimapBtn {display:none!important}
.survivor-trial #uiToastContainer {display:none!important}
.trial-actions[hidden] {display:none}
.trial-actions {position:fixed;right:20px;bottom:30px;z-index:1000;display:flex;gap:14px}
.trial-actions button {width:64px;height:64px;border-radius:50%;border:1px solid #d8bd7b88;color:#eed8a7;background:#152a26e8;font:15px 'Microsoft YaHei',sans-serif;touch-action:manipulation}
.trial-actions button:active {background:#7d7345}
.survivor-trial #joystick-container {left:22px;bottom:26px}
.survivor-trial .joystick-base {display:grid;place-items:center;box-sizing:border-box;border:1px solid #d7dfb855;border-radius:50%;background:#0e231ca6;touch-action:none}
.survivor-trial .joystick-stick {border:1px solid #d8bd7b88;border-radius:50%;background:#97ba9b66;box-sizing:border-box}
.survivor-trial .upgrade-card p {white-space:pre-line}
.survivor-trial #upgradeMenu {overflow-y:auto;padding:16px;box-sizing:border-box}
.survivor-trial #upgradeMenu .menu-box {background:#112320;border:1px solid #b89e64;padding:24px;box-sizing:border-box;max-height:95vh;overflow-y:auto}
.survivor-trial #upgradeMenu h1 {font:36px 'KaiTi',serif;color:#ebd4a1!important;text-shadow:none!important}
.survivor-trial #upgradeMenu .menu-box > p {font-size:13px;margin-bottom:20px!important}
.survivor-trial .upgrade-card {background:#1d302b;min-width:0;flex:1;box-sizing:border-box}
.survivor-trial .upgrade-card:focus-visible {outline:3px solid #f5dfb0;outline-offset:3px}
@media(max-width:700px){.survivor-trial #upgradeCards{flex-direction:column;gap:10px!important}.survivor-trial .upgrade-card{width:100%;padding:12px;display:grid;grid-template-columns:44px 1fr;column-gap:12px;text-align:left}.survivor-trial .upgrade-card h3{grid-column:2;font-size:16px;margin:0 0 6px}.survivor-trial .upgrade-card .icon-container{grid-column:1;grid-row:1/4;font:26px 'KaiTi',serif;margin:0;align-self:center}.survivor-trial .upgrade-card p{grid-column:2;font-size:12px;margin:0;line-height:1.5}.survivor-trial .upgrade-card .type-tag{grid-column:2;margin-top:6px;font-size:10px}}
@media(max-width:700px){.trial-overlay{padding:14px;align-items:start}.trial-sheet{padding:24px;margin:auto}.trial-sheet h1{font-size:40px}.trial-beats li{padding-top:10px;padding-bottom:10px}.trial-hud{top:auto;bottom:140px;right:10px;width:215px;padding:10px}.trial-clock strong{font-size:20px}.trial-build{margin-top:6px;padding-top:6px}.survivor-entry{gap:10px;font-size:16px}.trial-footnote{font-size:10px}}
/* The trial carries its ink, jade and old-gold cover language into play. */
.survivor-trial {--trial-ink:#10211f;--trial-gold:#c8a665;--trial-paper:#ecdfbf;--trial-jade:#b3c8a7}
.survivor-trial #fpsDisplay{display:none!important}
.survivor-trial::after{content:'';position:fixed;inset:12px;border:1px solid #bca16b24;pointer-events:none;z-index:20}
.survivor-trial .pause-button{position:fixed;top:auto;right:auto;left:24px;bottom:20px;width:72px;height:38px;border:1px solid #bca16b66;border-radius:0;background:#10211feb;color:#e9d3a6;font:16px 'KaiTi',serif;box-shadow:none;text-shadow:none;padding:0;z-index:1000}
.survivor-trial .pause-button:hover{background:#233b31;transform:none}
.trial-hud{top:26px;right:24px;width:274px;padding:15px 18px;background:#10211fef;border:0;border-top:1px solid #bca16b66;box-shadow:none}
.trial-clock>span{font-family:'KaiTi',serif;font-size:17px;letter-spacing:2px;color:#e3d6b4}
.trial-clock strong{font-size:25px;color:#d8bd86}
.trial-progress{background:#5b695544;margin:10px 0}.trial-progress i{background:#a79468}
.trial-xp{color:#a0b4a2}.trial-manual summary{color:#d0bd95;letter-spacing:2px}
#trialPhase{font:20px 'KaiTi',serif;color:#eed6a3}
#trialBoss progress{height:5px;appearance:none;border:0;border-radius:0;background:#594b40}
#trialBoss progress::-webkit-progress-bar{background:#594b40}#trialBoss progress::-webkit-progress-value{background:#c58e70}
#trialBoss progress::-moz-progress-bar{background:#c58e70}
.survivor-trial #pauseMenu{background:radial-gradient(ellipse at 75% 15%,#365144bb,transparent 60%),#0b1719ed;color:#e9d3a6;font-family:'Microsoft YaHei',sans-serif}
.survivor-trial #pauseMenu h2{font:44px 'KaiTi',serif;letter-spacing:6px;color:#e9d3a6;text-shadow:none}
.survivor-trial #pauseMenu .menu-btn{border:1px solid #bca16b66;border-radius:0;background:#142b24;color:#e9d3a6;box-shadow:none;font:18px 'KaiTi',serif}
.survivor-trial #pauseMenu .menu-btn:hover{background:#2a4032;transform:none}
.survivor-trial .upgrade-card{border-radius:0!important;box-shadow:none!important;background:#172b26!important;border-width:1px!important}
.survivor-trial .upgrade-card h3{font-family:'KaiTi',serif;letter-spacing:1px}
.survivor-trial #upgradeMenu .menu-box{border-radius:0;box-shadow:0 20px 80px #0006;border-color:#b89e6455;border-top:3px solid #c8a665}
.survivor-trial .trial-actions button{border-radius:4px;border-color:#bca16b88;background:#10211fee;font-family:'KaiTi',serif;font-size:19px}
.survivor-trial .joystick-base{border-color:#bca16b55;background:#10211f99}
.survivor-trial .joystick-stick{border-color:#c7b88888;background:#97ad8866}
@media(max-width:700px){
 .survivor-trial::after{inset:6px}
 .survivor-trial .pause-button{left:auto;bottom:auto;right:14px;top:18px;width:50px;height:36px;font-size:15px}
 .trial-hud{top:74px;bottom:auto;right:14px;width:182px;padding:10px 12px}
 .trial-clock>span{font-size:14px;letter-spacing:1px;max-width:90px}.trial-clock strong{font-size:20px}
 .trial-xp{font-size:10px;margin-top:7px}.trial-progress{margin:7px 0}#trialPhase{font-size:16px}
 .trial-manual{margin-top:6px}.trial-manual .trial-build{max-height:130px;overflow:auto}
 .trial-hud:has(.trial-manual[open]){pointer-events:auto}
 #trialBoss{font-size:11px;margin-top:8px}
}
.survivor-trial .upgrade-card .icon-container{font-family:'KaiTi',serif;color:#e9d9b4;filter:none}
.survivor-trial .upgrade-card p{color:#bac6b8;text-shadow:none}
.survivor-trial .upgrade-card:hover{transform:translateY(-3px)!important;box-shadow:none!important;background:#23382d!important}
.survivor-trial .upgrade-card::before{background:#bca16b33}
.survivor-trial .upgrade-card .stat-preview span{color:#8fa39a}
.survivor-trial .upgrade-card .stat-preview b{color:#e8dfc4}
.survivor-trial .upgrade-card .stat-preview i{color:#6f8279}
.survivor-trial .upgrade-card .stat-preview b.after{color:#c9a96a}
.survivor-trial .upgrade-card .rank-badge{color:#8fa39a}

/* ── ?art=ink（墨影青冥）· 只在该画风生效，默认画风不受影响 ── */
.art-ink .trial-hud{background:transparent;border:0;border-top:1px solid rgba(201,169,106,0.26);border-bottom:1px solid rgba(201,169,106,0.12);padding:12px 0;color:#e8dfc4}
.art-ink .trial-hud .trial-clock{color:#9bae9e}
.art-ink .trial-hud .trial-clock strong{color:#c9a96a;font-size:18px;letter-spacing:1px}
.art-ink .trial-progress{background:rgba(7,15,14,0.8);height:3px}
.art-ink .trial-progress i{background:#edf3e7}
.art-ink .trial-xp{color:#9bae9e}
.art-ink .trial-build{border-top:1px solid rgba(201,169,106,0.18);color:#c9a96a}
.art-ink #trialBoss{color:#c4503a}
.art-ink #trialBoss progress{accent-color:#c4503a}
.art-ink.survivor-trial::after{border-color:rgba(201,169,106,0.12)}
.art-ink .survivor-trial .pause-button,
.art-ink.survivor-trial .pause-button{background:transparent;border:0;border-top:1px solid rgba(201,169,106,0.4);color:#c9a96a}
.art-ink .trial-actions button{border-color:rgba(201,169,106,0.4);background:rgba(11,21,19,0.82);color:#e8dfc4}
.art-ink .survivor-trial .joystick-base{background:rgba(11,21,19,0.6);border-color:rgba(201,169,106,0.35)}
.art-ink .survivor-trial .joystick-stick{background:rgba(237,243,231,0.25);border-color:rgba(201,169,106,0.5)}

/* ── 界面克制：少一层装饰、细一号描边、金色只给唯一主操作 ── */
/* 开场：去掉印章水印与装饰眉标，只留标题 + 起手三选 + 一个主按钮 */
.survivor-trial .trial-eyebrow,.survivor-trial .trial-sigil{display:none}
.survivor-trial .trial-sheet{padding:40px 44px;border:1px solid #b79b6038;border-top:1px solid #c8a66555;background:#0f1c1d}
.survivor-trial .trial-sheet h1{text-align:center;letter-spacing:12px;font-size:clamp(34px,4.6vw,50px);margin:0 0 14px}
.survivor-trial .trial-sheet>p{text-align:center;color:#9fb0a7;margin-bottom:28px}
.survivor-trial .trial-paths{gap:8px;margin-bottom:26px}
.survivor-trial .trial-paths button{padding:14px 12px;gap:7px;background:transparent;border:1px solid #ffffff14;box-shadow:none;transition:border-color .18s,background .18s}
.survivor-trial .trial-paths button:hover{background:#ffffff08;border-color:#ffffff26}
.survivor-trial .trial-paths button[aria-pressed="true"]{background:#ffffff0a;border-color:#ffffff2b;box-shadow:inset 0 -2px var(--path-color)}
.survivor-trial .trial-paths b{font-size:30px;line-height:1.1}
.survivor-trial .trial-paths strong{font-size:15px;letter-spacing:4px}
.survivor-trial .trial-paths span{font-size:11px;color:#8d9e95;line-height:1.6}
.survivor-trial .trial-primary{background:transparent;border:1px solid #c8a66588;color:#e8d5a8;font-weight:normal;font-size:16px;letter-spacing:5px;padding:15px 20px;justify-content:center;gap:16px}
.survivor-trial .trial-primary:hover{background:#c8a6651a;border-color:#c8a665cc}
.survivor-trial .trial-primary span{color:#a99a72;letter-spacing:1px}
.survivor-trial .trial-controls{color:#7d8f87;text-align:center;line-height:1.9;margin-top:20px}
.survivor-trial .trial-footnote{color:#66786f;justify-content:center;gap:18px}

/* 升级卡：去掉厚底与渐变，只剩细描边 + 一行数值对比 */
.survivor-trial .upgrade-card{padding:18px 16px!important;min-height:0;background:#13211f!important;border:1px solid #ffffff17!important;transition:border-color .18s,background .18s!important}
.survivor-trial .upgrade-card:hover{transform:none!important;background:#182826!important;border-color:#ffffff2b!important}
.survivor-trial .upgrade-card::before{display:none}
.survivor-trial .upgrade-card h3{border-bottom:0;padding-bottom:2px;font-size:16px;letter-spacing:2px;color:#e8dfc4}
.survivor-trial .upgrade-card .rank-badge{font-size:10px;color:#8fa39a;margin-left:6px}
.survivor-trial .upgrade-card .icon-container{font-size:30px;height:44px;filter:none;color:#cdbf9c}
.survivor-trial .upgrade-card p{color:#9daea4;font-size:12px;line-height:1.7;margin:8px 0}
.survivor-trial .upgrade-card .stat-preview{margin:0 0 8px;font-size:12px;gap:5px}
.survivor-trial .upgrade-card .type-tag{background:transparent;border:0;border-radius:0;padding:0;letter-spacing:2px;font-size:10px;color:#8fa39a}
.survivor-trial #upgradeMenu .menu-box{box-shadow:0 24px 80px #0007;border-color:#ffffff1f;border-top:1px solid #c8a66566}
.survivor-trial #upgradeMenu h1{font-size:30px;letter-spacing:10px;color:#e8dfc4!important}
.survivor-trial #upgradeMenu .menu-box>p{color:#8fa39a}

/* HUD：去掉整块底色，只留细线与数字 */
.survivor-trial .trial-hud{background:transparent;border:0;border-top:1px solid #bca16b4d;padding:12px 0}
.survivor-trial .trial-progress{background:#ffffff14}
.survivor-trial .trial-progress i{background:#a79468}

/* HUD 数值层级：时间 > 资源条 > 次要信息 > 目标，字号/字距/颜色逐级下降 */
.survivor-trial .trial-clock>span{font-size:14px;letter-spacing:3px;color:#a9b8a6}
.survivor-trial .trial-clock strong{font-size:30px;letter-spacing:2px;color:#e4cfa0;line-height:1.1}
.survivor-trial .trial-progress{height:1px;margin:12px 0 14px}
.survivor-trial .trial-bars{gap:8px;margin-top:0}
.survivor-trial .trial-bar{font-size:10px;letter-spacing:2px;color:#8fa39a}
.survivor-trial .trial-bar>span{width:28px}
.survivor-trial .trial-bar>i{height:3px;background:#ffffff0f;border:0}
.survivor-trial .trial-bar>i>b{background:#cfe3c8}
.survivor-trial .trial-bar>i>b.low{background:#c4503a}
.survivor-trial .trial-bar.xp>i>b{background:#7fb8ff}
.survivor-trial .trial-bar>em{font-size:11px;color:#d5ded7;min-width:64px;letter-spacing:0}
.survivor-trial .trial-stats{gap:14px;margin-top:12px;font-size:10px;letter-spacing:1px;color:#7d8f87}
.survivor-trial .trial-stats>span:first-child{color:#c9bb98}
.survivor-trial .trial-objective{margin-top:6px;font-size:10px;letter-spacing:1px;color:#6f8a80;line-height:1.5}
.survivor-trial #trialPhase{font-size:17px;letter-spacing:3px;color:#e4cfa0}
/* [焚风] 战斗中只留一行低干扰天气状态：亮度低于危险信息，不与预警争注意力 */
.survivor-trial .trial-weather{display:block;margin-top:6px;font-size:10px;letter-spacing:3px;color:#b08a5e}
.survivor-trial .trial-weather[hidden]{display:none}
.survivor-trial .trial-pending{font-size:11px;letter-spacing:2px;color:#c9a96a}
.survivor-trial .trial-manual summary{font-size:10px;letter-spacing:3px;color:#8fa39a}

/* 结算：去掉彩色左条，表格改成两栏细线，数字右对齐 */
.survivor-trial .trial-result{border:0;border-top:1px solid #bdf6d955;border-left:0;background:transparent;padding:14px 0;color:#c9e8d6}
.survivor-trial #trialExport{background:transparent;border-color:#b89e6477}
.survivor-trial #trialContributions table{font-size:12px}
.survivor-trial #trialContributions caption{color:#a99a72;letter-spacing:2px;font-size:12px}
.survivor-trial #trialContributions th{color:#7d8f87;font-weight:normal;letter-spacing:1px}
.survivor-trial #trialContributions th,.survivor-trial #trialContributions td{padding:6px 2px;border-bottom:1px solid #ffffff12}
.survivor-trial #trialContributions td:not(:first-child),.survivor-trial #trialContributions th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}

/* ── 固定逻辑分辨率：画布等比缩放并居中，多余空间留黑边 ── */
body.survivor-trial{overflow:hidden;background:#050a09}
.survivor-trial .game-container{width:100vw;height:100vh;align-items:center;justify-content:center;background:#050a09;border-radius:0;box-shadow:none;overflow:hidden}
.survivor-trial #gameCanvas{box-shadow:0 0 70px rgba(0,0,0,0.7)}

/* DOM 层（HUD / 按钮）对齐到游戏框，而不是窗口 */
:root{--hud-w:270px}
@media(max-width:700px){:root{--hud-w:182px}}
.survivor-trial .trial-hud{
    width:var(--hud-w);
    left:calc(var(--game-left,0px) + var(--game-w,100vw) - var(--hud-w) - 18px);
    top:calc(var(--game-top,0px) + 56px);
    right:auto;bottom:auto;
}
.survivor-trial .pause-button{
    left:calc(var(--game-left,0px) + 20px);
    top:calc(var(--game-top,0px) + var(--game-h,100vh) - 56px);
    right:auto;bottom:auto;
}
.survivor-trial .trial-actions{
    left:calc(var(--game-left,0px) + var(--game-w,100vw) - 168px);
    top:calc(var(--game-top,0px) + var(--game-h,100vh) - 96px);
    right:auto;bottom:auto;
}
/* 完整局只有「翻滚」一个按钮：贴住右侧拇指区，不留下「施法」空位 */
.survivor-trial .trial-actions.single{
    left:calc(var(--game-left,0px) + var(--game-w,100vw) - 90px);
}
.survivor-trial #joystick-container{
    left:calc(var(--game-left,0px) + 22px);
    top:calc(var(--game-top,0px) + var(--game-h,100vh) - 148px);
    bottom:auto;right:auto;
}

/* ── HUD 统一：气血 / 经验 / 属性 / 待选 全部走 DOM（画布只保留世界坐标提示） ── */
.trial-bars{margin-top:10px;display:flex;flex-direction:column;gap:5px}
.trial-bar{display:flex;align-items:center;gap:7px;font-size:10px;color:#9db8ae}
.trial-bar>span{width:24px;flex-shrink:0;letter-spacing:1px}
.trial-bar>i{position:relative;flex:1;height:4px;background:#0a1a16;border:1px solid rgba(184,158,100,0.19);display:block}
.trial-bar>i>b{position:absolute;top:0;bottom:0;left:0;display:block;width:0;background:#cfe3c8}
.trial-bar>i>b.low{background:#c4503a}
.trial-bar.xp>i>b{background:#7fb8ff}
.trial-bar>em{font-style:normal;font-variant-numeric:tabular-nums;color:#c8d8ce;font-size:10px;min-width:54px;text-align:right}
.trial-stats{display:flex;gap:10px;margin-top:8px;font-size:11px;color:#b8c9bf;font-variant-numeric:tabular-nums}
.trial-pending{margin-top:8px;font-size:12px;color:#c9a96a;letter-spacing:1px;animation:trialPulse 1.5s ease-in-out infinite}
@keyframes trialPulse{0%,100%{opacity:.55}50%{opacity:1}}
.trial-objective{margin-top:8px;font-size:11px;color:#91d8cc;line-height:1.6}

/* ── 结算：窄屏下表格与正文不再溢出 ── */
@media(max-width:700px){
  .trial-sheet{padding:26px 20px}
  .trial-sheet h1{font-size:34px;letter-spacing:4px}
  .trial-result{font-size:13px;padding:10px 12px}
  #trialContributions table{font-size:11px}
  #trialContributions th,#trialContributions td{padding:5px 3px}
  #trialContributions caption{font-size:12px}
  .trial-bar{font-size:9px;gap:5px}
  .trial-bar>em{min-width:44px;font-size:9px}
  .trial-stats{gap:8px;font-size:10px}
  .trial-objective{font-size:10px}
  .trial-pending{font-size:11px}
}

/* ── 构筑详情（v1.10）：主修 / 路线阶段 / 层数上限 / 下一阶段条件 ── */
.trial-build .tb-row{display:flex;gap:8px;line-height:1.7;font-size:11px}
.trial-build .tb-row>b{flex:0 0 52px;font-weight:normal;color:#8fa39a;letter-spacing:1px}
.trial-build .tb-row>span{flex:1;color:#d9cdad;word-break:break-word}
.trial-build .tb-row>span i{font-style:normal;color:#b7c9bd;margin-right:8px;white-space:nowrap}
.trial-build .tb-row>span i.full{color:#e4cfa0}
.trial-build .tb-row.dim>span{color:#7d8f87}
.trial-mainart{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:10px;color:#8fa39a}
.trial-mainart>b{font-weight:normal;letter-spacing:1px}
.trial-mainart button{font:inherit;padding:3px 8px;background:transparent;color:#c9bb98;border:1px solid #bca16b55;cursor:pointer}
.trial-mainart button[aria-pressed="true"]{background:#bca16b26;color:#e4cfa0}
.trial-mainart button:disabled{opacity:.5;cursor:default}
.survivor-trial .trial-manual .trial-build{white-space:normal}
