@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Rajdhani:wght@400;600;700&display=swap');

:root{
  --p1:#00d4ff;--p1dark:#0066aa;--p1glow:rgba(0,212,255,0.4);
  --gold:#ffd700;--bg:#080c10;--panel:rgba(8,20,30,0.92);
  --border:rgba(255,255,255,0.08);
  --danger:#ff4422;
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none;}

body{
  background:var(--bg);
  display:flex;flex-direction:column;
  align-items:center;justify-content:flex-start;
  min-height:100vh;
  min-height:100dvh; /* Dynamic viewport height para móviles */
  width:100vw;
  font-family:'Rajdhani',sans-serif;
  overflow:hidden;
  touch-action:none;
  margin:0;
  padding:0;
  position:fixed;
  top:0;left:0;right:0;bottom:0;
}

/* ── HUD ─────────────────────────────────── */
#hud{
  width:100%;max-width:1200px;
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;gap:12px;
  padding:10px 16px 6px;
  position:relative;z-index:10;
  animation:hudSlideIn 0.5s ease-out;
}

@keyframes hudSlideIn{
  from{opacity:0;transform:translateY(-20px)}
  to{opacity:1;transform:none}
}

.player-hud{
  display:flex;flex-direction:column;gap:4px;
}
.p1-hud{align-items:flex-start;}
.p2-hud{align-items:flex-end;}

.tank-label{
  font-family:'Orbitron',monospace;font-size:11px;font-weight:700;
  letter-spacing:2px;display:flex;align-items:center;gap:6px;
  color:var(--p1);
}

.tank-icon{width:18px;height:14px;border-radius:2px;background:var(--p1);}

.hp-row{display:flex;align-items:center;gap:8px;width:100%;}

.hp-track{
  flex:1;height:10px;background:rgba(255,255,255,0.08);
  border-radius:5px;overflow:hidden;
  border:1px solid rgba(255,255,255,0.1);
  min-width:180px;
}
.hp-fill{
  height:100%;border-radius:5px;transition:width .15s;
  background:linear-gradient(90deg,var(--p1dark),var(--p1));
  box-shadow:0 0 10px var(--p1);
  position:relative;
  overflow:hidden;
}

.hp-fill::after{
  content:'';
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);
  animation:hpShine 2s infinite;
}

@keyframes hpShine{
  0%{transform:translateX(-100%)}
  100%{transform:translateX(100%)}
}

.hp-num{
  font-family:'Orbitron',monospace;font-size:13px;font-weight:700;
  min-width:32px;color:var(--p1);
}

.special-track{
  height:5px;background:rgba(255,255,255,0.06);
  border-radius:3px;overflow:hidden;width:100%;
}
.special-fill{
  height:100%;border-radius:3px;transition:width .1s;
  background:linear-gradient(90deg,#ff8800,var(--gold));
  box-shadow:0 0 8px var(--gold);
}
.special-ready{animation:spReady .5s infinite alternate;}
@keyframes spReady{from{opacity:.7}to{opacity:1;box-shadow:0 0 15px var(--gold);}}

.stats-row{
  display:flex;gap:12px;font-size:11px;
  font-family:'Orbitron',monospace;color:rgba(255,255,255,0.7);
}
.stat{display:flex;align-items:center;gap:4px;}

.center-hud{
  display:flex;flex-direction:column;align-items:center;gap:3px;
}
.level-label{
  font-family:'Orbitron',monospace;font-size:9px;
  color:rgba(255,255,255,0.4);letter-spacing:3px;
}
.level-num{
  font-family:'Orbitron',monospace;font-size:28px;font-weight:900;
  color:var(--gold);text-shadow:0 0 25px var(--gold);line-height:1;
  animation:levelPulse 2s ease-in-out infinite;
}

@keyframes levelPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.05);text-shadow:0 0 35px var(--gold)}
}
.wave-label,.enemies-label{
  font-family:'Orbitron',monospace;font-size:10px;
  color:rgba(255,255,255,0.6);letter-spacing:1px;
}

.weapon-display{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  background:rgba(0,0,0,0.3);padding:8px 12px;
  border-radius:6px;border:1px solid rgba(255,255,255,0.1);
  transition:all 0.3s;
}

