@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Stencil:wght@700;900&family=Archivo:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root {
  color-scheme: light;
  --paper: #ECE2CF;
  --surface: #DFD0AE;
  --ink: #2A2420;
  --olive: #6E6B47;
  --ochre: #A9762F;
  --terracotta: #9C5439;
  --accent: #C1481B;
  --on-accent: #FFFFFF;
  --ink-muted: #57513E;
  --paper-light: #F5EFE3;
  --line: #6E6B47;
  --line-soft: #B6AA8D;
  --line-dark: #827663;
  --error: #872E19;
  --success: #465032;
  --focus: #872E19;
  --focus-on-dark: #ECE2CF;
  --busa-ba0: 'Big Shoulders Stencil', 'Arial Narrow', sans-serif;
  --busa-b9d: 'Archivo', Arial, sans-serif;
  --busa-5b7: 'IBM Plex Mono', monospace;
  --weight-display: 900;
  --weight-heading: 700;
  --weight-body: 400;
  --weight-label: 500;
  --text-xs: clamp(.75rem, .72rem + .12vw, .8125rem);
  --text-sm: clamp(.875rem, .83rem + .2vw, 1rem);
  --text-base: clamp(1rem, .94rem + .25vw, 1.125rem);
  --text-lg: clamp(1.1875rem, 1.05rem + .55vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
  --heading-sm: clamp(1.75rem, 1.25rem + 2vw, 3rem);
  --heading-md: clamp(2.25rem, 1.5rem + 3vw, 4.5rem);
  --heading-lg: clamp(2.75rem, 1.25rem + 6vw, 7rem);
  --heading-xl: clamp(3rem, 1.1rem + 8vw, 9rem);
  --heading-hero: clamp(3rem, .65rem + 10.5vw, 11rem);
  --number-lg: clamp(4.5rem, 2rem + 10vw, 12rem);
  --leading-body: 1.65;
  --leading-prose: 1.75;
  --leading-heading: 1.02;
  --leading-display: .97;
  --tracking-display: -.025em;
  --tracking-heading: -.015em;
  --tracking-label: .055em;
  --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-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --section-space: clamp(4rem, 9vw, 8rem);
  --section-gap: clamp(2rem, 5vw, 4.5rem);
  --shell-width: 1240px;
  --reading-width: 66ch;
  --narrow-width: 48ch;
  --header-height: 5.5rem;
  --header-height-small: 4.5rem;
  --control-min: 2.75rem;
  --rule-width: 1px;
  --stripe-width: 4px;
  --radius: 0;
  --focus-width: 3px;
  --focus-offset: 4px;
  --shadow-panel: 0 16px 48px rgb(42 36 32 / .18);
  --shadow-button: 3px 3px 0 var(--ochre);
  --duration-press: 140ms;
  --duration-ui: 180ms;
  --duration-panel: 420ms;
  --duration-reveal: 850ms;
  --duration-word: 680ms;
  --stagger-line: 140ms;
  --stagger-image: 220ms;
  --ease-ui: cubic-bezier(.2, .65, .3, 1);
  --ease-reveal: cubic-bezier(.22, 1, .36, 1);
  --ease-wipe: cubic-bezier(.76, 0, .24, 1);
  --z-header: 30;
  --z-nav: 40;
  --z-chat: 50;
  --z-consent: 60;
  --z-skip: 80;
  --consent-height: 0px;
  --chat-gap: 1rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-height) + 1.5rem); }
