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

@keyframes grow-bar {
  0% { width: 0; }
  100% { width: 78%; }
}

@keyframes float-leaf {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  25% {
    transform: translateY(-15px) rotate(5deg);
  }
  50% {
    transform: translateY(-8px) rotate(-3deg);
  }
  75% {
    transform: translateY(-20px) rotate(4deg);
  }
}

@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slide-in-right {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slide-in-left {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes glow-pulse {
  0%, 100% {
    box-shadow: 0 0 0 rgba(76,175,80,0);
  }
  50% {
    box-shadow: 0 0 30px rgba(76,175,80,0.15);
  }
}

@keyframes rotate-slow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Light ray animation */
@keyframes light-ray {
  0% {
    opacity: 0;
    transform: translateY(-20px) scaleY(0.8);
  }
  50% {
    opacity: 0.06;
    transform: translateY(0) scaleY(1);
  }
  100% {
    opacity: 0;
    transform: translateY(20px) scaleY(0.8);
  }
}

.light-ray {
  position: absolute;
  width: 2px;
  height: 120px;
  background: linear-gradient(180deg, transparent, var(--accent-highlight), transparent);
  opacity: 0;
  animation: light-ray 6s ease-in-out infinite;
  pointer-events: none;
}

.light-ray:nth-child(1) { left: 20%; animation-delay: 0s; }
.light-ray:nth-child(2) { left: 40%; animation-delay: 2s; }
.light-ray:nth-child(3) { left: 60%; animation-delay: 4s; }
.light-ray:nth-child(4) { left: 80%; animation-delay: 1s; }

/* Stagger animations */
.stagger-children > * {
  opacity: 0;
  transform: translateY(20px);
}

.stagger-children.visible > *:nth-child(1) { animation: fade-in-up 0.5s ease forwards 0.1s; }
.stagger-children.visible > *:nth-child(2) { animation: fade-in-up 0.5s ease forwards 0.2s; }
.stagger-children.visible > *:nth-child(3) { animation: fade-in-up 0.5s ease forwards 0.3s; }
.stagger-children.visible > *:nth-child(4) { animation: fade-in-up 0.5s ease forwards 0.4s; }
.stagger-children.visible > *:nth-child(5) { animation: fade-in-up 0.5s ease forwards 0.5s; }
.stagger-children.visible > *:nth-child(6) { animation: fade-in-up 0.5s ease forwards 0.6s; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  html {
    scroll-behavior: auto;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }

  .floating-leaf,
  .light-ray {
    display: none;
  }
}