@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=IBM+Plex+Mono:wght@400;500&family=Newsreader:opsz,wght@6..72,400;6..72,500&display=swap');

:root {
  color-scheme: light;
  --ink: #171717;
  --paper: #F5F3EE;
  --chalk: #FBFAF7;
  --stone: #D8D4CC;
  --ash: #77736D;
  --night: #242321;
  --accent: #B74632;
  --text: var(--ink);
  --text-muted: #595650;
  --text-inverse: var(--chalk);
  --surface: var(--paper);
  --surface-raised: var(--chalk);
  --border: var(--stone);
  --border-strong: var(--ink);
  --focus-color: var(--accent);
  --error: #A13424;
  --success: #354D3B;
  --geda-532: 'DM Serif Display', Georgia, serif;
  --geda-00c: 'Newsreader', Georgia, serif;
  --geda-cdb: 'IBM Plex Mono', 'Courier New', monospace;
  --weight-regular: 400;
  --weight-medium: 500;
  --text-xs: clamp(.6875rem, .66rem + .12vw, .75rem);
  --text-sm: clamp(.8125rem, .78rem + .18vw, .9375rem);
  --text-base: clamp(1.125rem, 1.06rem + .25vw, 1.3125rem);
  --text-lg: clamp(1.375rem, 1.2rem + .65vw, 1.875rem);
  --text-xl: clamp(1.75rem, 1.4rem + 1.2vw, 2.75rem);
  --text-2xl: clamp(2rem, 1.5rem + 2vw, 3.625rem);
  --text-3xl: clamp(2.375rem, 1.5rem + 3.7vw, 5.5rem);
  --text-hero: clamp(2.75rem, 1.5rem + 5.3vw, 7.5rem);
  --leading-body: 1.5;
  --leading-display: 1.02;
  --leading-meta: 1.55;
  --tracking-display: -.035em;
  --tracking-label: .06em;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-18: 4.5rem;
  --space-24: 6rem;
  --space-30: 7.5rem;
  --space-36: 9rem;
  --section-space: clamp(3rem, 1rem + 6vw, 9rem);
  --section-space-small: clamp(2rem, 1rem + 3vw, 6rem);
  --gutter: 3rem;
  --shell-width: 82.5rem;
  --reading-width: 43rem;
  --narrow-width: 32rem;
  --grid-gap: 1.5rem;
  --rule: 1px;
  --radius: 0;
  --target-size: 2.75rem;
  --header-offset: 6.5rem;
  --utility-height: 2.75rem;
  --cookie-offset: 0px;
  --shadow-panel: 0 12px 24px rgb(23 23 23 / .12);
  --shadow-dialog: 0 16px 56px rgb(23 23 23 / .22);
  --duration-instant: 120ms;
  --duration-control: 160ms;
  --duration-panel: 320ms;
  --duration-reveal: 900ms;
  --duration-wipe: 1200ms;
  --stagger-line: 110ms;
  --stagger-image: 180ms;
  --ease-control: cubic-bezier(.2, .7, .2, 1);
  --ease-reveal: cubic-bezier(.16, 1, .3, 1);
  --ease-wipe: cubic-bezier(.77, 0, .175, 1);
  --z-base: 0;
  --z-sticky: 15;
  --z-header: 30;
  --z-menu: 35;
  --z-chat: 50;
  --z-consent: 60;
  --z-dialog: 70;
  --z-skip: 100;
}

