@media (prefers-reduced-motion: no-preference) {
  .sv-feat__card,
  .sv-pipe__step,
  .wip-plan,
  .sv-tariff {
    animation: sv-card-breathe 6s var(--sv-ease-smooth, ease-in-out) infinite;
    animation-delay: calc(var(--sv-reveal-i, 0) * 0.4s);
  }

  .sv-sec.is-visible .sv-h2,
  .sv-sec__head.is-visible .sv-h2,
  .sv-reveal.is-visible .sv-h2 {
    animation: sv-title-in 0.8s var(--sv-ease-smooth, ease) both;
  }

  .sv-apps__tag {
    transition:
      transform 0.45s var(--sv-ease-smooth, ease),
      border-color 0.45s ease,
      background 0.45s ease;
  }

  .sv-apps__tag:hover {
    transform: translateY(-2px) scale(1.02);
    background: var(--sv-mint-dim);
  }

  .sv-faq details {
    transition: background 0.4s ease, border-color 0.4s ease;
  }

  .sv-faq details[open] {
    animation: sv-faq-open 0.45s var(--sv-ease-smooth, ease);
  }

  .sv-ticker__track:not(.sv-ticker__track--triple) {
    animation: sv-ticker-drift 40s linear infinite;
  }

  .sv-hero--stacked .sv-status__dot {
    animation: sv-pulse-dot 2s ease-in-out infinite;
  }

  .sv-hero .sv-btn-atlas--primary {
    animation: sv-btn-glow 4s ease-in-out infinite;
  }

  .wip-plan--pick,
  .sv-tariff--pick {
    animation: sv-pick-pulse 3s ease-in-out infinite;
  }

  .sv-link-card__icon {
    transition: transform 0.45s var(--sv-ease-smooth, ease);
  }

  .sv-link-card:hover .sv-link-card__icon {
    transform: scale(1.08);
  }
}

@keyframes sv-card-breathe {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(6, 182, 212, 0);
  }
  50% {
    box-shadow: 0 0 0 1px rgba(6, 182, 212, 0.08);
  }
}

@keyframes sv-title-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes sv-faq-open {
  from {
    opacity: 0.85;
  }
  to {
    opacity: 1;
  }
}

@keyframes sv-ticker-drift {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-33.333%);
  }
}

@keyframes sv-pulse-dot {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.65;
    transform: scale(1.15);
  }
}

@keyframes sv-btn-glow {
  0%,
  100% {
    box-shadow: 0 2px 12px rgba(6, 182, 212, 0.2);
  }
  50% {
    box-shadow: 0 4px 20px rgba(6, 182, 212, 0.35);
  }
}

@keyframes sv-reveal-up {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes sv-pick-pulse {
  0%,
  100% {
    box-shadow:
      0 0 0 1px rgba(6, 182, 212, 0.2),
      0 18px 40px -16px rgba(6, 182, 212, 0.25);
  }
  50% {
    box-shadow:
      0 0 0 1px rgba(6, 182, 212, 0.35),
      0 22px 48px -12px rgba(6, 182, 212, 0.38);
  }
}
