/* Shared type for both surfaces: self-hosted faces, the three voices, one role scale. */
@font-face { font-family: "Archivo Expanded"; src: url("/assets/fonts/archivo-expanded-800.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Archivo"; src: url("/assets/fonts/archivo-text.woff2") format("woff2"); font-weight: 400 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Martian Mono"; src: url("/assets/fonts/martian-mono-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Martian Mono"; src: url("/assets/fonts/martian-mono-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Besley"; src: url("/assets/fonts/besley-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Besley"; src: url("/assets/fonts/besley-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
:root {
  /* Display names the brand, device speaks for the interface, data carries numbers and labels, reading carries prose. */
  --font-display: "Archivo Expanded", "Arial Black", "Helvetica Neue", Arial, sans-serif;
  --font-device: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-data: "Martian Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --font-reading: "Besley", Georgia, "Times New Roman", serif;
  --text-label: .75rem;
  --text-small: .875rem;
  --text-body: 1rem;
  --text-lead: 1.25rem;
  --text-title: 1.75rem;
  --text-headline: clamp(1.75rem, 3.4vw, 2.5rem);
  --text-display: clamp(1.625rem, 8.2vw, 5.5rem);
}
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.link-text { text-decoration: underline; text-decoration-thickness: 1px; }
.arrow { flex: none; width: .75em; height: .75em; fill: none; stroke: currentColor; stroke-width: 1.25; vector-effect: non-scaling-stroke; }
