*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; background: var(--color-paper); color: var(--color-brand-950); font-family: var(--font-body); font-size: 16px; line-height: 1.75; -webkit-font-smoothing: antialiased; }
::selection { background: #e1cbd4; color: var(--color-brand-950); }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-weight: 450; line-height: 1.2; }
h1 { font-size: clamp(38px, 4.3vw, 64px); letter-spacing: -.055em; }
h2 { font-size: clamp(29px, 3.1vw, 44px); letter-spacing: -.045em; }
h3 { font-size: clamp(20px, 2vw, 28px); letter-spacing: -.035em; }
p { color: var(--color-gray-600); }
p + p { margin-top: 20px; }
ul, ol { padding-left: 22px; }
:focus-visible { outline: 3px solid #93647a; outline-offset: 5px; }
.container { width: min(calc(100% - var(--gutter) * 2), var(--container-max)); margin-inline: auto; }
.section { padding-block: var(--section-space); }
.eyebrow { display: block; font-size: 11px; font-weight: 650; text-transform: uppercase; letter-spacing: .16em; line-height: 1.8; }
.eyebrow + h1, .eyebrow + h2 { margin-top: 24px; }
.soft-text { color: #8a6776; }
.icon { width: 22px; height: 22px; flex-shrink: 0; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 100; padding: 12px 20px; background: var(--color-white); color: var(--color-brand-950); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