.weapon-display:hover{
  background:rgba(0,0,0,0.5);
  border-color:rgba(255,255,255,0.3);
  transform:scale(1.05);
}
.weapon-icon{font-size:20px;}
.weapon-name{
  font-family:'Orbitron',monospace;font-size:9px;
  color:var(--gold);letter-spacing:2px;
}
.ammo-count{
  font-family:'Orbitron',monospace;font-size:11px;
  color:rgba(255,255,255,0.8);
}

/* ── POWER BUTTONS ─────────────────────────── */
.power-btn{
  display:flex;align-items:center;justify-content:space-between;
  gap:8px;padding:8px 12px;
  background:rgba(0,0,0,0.4);
  border:2px solid rgba(255,255,255,0.2);
  border-radius:6px;
  cursor:pointer;
  transition:all 0.2s;
  font-family:'Orbitron',monospace;
  min-width:80px;
}

.power-btn:hover{
  transform:scale(1.05);
  border-color:rgba(255,255,255,0.4);
}

.power-btn:active{
  transform:scale(0.95);
}

.power-btn.fire-power{
  border-color:#ff4400;
  background:linear-gradient(135deg,rgba(255,68,0,0.3),rgba(255,136,0,0.2));
}

.power-btn.fire-power:hover{
  border-color:#ff8800;
  box-shadow:0 0 15px rgba(255,68,0,0.5);
}

.power-btn.ice-power{
  border-color:#00ddff;
  background:linear-gradient(135deg,rgba(0,221,255,0.3),rgba(170,255,255,0.2));
}

.power-btn.ice-power:hover{
  border-color:#aaffff;
  box-shadow:0 0 15px rgba(0,221,255,0.5);
}

.power-icon{
  font-size:18px;
  line-height:1;
}

.power-count{
  font-size:14px;
  font-weight:700;
  color:#fff;
  text-shadow:0 0 8px currentColor;
}

/* ── GAME AREA ───────────────────────────────── */
#game-wrap{
  position:relative;
  width:100%;max-width:1200px;
  flex:1;
  display:flex;flex-direction:column;
  min-height:500px;
  background:#0f1612;
  overflow:hidden;
}

#gameCanvas{
  width:100%;
  height:100%;
  min-height:400px;
  display:block;
  image-rendering:pixelated;
  touch-action:none;
  cursor:crosshair;
  background:#0f1612;
}

/* ── MINIMAP ─────────────────────────────────── */
#minimap{
  position:absolute;top:10px;right:10px;
  width:120px;height:85px;
  background:rgba(0,0,0,0.8);
  border:2px solid rgba(255,255,255,0.2);
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 4px 12px rgba(0,0,0,0.5);
  transition:all 0.3s;
}

#minimap:hover{
  transform:scale(1.2);
  border-color:var(--p1);
  box-shadow:0 6px 20px rgba(0,212,255,0.4);
}
#minimapCanvas{width:100%;height:100%;}

/* ── KILL FEED ───────────────────────────────── */
#killfeed{
  position:absolute;top:10px;left:10px;
  display:flex;flex-direction:column;gap:5px;
  pointer-events:none;
  max-width:280px;
}
.kf-item{
  font-family:'Orbitron',monospace;font-size:8px;
  background:rgba(0,0,0,0.8);
  border-left:3px solid var(--gold);
  padding:5px 10px;
  color:#fff;letter-spacing:1px;
  animation:kfIn .3s ease;
  border-radius:0 4px 4px 0;
  box-shadow:0 2px 8px rgba(0,0,0,0.4);
  backdrop-filter:blur(4px);
}
@keyframes kfIn{
  from{opacity:0;transform:translateX(-25px)}
  to{opacity:1;transform:none}
}

.kf-item.critical{
  border-left-color:#ff4444;
  animation:kfCritical 0.3s ease;
}

@keyframes kfCritical{
  0%,100%{transform:translateX(0)}
  25%{transform:translateX(-5px)}
  75%{transform:translateX(5px)}
}

