* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; min-height: 100vh; font-family: var(--font); color: var(--ink); background: var(--bg); line-height: 1.5; }
button, input, textarea { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
svg { display: block; max-width: 100%; }
h1, h2, h3, p { margin-block-start: 0; }
h1 { font-size: clamp(1.5rem, 2.2vw, 2.2rem); line-height: 1.15; margin-block-end: .5rem; }
h2 { font-size: 1.25rem; line-height: 1.25; margin-block-end: .75rem; }
h3 { font-size: 1rem; margin-block-end: .5rem; }
small { color: var(--ink-soft); }
:focus-visible { outline: none; box-shadow: var(--focus); }
::selection { background: #b8e6dc; }
.skip-link { position: fixed; top: -80px; right: 16px; z-index: 9999; padding: 10px 14px; background: var(--brand); color: white; border-radius: 8px; }
.skip-link:focus { top: 12px; }
.muted { color: var(--ink-soft); }
.stack { display: grid; gap: 16px; }
.cluster { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.spacer { flex: 1 1 auto; }
.ltr { direction: ltr; unicode-bidi: isolate; }
