/* Shared Animation Helpers */
.animate-fade {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.95s cubic-bezier(0.22, 1, 0.36, 1), transform 0.95s cubic-bezier(0.22, 1, 0.36, 1);
}

.animate-fade.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.fade-in-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1), transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}

.animate-reveal-x {
  opacity: 0;
  transform: translateX(24px);
  transition: opacity 0.95s cubic-bezier(0.22, 1, 0.36, 1), transform 0.95s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.animate-reveal-x.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.animate-reveal-ltr {
  opacity: 0;
  transform: translateX(-24px);
  transition: opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1), transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.animate-reveal-ltr.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.animate-stagger-item {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1), transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.animate-stagger-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.js-stagger-reveal--default {
  --stagger-step: 120;
}

.js-stagger-reveal--slow {
  --stagger-step: 180;
}

.editor-styles-wrapper .animate-fade,
.editor-styles-wrapper .highlight-slider__slide,
.editor-styles-wrapper .fade-in-up,
.editor-styles-wrapper .animate-reveal-x,
.editor-styles-wrapper .animate-reveal-ltr,
.editor-styles-wrapper .animate-stagger-item {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .animate-fade,
  .fade-in-up,
  .animate-reveal-x,
  .animate-reveal-ltr,
  .animate-stagger-item {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
