/* One hero identity, readable floating vitals, and responsive damage feedback. */
body.battle-mode .battle-hero-plaque,
body.battle-mode .actor-summary{display:none!important}
body.battle-mode .battle-hero-strike{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;opacity:0;pointer-events:none;filter:drop-shadow(0 0 18px #f2d37b9c)}
body.battle-mode .battle-hero-figure.has-mesh .battle-hero-strike{display:none}
body.battle-mode .battle-hero-figure.is-casting.has-strike-art:not(.has-mesh) .battle-hero-art{animation:arenaPortraitExit 1.65s both}
body.battle-mode .battle-hero-figure.is-casting.has-strike-art:not(.has-mesh) .battle-hero-strike{animation:arenaPortraitStrike 1.65s both}
@keyframes arenaPortraitExit{0%,24%{opacity:1}38%,72%{opacity:0}100%{opacity:1}}
@keyframes arenaPortraitStrike{0%,24%{opacity:0;transform:translateX(-5%) scale(.96)}42%,70%{opacity:1;transform:translateX(4%) scale(1.04)}100%{opacity:0;transform:translateX(1%) scale(1)}}
body.battle-mode .enemy-info{
  top:100px;left:clamp(25px,4vw,80px);right:auto;width:clamp(210px,20vw,280px);
  padding:12px 14px 15px;border:1px solid #b58c6680;border-left:3px solid #c9906e;
  border-radius:3px 17px 17px 3px;background:linear-gradient(105deg,#081e2de8,#123344af 67%,#102e3909);
  box-shadow:0 10px 27px #01131da8,inset 0 1px #f2d9ae42;text-align:left;
}
body.battle-mode .enemy-info>div:first-child{align-items:flex-start}
body.battle-mode .enemy-name{font:700 clamp(15px,1.3vw,20px)/1.35 var(--display);letter-spacing:.08em;color:#f4dfc4}
body.battle-mode .enemy-name small{font:400 11px/1.5 sans-serif;letter-spacing:.08em;color:#c8c9bb}
body.battle-mode .enemy-meta{justify-content:flex-start;gap:4px}
body.battle-mode .enemy-meta span{border:0;padding:1px 4px;background:#e9c79811;color:#d6cdba}
body.battle-mode .enemy-meta span:first-child{color:#f4c2a3}
body.battle-mode .hp-track{position:relative;width:100%;height:8px;border:1px solid #d1aa7999;border-radius:99px;background:#081a24;overflow:hidden;box-shadow:inset 0 2px 4px #010f17,0 0 12px #c77d5d4d}
body.battle-mode .hp-track i{display:block;height:100%;border-radius:inherit;transition:width .7s cubic-bezier(.18,.75,.2,1);box-shadow:0 0 15px #e68769aa}
body.battle-mode .ally-row{top:99px;left:auto;right:clamp(25px,4vw,80px);width:min(30vw,380px);flex-direction:column;gap:7px}
body.battle-mode #allyRow .ally,
body.battle-mode #allyRow .ally:only-child{
  position:relative;flex:1 1 auto;width:100%;min-width:0;padding:12px 15px 13px;
  border:1px solid #d5b5799c;border-right:3px solid #f2cf89;border-radius:17px 3px 3px 17px;
  background:linear-gradient(255deg,#0b2737f0,#123b49dc 75%,#0a2736a1);
  box-shadow:0 10px 28px #01131db5,inset 0 1px #fff2bc5c,inset 0 0 27px #d0ad4c16;
  text-align:left;overflow:visible;
}
body.battle-mode #allyRow .ally.selected{border-color:#e4c183;border-right-color:#ffdc99;box-shadow:0 10px 30px #01131db5,0 0 19px #d9b76859,inset 0 1px #fff2bc80}
body.battle-mode #allyRow .ally:before{content:"✦ 本命之力";display:block;margin-bottom:4px;color:#dabb7b;font:700 10px/1.2 sans-serif;letter-spacing:.22em}
body.battle-mode .ally-text{display:block;width:100%}
body.battle-mode .ally-text b{display:flex;align-items:baseline;gap:9px;color:#ffe4a8;font:700 clamp(17px,1.5vw,23px)/1.25 var(--display);letter-spacing:.09em;overflow:visible}
body.battle-mode .ally-text b em{display:inline;color:#b9d9cf;font:400 10px/1.2 sans-serif;letter-spacing:.12em}
body.battle-mode .vital-line{display:grid;grid-template-columns:105px 1fr;align-items:center;gap:8px;margin-top:8px;color:#e9e6d5;font:700 11px/1.2 sans-serif}
body.battle-mode .vital-line:nth-of-type(2){color:#bdc9bf}
body.battle-mode .vital-track{position:relative;height:8px;margin:0;border:1px solid #d5bc816b;border-radius:99px;background:#051a25;overflow:hidden;box-shadow:inset 0 2px 4px #051018}
body.battle-mode .vital-track:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#06232bc7 25%,transparent calc(25% + 1px));pointer-events:none}
body.battle-mode .vital-track i{display:block;height:100%;border-radius:inherit;transition:width .7s cubic-bezier(.18,.75,.2,1)}
body.battle-mode .vital-track .health{background:linear-gradient(90deg,#277c69,#6fc9a6 72%,#d9efb0);box-shadow:0 0 14px #90dcaf9c}
body.battle-mode .vital-track .health.low{background:linear-gradient(90deg,#ab513e,#e89b68,#ffe1a1);box-shadow:0 0 13px #f4aa7b}
body.battle-mode .vital-track .energy{background:linear-gradient(90deg,#406f9d,#89d1db);box-shadow:0 0 9px #91d5df}
body.battle-mode .ally-shield:empty,.ally-effects:empty{display:none}
body.battle-mode .ally-shield{display:inline-block;margin-top:5px;color:#b9dfed;font-size:10px}
body.battle-mode .hud-damage{position:absolute;z-index:12;top:12px;right:13px;color:#ffe0ad;font:800 23px/1 var(--display);text-shadow:0 0 12px #f55d50,0 2px 4px #170e0b;pointer-events:none;animation:hudDamageFloat 1s ease-out forwards}
body.battle-mode .enemy-info .hud-damage{right:12px;color:#ffbe9e}
body.battle-mode .ally.is-damaged,body.battle-mode .enemy-info.is-damaged{animation:hudDamagePulse .72s ease-out}
body.battle-mode .ally.is-damaged .vital-track,.enemy-info.is-damaged .hp-track{box-shadow:0 0 15px #f9bd8e,inset 0 2px 4px #051018}
@keyframes hudDamageFloat{0%{opacity:0;transform:translateY(7px) scale(.8)}20%{opacity:1;transform:translateY(-5px) scale(1.16)}100%{opacity:0;transform:translateY(-36px) scale(.92)}}
@keyframes hudDamagePulse{0%,100%{filter:none}22%{filter:brightness(1.8) drop-shadow(0 0 12px #ff987c)}48%{filter:brightness(.75)}70%{filter:brightness(1.35)}}
body.battle-mode .action-panel{grid-template-columns:minmax(0,1fr) 130px}
body.battle-mode .action-panel>.skills{grid-column:1;grid-row:1}
body.battle-mode .action-panel>.action-confirm{grid-column:2;grid-row:1}
body.battle-mode .action-panel>.battle-command{grid-column:1/-1;grid-row:2}
body.battle-mode .field-callout strong{font-size:12px;letter-spacing:.14em}
@media(max-width:1050px){
  body.battle-mode .enemy-info{top:94px;left:16px;right:auto;width:240px}
  body.battle-mode .ally-row{top:94px;left:auto;right:16px;width:265px}
  body.battle-mode .action-panel{grid-template-columns:minmax(0,1fr) 96px}
}
@media(max-width:760px){
  body.battle-mode .enemy-info{top:75px;left:8px;right:auto;width:46%;padding:7px 8px;border-radius:3px 11px 11px 3px}
  body.battle-mode .enemy-name{font-size:12px}
  body.battle-mode .enemy-name small{font-size:9px}
  body.battle-mode .enemy-meta{display:none}
  body.battle-mode .ally-row{top:75px;left:auto;right:8px;width:48%}
  body.battle-mode #allyRow .ally,body.battle-mode #allyRow .ally:only-child{padding:7px 9px;border-radius:11px 3px 3px 11px}
  body.battle-mode #allyRow .ally:before{font-size:8px;margin-bottom:2px}
  body.battle-mode .ally-text b{font-size:13px}
  body.battle-mode .ally-text b em{display:none}
  body.battle-mode .vital-line{grid-template-columns:1fr;gap:3px;margin-top:4px;font-size:9px}
  body.battle-mode .vital-track{height:6px}
  body.battle-mode .hud-damage{font-size:17px;top:4px}
  body.battle-mode .action-panel{grid-template-columns:1fr}
  body.battle-mode .action-panel>.skills{grid-column:1;grid-row:1}
  body.battle-mode .action-panel>.action-confirm{grid-column:1;grid-row:2}
  body.battle-mode .action-panel>.battle-command{grid-column:1;grid-row:3}
}
@media(prefers-reduced-motion:reduce){body.battle-mode .vital-track i,body.battle-mode .hp-track i{transition:none}body.battle-mode .ally.is-damaged,body.battle-mode .enemy-info.is-damaged,body.battle-mode .hud-damage{animation:none}body.battle-mode .battle-hero-figure.is-casting.has-strike-art:not(.has-mesh) .battle-hero-strike{opacity:1;animation:none}body.battle-mode .battle-hero-figure.is-casting.has-strike-art:not(.has-mesh) .battle-hero-art{opacity:0;animation:none}}
