/* ============================================================
   MONK OF IBIZA — THE JOURNEY
   Scroll-driven transformation: Young → Adult → Elder
   ============================================================ */

/* ── SECTION CONTAINER ─────────────────────────────────── */
.monk-journey {
  height: 350vh;          /* Espacio total de scroll */
  position: relative;
  background: var(--bg-main);
}

/* Línea dorada separadora arriba */
.monk-journey::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-main), transparent);
  z-index: 2;
}

/* ── CONTENEDOR STICKY (100vh fijo en pantalla) ─────────── */
.mj-sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #050505 0%, #07060e 50%, #050505 100%);
}

/* ── GLOW AMBIENTAL DE FONDO ────────────────────────────── */
.mj-bg-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.mj-bg-glow::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 700px; height: 700px;
  background: radial-gradient(circle,
    rgba(214,168,79,0.05) 0%,
    rgba(124,92,255,0.03) 40%,
    transparent 70%
  );
  border-radius: 50%;
  animation: pulseGlow 6s ease-in-out infinite;
}

/* ── ESCENARIO DONDE VIVEN LOS MONJES ───────────────────── */
.mj-stage {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

/* ── CADA FIGURA DE MONJE ───────────────────────────────── */
.mj-monk {
  position: absolute;
  bottom: 0;
  left: 50%;                       /* Referencia central; JS mueve con translateX */
  transform-origin: bottom center;
  will-change: transform, opacity;
  opacity: 0;                      /* JS controla la opacidad */
  line-height: 0;                  /* Elimina espacio fantasma bajo la imagen */
}

/* ── IMAGEN PNG — proporción natural ────────────────────── */
.mj-monk-img {
  display: block;
  max-height: 78vh;
  width: auto;
  max-width: none;
}

/* ── LÍNEA DE SUELO ────────────────────────────────────── */
.mj-ground {
  position: absolute;
  bottom: 0;
  left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(214,168,79,0.1) 20%,
    rgba(214,168,79,0.3) 50%,
    rgba(214,168,79,0.1) 80%,
    transparent 100%
  );
  z-index: 3;
}

/* ── TEXTO NARRATIVO (dinámico: centro ↔ derecha) ───────── */
.mj-label {
  position: absolute;
  top: 10vh;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 36vw;
  max-width: 460px;
  text-align: center;
  padding: 0;
  z-index: 10;
  pointer-events: none;
  transform: translateX(0);
  transition: transform 0.9s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Fase 1 — monje adulto en centro: texto se desplaza a la derecha */
.mj-label.label-right {
  transform: translateX(calc(50vw - 4vw - 50%));
  text-align: left;
}

/* Pastilla degradada detrás del texto */
.mj-label-inner {
  display: block;
  padding: 1.8rem 2.2rem 2rem;
  background: radial-gradient(
    ellipse at top center,
    rgba(5,5,5,0.80) 0%,
    rgba(5,5,5,0.55) 50%,
    transparent 100%
  );
  border-radius: 1.5rem;
}

.mj-chapter-num {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(5rem, 14vw, 11rem);
  color: rgba(214, 168, 79, 0.07);
  line-height: 1;
  letter-spacing: 0.12em;
  font-weight: 400;
  user-select: none;
  transition: opacity 0.5s ease;
}

.mj-chapter-title {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 3.2vw, 2.4rem);
  color: #fff;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-top: -1.5rem;
  text-shadow:
    0 0 30px rgba(0,0,0,0.9),
    0 2px 12px rgba(0,0,0,0.8),
    0 0 60px rgba(214,168,79,0.15);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.mj-chapter-sub {
  display: block;
  font-family: var(--font-accent);
  font-style: italic;
  font-size: clamp(0.95rem, 1.8vw, 1.15rem);
  color: rgba(255,255,255,0.82);
  margin-top: 0.9rem;
  max-width: 100%;
  line-height: 1.75;
  text-shadow:
    0 1px 8px rgba(0,0,0,0.9),
    0 0 20px rgba(0,0,0,0.7);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

/* ── ETIQUETA DE EDAD bajo el monje ───────────────────── */
.mj-age-tag {
  position: absolute;
  bottom: 3vh;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-body);
  font-size: 0.68rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold-main);
  opacity: 0;
  transition: opacity 0.6s ease;
  z-index: 10;
  white-space: nowrap;
  pointer-events: none;
}