/* ── CONTROLS MÓVIL ─────────────────────────── */
#mobile-controls{
  display:none;
  width:100%;max-width:1200px;
  grid-template-columns:1fr 1fr;
  gap:12px;
  padding:8px 12px 20px;
  background:rgba(0,0,0,0.5);
  position:relative;
  z-index:5;
  border-top:2px solid rgba(255,255,255,0.1);
}

.ctrl-side{
  display:flex;align-items:center;justify-content:center;
}

.joystick{
  position:relative;width:130px;height:130px;
  display:flex;align-items:center;justify-content:center;
}
.joystick-base{
  width:100%;height:100%;border-radius:50%;
  background:radial-gradient(circle,rgba(0,212,255,0.2),rgba(0,100,180,0.1));
  border:3px solid rgba(0,212,255,0.5);
  box-shadow:0 0 20px rgba(0,212,255,0.3),inset 0 0 20px rgba(0,212,255,0.1);
}
.joystick-stick{
  position:absolute;width:50px;height:50px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,212,255,0.8),rgba(0,150,255,0.5));
  border:3px solid var(--p1);
  box-shadow:0 0 20px var(--p1),0 4px 8px rgba(0,0,0,0.5);
  transition:transform .1s;
  pointer-events:none;
}

.fire-btns{display:flex;flex-direction:column;gap:8px;align-items:center;}
.fire-btn{
  width:60px;height:60px;border-radius:50%;border:none;outline:none;cursor:pointer;
  font-family:'Orbitron',monospace;font-size:8px;font-weight:700;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  transition:transform .08s;
  -webkit-tap-highlight-color:transparent;
  box-shadow:0 4px 12px rgba(0,0,0,0.5);
}
.fire-btn:active,.fire-btn.pressed{transform:scale(.9);}
.fire-btn .icon{font-size:18px;line-height:1;}

.fire-btn.shoot{
  background:radial-gradient(circle,rgba(0,212,255,.5),rgba(0,100,180,.3));
  border:3px solid var(--p1);color:var(--p1);
  box-shadow:0 0 25px var(--p1glow),0 4px 12px rgba(0,0,0,0.5);
}
.fire-btn.special{
  background:radial-gradient(circle,rgba(255,215,0,.5),rgba(180,100,0,.3));
  border:3px solid var(--gold);color:var(--gold);
  box-shadow:0 0 25px rgba(255,215,0,.4),0 4px 12px rgba(0,0,0,0.5);
}
.fire-btn.special.disabled{opacity:.4;}

.fire-btn.fire-power{
  background:radial-gradient(circle,rgba(255,68,0,.6),rgba(255,136,0,.4));
  border:3px solid #ff4400;color:#fff;
  box-shadow:0 0 25px rgba(255,68,0,.5),0 4px 12px rgba(0,0,0,0.5);
}

.fire-btn.ice-power{
  background:radial-gradient(circle,rgba(0,221,255,.6),rgba(170,255,255,.4));
  border:3px solid #00ddff;color:#fff;
  box-shadow:0 0 25px rgba(0,221,255,.5),0 4px 12px rgba(0,0,0,0.5);
}

/* ── FULLSCREEN BUTTON ─────────────────────── */
.fullscreen-btn{
  position:fixed;
  bottom:20px;
  right:20px;
  width:50px;
  height:50px;
  border-radius:50%;
  background:rgba(0,0,0,0.7);
  border:2px solid rgba(255,255,255,0.3);
  color:#fff;
  font-size:24px;
  cursor:pointer;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all 0.3s;
  backdrop-filter:blur(5px);
}

.fullscreen-btn:hover{
  background:rgba(0,212,255,0.3);
  border-color:var(--p1);
  transform:scale(1.1);
  box-shadow:0 0 20px var(--p1glow);
}

.fullscreen-btn:active{
  transform:scale(0.95);
}

@media (max-width: 768px) {
  .fullscreen-btn{
    bottom:auto;
    top:10px;
    left:10px;
    right:auto;
    width:40px;
    height:40px;
    font-size:20px;
  }
}

