/* Two allies hold the foreground; the boss occupies its own ground plane.
   Coordinates are in the shared 640 × 480 stage, including touch layouts. */
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant:is(.player,.enemy,.raid-buddy){
 inset:0 auto auto 0;width:100%;height:100%;display:block;
 --sprite-size:var(--raid-sprite-size,166px);--sprite-width:var(--raid-sprite-width,var(--sprite-size));
 --sprite-drop:0px;--sprite-fx-rise:0px;--duo-field-x:112px;--duo-field-bottom:66px;
}
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant.enemy{--duo-field-x:466px;--duo-field-bottom:164px;z-index:1}
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant.player{z-index:3}
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant.raid-buddy{--duo-field-x:278px;z-index:2}
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant .sprite-flip:not(.battle-idle-bridge){
 position:absolute;left:calc(var(--duo-field-x) - var(--sprite-width) * .5);right:auto;top:auto;
 bottom:calc(var(--duo-field-bottom) - var(--twins-foot-inset,0px));margin:0;
}
/* Retire the old Noxavyr-only top offset now that allies use foot anchors. */
html .battle.battle-raid-group.battle-raid-pair:has(#enemyImg[alt="Noxavyr"]) .combatant:is(.player,.raid-buddy) .sprite-flip:not(.battle-idle-bridge){top:auto}
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant.player .combat-card{left:34px;right:auto;top:10px;bottom:auto}
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant.enemy .combat-card{left:auto;right:34px;top:10px;bottom:auto}
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant .team-dots{top:88px;right:34px}
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .duo-ground-shadow{
 position:absolute;left:var(--duo-field-x);bottom:calc(var(--duo-field-bottom) - 4px);width:calc(var(--sprite-width) * .60);height:12px;
 transform:translateX(-50%);background:radial-gradient(ellipse,rgba(12,22,35,.31),rgba(12,22,35,.10) 48%,transparent 72%);pointer-events:none;
}
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant:is(.shiny-combatant,.holo-combatant)::after,
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant.black-holo-combatant::before,
html .battle.battle-raid-pair:not(.battle-colosseum-duo) .combatant .black-holo-aura{
 left:var(--duo-field-x);right:auto;top:auto;bottom:calc(var(--duo-field-bottom) - 15px);transform:translateX(-50%);
}
/* Shared 2v2 staging keeps rivals higher and the party lower on every screen. */
html .battle.battle-colosseum-duo .combatant.enemy{--duo-field-bottom:226px}
html .battle.battle-colosseum-duo .combatant:is(.player,.raid-buddy.duo-player){--duo-field-bottom:74px}
html.is-touch .battle.battle-colosseum-duo .combatant:is(.player,.enemy,.raid-buddy.duo-player){
 --sprite-size:var(--duo-sprite-size-desktop,176px);--sprite-width:var(--duo-sprite-width-desktop,var(--sprite-size));
}
html.is-touch .battle.battle-colosseum-duo .combatant.enemy{--duo-field-x:532px}
html.is-touch .battle.battle-colosseum-duo .combatant.enemy.duo-enemy{--duo-field-x:340px}
html.is-touch .battle.battle-colosseum-duo .combatant.raid-buddy.duo-player{--duo-field-x:302px}
/* Generated Namaris body poses own articulation; do not add the generic rigid lunge. */
.battle .combatant.namaris-casting .sprite-flip:not(.battle-idle-bridge){animation:none!important;transform-origin:50% 96%}
.fx-sprite-sheet.fx-sheet-namaris-dorsal{
 mask-image:none;-webkit-mask-image:none;mix-blend-mode:normal;opacity:1;transform:translate(-50%,-50%);
 animation:namaris-dorsal-frames var(--fx-sheet-duration) steps(var(--fx-sheet-steps),end) forwards;
}
html.is-touch .battle.namaris-arena.battle-raid-pair .namaris-rhythm{
 left:calc(var(--battle-stage-left) + var(--battle-stage-width-px) * .245);
 top:calc(var(--battle-stage-top) + var(--battle-stage-height-px) * .405);
 max-width:calc(var(--battle-stage-width-px) * .43);font-size:11px;
}
@keyframes namaris-dorsal-frames{0%{background-position:0 0}94.444444%,100%{background-position:var(--fx-sheet-travel) 0}}
.fx-sprite-sheet.fx-sheet-namaris-ordnance{
 mask-image:none;-webkit-mask-image:none;mix-blend-mode:normal;opacity:1;transform:translate(-50%,-50%);
 animation:namaris-ordnance-frames var(--fx-sheet-duration) steps(var(--fx-sheet-steps),end) forwards,
 namaris-ordnance-fade var(--fx-sheet-duration) linear forwards;
}
@keyframes namaris-ordnance-frames{0%{background-position:0 0}91.666667%,100%{background-position:var(--fx-sheet-travel) 0}}
@keyframes namaris-ordnance-fade{0%,66%{opacity:1}76%{opacity:.75}87%{opacity:.3}100%{opacity:0}}
/* Portrait is a real battle view for every duo raid, not just Namaris. */
@media(max-width:600px) and (orientation:portrait){
 html.is-touch .battle.namaris-arena.battle-raid-pair .namaris-rhythm{left:50%;top:calc(var(--battle-stage-top) - 36px);max-width:90vw}
 html .battle.battle-raid-pair:not(.battle-colosseum-duo){
  --duo-portrait-width:min(calc(100vw - 16px),calc((100dvh - 240px) / .75));
  --battle-scale-x:calc(var(--duo-portrait-width) / 640px)!important;--battle-scale-y:calc(var(--duo-portrait-width) / 640px)!important;
  --battle-stage-left:calc((100vw - var(--duo-portrait-width)) * .5)!important;
  --battle-stage-top:max(48px,calc((100dvh - var(--battle-stage-height-px) - 184px) * .5))!important;
  --battle-stage-width-px:var(--duo-portrait-width)!important;--battle-stage-height-px:calc(var(--duo-portrait-width) * .75)!important;
 }
 html .battle.battle-raid-pair:not(.battle-colosseum-duo) .move-buttons{left:8px!important;right:auto!important;top:calc(var(--battle-stage-top) + var(--battle-stage-height-px) + 12px)!important;bottom:auto!important;width:calc(100vw - 16px)!important;height:auto!important;transform:none!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:auto auto!important;gap:6px!important}
 html .battle.battle-raid-pair:not(.battle-colosseum-duo) .move-buttons button{min-height:50px;grid-column:auto!important;grid-row:auto!important}
 html .battle.battle-raid-pair:not(.battle-colosseum-duo) .battle-actions{left:8px!important;right:auto!important;top:calc(var(--battle-stage-top) + var(--battle-stage-height-px) + 126px)!important;bottom:auto!important;width:calc(100vw - 16px)!important;height:auto!important;transform:none!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:auto!important;gap:6px!important}
 html .battle.battle-raid-pair:not(.battle-colosseum-duo) .battle-actions button{min-height:44px;grid-column:auto!important;grid-row:auto!important}
 html .battle.battle-raid-pair:not(.battle-colosseum-duo) .battle-action-menu{left:50%!important;right:auto!important;top:50%!important;transform:translate(-50%,-50%)!important;width:min(260px,86vw)}
 html .battle.battle-raid-pair .combatant .combat-card{width:230px;max-width:230px}
 html .battle.battle-raid-pair .combat-name strong{font-size:18px}html .battle.battle-raid-pair .combat-card small{font-size:17px}
}
