*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 2rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-body); line-height: 1.6; -webkit-font-smoothing: antialiased; }
body, button, input, textarea, select { font-size: 1rem; }
h1, h2, h3, p, figure, dl, dd { margin: 0; }
h1, h2, h3 { font-weight: 400; line-height: 1.06; overflow-wrap: anywhere; }
h1 { font-size: var(--type-display); letter-spacing: -.065em; }
h2 { font-size: var(--type-heading); letter-spacing: -.045em; }
h3 { font-size: clamp(1.5rem, 2.5vw, 2.75rem); letter-spacing: -.03em; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { text-decoration-color: var(--accent); }
button, input, textarea, select { font: inherit; }
button, summary { cursor: pointer; }
button { color: inherit; }
img { display: block; max-width: 100%; height: auto; }
video, iframe { max-width: 100%; }
video { display: block; width: 100%; }
ul, ol { padding-inline-start: 1.25em; }
::selection { color: var(--paper); background: var(--ink); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
[hidden] { display: none; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; inset-block-start: 1rem; inset-inline-start: 1rem; z-index: 100; padding: .75rem 1rem; background: var(--ink); color: var(--paper); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.prose { max-width: var(--content-width); }
.prose > * + * { margin-block-start: 1.5rem; }
.prose h2, .prose h3 { margin-block-start: 2.5rem; }
.prose p, .prose li { font-size: clamp(1.05rem, 1.5vw, 1.25rem); }
.prose:empty { display: none; }
.prose blockquote { margin-inline: 0; padding-inline-start: 1.5rem; border-inline-start: 1px solid var(--ink); font-family: var(--font-editorial); }
.prose table { width: 100%; border-collapse: collapse; }
.prose th, .prose td { border-block-end: 1px solid var(--line); padding: .5rem; text-align: start; }
.prose .wp-block-table { overflow-x: auto; }
.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { margin-inline: auto; }
.wp-caption, .wp-caption-text, .gallery-caption { max-width: 100%; }
.wp-caption-text, figcaption { color: var(--muted); font-size: .875rem; padding-block: .8rem; }
