/* ── Keyframes ───────────────────────────────────────────────────────────────── */
@keyframes fadeUp   { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeDown { from { opacity:0; transform:translateY(-24px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }

@keyframes heroTitleReveal {
  from { clip-path: inset(0 100% 0 0); opacity: 0; }
  to   { clip-path: inset(0 0% 0 0);   opacity: 1; }
}

@keyframes heroLineGrow {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* ── Reveal system (IntersectionObserver) ────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.7s var(--ease-soft), transform 0.7s var(--ease-soft);
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.reveal-left  { opacity: 0; transform: translateX(-32px); transition: opacity 0.7s var(--ease-soft), transform 0.7s var(--ease-soft); }
.reveal-right { opacity: 0; transform: translateX(32px);  transition: opacity 0.7s var(--ease-soft), transform 0.7s var(--ease-soft); }
.reveal-scale { opacity: 0; transform: scale(0.95);       transition: opacity 0.7s var(--ease-soft), transform 0.7s var(--ease-soft); }

.reveal-left.is-visible,
.reveal-right.is-visible,
.reveal-scale.is-visible { opacity: 1; transform: translateX(0) scale(1); }

/* Stagger delays */
.stagger-children > *:nth-child(1) { transition-delay: 0.05s; }
.stagger-children > *:nth-child(2) { transition-delay: 0.15s; }
.stagger-children > *:nth-child(3) { transition-delay: 0.25s; }
.stagger-children > *:nth-child(4) { transition-delay: 0.35s; }
.stagger-children > *:nth-child(5) { transition-delay: 0.45s; }
.stagger-children > *:nth-child(6) { transition-delay: 0.55s; }

/* ── Hero entrance ───────────────────────────────────────────────────────────── */
.hero-eyebrow  { animation: fadeUp      0.6s 0.15s var(--ease-soft) both; }
.hero-title    { animation: fadeUp      1.0s 0.35s var(--ease-soft) both; }
.hero-subtitle { animation: fadeUp      0.8s 0.60s var(--ease-soft) both; }
.hero-cta      { animation: fadeUp      0.7s 0.80s var(--ease-soft) both; }
.hero-image    { animation: heroImageIn 1.1s 0.20s var(--ease-soft) both; }
.hero-divider  { animation: fadeIn      0.8s 1.00s var(--ease-soft) both; }

@keyframes heroImageIn {
  from { opacity: 0; transform: translateX(24px) scale(0.98); }
  to   { opacity: 1; transform: translateX(0)    scale(1);    }
}

/* Línea decorativa bajo el apellido — crece desde la izquierda */
.hero-home__name-last::after {
  animation: lineGrow 0.7s 1.1s var(--ease-soft) both;
  transform-origin: left center;
}
@keyframes lineGrow {
  from { transform: scaleX(0); opacity: 0; }
  to   { transform: scaleX(1); opacity: 0.7; }
}
