*, *::before, *::after { box-sizing: border-box; }
html { max-width: 100%; overflow-x: clip; color-scheme: light; scroll-behavior: smooth; }
body { max-width: 100%; margin: 0; overflow-x: clip; background: var(--z-color-paper); color: var(--z-color-ink); font-family: var(--z-font-sans); font-size: var(--z-text-body); line-height: var(--z-leading-body); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img, picture, video, svg { display: block; max-width: 100%; }
button, input, select, textarea { color: inherit; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-underline-offset: 0.24em; }
:focus { outline: none; }
:focus-visible { box-shadow: var(--z-focus); outline: 2px solid var(--z-color-accent); outline-offset: 2px; }
[hidden] { display: none !important; }

.z-container { width: min(100% - (2 * var(--z-gutter)), var(--z-container)); margin-inline: auto; }
.z-section { padding-block: clamp(var(--z-space-16), 8vw, 7.5rem); }
.z-stack { display: grid; gap: var(--z-space-6); }
.z-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--z-space-4); }
.z-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; }
.z-skip-link { position: fixed; z-index: 9999; top: var(--z-space-3); left: var(--z-space-3); padding: var(--z-space-3) var(--z-space-4); background: var(--z-color-ink); color: var(--z-color-white); transform: translateY(-160%); }
.z-skip-link:focus { transform: translateY(0); }

.z-label { margin: 0; font-size: var(--z-text-xs); font-weight: 700; letter-spacing: var(--z-tracking-label); text-transform: uppercase; }
.z-display { margin: 0; font-size: var(--z-text-display); font-weight: 600; letter-spacing: -0.075em; line-height: 0.82; }
.z-heading { margin: 0; font-size: var(--z-text-xl); font-weight: 600; letter-spacing: -0.055em; line-height: var(--z-leading-tight); }
.z-editorial { font-family: var(--z-font-editorial); font-weight: 400; }
.z-muted { color: var(--z-color-muted); }

@media (max-width: 47.99rem) {
  .z-section { padding-block: var(--z-space-16); }
  .z-display { font-size: clamp(3.75rem, 18vw, 5.25rem); }
}
