* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--color-paper); color: var(--color-ink); font-family: var(--font-body); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
body, button, input, select, textarea { font-family: var(--font-body); }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--color-green); outline-offset: 3px; }
h1, h2, h3, p, blockquote { margin-top: 0; }
h1, h2, h3 { line-height: 1.15; }
/* Page heroes and section statements use IBM Plex Sans. Madimi is opt-in. */
h1 { font-family: var(--font-body); font-weight: 700; letter-spacing: -.025em; font-size: clamp(2.6rem, 6vw, 5.8rem); line-height: 1.08; }
h2 { font-family: var(--font-body); font-weight: 700; letter-spacing: -.02em; font-size: clamp(2rem, 3.5vw, 3.5rem); line-height: 1.08; }
h3 { font-family: var(--font-body); font-weight: 600; letter-spacing: -.01em; font-size: 1.2rem; }
p { color: var(--color-muted); }
.font-display { font-family: var(--font-display); font-weight: 400; letter-spacing: -.02em; }
.font-body { font-family: var(--font-body); }
::selection { background: var(--color-yellow); color: var(--color-ink); }
.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; top: -5rem; left: 1rem; z-index: 1000; background: var(--color-ink); color: white; padding: .7rem 1rem; }
.skip-link:focus { top: 1rem; }
