@keyframes stat-rise {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes stat-glow {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(101, 163, 13, 0.25);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(101, 163, 13, 0);
  }
}

.stat-card--animate {
  animation: stat-rise 0.65s ease-out both;
}

.stat-card--pulse {
  animation: stat-glow 2.8s ease-in-out infinite;
}

@keyframes hero-fade {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero-animate {
  animation: hero-fade 0.8s ease-out both;
}

@keyframes nav-open {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.mobile-nav-panel--open {
  animation: nav-open 0.25s ease-out both;
}

.nav-link--active {
  font-weight: 600;
  color: #4d7c0f;
  border-bottom: 2px solid #65a30d;
  padding-bottom: 0.125rem;
}

@media (max-width: 767px) {
  .nav-link--active {
    border-bottom: none;
    background-color: #ecf7dd;
    border-radius: 0.5rem;
    padding: 0.75rem;
  }
}

@keyframes toast-in {
  from {
    opacity: 0;
    transform: translateX(0.75rem);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.form-toast--visible {
  animation: toast-in 0.28s ease-out both;
}
