/* ============================================================
   JohanFilms — Navegación, menú móvil y animación de aparición
   Archivo compartido por todas las páginas del sitio.

   No depende de las variables --accent/--border/--dark-gray de
   cada página: usa colores fijos a propósito, para que se pueda
   incluir en cualquier página nueva sin romper nada.

   Requiere en el HTML:
     <nav>
       <a href="index.html" class="nav-logo">JOHANFILMS</a>
       <div class="menu-toggle" id="menuToggle">
         <span></span><span></span>
       </div>
       <ul class="nav-links" id="navLinks"> ...enlaces o vacío... </ul>
     </nav>
   Y opcionalmente cualquier elemento con clase "reveal" para que
   aparezca suavemente al hacer scroll (ver site-nav.js).
   ============================================================ */

nav{
  position:fixed;
  top:0;left:0;right:0;
  height:52px;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5%;
  background:rgba(0,0,0,.72);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.nav-logo{
  font-size:1.05rem;
  font-weight:800;
  letter-spacing:.02em;
  color:#f5f5f7;
  text-decoration:none;
}

.nav-links{
  display:flex;
  list-style:none;
  gap:30px;
  align-items:center;
}
.nav-links a{
  font-size:.75rem;
  color:rgba(245,245,247,.76);
  text-decoration:none;
  transition:opacity .25s ease, color .25s ease;
}
.nav-links a:hover,
.nav-links a.active{
  color:#fff;
  opacity:1;
}

.menu-toggle{
  display:none;
  width:34px;height:34px;
  z-index:1002;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:6px;
}
.menu-toggle span{
  width:18px;height:1.5px;
  background:#fff;
  border-radius:999px;
  transition:all .3s ease;
}
.menu-toggle.active span:nth-child(1){transform:translateY(3.8px) rotate(45deg);}
.menu-toggle.active span:nth-child(2){transform:translateY(-3.8px) rotate(-45deg);}

/* Animación de aparición al hacer scroll (usada en secciones .reveal) */
.reveal{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .8s cubic-bezier(.5,0,0,1), transform .8s cubic-bezier(.5,0,0,1);
}
.reveal.active{
  opacity:1;
  transform:translateY(0);
}

@media (max-width:768px){
  nav{padding:0 20px;}
  .nav-logo{font-size:.9rem;}
  .menu-toggle{display:flex;}

  .nav-links{
    position:fixed;
    top:0;right:-100%;
    width:100%;height:100vh;
    background:rgba(0,0,0,.96);
    backdrop-filter:blur(28px);
    -webkit-backdrop-filter:blur(28px);
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:38px;
    transition:right .45s cubic-bezier(.77,0,.175,1);
    z-index:1000;
  }
  .nav-links.active{right:0;}
  .nav-links a{
    font-size:1.45rem !important;
    font-weight:800;
    color:#fff;
    opacity:1;
  }
}
