/* ==========================================================================
   EuskoLabs — Ultra-Fluid Smooth Scrolling & Cinematic Page Curtain (page-transitions.css)
   0ms Input Lag · GPU-Composited Native 120 FPS · Cero Stutter
   ========================================================================== */

/* 1. SCROLL SUAVE LENIS & COMPOSICIÓN GPU */
html:not(.lenis) {
  scroll-behavior: smooth;
}

html.lenis, html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

/* Optimización GPU de capas fijas para scroll a 120 FPS sin repaints */
.crt-scanlines,
.ambient-vignette {
  transform: translateZ(0);
  will-change: transform;
}

.header-nav {
  transform: translateZ(0);
}

/* Offset perfecto para no tapar títulos con la navbar fija */
:target,
#ecosistema,
#contacto,
#divisiones,
#media-section,
.scroll-target {
  scroll-margin-top: 92px;
}

/* 2. TELÓN CINEMÁTICO DE TRANSICIÓN (ZERO GPU OVERHEAD) */
#page-transition-curtain {
  position: fixed;
  inset: 0;
  background-color: #061224;
  z-index: 9999999;
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Cuando la página carga, el telón se desvanece suavemente */
#page-transition-curtain.curtain-fade-in {
  opacity: 0;
}

/* Cuando se pulsa un enlace, el telón se cierra suavemente antes del salto */
#page-transition-curtain.curtain-fade-out {
  opacity: 1;
  pointer-events: all;
  transition: opacity 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}

/* 3. RESPETO A PREFERENCIAS DE ACCESIBILIDAD */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
  #page-transition-curtain {
    display: none !important;
  }
}
