*,*::before,*::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; font-size: var(--base); }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--font); line-height: 1.5; min-height: 100dvh; }
h1 { font-size: 1.7rem; line-height: 1.2; margin: 0 0 .35rem; }
h2 { font-size: 1.25rem; line-height: 1.25; margin: 0 0 .5rem; }
p { margin: 0 0 .75rem; }
a { color: var(--brand); }
img, svg { max-width: 100%; }
.icon { flex: none; }
.lead { font-size: 1.1rem; color: var(--ink-2); }
.small { font-size: .88rem; color: var(--ink-2); }
:focus-visible { outline: 4px solid #E0A100; outline-offset: 2px; border-radius: 6px; }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }
.stack { display: grid; gap: 14px; }
.stack-lg { display: grid; gap: 26px; }