*, *::before, *::after { box-sizing: border-box; }
html { margin: 0; padding: 0; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: var(--header-offset); scroll-padding-block-start: var(--header-offset); }
body { margin: 0; min-width: 0; background: var(--paper); color: var(--ink); font-family: var(--geda-00c); font-size: var(--text-base); font-weight: 400; line-height: var(--leading-body); font-optical-sizing: auto; -webkit-font-smoothing: antialiased; }
main, header, footer, section, article, aside, nav, div, form, fieldset, figure { min-width: 0; }
img, picture, video, canvas, svg { display: block; max-width: 100%; }
img { height: auto; }
video { height: auto; }
svg { flex-shrink: 0; }
button, input, select, textarea { font: inherit; color: inherit; border-radius: 0; }
button, select { cursor: pointer; }
button { text-align: inherit; }
button, input { overflow: visible; }
button { -webkit-appearance: none; appearance: none; }
textarea { resize: vertical; }
fieldset { margin: 0; padding: 0; border: 0; }
legend { padding: 0; max-width: 100%; }
input, textarea, select { max-width: 100%; min-width: 0; }
input[type='checkbox'], input[type='radio'] { accent-color: var(--accent); }
input[type='search'] { -webkit-appearance: none; appearance: none; }
a { color: inherit; text-underline-offset: .2em; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
button, a, summary, label { -webkit-tap-highlight-color: rgb(183 70 50 / .12); }
h1, h2, h3, h4, h5, h6, p, blockquote, figure, dl, dd { margin: 0; }
h1, h2, h3, h4, h5, h6 { font-family: var(--geda-532); font-weight: 400; line-height: 1.1; letter-spacing: var(--tracking-display); overflow-wrap: anywhere; text-wrap: pretty; min-width: 0; }
h1 { font-size: var(--text-hero); line-height: var(--leading-display); }
h2 { font-size: var(--text-3xl); }
h3 { font-size: var(--text-xl); letter-spacing: -.02em; }
h4 { font-size: var(--text-lg); letter-spacing: -.015em; }
h5, h6 { font-size: var(--text-base); letter-spacing: 0; }
p { overflow-wrap: anywhere; }
ul, ol { margin: 0; padding-inline-start: 1.3em; }
li { padding-inline-start: .2em; }
li + li { margin-top: .4em; }
strong, b { font-weight: 500; }
small { font-size: var(--text-sm); }
address { font-style: normal; }
abbr[title] { text-decoration-style: dotted; text-underline-offset: .2em; }
hr { margin: 0; border: 0; border-top: var(--rule) solid var(--stone); }
::selection { color: var(--chalk); background: var(--accent); }
:focus-visible { outline: 2px solid var(--focus-color); outline-offset: 4px; }
[hidden] { display: none !important; }
[disabled], [aria-disabled='true'] { cursor: not-allowed; }
[id] { scroll-margin-top: calc(var(--header-offset) + 1.5rem); }
:target { scroll-margin-top: calc(var(--header-offset) + 1.5rem); }

.container, .shell { width: min(calc(100% - var(--gutter) * 2), var(--shell-width)); margin-inline: auto; }
.container--reading { max-width: var(--reading-width); }
.container--narrow { max-width: var(--narrow-width); }
.section { padding-block: var(--section-space); }
.section--compact { padding-block: var(--section-space-small); }
.section--ruled { border-top: 1px solid var(--stone); }
.section--dark { background: var(--night); color: var(--chalk); }
.section--chalk { background: var(--chalk); }
.grid { display: grid; gap: var(--grid-gap); }
.grid > *, .cluster > *, .split > *, .grid-12 > *, .grid-2 > *, .grid-3 > *, .grid-4 > * { min-width: 0; }
.grid-12 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grid-gap); }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--grid-gap); }
.span-4 { grid-column: span 4; }
.span-5 { grid-column: span 5; }
.span-6 { grid-column: span 6; }
.span-7 { grid-column: span 7; }
.span-8 { grid-column: span 8; }
.span-12 { grid-column: 1 / -1; }
.stack > * + * { margin-block-start: var(--stack-space, 1.5rem); }
.stack--tight { --stack-space: .75rem; }
.stack--loose { --stack-space: 3rem; }
.cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cluster-gap, 1rem); }
.cluster--between { justify-content: space-between; }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(1.5rem, 4vw, 6rem); }
.flow > * + * { margin-block-start: 1.25em; }
.rule-top { border-top: 1px solid var(--stone); }
.rule-bottom { border-bottom: 1px solid var(--stone); }
.measure { max-width: var(--reading-width); }
.measure-narrow { max-width: var(--narrow-width); }
.eyebrow, .meta, .label, .section-number { font-family: var(--geda-cdb); font-size: var(--text-xs); font-weight: 400; line-height: var(--leading-meta); letter-spacing: var(--tracking-label); }
.eyebrow, .label { text-transform: uppercase; }
.eyebrow { display: block; margin-bottom: var(--space-6); }
.section-number { color: var(--accent); }
.lead, .standfirst { font-size: var(--text-lg); line-height: 1.35; max-width: 42rem; }
.text-muted { color: var(--text-muted); }
.text-accent { color: var(--accent); }
.text-inverse { color: var(--chalk); }
.text-mono { font-family: var(--geda-cdb); font-size: .8em; }
.text-small { font-size: var(--text-sm); }
.prose { max-width: var(--reading-width); }
.prose > * + * { margin-top: 1.3em; }
.prose h2 { margin-top: 2em; font-size: var(--text-2xl); }
.prose h3 { margin-top: 1.75em; }
.prose h4 { margin-top: 1.5em; }
.prose :is(h2, h3, h4) + * { margin-top: .75em; }
.prose > :first-child { margin-top: 0; }
.prose li { max-width: 65ch; }
.prose blockquote { border-inline-start: 2px solid var(--accent); padding: .25rem 0 .25rem 1.5rem; font-size: var(--text-lg); line-height: 1.35; }
.prose blockquote cite { display: block; margin-top: 1rem; font-family: var(--geda-cdb); font-size: var(--text-xs); font-style: normal; }
.prose code, .prose kbd { padding: .1em .3em; background: #E9E6DF; font-family: var(--geda-cdb); font-size: .75em; overflow-wrap: anywhere; }
.prose pre { max-width: 100%; padding: 1.5rem; overflow-x: auto; background: var(--night); color: var(--chalk); }
.prose pre code { padding: 0; color: inherit; background: none; }
.prose dt { font-weight: 500; }
.prose dd { margin-top: .4rem; margin-bottom: 1.5rem; }
.prose figure { margin-block: 2.5rem; }
.prose figcaption { font-size: var(--text-sm); color: var(--text-muted); margin-top: .75rem; }
.list-reset { list-style: none; padding: 0; margin: 0; }
.list-reset > li { padding: 0; margin: 0; }
.media { margin: 0; min-width: 0; }
.media img { width: 100%; height: auto; }
.media--landscape img { aspect-ratio: 3 / 2; object-fit: cover; }
.media--portrait img { aspect-ratio: 4 / 5; object-fit: cover; }
.media-caption { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: .75rem; font-family: var(--geda-cdb); font-size: var(--text-xs); line-height: 1.6; }
.bozu0c9 { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.sr-only, .visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); pointer-events: none; }
.js-only { display: none !important; }
.js .js-only { display: initial !important; }
.js .no-js-only { display: none !important; }
.icon { display: inline-block; width: 1.125rem; height: 1.125rem; flex: 0 0 1.125rem; fill: none; stroke: currentColor; stroke-width: 1.75; vertical-align: middle; }
.icon--large { width: 1.5rem; height: 1.5rem; flex-basis: 1.5rem; }
.line-reveal, .reveal-line, [data-reveal], [data-image-wipe] { visibility: visible; }
.reveal-line { display: block; }
.image-wipe { position: relative; }

