:root {
  /* Color — deep charcoal / steel with restrained teal accent */
  --ink: #e8edf2;
  --ink-soft: #8b9aab;
  --paper: #07090c;
  --paper-deep: #030507;
  --line: rgba(180, 200, 220, 0.12);
  --accent: #2dd4bf;
  --accent-bright: #5eead4;
  --accent-deep: #14b8a6;
  --accent-soft: rgba(45, 212, 191, 0.12);
  --signal: #64748b;
  --hero-mist: #1a222c;
  --steel: #6b7c8f;
  --graphite: #10151c;
  --surface: rgba(255, 255, 255, 0.035);
  --surface-strong: rgba(255, 255, 255, 0.06);
  --depth-1: rgba(0, 0, 0, 0.25);
  --depth-2: rgba(0, 0, 0, 0.45);
  --glow-teal: rgba(45, 212, 191, 0.08);

  /*
   * Type system (exactly two families):
   *   Display / headings / brand → Plus Jakarta Sans (self-hosted)
   *   Body / UI / buttons / nav   → DM Sans (self-hosted)
   * Weights used: Plus Jakarta Sans 500·600·700 · DM Sans 400·500·600
   */
  --font-display: "Plus Jakarta Sans", "Plus Jakarta Sans Fallback", system-ui, sans-serif;
  --font-body: "DM Sans", "DM Sans Fallback", system-ui, sans-serif;

  /* Stable type scale — rem-based; do not animate these */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-md: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 2rem;
  --leading-tight: 1.08;
  --leading-snug: 1.25;
  --leading-normal: 1.6;
  --tracking-tight: -0.025em;
  --tracking-brand: -0.04em;
  --tracking-label: 0.12em;

  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.5rem;
  --space-5: 4rem;
  --space-6: 7rem;
  --radius: 2px;
  --nav-h: 4.25rem;
  --max: 1080px;
  --max-narrow: 42rem;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-spring: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-soft: cubic-bezier(0.33, 1, 0.68, 1);
}

/*
 * Self-hosted display + body fonts.
 * font-display: optional — if the file misses the first paint window,
 * keep the metric-matched fallback for the session (no mid-load size jump).
 */
@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/assets/fonts/plus-jakarta-sans-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: optional;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/assets/fonts/plus-jakarta-sans-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: optional;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/assets/fonts/plus-jakarta-sans-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: optional;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}

@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/dm-sans-latin.woff2") format("woff2");
  font-weight: 400 600;
  font-style: normal;
  font-display: optional;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}

/*
 * Metric-matched fallbacks — stay visually close if optional fonts are skipped.
 */
@font-face {
  font-family: "Plus Jakarta Sans Fallback";
  src: local("Segoe UI"), local("Helvetica Neue"), local("Arial");
  size-adjust: 103%;
  ascent-override: 95%;
  descent-override: 22%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "DM Sans Fallback";
  src: local("Segoe UI"), local("Helvetica Neue"), local("Arial");
  size-adjust: 98%;
  ascent-override: 95%;
  descent-override: 25%;
  line-gap-override: 0%;
}
