*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; font-family: var(--font-official); }
body { margin: 0; background: var(--color-surface); color: var(--color-text-primary); font-family: var(--font-body); font-size: 1.0625rem; line-height: var(--line-body); letter-spacing: var(--tracking-body); font-synthesis: none; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, p, figure, blockquote { margin: 0; }
ul, ol { margin: 0; padding: 0; }
img, picture { display: block; max-width: 100%; }
img { height: auto; }
button, input, textarea, select { font: inherit; }
button { border: 0; cursor: pointer; }
a { color: inherit; text-decoration: none; }
table { border-collapse: collapse; border-spacing: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--color-brand-red) 28%, transparent); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
