/* ============================================================
   Self-hosted variable fonts — latin subset, woff2
   Ported from the concept's Google Fonts CDN link (index.html:15).
   Prod is SFTP-only behind LiteSpeed; a CDN font request is one more
   third party in the critical path, so these are served from the theme.

   All four faces MUST stay variable:
     - Fraunces carries an `opsz` 9..144 axis. Browsers apply
       `font-optical-sizing: auto` by default whenever that axis is
       present, so an instanced/static cut would silently change the
       look of every heading.
     - Weight ranges are declared 400..600 (Fraunces, Inter) because
       components.css:608 sets Fraunces italic at 600 and several sans
       rules use 600 (base.css:61,154 · components.css:93,500,577).
       The concept's own Google Fonts link only asked for 400/500 and
       therefore relied on synthetic bold; declaring the real range
       removes that.
     - JetBrains Mono replaces concept 05's Geist Mono (tokens.css:48).

   THIS BLOCK IS THE ONLY PERMITTED EDIT TO tokens.css, together with
   the removal of the unused `--text-700` noted at the separator below.
   Everything after the separator is otherwise byte-identical to the
   frozen design source (docs/redesign/DESIGN-SOURCE.md). Theme-era
   changes go in assets/css/overrides.css.
   ============================================================ */

/* Fraunces — variable roman, opsz 9..144, wght 400..600 */
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("../fonts/fraunces-var-latin.woff2") format("woff2");
  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;
}

/* Fraunces — variable italic (hero <em>, .accent, .person__photo--monogram) */
@font-face {
  font-family: "Fraunces";
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url("../fonts/fraunces-italic-var-latin.woff2") format("woff2");
  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;
}

/* Inter — variable, wght 400..600 (body, UI, buttons) */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("../fonts/inter-var-latin.woff2") format("woff2");
  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;
}

/* JetBrains Mono — variable, wght 400..500 (.eyebrow, .idx, .kicker, .num) */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-var-latin.woff2") format("woff2");
  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;
}

/* ===== END PREPENDED BLOCK — frozen design source follows =====
   Sole other deviation: `--text-700: #5B6E66` (source tokens.css:30)
   is deleted. It computes 3.25:1 against --ink-900 #0F1B17, below the
   WCAG AA 4.5:1 floor, and is referenced by nothing in the source.
   Leaving it in place is an AA failure waiting for the first developer
   who reaches for it. Anything genuinely "faint" should use
   --text-500 #8CA39A (6.57:1). See docs/redesign/DESIGN-SOURCE.md. */

/* ============================================================
   Neural Tech — Deep Resilience tokens
   Theme B: dark, high-tech, evidence/data feel.
   Base ink-900 #0F1B17 · luminous jade #5FC9AC · amber #E9B872
   ============================================================ */

:root {
  /* --- Core palette (dark theme) --- */
  --ink-900: #0F1B17;   /* base background — pine-black, green-tinted */
  --ink-850: #12211C;   /* raised panel */
  --ink-800: #16261F;   /* card surface */
  --ink-750: #1C3029;   /* hover surface */
  --ink-700: #23413A;   /* borders on dark */

  --jade-300: #8FE0C9;  /* bright text-accent */
  --jade-400: #5FC9AC;  /* luminous jade — primary accent */
  --jade-500: #4B9D86;  /* brand green (authoritative mark) */
  --jade-700: #2F6B5C;  /* depth */
  --jade-900: #1E463C;  /* deep fills */

  --amber-400: #E9B872; /* accent — stats, warmth, CTA highlight */
  --amber-300: #F2CE96; /* amber hover */

  --blue-400: #6FA8CC;  /* serene blue — secondary link/trust */

  /* --- Text on dark --- */
  --text-100: #EAF3EF;  /* headings — near-white, jade-tinted */
  --text-300: #C4D4CD;  /* body */
  --text-500: #8CA39A;  /* muted / captions */
  /* --text-700 removed — see the note above the token block. */

  /* --- Semantic --- */
  --bg: var(--ink-900);
  --surface: var(--ink-800);
  --surface-raised: var(--ink-850);
  --border: var(--ink-700);
  --border-soft: rgba(95, 201, 172, 0.14);
  --accent: var(--jade-400);
  --accent-strong: var(--jade-300);
  --accent-warm: var(--amber-400);
  --link: var(--jade-300);

  --focus-ring: #8FE0C9;

  /* --- Type --- */
  --font-serif: "Fraunces", "Newsreader", Georgia, "Times New Roman", serif;
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Modular type scale (1.25 major-third), fluid */
  --step--1: clamp(0.80rem, 0.77rem + 0.15vw, 0.89rem);
  --step-0:  clamp(1.00rem, 0.95rem + 0.25vw, 1.13rem);
  --step-1:  clamp(1.25rem, 1.16rem + 0.45vw, 1.55rem);
  --step-2:  clamp(1.56rem, 1.40rem + 0.80vw, 2.15rem);
  --step-3:  clamp(1.95rem, 1.68rem + 1.35vw, 3.00rem);
  --step-4:  clamp(2.44rem, 2.00rem + 2.20vw, 4.20rem);
  --step-5:  clamp(3.05rem, 2.35rem + 3.50vw, 5.80rem);

  /* --- Spacing (8pt rhythm) --- */
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;

  --section-pad: clamp(3.5rem, 8vw, 7.5rem);
  --container: 1200px;
  --container-narrow: 780px;

  /* --- Radii / shadow / motion --- */
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-pill: 999px;

  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.30);
  --shadow-md: 0 12px 34px rgba(0, 0, 0, 0.42);
  --shadow-glow: 0 0 0 1px rgba(95, 201, 172, 0.25), 0 14px 44px rgba(15, 70, 60, 0.35);

  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-soft: cubic-bezier(0.33, 0, 0.2, 1);
  --dur-fast: 240ms;
  --dur-mid: 520ms;
  --dur-slow: 760ms;
}
