*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 1rem); }
body { margin: 0; min-width: 320px; color: var(--color-text); background: var(--color-cream); font-family: var(--font-body); font-size: 1rem; line-height: 1.72; -webkit-font-smoothing: antialiased; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; color: inherit; }
button { border: 0; cursor: pointer; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p, figure, blockquote { margin: 0; }
h1, h2, h3, h4 { color: var(--color-ink); font-family: var(--font-display); font-weight: 600; line-height: 1.06; text-wrap: balance; }
h1 { font-size: clamp(3rem, 6vw, 5.7rem); letter-spacing: -0.045em; }
h2 { font-size: clamp(2.35rem, 4vw, 4rem); letter-spacing: -0.035em; }
h3 { font-size: clamp(1.45rem, 2vw, 1.85rem); letter-spacing: -0.02em; }
p { text-wrap: pretty; }
[hidden] { display: none !important; }
::selection { color: var(--color-white); background: var(--color-forest); }
