
:root {
  --ink:#14211A;
  --moss:#3D5A40;
  --bark:#5B4632;
  --cream:#F2ECDF;
  --paper:#FAF7F0;
  --line:#C9C2B0;
  --signal:#D98A1F;

  --ink-90:#1D2D24;
  --ink-80:#2A3B31;
  --moss-soft:#E3E6D9;
  --line-strong:#A9A18C;
  --line-dark:rgba(242, 236, 223, .16);
  --cream-dim:rgba(242, 236, 223, .72);
  --signal-deep:#9A5E0E;
  --signal-wash:#F4E2C4;
  --error:#A3321F;
  --error-wash:#F6E1DA;
  --ok:#3D5A40;

  --waba-652:"Unbounded", 'Arial Black', "Helvetica Neue", Arial, sans-serif;
  --waba-025:"IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --waba-ca0:'IBM Plex Mono', ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  --fs-hero:clamp(1.75rem, 7vw, 6.5rem);
  --fs-quote:clamp(1.6rem, 6.5vw, 7rem);
  --fs-h1:clamp(1.75rem, 5.2vw, 4.75rem);
  --fs-h2:clamp(1.45rem, 3.4vw, 3rem);
  --fs-h3:clamp(1.12rem, 1.7vw, 1.5rem);
  --fs-h4:clamp(1rem, 1.2vw, 1.125rem);
  --fs-lede:clamp(1.06rem, 1.35vw, 1.3rem);
  --fs-body:clamp(1rem, .96rem + .2vw, 1.075rem);
  --fs-small:.9rem;
  --fs-mono:.8125rem;
  --fs-micro:.72rem;

  --lh-tight:1.04;
  --lh-head:1.14;

  --lh-body:1.6;

  --track-display:-.02em;
  --track-mono:.04em;
  --track-caps:.12em;

  --sp-0:.25rem;
  --sp-1:.5rem;
  --sp-2:1rem;
  --sp-3:1.5rem;
  --sp-4:2rem;
  --sp-5:3rem;
  --sp-6:4rem;
  --sp-7:6rem;
  --sp-8:8rem;
  --section:clamp(72px, 10vw, 160px);
  --section-tight:clamp(48px, 6vw, 96px);
  --gutter:clamp(16px, 4vw, 56px);
  --shell:1440px;
  --measure:66ch;
  --measure-wide:80ch;
  --rail-w:0px;
  --bar-h:4.5rem;
  --logo-h:3.2rem;

  --radius:0;
  --rule:1px solid var(--line);
  --rule-strong:1px solid var(--ink);
  --shadow-1:0 1px 0 var(--line), 0 10px 24px -18px rgba(20, 33, 26, .35);
  --shadow-2:0 2px 0 var(--ink), 0 24px 48px -28px rgba(20, 33, 26, .55);
  --shadow-press:inset 0 2px 0 rgba(20, 33, 26, .25);
  --focus:0 0 0 2px var(--paper), 0 0 0 4px var(--signal);

  --dur-instant:120ms;
  --dur-fast:160ms;
  --dur-base:200ms;
  --dur-med:420ms;
  --dur-slow:800ms;
  --dur-reveal:1200ms;
  --ease-out:cubic-bezier(.2, .7, .1, 1);
  --ease-in-out:cubic-bezier(.65, 0, .35, 1);
  --ease-edge:cubic-bezier(.16, 1, .3, 1);
  --ease-settle:cubic-bezier(.22, .61, .36, 1);
  --marquee-duration:52s;
  --marquee-duration-fast:34s;

  --z-header:50;
  --z-rail:60;
  --z-consent:80;
  --z-chat:90;
  --z-skip:100;
}

@media (min-width: 1024px) {
  :root {
    --rail-w:clamp(10.5rem, 13vw, 13.5rem);
    --bar-h:5.5rem;
  }
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-padding-top:calc(var(--bar-h) + 1rem);
  hanging-punctuation:first last;
}

body {
  margin:0;
  min-height:100vh;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--waba-025);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  font-weight:400;
  font-kerning:normal;
  font-feature-settings:'kern', "liga";
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  overflow-x:clip;
}

@media (min-width: 1024px) {
  body { padding-right: var(--rail-w); }
}

h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd, ol, ul { margin: 0; }

ol, ul { padding: 0; }
img, picture, video, canvas, svg { display: block; max-width: 100%; }
img { height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
table { border-collapse: collapse; border-spacing: 0; }
iframe { max-width: 100%; }
[hidden] { display: none !important; }
::selection { background: var(--signal); color: var(--ink); }

a {
  color:inherit;
  text-decoration-thickness:1px;
  text-underline-offset:.2em;
  transition:color var(--dur-fast) var(--ease-out), text-decoration-color var(--dur-fast) var(--ease-out);
}
a:hover { color: var(--moss); text-decoration-color: var(--signal); }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; }

h1, h2, h3, .h1, .h2, .h3, .display {
  font-family:var(--waba-652);
  font-weight:700;
  letter-spacing:var(--track-display);
  line-height:var(--lh-head);
  overflow-wrap:break-word;
  hyphens:auto;
  text-wrap:balance;
}
h1, .h1 { font-size: var(--fs-h1); line-height: var(--lh-tight); }
h2, .h2 { font-size: var(--fs-h2); }
h3, .h3 { font-size: var(--fs-h3); font-weight: 500; letter-spacing: -.01em; line-height: 1.25; }
h4, .h4 { font-family: var(--waba-025); font-size: var(--fs-h4); font-weight: 600; line-height: 1.35; }
.display-hero { font-size: var(--fs-hero); line-height: 1.02; letter-spacing: -.03em; }

