/* ============ MODO LUTA — arena lado a lado (alta resolução) ============ */
#screen-luta{
  background:
    radial-gradient(1100px 520px at 50% 0%, #2a1c46 0%, transparent 60%),
    radial-gradient(700px 400px at 50% 100%, #3a1420 0%, transparent 60%),
    linear-gradient(180deg,#0c0a16,#070510);
  min-height:100vh;color:#fff;position:relative;overflow:hidden
}

/* ---------- seleção ---------- */
.fight-select .bar{background:rgba(8,6,16,.8)}
.fs-hero{display:flex;gap:1.2rem;align-items:center;max-width:880px;margin:1.2rem auto .4rem;padding:0 1.2rem}
.fs-hero-img{height:150px;flex-shrink:0;filter:drop-shadow(0 8px 20px rgba(80,160,255,.35))}
.fs-hero-txt h2{font-family:'Cinzel',serif;font-size:1.5rem;margin-bottom:.3rem}
.fs-hero-txt p{color:#c4c8da;line-height:1.55;font-size:.92rem;margin-bottom:.8rem}
.fs-hero-txt p b{color:var(--gold2)}
.fs-modes{display:flex;gap:.7rem;flex-wrap:wrap}
@media(max-width:600px){.fs-hero{flex-direction:column;text-align:center}.fs-hero-img{height:120px}}

.fighter-grid{
  max-width:1100px;margin:1.2rem auto;padding:0 1rem 4rem;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:.8rem
}
.fighter-cell{
  position:relative;cursor:pointer;border:1px solid #2c2c46;border-radius:12px;overflow:hidden;
  background:radial-gradient(circle at 50% 30%, #241a38, #0c0a16);transition:.15s;aspect-ratio:1/1
}
.fighter-cell:hover{border-color:var(--gold);transform:translateY(-4px) scale(1.03);box-shadow:0 16px 36px -18px rgba(0,0,0,.8)}
.fighter-cell img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}
.fighter-cell .fc-name{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(0deg,rgba(6,5,12,.95),transparent);
  font-size:.74rem;font-weight:700;padding:1.4rem .4rem .4rem;text-align:center;line-height:1.25}
.fighter-cell .fc-danger{position:absolute;top:6px;right:6px;font-size:.58rem;font-weight:800;letter-spacing:.5px;
  padding:.16rem .4rem;border-radius:5px;color:#fff}
.fc-danger.MÁXIMO{background:#a21caf}.fc-danger.CRÍTICO{background:#c0282b}.fc-danger.ALTO{background:#b4720a}
.fighter-cell .fc-boss{position:absolute;top:5px;left:6px;font-size:.95rem;filter:drop-shadow(0 1px 2px #000)}

/* ---------- arena ---------- */
.fight-arena{max-width:900px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding:.7rem .8rem 1rem}

/* HUD topo (barras MK) */
.vs-hud{display:grid;grid-template-columns:1fr auto 1fr;gap:.7rem;align-items:start}
.vs-side .vs-name{font-family:'Cinzel',serif;font-weight:700;font-size:.95rem;margin-bottom:.3rem;display:flex;align-items:center;gap:.4rem;white-space:nowrap}
.vs-side.right{text-align:right}
.vs-side.right .vs-name{justify-content:flex-end}
.vs-side .danger-badge{font-size:.55rem;padding:.18rem .4rem}
.hpbar{height:22px;border:2px solid #05060c;border-radius:5px;background:#1a1320;display:flex;
  box-shadow:0 0 0 2px rgba(255,255,255,.06), inset 0 2px 6px rgba(0,0,0,.6);overflow:hidden;position:relative}
.hp-enemy{justify-content:flex-end}
.hpfill{height:100%;width:100%;transition:width .3s ease}
.hp-hero .hpfill{background:linear-gradient(180deg,#6cf0a0,#1f9e57);background-image:
  linear-gradient(180deg,rgba(255,255,255,.4),transparent 45%),linear-gradient(180deg,#6cf0a0,#1f9e57)}
.hp-enemy .hpfill{background:linear-gradient(180deg,#ff8a5a,#c0282b);background-image:
  linear-gradient(180deg,rgba(255,255,255,.35),transparent 45%),linear-gradient(180deg,#ff8a5a,#c0282b)}
.hpfill.low{filter:brightness(1.1);animation:hplow .5s infinite alternate}
@keyframes hplow{from{opacity:.7}to{opacity:1}}
.round-dots{display:flex;gap:.3rem;margin-top:.35rem}
.vs-side.right .round-dots{justify-content:flex-end}
.round-dots i{width:12px;height:12px;border-radius:50%;background:#2a2a40;border:1px solid #4a4a66;display:inline-block}
.round-dots i.win{background:radial-gradient(circle at 35% 30%,#ffe9a8,#e0a020);border-color:#f0c054;box-shadow:0 0 8px #e8b84b}
.vs-center{text-align:center;min-width:64px}
.vs-round{font-family:'Cinzel',serif;font-size:.7rem;color:var(--gold2);letter-spacing:1px}
.vs-word{font-family:'Cinzel',serif;font-weight:800;font-size:1.3rem;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.6);opacity:.5}

/* palco */
.stage{position:relative;flex:1;min-height:300px;margin:.6rem 0;border-radius:14px;overflow:hidden;
  border:1px solid #2a2a44;box-shadow:inset 0 -40px 80px rgba(0,0,0,.55)}
.stage-bg{position:absolute;inset:0;background:
  radial-gradient(700px 320px at 50% 10%, #4a2d70 0%, transparent 55%),
  linear-gradient(180deg,#211640 0%,#140e26 60%,#2a1018 100%)}
.stage-bg::before{content:"";position:absolute;inset:0;opacity:.25;background:
  repeating-linear-gradient(90deg,transparent 0 78px,rgba(255,255,255,.04) 78px 80px)}
.stage-floor{position:absolute;left:0;right:0;bottom:0;height:26%;
  background:linear-gradient(180deg,#3a2a4e,#1a1226);border-top:2px solid rgba(255,255,255,.08);
  box-shadow:0 -6px 24px rgba(0,0,0,.5)}
.stage-floor::after{content:"";position:absolute;inset:0;opacity:.4;background:
  repeating-linear-gradient(90deg,transparent 0 38px,rgba(0,0,0,.25) 38px 40px)}

/* lutadores */
.fighter{position:absolute;bottom:7%;z-index:2;text-align:center}
.hero-wrap{left:13%}
.enemy-wrap{right:13%}
.fighter-img{height:42vh;max-height:330px;width:auto;display:block;filter:drop-shadow(0 12px 14px rgba(0,0,0,.5));
  image-rendering:pixelated;image-rendering:crisp-edges}
.hero-wrap .fighter-img{max-height:300px}
/* (facing do vilão é tratado dentro do canvas) */
.hero-wrap.enter{animation:enterL .6s ease-out}
.enemy-wrap.enter{animation:enterR .6s ease-out}
@keyframes enterL{from{transform:translateX(-70px);opacity:.2}to{transform:translateX(0);opacity:1}}
@keyframes enterR{from{transform:translateX(70px);opacity:.2}to{transform:translateX(0);opacity:1}}
.fighter-shadow{width:60%;height:16px;margin:2px auto 0;border-radius:50%;
  background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent)}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

/* animações herói */
.hero-wrap.soco{animation:heroSoco .34s}
.hero-wrap.chute{animation:heroChute .42s}
.hero-wrap.special{animation:heroSpecial .5s}
.hero-wrap.hit{animation:heroHit .34s}
.hero-wrap.ko{animation:heroKO .8s forwards}
.hero-wrap.block .fighter-img{filter:drop-shadow(0 0 16px #7fe3ff) drop-shadow(0 12px 14px rgba(0,0,0,.5))}
.hero-wrap.hit .fighter-img{filter:brightness(1.8) sepia(.5) hue-rotate(-30deg)}
@keyframes heroSoco{0%{transform:translateX(0)}40%{transform:translateX(82px)}100%{transform:translateX(0)}}
@keyframes heroChute{0%{transform:translateX(0)}45%{transform:translateX(110px) rotate(-7deg)}100%{transform:translateX(0)}}
@keyframes heroSpecial{0%{transform:translateX(0) scale(1)}30%{transform:translateX(50px) scale(1.07)}100%{transform:translateX(0)}}
@keyframes heroHit{0%,100%{transform:translateX(0)}30%{transform:translateX(-26px) rotate(5deg)}65%{transform:translateX(8px)}}
@keyframes heroKO{to{transform:translateX(-30px) translateY(46px) rotate(-72deg);opacity:.15}}
.hero-wrap.dodge{animation:heroDodge .45s}
@keyframes heroDodge{0%{transform:translateX(0)}40%{transform:translateX(-36px)}100%{transform:translateX(0)}}

/* animações vilão */
.enemy-wrap.windup .fighter-img{filter:drop-shadow(0 0 18px #ff5a3a) brightness(1.18) drop-shadow(0 12px 14px rgba(0,0,0,.5))}
.enemy-wrap.strike{animation:enemyStrike .38s}
.enemy-wrap.hit{animation:enemyHit .34s}
.enemy-wrap.stun{animation:enemyStun 1s}
.enemy-wrap.ko{animation:enemyKO .85s forwards}
.enemy-wrap.hit .fighter-img{filter:brightness(2) saturate(1.4) drop-shadow(0 12px 14px rgba(0,0,0,.5))}
@keyframes enemyStrike{0%{transform:translateX(0)}45%{transform:translateX(-118px)}100%{transform:translateX(0)}}
@keyframes enemyHit{0%,100%{transform:translateX(0)}30%{transform:translateX(24px) rotate(-4deg)}65%{transform:translateX(-8px)}}
@keyframes enemyStun{0%,100%{transform:translateY(0) rotate(0)}25%{transform:rotate(4deg)}75%{transform:rotate(-4deg)}}
@keyframes enemyKO{to{transform:translateX(40px) translateY(54px) rotate(72deg);opacity:.1}}

/* telegraph */
.telegraph{position:absolute;top:10px;right:6%;z-index:5;text-align:center;min-width:190px;
  background:rgba(10,5,14,.85);border:1px solid #c0282b;border-radius:10px;padding:.5rem .7rem;
  box-shadow:0 6px 24px rgba(0,0,0,.5)}
.tg-react{display:block;font-family:'Cinzel',serif;font-weight:800;font-size:1.05rem;color:#ff6a4a;text-shadow:0 2px 4px #000}
.tg-react.dodge{color:#5ad1ff}
.tg-name{display:block;font-size:.85rem;color:#fff;margin:.25rem 0;font-weight:600}
.tg-timer{height:7px;background:#000;border-radius:99px;overflow:hidden}
.tg-timer-fill{height:100%;width:100%;background:#ff5a3a}

/* fx */
.stage.shake{animation:shake .28s}
.stage.shake-s{animation:shakeS .18s}
@keyframes shake{0%,100%{transform:translate(0,0)}12%{transform:translate(-7px,3px)}28%{transform:translate(8px,-3px)}45%{transform:translate(-6px,-2px)}62%{transform:translate(6px,3px)}80%{transform:translate(-3px,1px)}}
@keyframes shakeS{0%,100%{transform:translate(0,0)}30%{transform:translate(-4px,1px)}65%{transform:translate(4px,-1px)}}
.dust{position:absolute;bottom:6%;width:56px;height:18px;border-radius:50%;z-index:3;pointer-events:none;
  background:radial-gradient(closest-side,rgba(225,215,195,.55),transparent);animation:dustpuff .5s ease-out forwards}
.dust.left{left:8%}.dust.right{right:8%}
@keyframes dustpuff{0%{transform:scale(.3);opacity:0}20%{opacity:.75}100%{transform:scale(1.6) translateY(-12px);opacity:0}}
.fx-layer{position:absolute;inset:0;z-index:6;pointer-events:none}
.flash-gold{position:absolute;inset:0;background:radial-gradient(circle at 70% 50%,rgba(245,214,128,.6),transparent 55%);animation:fx .35s forwards}
.flash-red{position:absolute;inset:0;background:radial-gradient(circle at 20% 50%,rgba(224,58,58,.5),transparent 55%);animation:fx .3s forwards}
.flash-blue{position:absolute;inset:0;background:radial-gradient(circle at 20% 50%,rgba(90,209,255,.4),transparent 55%);animation:fx .3s forwards}
@keyframes fx{to{opacity:0}}
.dmg-num{position:absolute;font-family:'Cinzel',serif;font-weight:800;font-size:1.5rem;color:#fff;text-shadow:0 3px 6px #000;animation:dmgfloat .85s forwards;z-index:7}
.dmg-num.crit{font-size:2.1rem;color:#ffd56b}
.dmg-num.weak{font-size:1.1rem;color:#b9bdd0}
.dmg-num.player{color:#ff8a8a}
@keyframes dmgfloat{0%{transform:translateY(10px) scale(.5);opacity:0}25%{opacity:1;transform:translateY(-6px) scale(1.15)}100%{transform:translateY(-64px);opacity:0}}
.spark{position:absolute;width:90px;height:90px;border-radius:50%;z-index:6;
  background:radial-gradient(circle,#fff 0%,#ffd56b 30%,transparent 70%);animation:spark .3s forwards}
@keyframes spark{0%{transform:scale(.2);opacity:1}100%{transform:scale(1.4);opacity:0}}

.announce{position:absolute;left:0;right:0;top:30%;text-align:center;z-index:7;pointer-events:none;
  font-family:'Cinzel',serif;font-weight:800;font-size:2rem;color:#ffd56b;text-shadow:0 4px 10px rgba(0,0,0,.7);opacity:0}
.announce.show{animation:announce 1s forwards}
@keyframes announce{0%{opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(1.12)}70%{opacity:1;transform:scale(1)}100%{opacity:0}}
.combo-tag{position:absolute;left:50%;top:14%;transform:translateX(-50%);z-index:7;
  font-family:'Cinzel',serif;font-weight:800;color:#fff;background:rgba(224,58,58,.85);padding:.2rem .7rem;border-radius:99px;font-size:.85rem}
.combo-tag b{color:#ffd56b}

/* FOCO */
.foco-row{display:flex;align-items:center;gap:.6rem;margin:.2rem 0 .5rem}
.foco-lab{font-family:'Cinzel',serif;font-size:.7rem;color:var(--gold2);letter-spacing:1px;white-space:nowrap}
.focobar{flex:1;height:12px;border:2px solid #05060c;border-radius:99px;background:#16121f;overflow:hidden;box-shadow:inset 0 2px 5px rgba(0,0,0,.5)}
.focofill{height:100%;width:0%;transition:width .2s;background:linear-gradient(90deg,#f5d680,#e8b84b)}
.foco-row.full .focofill{animation:focopulse .5s infinite alternate}
@keyframes focopulse{from{filter:brightness(1)}to{filter:brightness(1.5)}}

/* controles */
.controls{margin-top:.1rem}
.ctl-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;margin-bottom:.5rem}
.ctl{font-family:'Inter',sans-serif;font-weight:800;font-size:.82rem;color:#fff;border:none;border-radius:12px;cursor:pointer;
  padding:.7rem .3rem;display:flex;flex-direction:column;align-items:center;gap:.2rem;transition:.08s;box-shadow:0 4px 0 rgba(0,0,0,.45);user-select:none}
.ctl small{font-size:.62rem;opacity:.7;font-weight:600}
.ctl:active,.ctl.held{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.45)}
.ctl.soco{background:linear-gradient(180deg,#3f7ad6,#2453a0)}
.ctl.chute{background:linear-gradient(180deg,#5a4fd0,#3a2f9a)}
.ctl.def{background:linear-gradient(180deg,#36b06a,#1f7a48)}
.ctl.dodge{background:linear-gradient(180deg,#9a6ad0,#6a3fa0)}
.ctl.super{background:linear-gradient(180deg,#f5d680,#e8b84b);color:#2a1d00}
.ctl.super:disabled{filter:grayscale(.85) brightness(.65);cursor:default}
.ctl.super.ready{animation:focopulse .5s infinite alternate}
.ctl:disabled{opacity:.5;cursor:default}

.ctl-weapons{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.wpn{font-family:'Inter',sans-serif;font-weight:600;font-size:.86rem;color:#fff;background:#1c1c2e;border:1.5px solid #34344e;border-radius:12px;
  cursor:pointer;padding:.7rem .7rem;box-shadow:0 3px 0 rgba(0,0,0,.4);transition:.1s;display:flex;align-items:center;gap:.5rem;text-align:left;min-height:46px}
.wpn:active{transform:translateY(2px);box-shadow:0 1px 0 rgba(0,0,0,.4)}
.wpn:hover:not(.cooldown){border-color:var(--gold)}
.wpn .wico{font-size:1rem}
.wpn.cooldown{opacity:.4;cursor:default}
.wpn.flash-correct{animation:wcorrect .45s}
@keyframes wcorrect{0%,100%{background:#1c1c2e}50%{background:#1f7a48;border-color:#36b06a}}
.wpn.flash-wrong{animation:wwrong .45s}
@keyframes wwrong{0%,100%{background:#1c1c2e}50%{background:#7a1f24;border-color:#c0282b}}

.fight-quit{margin:.5rem auto 0;display:block}

/* resultado */
.fight-result{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem 1.4rem}
#fr-title{font-family:'Cinzel',serif;font-size:2.4rem;color:var(--gold2);text-shadow:0 4px 12px rgba(0,0,0,.5)}
.fr-emblem{font-size:4.5rem;margin:.8rem 0;animation:bob 2s infinite}
.fr-sub{font-family:'Cinzel',serif;font-size:1.05rem;color:#fff;margin-bottom:1rem}
.fr-msg{max-width:540px;color:#cfd3e0;line-height:1.65;margin-bottom:1.6rem}
.fr-msg b{color:var(--gold2)}

/* ============ CELULAR — arena cabe na tela, controles sempre visíveis ============ */
@media(max-width:600px){
  /* trava a arena na altura visível (svh ignora a barra do navegador) p/ não
     empurrar os botões pra baixo da dobra; o palco ocupa o espaço que sobra */
  .fight-arena{min-height:100vh;min-height:100svh;max-height:100svh;padding:.5rem .6rem .7rem}

  .vs-hud{gap:.5rem}
  .vs-side .vs-name{font-size:.74rem;margin-bottom:.2rem;gap:.25rem}
  .vs-side .danger-badge{font-size:.5rem;padding:.12rem .32rem}
  .hpbar{height:16px;border-width:2px}
  .round-dots{margin-top:.25rem}
  .round-dots i{width:9px;height:9px}
  .vs-center{min-width:46px}
  .vs-round{font-size:.6rem}
  .vs-word{font-size:1rem}

  .stage{flex:1 1 auto;min-height:0;margin:.35rem 0}
  .fighter{bottom:6%}
  .fighter-img{height:30vh;max-height:240px}
  .hero-wrap .fighter-img{max-height:230px}

  .telegraph{min-width:142px;right:4%;top:8px;padding:.4rem .55rem}
  .tg-react{font-size:.9rem}
  .tg-name{font-size:.74rem}

  .foco-row{margin:.15rem 0 .35rem;gap:.4rem}
  .foco-lab{font-size:.6rem}
  .focobar{height:9px}

  .ctl-actions{gap:.35rem;margin-bottom:.35rem}
  .ctl{font-size:.7rem;padding:.55rem .15rem;border-radius:9px}
  .ctl small{display:none}
  .ctl-weapons{gap:.35rem}
  .wpn{font-size:.74rem;padding:.5rem .45rem;min-height:40px;border-radius:9px}
  .wpn .wico{font-size:.85rem}

  .fight-quit{margin:.3rem auto 0;font-size:.8rem;padding:.35rem .8rem}

  /* tela de seleção de oponente */
  .fighter-grid{grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:.5rem}
  #fr-title{font-size:1.7rem}
  .fr-emblem{font-size:3.4rem}
  .announce{font-size:1.5rem}
}

/* telas baixas (paisagem no celular): encolhe ainda mais os lutadores */
@media(max-width:900px) and (max-height:520px){
  .fight-arena{max-height:100svh}
  .fighter-img{height:26vh;max-height:180px}
  .hero-wrap .fighter-img{max-height:175px}
  .ctl{padding:.4rem .15rem}
  .wpn{min-height:34px;padding:.4rem .45rem}
}
