html { scroll-behavior: smooth; }
body { background-color: #F3F4EC; color: #1C2B27; }

::selection { background: #3C6659; color: #F3F4EC; }

a:focus-visible, button:focus-visible, input:focus-visible {
  outline: 2px solid #3C6659;
  outline-offset: 4px;
  border-radius: 2px;
}

/* ── Reveal animations ── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.9s cubic-bezier(.2,.6,.2,1), transform 0.9s cubic-bezier(.2,.6,.2,1);
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: .12s; }
.reveal-delay-2 { transition-delay: .24s; }
.reveal-delay-3 { transition-delay: .36s; }
.reveal-delay-4 { transition-delay: .48s; }

/* ── Eyebrow label ── */
.eyebrow {
  font-family: 'Work Sans', sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #3C6659;
  font-weight: 500;
}

/* ── Stat cards ── */
.stat-card {
  border-top: 1px solid rgba(28,43,39,0.12);
  padding-top: 1.5rem;
}

/* ── Step cards ── */
.step-card {
  position: relative;
  padding: 2rem;
  border: 1px solid rgba(28,43,39,0.08);
  border-radius: 1rem;
  background: rgba(255,255,255,0.5);
  backdrop-filter: blur(4px);
  transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.step-card:hover {
  border-color: #B8935A;
  transform: translateY(-4px);
  box-shadow: 0 20px 60px -20px rgba(28,43,39,0.15);
}
.step-num {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 3.5rem;
  line-height: 1;
  color: rgba(60,102,89,0.12);
  position: absolute;
  top: 1rem;
  right: 1.5rem;
  pointer-events: none;
}

/* ── Custom scrollbar for search results ── */
.custom-scrollbar::-webkit-scrollbar { width: 4px; }
.custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: rgba(28,43,39,0.2); border-radius: 999px; }

/* ── Queue / progress bar pulse ── */
@keyframes queue-pulse {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}
.queue-pulse { animation: queue-pulse 1.8s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  .reveal { transition: none !important; opacity: 1 !important; transform: none !important; }
  html { scroll-behavior: auto; }
  .step-card:hover { transform: none; }
  .queue-pulse { animation: none; }
}