body { margin: 0; min-width: 0; background: var(--paper); color: var(--ink); font-family: var(--busa-b9d); font-size: var(--text-base); font-weight: var(--weight-body); line-height: var(--leading-body); -webkit-font-smoothing: antialiased; }
body.nav-open, body.is-nav-open, body.has-modal { overflow: hidden; }
main, header, footer, section, article, aside, nav, form, fieldset, figure, div { min-width: 0; }
main { display: block; }
[hidden] { display: none !important; }
[inert] { pointer-events: none; }
h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0; }
h1, h2, h3, h4, h5, h6 { font-family: var(--busa-ba0); font-weight: var(--weight-heading); line-height: var(--leading-heading); letter-spacing: var(--tracking-heading); overflow-wrap: anywhere; text-wrap: balance; }
h1 { font-size: var(--heading-xl); font-weight: var(--weight-display); }
h2 { font-size: var(--heading-md); }
h3 { font-size: var(--heading-sm); }
h4 { font-size: var(--text-xl); }
h5, h6 { font-family: var(--busa-b9d); font-size: var(--text-base); font-weight: 700; line-height: 1.4; }
p { overflow-wrap: break-word; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .23em; overflow-wrap: anywhere; }
a, button, input, select, textarea, summary { -webkit-tap-highlight-color: rgb(193 72 27 / .15); }
button, input, select, textarea { font: inherit; color: inherit; border-radius: 0; }
button, select, summary { cursor: pointer; }
button { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
button, [type='button'], [type='submit'], [type='reset'] { -webkit-appearance: button; }
button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; }
textarea { resize: vertical; }
input, select, textarea { min-width: 0; max-width: 100%; }
input[type='search'] { -webkit-appearance: none; appearance: none; }
input[type='number'] { font-variant-numeric: tabular-nums; }
fieldset { margin: 0; padding: 0; border: 0; }
legend { max-width: 100%; padding: 0; }
ul, ol { margin: 0; padding-inline-start: 1.4em; }
li + li { margin-block-start: .35em; }
img, picture, video, canvas, iframe { display: block; max-width: 100%; }
img, video { height: auto; }
svg { max-width: 100%; vertical-align: middle; }
iframe { border: 0; }
address { font-style: normal; }
small { font-size: var(--text-sm); }
strong, b { font-weight: 700; }
em { font-style: italic; }
hr { margin: 0; border: 0; border-top: 1px solid var(--line); }
code, kbd, samp, pre { font-family: var(--busa-5b7); font-size: .9em; }
code { overflow-wrap: anywhere; }
pre { max-width: 100%; overflow: auto; padding: var(--space-5); background: var(--surface); }
table { border-collapse: collapse; border-spacing: 0; max-width: 100%; }
caption { text-align: start; }
th, td { text-align: start; vertical-align: top; }
::selection { background: var(--ink); color: var(--paper); }
:focus-visible { outline: var(--focus-width) solid var(--focus); outline-offset: var(--focus-offset); }
:target { scroll-margin-top: calc(var(--header-height) + 1.5rem); }

