/* ── Scroll reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .5s ease, transform .5s cubic-bezier(.2,.8,.2,1);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Stagger siblings inside a grid */
.pain-grid .reveal:nth-child(2),
.builds-grid .reveal:nth-child(2),
.process-track .reveal:nth-child(2) { transition-delay: .08s; }

.pain-grid .reveal:nth-child(3),
.builds-grid .reveal:nth-child(3),
.process-track .reveal:nth-child(3) { transition-delay: .16s; }

/* ── Hero entrance — faster ── */
.s-hero .reveal { transition-duration: .4s; }
.s-hero .reveal:nth-child(2) { transition-delay: .05s; }
.s-hero .reveal:nth-child(3) { transition-delay: .10s; }
.s-hero .reveal:nth-child(4) { transition-delay: .15s; }

/* ── Element interactions ── */
.cta-primary { transition: background 130ms ease, transform 100ms ease, box-shadow 130ms ease; }
.cta-ghost   { transition: border-color 130ms ease, background 130ms ease; }
.build-card  { transition: border-color 200ms ease, transform 200ms ease; }
.lang-btn    { transition: background 120ms ease, color 120ms ease; }

.cta-primary:active { transform: scale(.97) !important; }
.cta-submit:active  { transform: scale(.98) !important; }

@keyframes rise-in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}

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