/* 博弈沿用战场与下方操作区，人物不迁移、不换镜头。 */
.battle{position:relative}.battle-controls{position:relative}
.battle.compact-arena .battle-frame{overflow:visible}
.battle.compact-arena .battle-hud{width:min(340px,calc(100vw - 24px));left:50%;right:auto;transform:translateX(-50%);padding-inline:4px}
.battle.compact-arena .fighter-hud>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#gameCanvas,#fallbackScene{overflow:hidden}
.battle.has-wager .battle-controls{min-height:156px}
.wager-panel[hidden],.tactical-banner[hidden]{display:none}
.wager-panel{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;gap:4px;color:#f3e4ee;overflow:hidden}
.battle.is-wager-active .battle-controls>:not(.wager-panel){visibility:hidden;pointer-events:none}
.battle.is-wager-active .battle-dialogue,.battle.is-wager-active .tactical-banner{display:none}
.battle.is-wager-active .round-center>strong{color:#ffe0a2;font-size:21px;text-shadow:0 0 12px #efbb6144}
.battle.is-wager-active .round-center>small{color:#d5abc5}
.wager-topline{height:20px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 3px;flex-shrink:0}
.wager-topline h2{margin:0;font:700 14px 'KaiTi','STKaiti',serif;letter-spacing:.06em;white-space:nowrap;color:#f8d29d}
#wagerPrompt{font-size:10px;line-height:1.3;color:#d0b2ca;text-align:right}
.wager-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;flex-shrink:0}
.wager-choices button{height:46px;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #c991bd70;border-radius:6px;background:linear-gradient(125deg,#37213a,#151c2e);color:#f4deee;font-size:12px;touch-action:manipulation}
.wager-choices button>span{font-size:21px;line-height:1}
.wager-choices button:hover,.wager-choices button.is-chosen{border-color:#f7d38a;background:linear-gradient(125deg,#59452d,#2d2235);color:#fff0ca}
.wager-choices button.is-chosen:disabled{opacity:1}
.wager-duel{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:18px;padding:0 3px;flex-shrink:0}
.wager-duel>div{display:flex;align-items:center;gap:5px;min-width:0}
.wager-duel strong{font-size:9px;white-space:nowrap;font-weight:500;color:#96aac2}
.wager-duel span{font-size:15px;line-height:1.1;color:#e9bfdd;min-width:13px;text-align:center}
.wager-duel small{font-size:9px;color:#be9db7;white-space:nowrap}
.wager-outcome{margin:0;min-height:25px;font-size:9px;line-height:1.45;color:#dfc699;text-align:center;display:flex;align-items:center;justify-content:center}
.wager-exit{height:28px;width:100%;flex-shrink:0;margin:0;padding:0 8px;border:1px solid #ffffff1c;border-radius:6px;background:#101a29;color:#95a9c1;font-size:10px}
.wager-panel[data-stage=result] .wager-duel small{color:#ffdb9f}
.tactical-banner{position:absolute;left:8%;right:8%;top:76px;z-index:7;text-align:center;pointer-events:none;background:#0f131ee8;border:1px solid #dcc18b88;border-left:3px solid #edd89f;border-radius:4px;padding:9px;color:#ffe0a8;font-size:11px;line-height:1.6;box-shadow:0 8px 25px #0005}
@media(max-width:400px){.wager-duel strong{font-size:8px}.wager-duel>div{gap:4px}.wager-choices button{font-size:11px}.tactical-banner{font-size:9px;padding:6px;top:64px}}
@media(max-width:350px){#wagerPrompt{font-size:9px}.wager-duel strong{font-size:8px}.wager-duel small{font-size:8px}.wager-duel>div{gap:3px}}
@media(orientation:landscape) and (max-height:520px){.battle.has-wager .battle-controls{min-height:168px}.wager-topline{height:auto;min-height:30px;align-items:flex-start}.wager-topline h2{font-size:12px}#wagerPrompt{font-size:8px;max-width:70px}.wager-choices{gap:3px}.wager-choices button{height:42px;flex-direction:column;gap:2px;font-size:9px}.wager-choices button>span{font-size:17px}.wager-duel{flex-direction:column;gap:3px;padding:0}.wager-duel strong{font-size:8px}.wager-duel small{font-size:8px}.wager-outcome{font-size:8px;min-height:29px}}
/* 战斗优先显示竞技区；原有角色选择页不变。 */
body.is-battling .game-shell{padding-block:4px}
body.is-battling .topbar{height:44px}
body.is-battling .statusbar{height:24px}
body.is-battling .control-tip{display:none}
body.is-battling .attack-btn,body.is-battling .domain-btn{height:52px}
body.is-battling .battle-utility button{height:30px}
.battle.has-wager .battle-controls{min-height:136px}
.wager-panel{gap:3px}.wager-topline{height:18px}.wager-choices button{height:44px}.wager-duel{min-height:16px}.wager-outcome{min-height:20px;font-size:9px;line-height:1.3}.wager-exit{height:24px}
.attack-btn.is-buffered{border-color:#ffe3a0;box-shadow:inset 0 0 16px #ecc96822}
@media(orientation:landscape) and (max-height:520px){.battle.has-wager .battle-controls{min-height:166px}.wager-topline{height:auto;min-height:30px}}
.fighter-marker{position:absolute;z-index:5;display:flex;align-items:center;flex-direction:column;gap:2px;transform:translateX(-50%);pointer-events:none;user-select:none;font:700 10px/13px system-ui;color:#a0eaff;text-shadow:0 1px 3px #000}
.fighter-marker[hidden]{display:none}.fighter-marker[data-role=guest]{color:#ffb0ba}
.fighter-marker span{background:#07101be6;padding:1px 4px;border-radius:2px;white-space:nowrap}
.fighter-marker i{width:0;height:0;border-inline:4px solid transparent;border-top:4px solid currentColor}
/* QQ内置页面降低合成开销：保留人物和文字，移除持续装饰动画、模糊和滚动遮罩。 */
.low-effects .stage-column,.low-effects .showcase-portrait svg,.low-effects .portrait svg{filter:none!important}
.low-effects .selector *{animation:none!important;transition:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;scroll-behavior:auto!important}
.low-effects .showcase-orbit{display:none}
.low-effects .selector .character-grid{mask-image:none;-webkit-mask-image:none;scroll-snap-type:none}
.creator-bar{flex:0 0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;background:#0b111c;border-inline:1px solid #ffffff1c;padding:6px 7px}
.creator-bar a,.creator-bar button{display:flex;align-items:center;justify-content:center;gap:4px;color:#aebed1;background:#122031;border:1px solid #6688ac32;border-radius:5px;padding:7px 3px;font:11px/1.2 system-ui;text-decoration:none;white-space:nowrap;cursor:pointer}
.creator-bar b,.creator-bar img,.creator-bar span{display:inline-block;width:16px;height:16px;font:700 12px/16px system-ui;text-align:center;color:#9ee4ff}
.creator-bar a:first-child b{color:#d3a9ff}.creator-bar a:nth-child(2) b{color:#ff9bbb}.creator-bar a:hover,.creator-bar button:hover{border-color:#86d8f5}
.creator-bar img{background:#eef5ff;border-radius:3px;padding:1px;box-sizing:border-box}
body.is-battling .stage-column>.creator-bar{display:none}.result-creator-bar{background:none;border:0;grid-template-columns:1fr 1fr;margin:12px 0}
.thanks-letter-overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#030711df;padding:20px}.thanks-letter-overlay[hidden]{display:none}
.thanks-letter-panel{position:relative;display:flex;flex-direction:column;width:min(680px,100%);max-height:92vh;max-height:92dvh;border:1px solid #72bbd46b;border-radius:12px;background:#101925;color:#d2deeb;box-shadow:0 18px 60px #0008;overflow:hidden}
.thanks-close-button{position:absolute;right:12px;top:12px;width:32px;height:32px;border:1px solid #ffffff26;background:#17283a;color:#fff;border-radius:6px;font-size:23px;cursor:pointer}
.thanks-letter-heading{padding:25px 52px 18px 25px;border-bottom:1px solid #ffffff15}.thanks-letter-heading .kicker{font:11px system-ui;color:#99b8d1}.thanks-letter-heading h2{margin:10px 0;font:700 clamp(23px,4vw,30px)/1.3 KaiTi,serif}.thanks-letter-heading>p{font:11px system-ui;color:#86cce6;margin:0}
.thanks-letter-scroll{overflow:auto;padding:22px 25px;overscroll-behavior:contain;line-height:1.9}.thanks-letter-scroll p{font-size:13px;margin:0 0 17px}.thanks-letter-scroll .thanks-letter-lead{font-size:15px;font-weight:700;color:white}.thanks-letter-scroll a{color:#8ee4ff}.thanks-letter-scroll footer{text-align:right;font:12px monospace;color:#9badbf}
@media(max-width:420px){.creator-bar a,.creator-bar button{font-size:9px;gap:2px}.creator-bar{padding:5px 4px}.thanks-letter-overlay{padding:9px}.thanks-letter-heading{padding:20px 48px 14px 18px}.thanks-letter-scroll{padding:16px 18px}}
/* 作者入口使用静态分色与图标底板；QQ模式不启用发光滤镜或循环动画。 */
.creator-bar{gap:7px;padding:7px 9px;background:#0a101b}
.creator-bar a,.creator-bar button{position:relative;justify-content:flex-start;gap:9px;padding:9px 10px;border:1px solid #647c994a;border-radius:9px;background:linear-gradient(135deg,#1a293b,#0c1522);color:#dceafb;min-width:0;text-align:left}
.creator-bar .creator-support{border-color:#be8ded66;background:linear-gradient(125deg,#342440,#151a2b)}.creator-bar .creator-bilibili{border-color:#de7ea059;background:linear-gradient(125deg,#362436,#151a29)}.creator-bar .creator-platform{border-color:#c4a7655e}.creator-bar .creator-letter{border-color:#70aac75e}
.creator-bar b,.creator-bar img{width:26px;height:26px;flex-shrink:0;font:700 17px/26px system-ui;border-radius:7px;background:#ffffff0b;color:#d3bcff;text-align:center}.creator-bar .creator-bilibili b{color:#ffb1cd}.creator-bar img{background:#ecf3f8;padding:3px}.creator-bar .creator-letter b{color:#9eddff}
.creator-bar .creator-copy{display:flex;flex-direction:column;gap:3px;width:auto;height:auto;min-width:0;flex:1;text-align:left;color:inherit;line-height:1.2}.creator-copy strong{font-size:11px;font-weight:650}.creator-copy small{font-size:8px;color:#8d9db6;white-space:nowrap}.creator-bar i{font:13px system-ui;color:#94a8c4}
.capacity-panel{position:relative;display:grid;grid-template-columns:7px 1fr;gap:10px;padding:15px;margin-top:14px;border:1px solid #d7b96866;background:linear-gradient(135deg,#2b2531,#111d2c);border-radius:10px}.capacity-panel[hidden]{display:none}.capacity-light{height:7px;background:#f3ce77;border-radius:50%;margin-top:5px}.capacity-panel h2{font-size:14px;margin:0 0 7px;color:#ffe9b1}.capacity-panel p{font-size:11px;line-height:1.6;color:#bacbdd;margin:4px 0}.capacity-actions{grid-column:2;display:flex;flex-wrap:wrap;gap:8px}.capacity-actions button,.capacity-actions a{font:11px system-ui;border:1px solid #bfa4dd66;border-radius:5px;background:#222338;color:#e5cffd;padding:8px 10px;text-decoration:none;cursor:pointer}.capacity-panel>small{grid-column:2;color:#8c9aae;font-size:9px}
@media(max-width:600px){.creator-bar{gap:4px;padding:5px}.creator-bar a,.creator-bar button{gap:4px;padding:7px 4px;justify-content:center;border-radius:6px}.creator-bar b,.creator-bar img{width:18px;height:18px;font-size:12px;line-height:18px;border-radius:4px}.creator-bar img{padding:2px}.creator-copy strong{font-size:9px}.creator-copy small,.creator-bar i{display:none}.creator-bar .creator-copy{flex:0 1 auto}}
@media(max-width:340px){.creator-bar b,.creator-bar img{display:none}}
.low-effects .selector .character-card{transform:none;opacity:1;background:#101a26;contain:layout paint;box-shadow:none}
.low-effects .selector .character-card.is-selected{background:linear-gradient(115deg,var(--character-dark),#10202b);border-color:var(--role-color)}
.low-effects .selector .character-grid{contain:layout paint;will-change:scroll-position}
.low-effects .selector .character-card .portrait{pointer-events:none}
.low-effects .confirm-character,.low-effects .selection-dot{box-shadow:none;filter:none}

/* 维护支持卡：普通文档流。标题、说明、行动、记录、连接规则依次排列，不叠加战场图层。 */
.support-panel{position:relative;margin-top:18px;padding:25px;border:1px solid #514363;border-top:3px solid #b39ccc;border-radius:16px;background:#141b29;color:#edf0f7;text-align:left;overflow:hidden}
.support-panel[hidden],.support-panel [hidden]{display:none}
.support-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px}
.support-panel .support-eyebrow{margin:0 0 7px;font-size:10px;letter-spacing:.15em;color:#c1aad9}
.support-heading h2{margin:0;font-size:22px;line-height:1.35;font-weight:650;letter-spacing:.025em;color:#f5eefb}
.support-voluntary{flex-shrink:0;padding:6px 9px;border:1px solid #4c435b;border-radius:6px;background:#262233;color:#d8c6e9;font-size:10px}
.support-panel p{font-size:12px;line-height:1.85;margin:10px 0;color:#b6c2d4}
.support-panel .support-story{font-size:13px;line-height:1.9;color:#d1d9e6}
.support-panel .support-invitation{margin-top:10px;color:#b7c5d7}
.support-main-action{margin:19px 0 22px}
.support-donate{display:flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border:1px solid #d6c5ee;border-radius:8px;background:#cdb8e7;color:#21182f;font-size:13px;font-weight:700;text-decoration:none}
.support-donate:hover{background:#decef0}
.support-main-action>span{display:block;margin-top:9px;font-size:11px;line-height:1.7;text-align:center;color:#a8b7ca}
.support-account{padding:15px;border:1px solid #334158;border-radius:9px;background:#0d1523}
.support-account-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.support-account h3{margin:0;font-size:12px;color:#e1e8f3;font-weight:600}
#supportState{font-size:11px;color:#a9b8ce;line-height:1.6}
.support-panel[data-support-state="verified"] #supportState{color:#b0dacc}
.support-panel #supportDetail{font-size:11px;margin:8px 0 0;color:#a8b7cd}
.support-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}
.support-actions button{min-height:42px;padding:8px 12px;border:1px solid #5b526e;border-radius:6px;background:#2b263b;color:#e8e0f2;font-size:11px;cursor:pointer}
.support-actions button:hover{border-color:#ba9eda;background:#342d47}
.support-actions button:disabled{opacity:.55;cursor:wait}
#supportLogout{background:transparent;color:#a8b7ca;border-color:#39465b}
.support-panel label{display:block;margin-top:13px;font-size:11px;line-height:1.7;color:#c2b5d4}
.support-panel input{display:block;box-sizing:border-box;width:100%;min-width:0;margin-top:7px;padding:11px;border:1px solid #60748f;border-radius:5px;background:#0b111e;color:#d4e2f4;font-size:11px}
.support-panel #supportMessage{margin:10px 0 0;font-size:11px;line-height:1.75;color:#d9c798}
#supportMessage:empty{display:none}
.support-footer{margin-top:16px;padding:0;background:transparent;border:0}
.support-panel .support-footer>p{font-size:11px;line-height:1.75;color:#abb9cb;margin:0 0 6px}
.support-explanation summary{width:fit-content;min-height:36px;display:list-item;padding:7px 0;cursor:pointer;color:#c8b1e0;font-size:11px;line-height:1.8}
.support-panel .support-explanation p{font-size:11px;color:#aebed0;margin:6px 0 0}
.support-actions button:focus-visible,.support-panel input:focus-visible,.support-donate:focus-visible,.support-explanation summary:focus-visible{outline:2px solid #a5dbef;outline-offset:3px}
@media(max-width:600px){.support-panel{padding:20px 17px;border-radius:13px}.support-heading{gap:10px;margin-bottom:14px}.support-heading h2{font-size:19px}.support-voluntary{padding:5px 7px;font-size:9px}.support-account{padding:13px}.support-actions button{padding:8px 10px}}
