.reveal {
  opacity: 0;
  transform: translateY(28px);
  filter: blur(8px);
  transition:
    opacity 880ms var(--ease-premium),
    transform 880ms var(--ease-premium),
    filter 880ms var(--ease-premium);
  will-change: opacity, transform, filter;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.hero .reveal {
  clip-path: inset(0 0 100% 0);
  transform: translateY(34px);
  transition:
    clip-path 980ms var(--ease-premium),
    opacity 980ms var(--ease-premium),
    transform 980ms var(--ease-premium),
    filter 980ms var(--ease-premium);
}

.hero .reveal.is-visible {
  clip-path: inset(0 0 0 0);
}

.reveal:nth-child(2),
.card-grid .reveal:nth-child(2),
.project-grid .reveal:nth-child(2),
.feature-list .reveal:nth-child(2) {
  transition-delay: 90ms;
}

.reveal:nth-child(3),
.card-grid .reveal:nth-child(3),
.project-grid .reveal:nth-child(3),
.feature-list .reveal:nth-child(3) {
  transition-delay: 160ms;
}

.reveal:nth-child(4),
.card-grid .reveal:nth-child(4) {
  transition-delay: 230ms;
}

.card-grid .reveal:nth-child(5) {
  transition-delay: 300ms;
}

.card-grid .reveal:nth-child(6) {
  transition-delay: 370ms;
}

.section.is-visible::before {
  animation: sectionLine 1.2s var(--ease-premium) both;
}

.stat.is-counting strong,
.service-card.is-counting .service-card__number {
  color: var(--color-gold);
}

@keyframes loaderPulse {
  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(185, 151, 91, 0.28);
  }

  50% {
    transform: scale(1.08);
    box-shadow: 0 0 0 14px rgba(185, 151, 91, 0);
  }
}

@keyframes ctaBreath {
  0%,
  100% {
    box-shadow: 0 16px 40px rgba(13, 12, 10, 0.18);
  }

  50% {
    box-shadow: 0 22px 62px rgba(185, 151, 91, 0.24);
  }
}

@keyframes sectionLine {
  from {
    opacity: 0;
    transform: translateX(-50%) scaleX(0);
  }

  to {
    opacity: 1;
    transform: translateX(-50%) scaleX(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .hero .reveal {
    opacity: 1;
    transform: none;
    filter: none;
    clip-path: none;
  }
}
