/* ==========================================================================
   Animations — pure CSS, triggered by jQuery scroll reveal
   ========================================================================== */

/* Scroll reveal base state */
.reveal {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity 0.7s ease, transform 0.7s ease;
  will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: none; }

/* Stagger helpers */
.reveal[data-delay="1"] { transition-delay: 0.1s; }
.reveal[data-delay="2"] { transition-delay: 0.2s; }
.reveal[data-delay="3"] { transition-delay: 0.3s; }
.reveal[data-delay="4"] { transition-delay: 0.4s; }

/* Hero text fade in */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(26px); }
  to { opacity: 1; transform: none; }
}
.slide.is-active .slide__inner > * { animation: fadeUp 0.9s ease both; }
.slide.is-active .slide__inner > *:nth-child(2) { animation-delay: 0.15s; }
.slide.is-active .slide__inner > *:nth-child(3) { animation-delay: 0.3s; }

/* Sticky navbar entrance */
@keyframes slideDown {
  from { transform: translateY(-100%); }
  to { transform: none; }
}
.header.is-solid { animation: slideDown 0.4s ease; }

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}