/* ── OVERLAY ─────────────────────────────────── */
#overlay{
  display:none;position:absolute;inset:0;
  background:rgba(5,10,18,0.95);
  flex-direction:column;align-items:center;justify-content:center;
  gap:18px;z-index:20;
  backdrop-filter:blur(6px);
}
#overlay.show{display:flex;}

.overlay-title{
  font-family:'Orbitron',monospace;
  font-size:clamp(24px,5vw,42px);
  font-weight:900;color:var(--gold);
  text-shadow:0 0 35px var(--gold),0 0 70px rgba(255,215,0,.4);
  letter-spacing:5px;
  animation:pulse 1.5s ease-in-out infinite;
}
.overlay-subtitle{
  font-family:'Orbitron',monospace;font-size:14px;
  color:var(--p1);letter-spacing:4px;margin-top:-12px;
  text-shadow:0 0 20px var(--p1);
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.75}}

.overlay-sub{
  font-family:'Rajdhani',sans-serif;font-size:14px;
  color:rgba(255,255,255,0.6);line-height:2;text-align:center;
  letter-spacing:1px;max-width:500px;
}
.overlay-sub span{color:rgba(255,255,255,0.9);font-weight:700;}

.menu-buttons{
  display:flex;flex-direction:column;gap:12px;margin-top:8px;
}

.play-btn{
  font-family:'Orbitron',monospace;font-size:13px;font-weight:700;
  letter-spacing:3px;
  background:linear-gradient(135deg,#ffd700,#ff8800);
  color:#000;border:none;
  padding:16px 42px;
  cursor:pointer;border-radius:6px;
  box-shadow:0 5px 0 #884400,0 0 35px rgba(255,180,0,.5);
  transition:transform .1s,box-shadow .1s;
  min-width:280px;
}
.play-btn:hover{transform:translateY(-3px);box-shadow:0 8px 0 #884400,0 0 45px rgba(255,180,0,.7);}
.play-btn:active{transform:translateY(2px);box-shadow:0 2px 0 #884400;}

.play-btn.secondary{
  background:linear-gradient(135deg,#00d4ff,#0088cc);
  box-shadow:0 5px 0 #004466,0 0 35px rgba(0,212,255,.4);
}
.play-btn.secondary:hover{box-shadow:0 8px 0 #004466,0 0 45px rgba(0,212,255,.6);}
.play-btn.secondary:active{box-shadow:0 2px 0 #004466;}

/* ── UPGRADE MENU ──────────────────────────── */
#upgradeMenu, #multiplayerMenu, #leaderboardMenu{
  position:absolute;inset:0;
  background:rgba(5,10,18,0.95);
  display:flex;align-items:center;justify-content:center;
  z-index:25;
  backdrop-filter:blur(6px);
}

.upgrade-panel{
  background:var(--panel);
  border:2px solid var(--border);
  border-radius:12px;
  padding:24px;
  max-width:600px;
  width:90%;
}

.upgrade-panel h2{
  font-family:'Orbitron',monospace;
  color:var(--gold);
  text-align:center;
  margin-bottom:20px;
  font-size:24px;
  text-shadow:0 0 20px var(--gold);
}

.upgrade-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:12px;
  margin-bottom:20px;
}

.upgrade-item{
  background:rgba(0,0,0,0.3);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:8px;
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.upgrade-item h3{
  font-family:'Orbitron',monospace;
  font-size:14px;
  color:var(--p1);
}

.upgrade-item p{
  font-size:12px;
  color:rgba(255,255,255,0.7);
  line-height:1.5;
}

.upgrade-item button{
  font-family:'Orbitron',monospace;
  font-size:11px;
  padding:8px;
  background:var(--gold);
  color:#000;
  border:none;
  border-radius:4px;
  cursor:pointer;
  font-weight:700;
}

.upgrade-item button:disabled{
  opacity:0.4;
  cursor:not-allowed;
}

/* ── ANNOUNCE ──────────────────────────────── */
#announce{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  pointer-events:none;z-index:15;
  opacity:0;transition:opacity .3s;
}
#announce.show{opacity:1;animation:announceShake 0.5s ease;}

@keyframes announceShake{
  0%,100%{transform:scale(1)}
  25%{transform:scale(1.05) rotate(1deg)}
  75%{transform:scale(1.05) rotate(-1deg)}
}

#announce-text{
  font-family:'Orbitron',monospace;
  font-size:clamp(28px,7vw,56px);font-weight:900;
  color:#fff;text-shadow:0 0 35px #fff,0 5px 0 rgba(0,0,0,.6);
  letter-spacing:5px;
  animation:announceText 0.6s ease-out;
}

@keyframes announceText{
  0%{transform:scale(0) rotate(-10deg);opacity:0}
  50%{transform:scale(1.2) rotate(5deg)}
  100%{transform:scale(1) rotate(0);opacity:1}
}

#announce-sub{
  font-family:'Orbitron',monospace;font-size:14px;
  color:var(--gold);letter-spacing:3px;margin-top:8px;
  text-shadow:0 0 20px var(--gold);
  animation:announceSubFade 0.8s ease-out 0.2s both;
}

@keyframes announceSubFade{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:none}
}

/* ── DAMAGE NUMBERS ──────────────────────────── */
.dmg-num{
  position:absolute;pointer-events:none;
  font-family:'Orbitron',monospace;font-weight:700;
  text-shadow:0 2px 6px rgba(0,0,0,.9);
  animation:floatUp .9s forwards;
  z-index:12;
}
@keyframes floatUp{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-60px) scale(.7)}}