.shell, .container { width: min(100% - var(--gutter) * 2, var(--shell-width)); margin-inline: auto; }
.shell-wide { width: calc(100% - var(--gutter) * 2); margin-inline: auto; }
.section { padding-block: var(--section-space); }
.section-tight { padding-block: calc(var(--section-space) * .6); }
.section-surface { background: var(--surface); }
.section-dark { background: var(--ink); color: var(--paper); --focus: var(--paper); --line: var(--line-dark); }
.section-rule { border-top: 1px solid var(--line); }
.stack { display: flex; flex-direction: column; gap: var(--stack-gap, 1.5rem); }
.stack > * { min-width: 0; }
.cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cluster-gap, 1rem); }
.cluster > * { min-width: 0; }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--section-gap); }
.grid { display: grid; gap: var(--grid-gap, var(--space-8)); }
.grid > *, .split > * { min-width: 0; }
.grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.align-start { align-items: start; }
.align-end { align-items: end; }
.measure { max-width: var(--reading-width); }
.measure-narrow { max-width: var(--narrow-width); }
.full-width { width: 100%; }
.push-end { margin-inline-start: auto; }
.text-center { text-align: center; }
.text-muted { color: var(--ink-muted); }
.text-accent { color: var(--terracotta); }
.mono { font-family: var(--busa-5b7); font-variant-numeric: tabular-nums; }
.eyebrow, .meta { font-family: var(--busa-5b7); font-size: var(--text-xs); font-weight: 500; line-height: 1.6; letter-spacing: var(--tracking-label); }
.eyebrow { display: block; margin-block-end: var(--space-6); text-transform: uppercase; color: var(--ink-muted); }
.display { font-family: var(--busa-ba0); font-size: var(--heading-hero); font-weight: 900; letter-spacing: var(--tracking-display); line-height: var(--leading-display); overflow-wrap: anywhere; }
.lead { font-size: var(--text-lg); line-height: 1.55; max-width: 48ch; }
.big-number { font-family: var(--busa-ba0); font-size: var(--number-lg); font-weight: 900; line-height: 1; letter-spacing: -.04em; font-variant-numeric: lining-nums tabular-nums; }
.prose { max-width: var(--reading-width); line-height: var(--leading-prose); }
.prose > * + * { margin-block-start: 1.35em; }
.prose h2 { margin-block-start: 1.8em; }
.prose h3 { margin-block-start: 1.6em; }
.prose h2 + *, .prose h3 + * { margin-block-start: .8em; }
.prose > :first-child { margin-block-start: 0; }
.prose li { padding-inline-start: .35em; }
.prose li + li { margin-block-start: .65em; }
.prose li::marker { color: var(--terracotta); }
.prose dt { font-weight: 700; }
.prose dd { margin-block: .4em 1.4em; }
.prose blockquote { border-inline-start: var(--stripe-width) solid var(--accent); padding-inline-start: var(--space-6); font-size: var(--text-lg); line-height: 1.55; }
.prose a { text-decoration: underline; text-decoration-thickness: 1px; }
.prose a:hover { color: var(--terracotta); text-decoration-thickness: 2px; }
.prose a:active { color: var(--ink); background: var(--surface); }
.prose a:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; background: var(--surface); }
.prose figure { margin-block: var(--space-10); }
.prose figcaption { padding-block-start: var(--space-3); font-family: var(--busa-5b7); font-size: var(--text-xs); color: var(--ink-muted); }
.rule-list { list-style: none; padding: 0; }
.rule-list > li { margin: 0; padding-block: var(--space-5); border-top: 1px solid var(--line); }
.rule-list > li:last-child { border-bottom: 1px solid var(--line); }
.sr-only, .visually-hidden { position: absolute; 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; }
.line-wrap { display: block; }
.line-inner { display: inline-block; max-width: 100%; }
.image-wipe { position: relative; }
.image-wipe img { width: 100%; height: auto; }
[data-reveal], [data-image-wipe], [data-reveal-line] { visibility: visible; }

@media (min-width: 1600px) {
  :root { --header-height: 6rem; }
  .shell-wide { width: min(100% - var(--gutter) * 2, 1600px); }
}
@media (max-width: 767px) {
  :root { --header-height: 4.75rem; --header-height-small: 4.25rem; }
  .split, .grid-three { grid-template-columns: minmax(0, 1fr); }
  .section { padding-block: var(--section-space); }
  .prose { max-width: 100%; }
}
@media (max-width: 479px) {
  .grid-two { grid-template-columns: minmax(0, 1fr); }
  .cluster { gap: var(--space-3); }
  .push-end { margin-inline-start: 0; }
}
@media (prefers-reduced-motion: reduce) {
  :root { --duration-press: 0ms; --duration-ui: 0ms; --duration-panel: 0ms; --duration-reveal: 0ms; --duration-word: 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; }
  [data-reveal], [data-reveal-line], [data-image-wipe], .line-inner, .image-wipe { opacity: 1 !important; transform: none !important; clip-path: none !important; }
}
@media (forced-colors: active) {
  :root { --line: CanvasText; --focus: Highlight; }
  a, button, input, textarea, select, summary { forced-color-adjust: auto; }
  :focus-visible { outline-color: Highlight; }
}
@media print {
  :root { --paper: #FFFFFF; --surface: #FFFFFF; --ink: #000000; --ink-muted: #000000; --section-space: 1.5rem; }
  body { font-size: 11pt; }
  .shell, .container { width: 100%; }
  .site-header, .site-nav, .cookie-banner, .chat-widget, .chat-launcher, .chat-panel, .skip-link, .no-script-nav { display: none !important; }
  main { padding-top: 0 !important; }
  h1, h2, h3 { break-after: avoid; }
  figure, tr { break-inside: avoid; }
  a { text-decoration: underline; }
  [data-reveal], [data-image-wipe] { clip-path: none !important; transform: none !important; opacity: 1 !important; }
}
