/* Transiciones suaves entre páginas (entrada tipo diapositiva + revelado escalonado) */

body.transition-prep {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  -webkit-transform: translate3d(0, 16px, 0);
}

body.loaded {
  opacity: 1;
}

body.page-entered {
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  transition: opacity 520ms ease, transform 780ms cubic-bezier(0.22, 1, 0.36, 1);
  -webkit-transition: opacity 520ms ease, -webkit-transform 780ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* Bloques principales aparecen de forma progresiva */
.reveal-item {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  -webkit-transform: translate3d(0, 22px, 0);
  will-change: transform, opacity;
}

body.page-entered .reveal-item {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  transition: opacity 760ms ease, transform 980ms cubic-bezier(0.22, 1, 0.36, 1);
  -webkit-transition: opacity 760ms ease, -webkit-transform 980ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
  -webkit-transition-delay: var(--reveal-delay, 0ms);
}

/* Salida al navegar */
body.page-transitioning {
  opacity: 0;
  transform: translate3d(0, 10px, 0);
  -webkit-transform: translate3d(0, 10px, 0);
  transition: opacity 420ms ease, transform 420ms ease;
  -webkit-transition: opacity 420ms ease, -webkit-transform 420ms ease;
}

/* Navbar siempre estable */
.navbar,
.nav-container,
.nav-links {
  opacity: 1 !important;
}
