*, *::before, *::after { box-sizing: border-box; }
html { font-size: var(--font-size-root); scroll-behavior: smooth; scroll-padding-top: var(--anchor-offset); }
body { margin: 0; background: var(--color-background); color: var(--color-text); font-family: var(--font-family-body); font-size: var(--font-size-body); line-height: var(--line-height-body); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, p, figure, blockquote { margin: 0; }
h1, h2 { color: var(--color-heading); font-family: var(--font-family-display); font-weight: var(--font-weight-display); letter-spacing: var(--letter-spacing-display); line-height: var(--line-height-tight); }
h1 { font-size: var(--font-size-hero); }
h2 { font-size: var(--font-size-section); }
h3, h4 { color: var(--color-heading); font-weight: var(--font-weight-semibold); letter-spacing: var(--letter-spacing-heading); line-height: var(--line-height-heading); }
h3 { font-size: var(--font-size-card-lg); }
h4 { font-size: var(--font-size-body-lg); }
p { color: var(--color-text-muted); }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button, a, summary { -webkit-tap-highlight-color: var(--color-transparent); }
svg, img { display: block; }
img { max-width: 100%; }
ul, ol { margin: 0; padding: 0; list-style: none; }
em { font-weight: inherit; }
::selection { background: var(--color-selection); color: var(--color-on-selection); }
:focus-visible { outline: var(--focus-ring); outline-offset: var(--focus-offset); }
[hidden] { display: none !important; }
summary { cursor: pointer; list-style: none; }
summary::-webkit-details-marker { display: none; }
html { -webkit-text-size-adjust:100%; }
button { color:inherit; }
svg { flex-shrink:0; }