/* ── RESPONSIVE ──────────────────────────────── */
@media (max-width: 768px) {
  #hud{
    grid-template-columns:1fr auto 1fr;
    gap:6px;
    padding:6px 8px 4px;
  }
  
  .player-hud{gap:2px;}
  .tank-label{font-size:9px;}
  .tank-icon{width:14px;height:11px;}
  
  .hp-track{min-width:80px;height:8px;}
  .hp-num{font-size:11px;min-width:28px;}
  .special-track{height:4px;}
  
  .stats-row{font-size:10px;gap:8px;}
  
  .menu-buttons{width:100%;padding:0 12px;}
  .play-btn{min-width:auto;width:100%;font-size:12px;padding:14px 30px;}
  
  #game-wrap{
    min-height:auto;
    max-height:none;
    flex:1;
  }
  
  #gameCanvas{
    min-height:auto !important;
    max-height:none !important;
    height:100% !important;
  }
  
  body{
    overflow:hidden;
  }
  
  .overlay-title{font-size:24px;}
  .overlay-subtitle{font-size:11px;}
  .overlay-sub{font-size:12px;padding:0 12px;}
  
  #minimap{
    width:70px;
    height:49px;
    top:5px;
    right:5px;
  }
  
  .level-num{font-size:20px;}
  .level-label{font-size:8px;}
  .wave-label,.enemies-label{font-size:8px;}
  
  .weapon-display{padding:4px 6px;}
  .weapon-icon{font-size:14px;}
  .weapon-name{font-size:7px;}
  .ammo-count{font-size:9px;}
  
  #specialPowers{
    margin-top:4px;
    gap:4px;
  }
  
  .power-btn{
    min-width:60px;
    padding:4px 8px;
    font-size:9px;
  }
  
  .power-icon{font-size:14px;}
  .power-count{font-size:11px;}
  
  #mobile-controls{
    display:grid !important;
    padding:8px 6px 12px;
    flex-shrink:0;
    gap:8px;
  }
  
  .joystick{
    width:120px;
    height:120px;
  }
  
  .joystick-stick{
    width:48px;
    height:48px;
  }
  
  .fire-btns{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:1fr 1fr;
    gap:6px;
    width:100%;
    max-width:160px;
  }
  
  .fire-btn{
    width:100%;
    height:60px;
    font-size:7px;
  }
  
  .fire-btn .icon{font-size:18px;}
  
  .center-hud{
    order:-1;
  }
  
  .p2-hud{
    align-items:flex-end;
  }
  
  #killfeed{
    max-width:200px;
    font-size:7px;
  }
  
  .kf-item{
    font-size:7px;
    padding:4px 8px;
  }
}

@media (min-width: 769px) {
  #mobile-controls{
    display:none !important;
  }
}
