*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
body {
  margin: 0;
  background: var(--color-paper);
  color: var(--color-ink-2);
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
::selection { background: color-mix(in srgb, var(--color-brand) 40%, black); color: #fff; }
:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; }
h1, h2, h3 {
  margin: 0;
  color: var(--color-ink);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  word-break: keep-all;
  line-break: strict;
  overflow-wrap: normal;
}
h1 { font-size: var(--text-display); max-width: 18em; }
h2 { font-size: var(--text-section); max-width: 22em; }
h3 { font-size: var(--text-title); line-height: 1.3; }
.nobreak { white-space: nowrap; }
/* Soft sense-boundary break: hidden on desktop, shown below 60rem */
.heading-softbreak > br { display: none; }
@media (max-width: 60rem) {
  .heading-softbreak > br { display: inline; }
}
p { margin: 0; color: var(--color-ink-2); }
.lead { font-size: var(--text-lead); line-height: 1.55; max-width: 38ch; color: var(--color-ink-2); }
.site-container {
  width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter);
}
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 60rem) { :root { --gutter: 16px; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
