*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-block-start: calc(var(--v-header-offset, var(--v-header)) + 12px); }
body { margin: 0; background: var(--v-white); color: var(--v-ink); font: 400 var(--v-text-md)/1.6 var(--v-font); -webkit-font-smoothing: antialiased; }
[hidden] { display: none !important; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
button, input, summary { font: inherit; color: inherit; }
button, summary { cursor: pointer; }
button:disabled { cursor: default; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, figure, dl, dd { margin: 0; }
h1, h2, h3 { font-family: var(--v-display); font-weight: 500; letter-spacing: -.048em; line-height: 1.08; text-wrap: balance; }
h1 { font-size: var(--v-display-size); }
h2 { font-size: var(--v-title-lg); }
h3 { font-size: var(--v-title-sm); }
p { text-wrap: pretty; }
::selection { color: var(--v-accent-ink); background: var(--v-accent); }
:focus-visible { outline: 3px solid var(--v-focus); outline-offset: 4px; }
.wrap { width: min(calc(100% - 2 * var(--v-gutter)), var(--v-content)); margin-inline: auto; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.skip-link { position: fixed; z-index: 100; top: 8px; left: var(--v-gutter); min-height: var(--v-target); padding: 10px 16px; transform: translateY(-160%); border: 1px solid currentColor; border-radius: var(--v-radius-sm); background: var(--v-white); }
.skip-link:focus { transform: none; }
.kicker, .micro, .figure-note { color: var(--v-muted); font: 500 var(--v-text-xs)/1.5 var(--v-font); }
.kicker { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-weight: 600; letter-spacing: .02em; }
.kicker > span { font-family: var(--v-mono); }
.edition-mark { display: inline-block; width: 10px; height: 10px; border: 1px solid var(--v-focus); background: var(--v-accent); }
.chapter { padding-block: var(--v-section); }
.paper { background: var(--v-surface); border-block: 1px solid var(--v-line); }
.figure-note { margin-top: var(--v-2); }
.error-page { display: grid; justify-items: start; align-content: center; gap: var(--v-5); min-height: 65vh; padding-block: var(--v-section); }
.error-page h1 { font-size: var(--v-title-lg); }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
@media (forced-colors: active) { :focus-visible { outline-color: Highlight; } }
