/* V451 — Arena do PvP: a luta simulada tocada em tela cheia. Paleta da Arena
   (latao envelhecido e vinho) e a mesma tipografia das janelas. */
/* Acima da janela do PvP (6200). */
.pvpBattleOverlayV451{position:fixed;inset:0;z-index:6300;display:none;align-items:center;justify-content:center;padding:18px;
  background:radial-gradient(ellipse at 50% 45%,#2a1210 0%,#0a0708 55%,#030304 100%);font-family:var(--font-ui);color:#e2e9ec}
.pvpBattleOverlayV451.open{display:flex}
.pvpBattleStageV451{position:relative;width:min(1100px,100%);display:flex;flex-direction:column;gap:14px}

.pvpBattleHeadV451{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:12px 16px;
  border:1px solid #8c6b32;background:linear-gradient(#1a1410,#0b0908);box-shadow:inset 0 0 0 1px #050404}
.pvpBattleSideV451 b{display:block;color:#ffe092;font:700 20px var(--font-display);letter-spacing:.04em;overflow-wrap:anywhere}
.pvpBattleSideV451 small{color:#c9b58f;font:900 14px var(--font-ui);letter-spacing:.06em}
.pvpBattleSideV451.right{text-align:right}
.pvpBattleClockV451{text-align:center}
.pvpBattleClockV451 small{display:block;color:#a88a5a;font:900 14px var(--font-ui);letter-spacing:.14em}
.pvpBattleClockV451 b{color:#fff0c0;font:700 27px var(--font-display);font-variant-numeric:tabular-nums}

.pvpBattleArenaV451{position:relative;display:grid;grid-template-columns:1fr 70px 1fr;align-items:center;gap:10px;min-height:360px;padding:18px 10px;
  border:1px solid #3b2a1a;background:linear-gradient(180deg,#120d0b 0%,#0a0808 70%,#1a100c 100%)}
.pvpBattleTeamV451{display:flex;flex-direction:column;gap:12px}
.pvpBattleVsV451{text-align:center;color:#d58d37;font:700 27px var(--font-display);text-shadow:0 0 14px #d58d3788}

.pvpFighterV451{position:relative;display:grid;grid-template-columns:84px 1fr;gap:12px;align-items:center;padding:8px;
  border:1px solid #4a3522;background:linear-gradient(#18120e,#0c0a09);transition:transform .22s ease-out,opacity .4s,filter .4s}
.pvpFighterV451.side-1{grid-template-columns:1fr 84px;text-align:right}
.pvpFighterV451.side-1 .pvpFighterPortraitV451{order:2}
.pvpFighterPortraitV451{width:84px;height:84px;overflow:hidden;border:1px solid #8c6b32;background:#050404}
.pvpFighterPortraitV451 img{width:100%;height:100%;object-fit:cover}
.pvpFighterInfoV451 b{display:block;color:#ffe092;font:900 16px var(--font-ui);letter-spacing:.06em}
.pvpFighterInfoV451 small{color:#a88a5a;font:900 14px var(--font-ui)}
.pvpFighterBarV451{position:relative;height:12px;margin:6px 0 4px;background:#2a0f0f;border:1px solid #000}
.pvpFighterBarV451 .hp{position:absolute;inset:0 auto 0 0;width:100%;background:linear-gradient(#e2574c,#9d241d);transition:width .25s ease-out}
.pvpFighterBarV451 .shield{position:absolute;inset:0 auto 0 0;width:0;background:#5fd4f5aa;transition:width .25s ease-out}
.pvpFighterV451.side-1 .pvpFighterBarV451 .hp,.pvpFighterV451.side-1 .pvpFighterBarV451 .shield{inset:0 0 0 auto}
.pvpFighterHpV451{color:#e2e9ec;font:900 14px var(--font-ui);font-variant-numeric:tabular-nums}

.pvpFighterV451.lunge.side-0{transform:translateX(28px)}
.pvpFighterV451.lunge.side-1{transform:translateX(-28px)}
.pvpFighterV451.hit{animation:pvpHitV451 .3s ease-out}
.pvpFighterV451.casting{box-shadow:0 0 0 1px var(--skill),0 0 22px var(--skill)}
.pvpFighterV451.down{opacity:.38;filter:grayscale(1);transform:translateY(6px) rotate(-2deg)}
@keyframes pvpHitV451{0%{filter:brightness(2.2) saturate(.2)}30%{transform:translateX(-5px)}60%{transform:translateX(5px)}100%{filter:none;transform:none}}

.pvpBattleNumberV451{position:absolute;top:10px;z-index:2;pointer-events:none;font:900 20px var(--font-ui);color:#fff;
  text-shadow:0 2px 0 #000,0 0 6px #000;animation:pvpNumberV451 1.1s ease-out forwards}
.pvpBattleNumberV451.crit{color:#ffd166;font-size:27px}
.pvpBattleNumberV451.skill{color:#ffae5c}
.pvpBattleNumberV451.heal{color:#7ee2a0}
.pvpBattleNumberV451.shield{color:#5fd4f5}
@keyframes pvpNumberV451{from{opacity:0;transform:translateY(8px) scale(.8)}15%{opacity:1;transform:translateY(0) scale(1.08)}to{opacity:0;transform:translateY(-38px)}}

.pvpBattleBannerV451{position:absolute;left:50%;top:14px;transform:translateX(-50%);opacity:0;pointer-events:none;
  color:var(--skill,#ffd166);font:700 27px var(--font-display);letter-spacing:.12em;text-shadow:0 0 16px var(--skill,#ffd166),0 2px 0 #000;white-space:nowrap}
.pvpBattleBannerV451.show{animation:pvpBannerV451 .9s ease-out}
@keyframes pvpBannerV451{0%{opacity:0;transform:translate(-50%,6px) scale(.9)}20%{opacity:1;transform:translate(-50%,0) scale(1)}80%{opacity:1}100%{opacity:0}}

.pvpBattleStageV451.finalBlow .pvpBattleArenaV451{animation:pvpFinalV451 1.2s ease-out}
@keyframes pvpFinalV451{0%{box-shadow:inset 0 0 0 #000}40%{box-shadow:inset 0 0 120px #b3261e}100%{box-shadow:inset 0 0 0 #000}}

.pvpBattleControlsV451{display:flex;justify-content:center;gap:10px}
.pvpBattleControlsV451 button,.pvpBattleResultV451 button{min-width:110px;padding:10px 16px;border:1px solid #d58d37;
  background:linear-gradient(#43200f,#24130c);color:#ffe08c;font:900 16px var(--font-ui);letter-spacing:.08em;cursor:pointer}
.pvpBattleControlsV451 button:hover,.pvpBattleControlsV451 button:focus-visible,.pvpBattleResultV451 button:focus-visible{filter:brightness(1.2);outline:none}

.pvpBattleResultV451{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  background:#050304e0;animation:pvpResultV451 .5s ease-out}
.pvpBattleResultV451[hidden]{display:none}
.pvpBattleResultV451 small{color:#c9b58f;font:900 14px var(--font-ui);letter-spacing:.16em}
.pvpBattleResultV451 h2{margin:0;font:700 56px var(--font-display);letter-spacing:.12em}
.pvpBattleResultV451.win h2{color:#ffe092;text-shadow:0 0 30px #d58d37}
.pvpBattleResultV451.loss h2{color:#e2574c;text-shadow:0 0 30px #7d1a14}
.pvpBattleResultV451 p{margin:0 0 8px;color:#e2e9ec;font:900 16px var(--font-ui)}
@keyframes pvpResultV451{from{opacity:0}to{opacity:1}}

@media (max-width:760px){
  .pvpBattleArenaV451{grid-template-columns:1fr;min-height:0}
  .pvpBattleVsV451{padding:4px 0}
  .pvpFighterV451,.pvpFighterV451.side-1{grid-template-columns:64px 1fr;text-align:left}
  .pvpFighterV451.side-1 .pvpFighterPortraitV451{order:0}
  .pvpFighterPortraitV451{width:64px;height:64px}
}
@media (prefers-reduced-motion:reduce){
  .pvpFighterV451,.pvpBattleNumberV451,.pvpBattleBannerV451.show,.pvpBattleStageV451.finalBlow .pvpBattleArenaV451,.pvpFighterV451.hit{animation:none!important;transition:none!important}
}

/* V452 — Cena com os herois de verdade no lugar dos cartoes. */
.pvpBattleArenaV451.withSceneV452{display:block;min-height:0;padding:0;overflow:hidden}
.pvpBattleArenaV451.withSceneV452 .pvpBattleTeamV451,.pvpBattleArenaV451.withSceneV452 .pvpBattleVsV451{display:none}
.pvpSceneV452{display:block;width:100%;height:auto;aspect-ratio:1100/440;image-rendering:pixelated}

/* V453 — Dossie do Eco: o trio em fotos retangulares lado a lado (pedido do
   dono, no enquadramento de splash art). Cada foto preenche a altura do
   quadro, com luz de fundo na cor da classe e o nome numa faixa embaixo. */
.pvpEchoPortraitStageV298{height:200px;padding:0;align-items:stretch}
.pvpEchoPortraitStageV298:before{background:linear-gradient(0deg,#050709aa,transparent 30%)}
.pvpEchoPortraitStageV298:after{display:none}
.pvpEchoPortraitsV298{width:100%;height:100%;gap:3px;align-items:stretch;background:#000}
.pvpEchoPortraitsV298 span,.pvpEchoPortraitsV298 span.captain{flex:1 1 0;min-width:0;max-width:none;height:100%;margin:0;transform:none;clip-path:none;overflow:hidden;
  filter:none;background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--hero-glow,#d58d37) 55%,transparent) 0,#0a0f14 72%)}
.pvpEchoPortraitsV298 span[data-hero="0"]{--hero-glow:#ff8a3d}.pvpEchoPortraitsV298 span[data-hero="1"]{--hero-glow:#4c8dff}
.pvpEchoPortraitsV298 span[data-hero="2"]{--hero-glow:#ffe28a}.pvpEchoPortraitsV298 span[data-hero="3"]{--hero-glow:#b36bff}
.pvpEchoPortraitsV298 span[data-hero="4"]{--hero-glow:#5fd4f5}.pvpEchoPortraitsV298 span[data-hero="5"]{--hero-glow:#6fdc84}
.pvpEchoPortraitsV298 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;image-rendering:pixelated;
  filter:saturate(1.1) contrast(1.06);transition:transform .35s ease-out}
.pvpEchoDossierV298:hover .pvpEchoPortraitsV298 img{transform:scale(1.06)}
.pvpEchoHeroNameV453{position:absolute;left:0;right:0;bottom:0;padding:14px 4px 5px;text-align:center;
  background:linear-gradient(transparent,#05070af2 60%);color:#ffe092;font:900 14px var(--font-ui);letter-spacing:.08em;
  border-bottom:2px solid var(--hero-glow,#d58d37);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Vaga vazia: retangulo escuro, borda tracejada e silhueta. */
.pvpEchoPortraitsV298 span.pvpEchoEmptyV453{--hero-glow:#3a4a55;background:repeating-linear-gradient(135deg,#0b1116 0 10px,#0e151b 10px 20px);
  outline:1px dashed #3a4a55;outline-offset:-5px}
.pvpEchoSilhouetteV453{position:absolute;left:50%;top:44%;width:46px;height:84px;transform:translate(-50%,-50%);opacity:.5;
  background:radial-gradient(circle at 50% 18%,#4b5d69 0 15px,transparent 16px),radial-gradient(ellipse at 50% 100%,#4b5d69 0 30px,transparent 31px)}
.pvpEchoPortraitsV298 span.pvpEchoEmptyV453 .pvpEchoHeroNameV453{color:#8d9ba3}

/* V457 — Luta dentro da moldura da Arena (assets/ui/pvp/pvp_frame, 1672x941).
   A cena ocupa o quadro todo por baixo; a moldura fica por cima; os textos vao
   nas plaquinhas vazias, em posicoes medidas na arte (porcentagem do quadro). */
.pvpBattleStageV451.framedV457{width:min(1180px,92vw,calc((100vh - 80px)*1672/941));gap:0}
/* Fundo fume, como as outras janelas (veu escuro translucido com desfoque). */
.pvpBattleOverlayV451:has(.framedV457){background:#02060bb8;backdrop-filter:blur(3px)}
.pvpFrameBoxV457{position:relative;width:100%;aspect-ratio:1672/941;container-type:inline-size}
/* A cena ocupa so a janela de dentro (x 60-1612, y 90-790 da arte); fora dela, so a moldura. */
.pvpFrameBoxV457 .pvpBattleArenaV451{position:absolute;left:3.59%;top:9.56%;width:92.82%;height:74.39%;min-height:0;padding:0;border:0;background:#0b0908}
.pvpFrameBoxV457 .pvpSceneV452{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.pvpFrameArtV457{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;image-rendering:auto;z-index:1}
.pvpFrameBoxV457 .pvpBattleBannerV451{top:19%;z-index:1;font-size:clamp(18px,2.2cqw,34px)}
.pvpPlateV457{position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;gap:.7cqw;overflow:hidden;
  color:#ffe092;text-align:center;white-space:nowrap}
.pvpPlateV457.topLeft{left:19.74%;top:3.08%;width:19.86%;height:4.36%}
.pvpPlateV457.topRight{left:60.41%;top:2.98%;width:20.04%;height:4.46%}
.pvpPlateV457.bottomLeft{left:11.78%;top:86.72%;width:14.29%;height:6.38%}
.pvpPlateV457.bottomRight{left:73.92%;top:86.72%;width:14.23%;height:6.38%}
.pvpPlateV457.bottomCenter{left:34.15%;top:85.44%;width:31.7%;height:7.97%;gap:1.2cqw}
.pvpPlateV457 b{overflow:hidden;text-overflow:ellipsis;font:700 clamp(13px,1.3cqw,21px) var(--font-display);letter-spacing:.04em}
.pvpPlateV457 small{color:#d9b36a;font:900 clamp(11px,.95cqw,15px) var(--font-ui);letter-spacing:.06em}
.pvpPlateV457.bottomLeft,.pvpPlateV457.bottomRight{flex-direction:column;gap:.35cqw}
.pvpPlateV457.bottomLeft small,.pvpPlateV457.bottomRight small{max-width:94%;overflow:hidden;text-overflow:ellipsis}
.pvpTeamBarV457{position:relative;width:88%;height:clamp(6px,.75cqw,11px);background:#2a0f0f;border:1px solid #000}
.pvpTeamBarV457 i{position:absolute;inset:0 auto 0 0;width:100%;background:linear-gradient(#e2574c,#9d241d);transition:width .25s ease-out}
.pvpPlateV457.bottomRight .pvpTeamBarV457 i{inset:0 0 0 auto}
.pvpPlateV457.bottomCenter b{min-width:3.4em;color:#fff0c0;font:700 clamp(16px,1.9cqw,28px) var(--font-display);font-variant-numeric:tabular-nums}
.pvpPlateV457 button{padding:.35cqw 1.1cqw;border:1px solid #d58d37;background:linear-gradient(#43200f,#24130c);color:#ffe08c;
  font:900 clamp(11px,1cqw,15px) var(--font-ui);letter-spacing:.08em;cursor:pointer}
.pvpPlateV457 button:hover,.pvpPlateV457 button:focus-visible{filter:brightness(1.2);outline:none}
.pvpFrameBoxV457 .pvpBattleResultV451{z-index:3}
