/* --------------------------------------
Enginate: ALR 11.13.25
----------------------------------------- */




/* ============================
   ANIMATION UTILITIES
   ============================ */

/* Badges: float-in from below */
.anim-badge {
  opacity: 0;
  transform: translateY(6px);
  transition:
    opacity 0.4s ease-out,
    transform 0.4s ease-out;
  will-change: opacity, transform;
}

.anim-badge.in {
  opacity: 1;
  transform: translateY(0);
}

/* Highlight rows: pop-in */
.anim-pop {
  opacity: 0;
  transform: scale(0.94);
  transition:
    opacity 0.25s ease-out,
    transform 0.25s ease-out;
  will-change: opacity, transform;
}

.anim-pop.in {
  opacity: 1;
  transform: scale(1);
}

/* Tab panels: fade + slide up */
.anim-panel {
  opacity: 0;
  transform: translateY(8px);
  transition:
    opacity 0.35s ease-out,
    transform 0.35s ease-out;
  will-change: opacity, transform;
}

.anim-panel.in {
  opacity: 1;
  transform: translateY(0);
}

/* Optional: respect reduced motion at pure-CSS level as a backup */
@media (prefers-reduced-motion: reduce) {
  .anim-badge,
  .anim-badge.in,
  .anim-pop,
  .anim-pop.in,
  .anim-panel,
  .anim-panel.in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Slower variant for key moments like testimonials */
.anim-pop.anim-pop-slow {
  transition-duration: 0.45s;
}

.anim-pop.anim-pop-slow.in {
  transition-duration: 0.55s;
}


@keyframes navFadeIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.nav-fade-in {
  animation: navFadeIn 400ms ease-out;
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  .nav-fade-in {
    animation: none;
  }
}


