* { box-sizing: border-box; }
html { min-height: 100%; font-family: var(--font-body); background: var(--bg); color: var(--text); }
body { min-height: 100vh; margin: 0; background: var(--bg); color: var(--text-muted); font-size: 14px; line-height: 1.5; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img, svg, canvas { display: block; max-width: 100%; }
svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
h1, h2, h3, strong { color: var(--text); font-family: var(--font-heading); letter-spacing: 0; }
h1 { margin: 0; font-size: clamp(24px, 2.2vw, 34px); line-height: 1.15; }
h2 { margin: 0; font-size: 17px; line-height: 1.3; }
p { margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: fixed; left: 16px; top: 12px; z-index: 2000; transform: translateY(-140%); padding: 10px 14px; border-radius: 8px; background: var(--gray-900); color: var(--gray-0); transition: transform .18s ease; }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--blue) 60%, transparent); outline-offset: 2px; }