/* ==========================================================================
   Avarida Group — Animations
   Only the motion that exists in the original source is reproduced here.
   framer-motion easing [0.2, 0.7, 0.2, 1] is preserved throughout.
   ========================================================================== */

@keyframes avarida-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* --------------------------------------------------------------------------
   Scroll reveal — the `whileInView` + `viewport={{ once: true }}` pattern.
   Source initial state: { opacity: 0, y: 18–24 }
   -------------------------------------------------------------------------- */

.avarida-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 550ms cubic-bezier(0.2, 0.7, 0.2, 1),
    transform 550ms cubic-bezier(0.2, 0.7, 0.2, 1);
  transition-delay: var(--avarida-delay, 0ms);
}

.avarida-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Metric cards use y: 18 and 500ms */
.avarida-reveal--sm {
  transform: translateY(18px);
  transition-duration: 500ms;
}

/* --------------------------------------------------------------------------
   Hero entrance — plays immediately on load, matching `animate` (not
   `whileInView`) on the hero's motion elements.
   -------------------------------------------------------------------------- */

@keyframes avarida-hero-up {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes avarida-hero-scale {
  from { opacity: 0; transform: scale(0.96); }
  to   { opacity: 1; transform: scale(1); }
}

.avarida-hero__badge,
.avarida-hero__title,
.avarida-hero__lede,
.avarida-hero__actions {
  opacity: 0;
  animation: avarida-hero-up 600ms cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
}

/* Source delays: 0, 0.05s, 0.12s, 0.2s */
.avarida-hero__badge   { animation-duration: 500ms; animation-delay: 0ms; }
.avarida-hero__title   { animation-delay: 50ms; }
.avarida-hero__lede    { animation-delay: 120ms; }
.avarida-hero__actions { animation-delay: 200ms; }

.avarida-hero__dash {
  opacity: 0;
  animation: avarida-hero-scale 700ms cubic-bezier(0.2, 0.7, 0.2, 1) 150ms forwards;
}

/* --------------------------------------------------------------------------
   Sparkline bars — staggered grow, 0.7s each, 0.4s + i*0.05s delay
   -------------------------------------------------------------------------- */

@keyframes avarida-bar-grow {
  from { height: 0; }
  to   { height: var(--avarida-bar-h); }
}

.avarida-spark__bar {
  height: 0;
  animation: avarida-bar-grow 700ms cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
  animation-delay: var(--avarida-bar-delay, 400ms);
}

/* --------------------------------------------------------------------------
   Floating hero cards — 5s infinite ease-in-out bob, staggered fade-in
   -------------------------------------------------------------------------- */

@keyframes avarida-float-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes avarida-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}

.avarida-float {
  opacity: 0;
  animation:
    avarida-float-in 500ms ease-out var(--avarida-float-delay, 0ms) forwards,
    avarida-float 5s ease-in-out var(--avarida-float-delay, 0ms) infinite;
}

/* --------------------------------------------------------------------------
   FAQ answer collapse — 280ms, same easing as the source AnimatePresence
   -------------------------------------------------------------------------- */

.avarida-faq__a {
  height: 0;
  overflow: hidden;
  transition: height 280ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* --------------------------------------------------------------------------
   Respect reduced-motion preferences.
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .avarida-reveal,
  .avarida-hero__badge,
  .avarida-hero__title,
  .avarida-hero__lede,
  .avarida-hero__actions,
  .avarida-hero__dash,
  .avarida-spark__bar,
  .avarida-float {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .avarida-spark__bar { height: var(--avarida-bar-h); }
}
