/* ============================================
   COMPONENTS
   ============================================ */

/* MENÚ DE ARRIBA (NAV) */
nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 48px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s;
}

nav::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  transition: background 0.4s;
}
nav.scrolled {
  padding: 20px 48px;
  opacity: 1;
  pointer-events: auto;
}
nav.scrolled::before {
  background: rgba(7,7,10,0.96);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
}
/* El logo, arriba a la izquierda — texto con la misma tipografía que
   el título del Hero (.game-title), en tamaño reducido para el nav. */
.nav-logo {
  font-family: var(--font-title);
  font-size: clamp(32px, 2.2vw, 26px);
  color: var(--cream);
  text-decoration: none;
  line-height: 1;
  letter-spacing: 1px;
}
/* Botón hamburguesa: solo existe visualmente en mobile */
.nav-toggle {
  display: none;
  background: none;
  border: none;
  color: var(--gold);
  font-size: 22px;
  cursor: pointer;
  padding: 4px;
}

/* La lista de links del menú (Historia, Galería, Gameplay...) */
.nav-links {
  display: flex;
  gap: 32px;
  list-style: none; }
.nav-links a {
  font-family: var(--font-ui);
  font-size: 14px;
  letter-spacing: 3px;
  color: var(--gold);
  text-decoration: none;
  transition: color 0.3s, text-shadow 0.3s;
}
.nav-links a:hover {
  color: var(--cream);
  text-shadow: 0 0 8px var(--cream), 0 0 24px var(--cream); /* efecto foco encendido */
}

/* 1024px (no 768px) a propósito: en tablets (768-1024px) los 7 links
   en fila ya no entran cómodos — el menú hamburguesa entra antes que
   el resto de los ajustes "mobile" (grids a 1 columna, etc.), que
   siguen en 768px porque ahí sí funcionan bien en tablet. */
@media (max-width: 1024px) {
  nav { padding: 16px 20px; }
  nav.scrolled { padding: 12px 20px; }

  /* El botón hamburguesa aparece, y los links pasan de una fila
     horizontal (display:flex de la regla base de arriba) a un panel
     de pantalla completa (lo abre/cierra main.js agregando/quitando
     la clase "open" en .nav-links y "nav-open" en <body>). */
  .nav-toggle { display: block; }
  .nav-links {
    display: none;
    position: fixed;
    top: 60px;    /* alto aproximado del nav en mobile (ver padding arriba) */
    left: 0;
    right: 0;
    bottom: 0;    /* al fijar top Y bottom, cubre TODO el resto de la pantalla */
    flex-direction: column;
    gap: 0;
    background: #07070a; /* sólido, no translúcido: no debe verse nada detrás */
    overflow-y: auto;
  }
  .nav-links.open { display: flex; }
  .nav-links li { border-bottom: 1px solid var(--border); }
  .nav-links a {
    display: block;
    padding: 20px;
    font-size: 16px;
    transition: background-color 0.15s, color 0.15s;
  }
  /* Invierte los colores (texto <-> fondo)*/
  .nav-links a:hover,
  .nav-links a:active,
  .nav-links a:focus-visible {
    background: var(--gold);
    color: var(--bg);
  }

  /* Bloquea el scroll del fondo mientras el menú está abierto (lo
     agrega/quita main.js) — si no, el contenido se sigue moviendo
     detrás del panel (que es "fixed") y se siente "pegado"/roto. */
  body.nav-open { overflow: hidden; }
}

/* BARRA SUPERIOR (TOPBAR)*/
.topbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 101;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 48px;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.4s, transform 0.4s;
}
.topbar.hidden {
  opacity: 0;
  transform: translateY(-16px);
  pointer-events: none;
}
.topbar-socials,
.topbar-platforms {
  display: flex;
  align-items: center;
  gap: 12px;
}
.topbar-btn {
  font-family: var(--font-ui);
  font-size: 18px;
  letter-spacing: 1.5px;
  background: rgba(7,7,10,0.5);
  color: var(--gold);
  border: 1px solid var(--gold-dim);
  border-radius: 10px;
  padding: 10px 18px;
  cursor: pointer;
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.topbar-btn:hover { border-color: var(--gold); color: var(--cream); }

.topbar-btn {
  animation: topbar-btn-glow 5s ease-out infinite;
}
@keyframes topbar-btn-glow {
  0%, 30% {
    box-shadow: 0 0 0 0 rgba(200,176,138,0);
    border-color: var(--gold-dim);
  }
  42% {
    box-shadow: 0 0 18px 2px rgba(200,176,138,0.55);
    border-color: var(--gold);
  }
  60% {
    box-shadow: 0 0 12px 1px rgba(200,176,138,0.30);
    border-color: rgba(200,176,138,0.6);
  }
  80% {
    box-shadow: 0 0 6px 0 rgba(200,176,138,0.12);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(200,176,138,0);
    border-color: var(--gold-dim);
  }
}
.topbar-btn:hover { animation: none; }
@media (prefers-reduced-motion: reduce) {
  .topbar-btn { animation: none; }
}

.topbar-socials .social-btn {
  background: rgba(7,7,10,0.5);
  border: 1px solid var(--gold-dim);
  color: var(--gold);
}
.topbar-socials .social-btn:hover {
  border-color: var(--gold);
  color: var(--cream);
  background: rgba(7,7,10,0.5);
}

@media (max-width: 1024px) {
  .topbar { padding: 16px 20px; gap: 12px; }
}
@media (max-width: 768px) {
  .topbar-platforms { display: none; }
}

/* BOTONES
   El botón "secundario" (solo borde, discreto) se usa en Press Kit. */
.btn-secondary {
  font-family: var(--font-ui); 
  font-size: 14px; 
  letter-spacing: 3px;
  background: transparent; 
  color: var(--gold);
  border: 1px solid var(--gold-dim); 
  padding: 14px 32px;
  cursor: pointer; 
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s, transform 0.15s;
  display: inline-flex; 
  align-items: center; 
  gap: 8px;
}
.btn-secondary:hover { border-color: var(--gold); color: var(--cream); transform: translateY(-1px); }

/* FOOTER */
footer {
  border-top: 1px solid var(--border);
  padding: 30px 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}
.footer-logo { height: 24px; opacity: 0.8; }
.footer-copy { font-size: 18px; color: var(--cream);} 
