@keyframes breathe {
  0%, 100% { opacity: 0.25; }
  50% { opacity: 0.4; }
}

.animate-breathe {
  animation: breathe 6s ease-in-out infinite;
}

.hero-slide {
  opacity: 0;
  transition: opacity 0.8s ease;
}

.hero-slide.is-active {
  opacity: 1;
}

.reveal-on-view {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal-on-view.is-visible {
  opacity: 1;
  transform: none;
}

.z-8 {
  z-index: 8;
}
