/**
 * animations.css — Premium Keyframes & Scroll Reveals
 */

/* ================= KEYFRAMES ================= */
@keyframes float {
  0%, 100% {
    transform: translate(-50%, 0);
  }
  50% {
    transform: translate(-50%, -10px);
  }
}

/* ================= STANDARD REVEAL (FADE + SLIDE) ================= */
.reveal {
  opacity: 0;
  transform: translateY(20px);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition: opacity var(--transition-slow), transform var(--transition-slow);
}

/* Delay classes for staggered animations */
.reveal-delay-1 { transition-delay: 150ms; }
.reveal-delay-2 { transition-delay: 300ms; }
.reveal-delay-3 { transition-delay: 450ms; }
.reveal-delay-4 { transition-delay: 600ms; }

/* ================= PREMIUM TEXT REVEAL ================= */
.reveal-overflow {
  display: block; /* Typically applied to a wrapper around block-level elements */
  overflow: hidden;
  position: relative;
}

.reveal-overflow > * {
  display: block;
  transform: translateY(110%);
  opacity: 0;
}

.reveal-overflow.is-visible > * {
  transform: translateY(0);
  opacity: 1;
  transition: transform var(--transition-slow), opacity var(--transition-slow);
}

/* ================= GEOMETRIC HERO ANIMATION ================= */
/* The Vektor geometric animation relies on CSS transitions and SVG drawing */
.geo-line {
  stroke-dasharray: 2000;
  stroke-dashoffset: 2000;
  transition: stroke-dashoffset 2s cubic-bezier(0.16, 1, 0.3, 1);
}

.geo-line.is-drawn {
  stroke-dashoffset: 0;
}

/* ================= REDUCED MOTION ================= */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .reveal,
  .reveal-overflow > * {
    opacity: 1;
    transform: none;
    transition: none;
  }
  
  .geo-line {
    stroke-dashoffset: 0 !important;
    transition: none !important;
  }
}
