.reveal:not(.product-card) {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.visible:not(.product-card) {
  opacity: 1;
  transform: translateY(0);
}
.product-card.reveal,
.product-card.reveal.visible {
  opacity: 1;
}
.category-card, .benefit-grid.compact article {
  animation: fadeUp .5s ease both;
}
.benefit-grid:not(.compact) article {
  animation: benefitFade .5s ease both;
}
.featured-carousel .product-card {
  animation: none;
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes benefitFade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes benefitShine {
  from { transform: translateX(-60%) rotate(18deg); }
  to { transform: translateX(60%) rotate(18deg); }
}
@keyframes quoteGradientFlow {
  0% {
    background-position: 0% 0%, 100% 8%, 68% 100%, 0 0;
    background-size: 116% 116%, 120% 120%, 130% 130%, auto;
  }
  50% {
    background-position: 8% 12%, 88% 0%, 82% 86%, 0 0;
    background-size: 132% 132%, 112% 112%, 138% 138%, auto;
  }
  100% {
    background-position: 14% 4%, 96% 18%, 62% 92%, 0 0;
    background-size: 122% 122%, 128% 128%, 118% 118%, auto;
  }
}
@keyframes quoteBlobMove {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: .48;
  }
  50% {
    transform: translate3d(10%, -6%, 0) scale(1.1);
    opacity: .72;
  }
  100% {
    transform: translate3d(-6%, 8%, 0) scale(.95);
    opacity: .58;
  }
}
@keyframes loadingBar {
  0% { transform: translateX(-110%); }
  50% { transform: translateX(70%); }
  100% { transform: translateX(240%); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
