*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 var(--fs-base)/1.5 var(--font); overflow-x: hidden; }
button, input, select, textarea { color: inherit; font: inherit; }
button, select { cursor: pointer; }
a { color: var(--brand-600); text-decoration: none; }
a:hover { text-decoration: underline; }
img, svg { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.2; letter-spacing: -.02em; }
h1 { font-size: clamp(var(--fs-xl), 4vw, var(--fs-3xl)); }
h2 { font-size: clamp(var(--fs-xl), 3vw, var(--fs-2xl)); }
h3 { font-size: var(--fs-lg); }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--info) 60%, transparent); outline-offset: 2px; }
[hidden] { display: none !important; }
.sr-only { clip: rect(0, 0, 0, 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.skip-link { background: var(--surface); border-radius: var(--radius-sm); left: var(--sp-3); padding: var(--sp-2) var(--sp-3); position: fixed; top: -80px; z-index: 1000; }
.skip-link:focus { top: var(--sp-3); }
.muted { color: var(--text-muted); }
.text-success { color: var(--success) !important; }.text-danger { color: var(--danger) !important; }
.eyebrow { color: var(--brand-600); font-size: var(--fs-xs); font-weight: 800; letter-spacing: .08em; margin-bottom: var(--sp-1); text-transform: uppercase; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
