/**
 * ARLaang Technologies — Animation & Motion System
 * Scroll reveals, brand wobbles, language stage pop bounce, reduced-motion overrides
 */

/* Scroll Reveal Elements */
.js .rv {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.6s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition-delay: var(--d, 0s);
  will-change: opacity, transform;
}

.js .rv.in {
  opacity: 1;
  transform: none;
}

/* Micro-Interaction Keyframes */
@keyframes wob {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-10deg) scale(1.1); }
  50% { transform: rotate(8deg) scale(1.1); }
  75% { transform: rotate(-4deg); }
  100% { transform: rotate(0deg); }
}

@keyframes hop {
  0%, 100% { transform: translateY(0); }
  40% { transform: translateY(-0.35em); }
}

@keyframes pop {
  0% { transform: scale(0.7) rotate(-6deg); opacity: 0.3; }
  60% { transform: scale(1.08) rotate(2deg); }
  100% { transform: none; opacity: 1; }
}

@keyframes fade {
  to { opacity: 1; }
}

@keyframes up {
  to { transform: none; }
}

/* Dynamic Class Triggers */
.brand:hover svg {
  animation: wob 0.6s ease;
}

.stage.pop .big, .stage.pop .hi {
  animation: pop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

h2:hover::after {
  animation: hop 0.5s ease;
}

/* Accessibility: Full Reduced Motion Overrides */
@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;
  }

  .js .rv {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .b {
    transition: none !important;
  }

  .b:hover {
    transform: none !important;
  }

  .btn:hover, .card:hover, .tile:hover, .steps div:hover {
    transform: none !important;
  }

  .card:hover .g, .steps div:hover::before, .brand:hover svg {
    transform: none !important;
    animation: none !important;
  }

  .stage.pop .big, .stage.pop .hi {
    animation: none !important;
  }

  #word {
    transition: none !important;
  }

  .band .track {
    transform: none !important;
  }
}

