@keyframes pulseRing {
  0%,100% { transform:scale(1); opacity:0.6; }
  50% { transform:scale(1.06); opacity:0.3; }
}
@keyframes floatImg {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-14px); }
}
@keyframes leafFloat {
  0% { transform:translateY(0) rotate(0deg) scale(1); opacity:0.12; }
  50% { transform:translateY(-30px) rotate(12deg) scale(1.05); opacity:0.18; }
  100% { transform:translateY(0) rotate(0deg) scale(1); opacity:0.12; }
}
@keyframes floatPulse {
  0%,100% { box-shadow:0 6px 30px rgba(14,122,61,0.5), 0 0 0 0 rgba(14,122,61,0.4); }
  50% { box-shadow:0 10px 40px rgba(14,122,61,0.6), 0 0 0 12px rgba(14,122,61,0); }
}
@keyframes typing {
  0%,10% { opacity:1; }
  80%,100% { opacity:0; }
}
@keyframes fadeSlideUp {
  from { opacity:0; transform:translateY(24px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes shimmer {
  0% { background-position:-200% center; }
  100% { background-position:200% center; }
}

/* Leaf positions */
.leaf-1 { top:15%; left:8%; animation:leafFloat 6s ease-in-out infinite 0s; }
.leaf-2 { top:30%; right:12%; animation:leafFloat 7s ease-in-out infinite 1.2s; }
.leaf-3 { top:60%; left:5%; animation:leafFloat 8s ease-in-out infinite 2.5s; }
.leaf-4 { bottom:20%; right:8%; animation:leafFloat 5.5s ease-in-out infinite 0.8s; }
.leaf-5 { top:45%; left:50%; animation:leafFloat 9s ease-in-out infinite 3s; }
.leaf-6 { bottom:35%; left:30%; animation:leafFloat 6.5s ease-in-out infinite 1.8s; }

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