/* Shared battle language. Scene artwork and authoritative game rules stay intact. */
.battleActionCard{position:relative;isolation:isolate;overflow:hidden;display:flex!important;flex-direction:column;justify-content:end;min-width:0;text-align:left;background:linear-gradient(145deg,#243846,#0a1420)!important;border:1px solid #8c7954!important;border-radius:9px!important;color:#f5ead5;box-shadow:0 4px 12px #0005;transition:border-color .15s,translate .15s}
.battleActionCard:not(:disabled):hover{border-color:#ffe2a0!important;translate:0 -3px}.battleActionCard:focus-visible{outline:2px solid #fff0b7;outline-offset:3px}.battleActionCard:disabled{opacity:.52;translate:none;cursor:default}
.battleCardArt{position:absolute;inset:0 0 30%;z-index:-1;background:radial-gradient(ellipse at 50% 70%,#9c7e3c66,transparent 75%);pointer-events:none}.battleCardArt img{height:100%;width:100%;object-fit:contain;object-position:center 20%;filter:drop-shadow(0 3px 5px #0008)}
.battleCardCost{position:absolute;top:7px;left:7px;padding:3px 6px;border:1px solid #c5b18177;border-radius:5px;background:#091923ec;color:#f5e2ad;font:10px system-ui,sans-serif;max-width:calc(100% - 14px)}
.battleCardCopy{display:grid;gap:5px;padding:28px 8px 9px;width:100%;box-sizing:border-box;background:linear-gradient(transparent,#0a1523 25%);font:12px system-ui,sans-serif}.battleCardCopy b{font-weight:650}.battleCardCopy small{font-size:10px;line-height:1.4;color:#c1d0d8}
.battleActionCard[data-action-kind=skill]{border-color:#9a89b6!important}.battleActionCard[data-action-kind=guard]{border-color:#6eaaa9!important}.battleActionCard[data-action-kind=guard] .battleCardArt{background:radial-gradient(ellipse,#487a9277,transparent 75%)}
.battleActing::after,.battleTarget::after{content:'';position:absolute;inset:8% -5%;border-radius:50%;background:radial-gradient(ellipse,#dfbe6340,transparent 70%);pointer-events:none;z-index:-1}.battleTarget::after{background:radial-gradient(ellipse,#d0704930,transparent 70%)}
.battleContact{position:absolute;left:50%;top:44%;width:70px;height:70px;border:2px solid #ffe6ab;border-radius:50%;translate:-50% -50%;box-shadow:0 0 20px #ffbd4e88,inset 0 0 12px #ffdcab66;z-index:6;pointer-events:none;animation:battleContact .6s ease-out forwards}.battleContact.heal{border-color:#9de6c1;box-shadow:0 0 20px #69db9766}.battleContact.guard{border-color:#a9d3ff;box-shadow:0 0 20px #79b6e066}@keyframes battleContact{from{scale:.4;opacity:1}to{scale:1.7;opacity:0}}
.battleFeed{min-height:42px;margin:0;padding:10px 14px;box-sizing:border-box;color:#dccb9d;font:12px/1.5 system-ui,sans-serif;background:#0b1621f0;border:1px solid #8e7d4c55;border-radius:0 0 8px 8px}
.battleRoster{display:flex;flex-direction:column;gap:8px;background:linear-gradient(#12202be8,#09121ced);border:1px solid #8c785149;padding:12px;border-radius:10px;min-width:0}.battleRoster h3{font:12px system-ui,sans-serif;letter-spacing:1px;color:#e6c788;margin:3px 0 10px}.battleRoster button{display:flex;align-items:center;gap:8px;min-width:0;width:100%;padding:7px!important;border:1px solid #76919a55;background:#172734a3;color:#d8e4e8;text-align:left}.battleRoster img{width:37px;height:48px;object-fit:contain;flex:none}.battleRoster button>span{display:grid;gap:4px;min-width:0}.battleRoster b{font-size:11px}.battleRoster small{font-size:10px;color:#bdcdcf}.battleRoster [aria-pressed=true]{border-color:#e9c37a;background:#52412b55}.battleRoster .rosterActing{border-left:3px solid #97d7c1}.battleRoster .rosterFallen{opacity:.45}.battleRoster .battleRosterEnemy{color:#e2ad9c;margin-top:15px}
.battleIntent{margin-top:auto;padding-top:15px;border-top:1px solid #c3aa7640;font:12px/1.65 system-ui,sans-serif;color:#c4d2d8}.battleIntent b{display:block;color:#f1d9a4}.battleIntent span{display:block}.battleIntent em{font-style:normal;color:#96ceb6}
/* Black Rock: framed arena, full silhouettes, direct target selection and action hand. */
body[data-page=ascent] .onlineMain{max-width:1540px}#ascentPanel{max-width:1450px}#ascentPanel[data-expedition-phase=battle] .ascentTop,#ascentPanel[data-expedition-phase=result] .ascentTop{margin-bottom:8px}#ascentPanel .battleLayout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px}.battleCenter{min-width:0}.expeditionBattleHeading{background:#101c29;border:1px solid #b4975855}.expeditionBattleHeading h2{font-size:19px!important}#ascentPanel .expeditionArena{height:clamp(370px,55vh,590px);border-radius:0;background-image:linear-gradient(0deg,#071019c9,transparent 28%,#050b1420),var(--encounter-image);background-size:cover;background-position:center 55%;box-shadow:inset 0 0 60px #02080e66}
#ascentPanel .expeditionArena .ascentFighter{width:23%;transform:translateX(-50%);top:auto;gap:2px;bottom:10%;z-index:auto}#ascentPanel .expeditionArena .ascentArt{height:clamp(150px,29vh,285px);overflow:visible}#ascentPanel .expeditionArena .ascentArt.portrait{overflow:hidden}
#ascentPanel .ascentFighter[data-side=player][data-slot="0"]{left:37%;bottom:7%}#ascentPanel .ascentFighter[data-side=player][data-slot="1"]{left:23%;bottom:25%}#ascentPanel .ascentFighter[data-side=player][data-slot="2"]{left:12%;bottom:5%}
#ascentPanel .ascentFighter[data-side=enemy][data-slot="0"]{left:63%;bottom:7%}#ascentPanel .ascentFighter[data-side=enemy][data-slot="1"]{left:77%;bottom:25%}#ascentPanel .ascentFighter[data-side=enemy][data-slot="2"]{left:88%;bottom:5%}
#ascentPanel .ascentFighter[data-slot="1"] .ascentArt{height:clamp(135px,26vh,255px)}.expeditionArena .expeditionSide.player{top:14px;bottom:auto}.expeditionArena .expeditionSide.enemy{top:14px}.expeditionArena .ascentHp{max-width:110px}.expeditionArena .ascentHp small{font-size:10px}.expeditionArena .ascentFighter>strong{font-size:12px}.expeditionArena .expeditionRing{width:65%;left:17.5%;background:#02090bb0;box-shadow:0 6px 12px #0008;height:12%;bottom:0}
.expeditionArena .expeditionFigure[aria-pressed=true]::before{content:'▼';position:absolute;top:-27px;left:50%;translate:-50% 0;color:#ffe5a6;text-shadow:0 2px 4px black;font-size:14px;z-index:5}.expeditionArena .expeditionFigure[data-target]:not(:disabled):hover .expeditionRing{border-color:#fff2cf;box-shadow:0 0 12px #ffe29a99}.expeditionArena .ascentFallen .expeditionFigure::before{display:none}
#ascentPanel .expeditionCommand{margin-top:10px;padding:12px 15px;border-radius:9px;background:linear-gradient(120deg,#101d2c,#0b1520);gap:22px}#ascentPanel .expeditionCommand>div:first-child{width:175px;flex:none}#ascentPanel .expeditionActionButtons{max-width:none;grid-template-columns:repeat(3,minmax(0,205px));justify-content:center}#ascentPanel .expeditionActionButtons .battleActionCard{padding:0;min-height:153px}.expeditionCommand .battleCardArt{inset:0 0 30%}.expeditionCommand .battleCardCopy{min-height:80px}.expeditionCommand .battleCardCost{font-size:9px}.expeditionUtilities{justify-content:space-between}
.battleTurn{font:10px system-ui,sans-serif;letter-spacing:1px;color:#a3d7c4;border:1px solid #73a59355;border-radius:5px;padding:5px 8px}.battleRoundBusy{color:#f1d9a4}
/* The same clear silhouettes and action hand in survival, escort and siege. */
.operationView{max-width:1380px}.operationObjective{padding:10px 14px}.operationObjective p{font-size:12px}.operationBattle{display:block;height:clamp(360px,55vh,580px);padding:0;overflow:hidden;background-image:linear-gradient(0deg,#071019c9,transparent 35%),var(--operation-scene)}.operationTeam{position:absolute;inset:0;display:block;pointer-events:none}.operationUnit{position:absolute;width:19%;border:0;background:transparent;padding:0;bottom:8%;left:32%;translate:-50% 0;pointer-events:auto;gap:3px}.operationUnit:nth-child(2){left:20%;bottom:25%}.operationUnit:nth-child(3){left:10%;bottom:5%}.operationTeam.enemy .operationUnit{left:68%}.operationTeam.enemy .operationUnit:nth-child(2){left:80%}.operationTeam.enemy .operationUnit:nth-child(3){left:90%}.operationUnit img{height:clamp(150px,29vh,270px);border-radius:0;object-fit:contain;filter:drop-shadow(0 8px 5px #0007)}.operationUnit:not(.cutout) img{object-fit:cover;border-radius:45% 45% 8% 8%}.operationUnit strong,.operationUnit small,.operationUnit progress{position:relative;z-index:3;text-shadow:0 1px 4px black}.operationUnit progress{max-width:100px;align-self:center}.operationUnit[aria-pressed=true]{outline:none}.operationUnit[aria-pressed=true]::after{content:'▼';position:absolute;top:-20px;left:50%;color:#ffe3a0}.operationUnit::before{content:'';position:absolute;bottom:40px;left:15%;width:70%;height:14px;border-radius:50%;background:#040909aa;border:1px solid #91b5aa55;box-shadow:0 4px 9px black}.operationUnit[aria-pressed=true]::before{border-color:#eac680}.operationVersus{display:none}.operationCommands .operationButtons{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.operationCommands .battleActionCard{padding:0;min-height:145px}.operationActionNotice{min-height:20px;color:#e8d6ac;font-size:12px}
/* Champions retain live movement and server time; only the hand and framing change. */
#championArena.gladiatorView{max-width:1360px}#championArena .gladiatorStage{background-image:linear-gradient(0deg,#071019b0,transparent 35%),var(--arena-image);background-size:cover;background-position:center 55%;height:clamp(320px,52vh,580px);border-radius:9px}.gladiatorControls{background:#0a1520e8;border:1px solid #8c795444;padding:12px;border-radius:9px;grid-template-columns:minmax(160px,.8fr) minmax(320px,2fr) auto}.gladiatorActions .battleActionCard{padding:0;min-height:145px}.gladiatorStyle{align-self:center}.gladiatorVitals{background:#0b1621b8;border:1px solid #8c795444;padding:8px;border-radius:7px}.gladiatorTimer{top:8px}.gladiatorBanner{max-width:90%;min-width:40%;font-size:12px}.gladiatorMovement{align-self:center}
/* Territorial battles keep all territories selectable; each has a real arena floor. */
.mapsBoard .mapCard{background-image:linear-gradient(#091622c9,#0a1426aa),var(--territory-art);background-size:cover;background-position:center;border-color:#aa915455}.mapsBoard .miniUnit.cutoutUnit{background:transparent;box-shadow:none;border-color:transparent}.mapsBoard .miniUnit.cutoutUnit .unitDetail img{background:transparent!important;filter:drop-shadow(0 5px 5px #0008)}.mapsBoard .miniUnit.cutoutUnit .unitOverlay{background:linear-gradient(transparent,#08121adb 55%)}.mapsBoard .mapCard.battleActing{border-color:#f5d08b;box-shadow:0 0 0 1px #f5d08b44,inset 0 0 36px #b2893222}.mapsBoard .mapCard.targetable{outline:2px solid #e5c58b;outline-offset:2px}.territoryPlayback{grid-column:1/-1;position:relative;z-index:4}.territoryPlayback .battleFeed{border-radius:7px}.mapsBoard .miniUnit.battleActing{outline:1px solid #f6d59c}.mapsBoard .miniUnit.battleTarget{outline:1px solid #df9b8c}
.duelMode .mapsBoard{grid-template-rows:minmax(0,1fr)!important;padding-bottom:0!important}.duelMode .mapsBoard:has(.territoryPlayback){padding-bottom:46px!important;box-sizing:border-box}.duelMode .territoryPlayback{position:absolute;bottom:0;left:0;right:0}.duelMode .territoryPlayback .battleFeed{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:39px}
.duelMode .mapsBoard .mapCard{grid-template-columns:1fr 1fr!important;grid-template-rows:96px minmax(0,1fr)!important;background:linear-gradient(#07121b70,#07121b30 50%,#07121bba),var(--territory-art) center/cover!important;gap:0!important}.duelMode .mapsBoard .territoryCore{grid-column:1/-1!important;grid-row:1!important;border:0!important;background:#0b1723b5!important;overflow:visible!important;isolation:auto}.duelMode .mapsBoard .territoryCore .mapHero{background:none!important;pointer-events:none}.duelMode .mapsBoard .mapHero .sceneVideo{display:none!important}.duelMode .mapsBoard .mapHero::after{display:none!important}.duelMode .mapsBoard .mapTitle{bottom:auto!important;top:8px!important;left:5px!important;right:35px!important;font-size:14px!important;text-align:left!important}.duelMode .mapsBoard .arenaTrait{top:37px!important;left:10px!important;right:auto!important;font-size:9px!important;padding:3px 6px}.duelMode .mapsBoard .territoryScore{top:64px!important;background:#071421dd!important}.duelMode .mapsBoard .territoryObjective{bottom:3px;left:78px;right:78px;min-height:20px}.duelMode .mapsBoard .territoryObjective summary{font-size:9px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.duelMode .mapsBoard .laneSide{grid-row:2!important;background:transparent!important;display:flex!important;flex-direction:column;position:relative;border:0!important;gap:6px!important}.duelMode .mapsBoard .playerSide{grid-column:1!important}.duelMode .mapsBoard .enemySide{grid-column:2!important}.duelMode .mapsBoard .laneUnits{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:clamp(105px,18vh,165px)!important;align-content:end;gap:4px!important;overflow:auto!important}.duelMode .mapsBoard .laneUnits[data-count="1"]{grid-template-columns:1fr!important;grid-auto-rows:minmax(130px,1fr)!important}.duelMode .mapsBoard .miniUnit{height:100%!important;max-width:none!important;min-height:100px!important;align-self:end}.duelMode .mapsBoard .miniUnit.cutoutUnit{border:0!important;box-shadow:none!important;background:none!important}.duelMode .mapsBoard .unitDetail{height:100%;width:100%}.duelMode .mapsBoard .miniUnit.cutoutUnit .unitDetail img{padding:0 0 35px!important;object-fit:contain!important}.duelMode .mapsBoard .unitOverlay{bottom:14px!important}.duelMode .mapsBoard .laneSide h4{height:20px;flex-shrink:0;color:#e8d7ae}.duelMode .mapsBoard .laneSide h4 span{display:none}.duelMode .mapsBoard .emptyFormation{background:#07131a66;color:#bdc6c7;align-self:end;grid-column:1/-1;min-height:70px}.duelMode .mapsBoard .mapCard.battleActing{border-color:#f5d08b!important;box-shadow:inset 0 0 40px #a3823222,0 0 10px #d4b47244!important}.duelMode .mapsBoard .miniUnit.battleActing{outline:1px solid #f6d59c!important}.duelMode .mapsBoard .miniUnit.battleTarget{outline:1px solid #df9b8c!important}
.duelMode .dockLabel #deploymentHint{display:block!important;max-width:100%;font-size:10px;white-space:normal}.onlineApp.duelMode #arena .roundReport{display:block!important;position:absolute;right:16px;top:50px;z-index:10;max-width:min(600px,90vw);background:#091826f5;border-radius:6px;font-size:11px;padding:5px 9px}.onlineApp.duelMode #arena .roundReport[open]{max-height:60vh;overflow:auto}.onlineApp.duelMode #arena{position:relative}
@media(max-width:800px){.duelMode .mapsBoard{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:none!important;height:auto!important;overflow:visible!important}.duelMode .mapsBoard .mapCard{height:420px!important;min-height:420px!important}.duelMode .mapsBoard .laneUnits{grid-auto-rows:135px!important}.duelMode .territoryPlayback{position:sticky;bottom:5px}.duelMode .mapsBoard:has(.territoryPlayback){padding-bottom:0!important}.onlineApp.duelMode #arena .roundReport{position:relative;top:auto;right:auto;grid-column:1/-1}}
@media(max-width:950px){#ascentPanel .battleLayout{grid-template-columns:145px minmax(0,1fr)}.battleRoster{padding:8px}.battleRoster img{width:29px;height:38px}.battleRoster button{gap:5px}.battleRoster b{font-size:10px}.battleRoster small{font-size:9px}.battleIntent{font-size:11px}#ascentPanel .expeditionCommand>div:first-child{width:140px}.gladiatorControls{grid-template-columns:150px 1fr}.gladiatorStyle{grid-column:1}.gladiatorKeyHint{grid-column:2}}
@media(max-width:700px){#ascentPanel .battleLayout{display:flex;flex-direction:column}.battleRoster{order:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:7px}.battleRoster h3,.battleRoster .battleIntent{grid-column:1/-1;margin:2px 0;padding:0}.battleRoster .battleIntent{display:none}.battleRoster button{min-height:42px!important}.battleRoster img{width:25px;height:34px}#ascentPanel .expeditionArena{height:370px}#ascentPanel .expeditionArena .ascentArt{height:160px}#ascentPanel .ascentFighter[data-slot="1"] .ascentArt{height:145px}#ascentPanel .expeditionCommand{display:block;padding:10px}#ascentPanel .expeditionCommand>div:first-child{width:auto;margin-bottom:9px}.expeditionCommand .eyebrow{display:block}#ascentPanel .expeditionActionButtons{grid-template-columns:repeat(3,minmax(0,1fr))}#ascentPanel .expeditionActionButtons .battleActionCard{min-height:145px}.expeditionArena .ascentFighter>strong{font-size:10px}.expeditionArena .ascentFighter>small{font-size:8px}.battleCardCopy{font-size:11px;padding:23px 5px 7px}.battleCardCopy small{font-size:9px}.battleCardCost{font-size:9px;padding:3px 4px;left:4px}.gladiatorControls{grid-template-columns:1fr auto;padding:8px}.gladiatorMovement{grid-column:1/-1}.gladiatorStyle{grid-column:2;grid-row:2}.gladiatorActions .battleActionCard{min-height:135px}.gladiatorKeyHint{display:none}.operationBattle{height:360px}.operationUnit{width:23%}.operationUnit img{height:150px}.operationUnit strong{font-size:10px}.operationUnit small{font-size:9px}.operationCommands .operationButtons{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.operationCommands .battleActionCard{min-height:140px}.operationCommands .operationButtons>button:not(.battleActionCard){grid-column:span 3}.battleFeed{font-size:11px}}
@media(prefers-reduced-motion:reduce){.battleActionCard{transition:none}.battleActionCard:hover{translate:none}.battleContact{animation:none;opacity:.65}}
