/* Reset, typography and layout primitives — from Docs/reference/index.html. */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; border: 0 solid var(--border); }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; cursor: pointer; }
ul, ol { list-style: none; }
svg.i { width: 1rem; height: 1rem; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
svg.i-5 { width: 1.25rem; height: 1.25rem; }
svg[hidden] { display: none; }
:focus-visible { outline: 2px solid color-mix(in srgb, var(--primary) 50%, transparent); outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -3rem; z-index: 60; padding: .5rem 1rem; border-radius: .75rem; background: var(--ink); color: var(--ink-foreground); font-size: .875rem; font-weight: 600; }
.skip-link:focus { top: .5rem; }

.container { max-width: 80rem; margin: 0 auto; padding: 0 1rem; }
.eyebrow { font-family: var(--font-mono); font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .2em; color: var(--primary); }
.muted { color: var(--muted-foreground); }
.text-primary { color: var(--primary); }
.mt-2 { margin-top: .5rem; }
.h2 { font-size: 2.25rem; line-height: 1.25; font-weight: 600; letter-spacing: -0.025em; text-wrap: balance; }
.section-alt { background: color-mix(in srgb, var(--secondary) 60%, transparent); padding: 6rem 0; scroll-margin-top: 7rem; }

@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
.animate-rise { animation: rise .7s var(--ease-rise) both; }
/* Replaces the reference's inline style="animation-delay" (inline styles are blocked by CSP). */
.delay-1 { animation-delay: 80ms; }
.delay-2 { animation-delay: 160ms; }
.delay-3 { animation-delay: 240ms; }
@media (prefers-reduced-motion: reduce) { .animate-rise { animation: none; } }

@media (min-width: 768px) {
  .container { padding: 0 2rem; }
  .h2.lg { font-size: 3rem; line-height: 1.15; }
}