/* ── PUNTOS DE PROGRESO (lateral derecho) ──────────────── */
.mj-dots {
  position: absolute;
  right: 2.5rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  z-index: 10;
}

.mj-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: rgba(214,168,79,0.2);
  border: 1px solid rgba(214,168,79,0.35);
  transition: all 0.4s ease;
}

.mj-dot.active {
  background: var(--gold-main);
  box-shadow: 0 0 12px var(--gold-glow);
  transform: scale(1.5);
}

/* Etiqueta de los dots */
.mj-dot-label {
  position: absolute;
  right: 1.6rem;
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(214,168,79,0.4);
  white-space: nowrap;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

/* ── INSTRUCCIÓN DE SCROLL (inicio) ────────────────────── */
.mj-scroll-hint {
  position: absolute;
  bottom: 4vh;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.25);
  z-index: 10;
  transition: opacity 0.4s ease;
  pointer-events: none;
  white-space: nowrap;
}

/* ── VÍDEO DE FONDO ────────────────────────────────────── */

/* Contenedor: detrás de todo, debajo del glow y los monjes */
.mj-video-bg {
  position: absolute;
  inset: 0;
  z-index: 0;          /* El más bajo — debajo del glow (z:0) y el escenario (z:2) */
  overflow: hidden;
}

/* El vídeo ocupa toda la sección */
.mj-video-el {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  opacity: 0;                              /* Invisible hasta que cargue */
  transition: opacity 1.2s ease;
}

/* Cuando el vídeo está listo, aparece con fade suave */
.mj-video-el.loaded {
  opacity: 1;
}

/* Overlay oscuro encima del vídeo:
   - Arriba oscuro para que el texto sea legible
   - Centro semitransparente para ver el vídeo
   - Abajo oscuro para que los pies de los monjes tengan profundidad
*/
.mj-video-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(5,5,5,0.72) 0%,        /* Header: oscuro para el texto */
      rgba(5,5,5,0.30) 30%,       /* Zona media: se ve el vídeo */
      rgba(5,5,5,0.25) 55%,       /* Zona del monje: sutil */
      rgba(5,5,5,0.65) 85%,       /* Transición al suelo */
      rgba(5,5,5,0.95) 100%       /* Base: oscuro para la siguiente sección */
    ),
    radial-gradient(
      ellipse at center,
      transparent 40%,
      rgba(5,5,5,0.4) 100%        /* Viñeta lateral */
    );
  pointer-events: none;
}

/* Cuando NO hay vídeo (archivo no encontrado), el fondo negro
   del .mj-sticky ya actúa — nada se rompe */
.mj-video-el.error {
  display: none;
}

/* Accesibilidad: si el usuario prefiere sin movimiento */
@media (prefers-reduced-motion: reduce) {
  .mj-video-el { display: none; }
}

/* ── RESPONSIVE ────────────────────────────────────────── */
@media (max-width: 768px) {
  .mj-dots { right: 1rem; }
  .monk-journey { height: 300vh; }
  .mj-monk-img {
    height: 60vh;
    width: calc(60vh * 2 / 3);
  }
}

@media (max-width: 480px) {
  .mj-dots { display: none; }
  .mj-monk-img {
    height: 50vh;
    width: calc(50vh * 2 / 3);
  }
}

/* ── MOBILE: ocultar scroll-animation, mostrar slider ── */
@media (max-width: 640px) {
  .monk-journey { display: none !important; }
  #mj-mobile    { display: block !important; }
}
@media (min-width: 641px) {
  #mj-mobile    { display: none !important; }
}
