:root { --teal: #1e7a6f; --coral: #f0805b; --cream: #f7f5f0; --ink: #20221f; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
body { font-family: 'Segoe UI', ui-sans-serif, system-ui, sans-serif; }
.font-display { font-family: Palatino, 'Palatino Linotype', Georgia, ui-serif, serif; }
#scroll-progress { transform-origin: left; transform: scaleX(0); transition: transform 0.1s linear; }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.counter-stat, [data-counter-target] { font-variant-numeric: tabular-nums; }
#back-to-top { opacity: 0; pointer-events: none; transform: translateY(12px); transition: opacity 0.25s ease, transform 0.25s ease; }
#back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
