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

@keyframes pulse-soft {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.85;
  }
}

@keyframes stat-glow {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(194, 65, 12, 0.2);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(194, 65, 12, 0);
  }
}

.animate-fade-up {
  animation: fade-up 0.65s ease-out forwards;
}

.animate-pulse-soft {
  animation: pulse-soft 3s ease-in-out infinite;
}

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

.is-revealed {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

.js-reveal {
  opacity: 0;
  transform: translateY(0.75rem);
  transition:
    opacity 0.55s ease-out,
    transform 0.55s ease-out;
}

body.is-menu-open {
  overflow: hidden;
}

#contact-form-toast.hidden {
  display: none;
}