@media (min-width: 120rem) { :root { --gutter: 4rem; } }
@media (max-width: 64rem) { :root { --gutter: 2rem; --grid-gap: 1.25rem; } .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 48rem) {
  :root { --gutter: 1.25rem; --header-offset: 5rem; }
  .split { grid-template-columns: minmax(0, 1fr); }
  .grid-3 { grid-template-columns: minmax(0, 1fr); }
  .grid-12 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .span-4, .span-5, .span-6, .span-7, .span-8 { grid-column: 1 / -1; }
}
@media (max-width: 30rem) {
  .grid-2, .grid-4 { grid-template-columns: minmax(0, 1fr); }
  .media-caption { display: grid; gap: .25rem; }
}
@media (max-width: 22rem) { :root { --gutter: 1rem; --grid-gap: 1rem; } }
@media (prefers-reduced-motion: reduce) {
  :root { --duration-instant: 0ms; --duration-control: 0ms; --duration-panel: 0ms; --duration-reveal: 0ms; --duration-wipe: 0ms; --stagger-line: 0ms; --stagger-image: 0ms; }
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .line-reveal, .reveal-line, [data-reveal], [data-image-wipe] { opacity: 1 !important; transform: none !important; clip-path: none !important; visibility: visible !important; }
}
@media print {
  :root { --paper: #FFFFFF; --chalk: #FFFFFF; --ink: #000000; --gutter: 0px; }
  body { font-size: 11pt; }
  h1 { font-size: 32pt; } h2 { font-size: 24pt; } h3 { font-size: 18pt; }
  .container, .shell { width: 100%; max-width: none; }
  .section { padding-block: 1.5rem; }
  p, li { orphans: 3; widows: 3; }
  h1, h2, h3, figure { break-after: avoid; }
  img, table, blockquote { break-inside: avoid; }
  .section--dark { background: white; color: black; }
}
