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

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

@keyframes stat-ring {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(217, 70, 37, 0.35);
  }
  50% {
    box-shadow: 0 0 0 10px rgba(217, 70, 37, 0);
  }
}

@keyframes hero-shimmer {
  0% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 100% 50%;
  }
}

.cc-banner-enter {
  animation: cc-fade-in 0.45s ease-out both;
}

.section-reveal {
  animation: cc-slide-up 0.65s ease-out both;
}

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

.hero-bg-layer {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hero-bg-layer::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    rgba(245, 247, 242, 0.94) 0%,
    rgba(245, 247, 242, 0.78) 42%,
    rgba(245, 247, 242, 0.55) 100%
  );
  pointer-events: none;
}

.hero-accent-sheen {
  background: linear-gradient(
    120deg,
    rgba(217, 70, 37, 0.08),
    rgba(217, 70, 37, 0.02),
    rgba(43, 48, 34, 0.06)
  );
  background-size: 200% 200%;
  animation: hero-shimmer 14s ease-in-out infinite alternate;
}