p { text-wrap: pretty; }
strong, b { font-weight: 600; }
small { font-size: var(--fs-small); }

.lede {
  font-size:var(--fs-lede);
  line-height:1.5;
  max-width:44ch;
  color:var(--ink-80);
}

.mono, code, kbd, samp, .price, .meta {
  font-family:var(--waba-ca0);
  font-feature-settings:'zero', 'tnum';
}
.mono { font-size: var(--fs-mono); letter-spacing: var(--track-mono); }

.eyebrow {
  display:flex;
  align-items:baseline;
  gap:.75em;
  font-family:var(--waba-ca0);
  font-size:var(--fs-mono);
  font-weight:500;
  letter-spacing:var(--track-mono);
  text-transform:uppercase;
  color:var(--bark);
  margin-bottom:var(--sp-3);
}
.eyebrow::before {
  content:"";
  flex:none;
  width:2rem;
  height:2px;
  background:var(--signal);
  transform:translateY(-.25em);
}

.coord {
  font-family:var(--waba-ca0);
  font-size:var(--fs-micro);
  letter-spacing:var(--track-caps);
  text-transform:uppercase;
  color:var(--bark);
}

.caption {
  font-family:var(--waba-ca0);
  font-size:var(--fs-micro);
  letter-spacing:var(--track-mono);
  line-height:1.5;
  color:var(--bark);
}

.num { font-family: var(--waba-ca0); font-variant-numeric: tabular-nums; }

.prose { max-width: var(--measure); }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { margin-top: 2.2em; font-size: clamp(1.3rem, 2.4vw, 2rem); }
.prose h3 { margin-top: 1.8em; }
.prose h2 + *, .prose h3 + * { margin-top: .7em; }
.prose a {
  color:var(--ink);
  text-decoration-color:var(--signal);
  text-decoration-thickness:2px;
  text-underline-offset:.22em;
}
.prose a:hover { color: var(--moss); }
.prose ul, .prose ol { padding-left: 0; list-style: none; }
.prose li { position: relative; padding-left: 1.75em; }
.prose li + li { margin-top: .5em; }
.prose ul > li::before {
  content:"";
  position:absolute;
  left:0;
  top:.78em;
  width:.9em;
  height:1px;
  background:var(--bark);
}
.prose ol { counter-reset: prose; }
.prose ol > li { counter-increment: prose; }
.prose ol > li::before {
  content:counter(prose, decimal-leading-zero);
  position:absolute;
  left:0;
  top:.2em;
  font-family:var(--waba-ca0);
  font-size:var(--fs-micro);
  color:var(--bark);
}
.prose blockquote {
  border-left:2px solid var(--signal);
  padding-left:1.25em;
  font-family:var(--waba-652);
  font-weight:500;
  font-size:1.15em;
  line-height:1.4;
}
.prose code {
  font-size:.88em;
  background:var(--paper);
  border:var(--rule);
  padding:.05em .35em;
}
.prose hr { border: 0; border-top: var(--rule); margin: 2.5em 0; }

.shell {
  width:100%;
  max-width:var(--shell);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.shell--ruled {
  border-left:var(--rule);
  border-right:var(--rule);
}

.section { padding-block: var(--section); position: relative; }
.section--tight { padding-block: var(--section-tight); }
.section--rule { border-top: var(--rule); }
.section--paper { background: var(--paper); }
.section--ink { background: var(--ink); color: var(--cream); }
.section--ink .eyebrow, .section--ink .caption, .section--ink .coord { color: var(--cream-dim); }

.grid-12 {
  display:grid;
  grid-template-columns:repeat(12, minmax(0, 1fr));
  column-gap:var(--gutter);
}
.grid-12 > * { min-width: 0; grid-column: 1 / -1; }

.split {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--sp-5) var(--gutter);
  align-items:start;
}
.split > * { min-width: 0; }
@media (min-width: 900px) {
  .split { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .split--reverse { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
  .split--ruled > * + * { border-left: var(--rule); padding-left: var(--gutter); }
  .split--center { align-items: center; }
}

.stack > * + * { margin-top: var(--stack-gap, var(--sp-3)); }
.stack-sm { --stack-gap: var(--sp-2); }
.stack-lg { --stack-gap: var(--sp-5); }

.cluster {
  display:flex;
  flex-wrap:wrap;
  gap:var(--cluster-gap, var(--sp-2));
  align-items:center;
}
.cluster > * { min-width: 0; }

.hairline { border: 0; border-top: var(--rule); margin: 0; }
.rule-signal { display: block; width: 3rem; height: 2px; background: var(--signal); border: 0; }

.visually-hidden, .sr-only {
  position:absolute !important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

.icon {
  width:1.25em;
  height:1.25em;
  flex:none;
  fill:none;
  stroke:currentColor;
  display:inline-block;
  vertical-align:-.2em;
}
.icon--sm { width: 1em; height: 1em; }
.icon--lg { width: 1.75em; height: 1.75em; }

.text-signal { color: var(--signal-deep); }
.text-bark { color: var(--bark); }
.text-moss { color: var(--moss); }
.no-wrap-short { white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  :root {
    --dur-instant:0ms;
    --dur-fast:0ms;
    --dur-base:0ms;
    --dur-med:0ms;
    --dur-slow:0ms;
    --dur-reveal:0ms;
  }
}

@media print {
  body { background: #FFF; color: #000; padding-right: 0; }
  .site-header, .rail, .consent, .chat-launcher, .chat-panel, .marquee { display: none !important; }
}
