/* Base Animator Styles */
.scroll-animator-section {
  opacity: 0;
  transition: opacity 1s ease-out;
  overflow: visible;
}
.scroll-animator-section.is-visible {
  opacity: 1;
}

.scroll-animator-content {
  transition: transform 1s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: transform;
}

/* Fallback / General visibility */
.scroll-animator-section.is-visible.animate-fade-up .scroll-animator-content {
  transform: translateY(0);
}

/* Animations from OFF SCREEN */
.animate-slide-left .scroll-animator-content {
  transform: translateX(-100vw);
}
.scroll-animator-section.is-visible.animate-slide-left .scroll-animator-content {
  transform: translateX(0);
}

.animate-slide-right .scroll-animator-content {
  transform: translateX(100vw);
}
.scroll-animator-section.is-visible.animate-slide-right .scroll-animator-content {
  transform: translateX(0);
}

.animate-fade-up .scroll-animator-content {
  transform: translateY(150px);
}
.scroll-animator-section.is-visible.animate-fade-up .scroll-animator-content {
  transform: translateY(0);
}

.animate-fade-in .scroll-animator-content {
  opacity: 0;
  transform: scale(0.95);
}
.scroll-animator-section.is-visible.animate-fade-in .scroll-animator-content {
  opacity: 1;
  transform: scale(1);
}
