/* Geist Latin, served locally. License: assets/fonts/Geist-OFL.txt. */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../assets/fonts/geist-latin-500.woff2') format('woff2');
}

/* ------------------------------------------------------------------ tokens */
:root {
  --bg: #000;
  --fg: #fafafa;
  --muted: rgba(250, 250, 250, 0.72);
  --faint: rgba(250, 250, 250, 0.38);
  --line: rgba(255, 255, 255, 0.12);
  --panel: rgba(9, 15, 20, 0.92);
  --accent: #5eead4;
  --ambient: #1a3c5c;
  --max: 68rem;
  --gutter: max(20px, calc((100vw - 68rem) / 2));
  --media-gutter: max(20px, calc((100vw - 1728px) / 2));
  --grid-gap: clamp(1.5rem, 3vw, 2.5rem);
  --section-space: clamp(2.5rem, 4vw, 3.5rem);
  --heading-gap: clamp(1.5rem, 2.5vw, 2rem);
  --radius: 12px;
  --columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  --header-h: 72px;
  --font:
    'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
    sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color-scheme: dark;
}

* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
a {
  color: inherit;
  text-decoration: none;
}
p {
  margin: 0 0 1.1em;
}
button {
  font: inherit;
  color: inherit;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.skip {
  position: absolute;
  left: 1rem;
  top: -3rem;
  z-index: 100;
  padding: 0.5rem 0.75rem;
  background: #fff;
  color: #000;
  border-radius: 999px;
}
.skip:focus {
  top: 1rem;
}

/* typography */
.text-h1,
.text-h2 {
  font-family: 'Geist', var(--font);
  text-wrap: balance;
}
.text-h1 {
  font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
  font-weight: 500;
  margin: 0;
}
.text-h2 {
  font-size: clamp(1.625rem, 1.25rem + 1vw, 2.125rem);
  line-height: 1.18;
  letter-spacing: -0.025em;
  font-weight: 500;
  margin: 0;
}
.text-h3 {
  font-size: 1rem;
  font-weight: 500;
  margin: 0 0 0.35rem;
  letter-spacing: -0.005em;
}
.text-caption {
  font-size: 0.8125rem;
  color: var(--muted);
}
