/* ==========================================================================
   EVOLUZION MEDIA — Animations
   ========================================================================== */

/* Scroll reveal */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

/* Stagger children within a revealed group */
.cards--4 .card.is-visible:nth-child(1){ transition-delay:.05s; }
.cards--4 .card.is-visible:nth-child(2){ transition-delay:.14s; }
.cards--4 .card.is-visible:nth-child(3){ transition-delay:.23s; }
.cards--4 .card.is-visible:nth-child(4){ transition-delay:.32s; }

.portfolio-track .portfolio-item.is-visible:nth-child(1){ transition-delay:0s; }

/* Hero load sequence */
.hero__inner .eyebrow{ animation:hero-in .7s var(--ease) .1s both; }
.hero__title{ animation:hero-in .8s var(--ease) .22s both; }
.hero__subtitle{ animation:hero-in .7s var(--ease) .38s both; }
.hero__quote{ animation:hero-in .8s var(--ease) .52s both; }
.hero__actions{ animation:hero-in .7s var(--ease) .66s both; }

@keyframes hero-in{
  from{ opacity:0; transform:translateY(18px); }
  to{ opacity:1; transform:translateY(0); }
}

@keyframes scroll-line{
  0%{ top:-56px; }
  100%{ top:56px; }
}

@keyframes marquee{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

@keyframes sheen-sweep{
  0%, 60%, 100%{ left:-40%; }
  30%{ left:120%; }
}

@keyframes hero-gradient-flow{
  from{ background-position:0% center; }
  to{ background-position:-220% center; }
}

/* Typing cursor effect on version tag (optional micro-detail) */
.version__dot{ }
