/* ============================================================================
   Neural Tactic Studio System — design tokens
   E49 WS-A. Generated by hand FROM the design authority:
   neural-tactic-website/stitch_ciso_tactical_command_intelligence/
     neural_tactic_studio_system/DESIGN.md  (front-matter: colors / typography /
     rounded / spacing).

   Every value below is copied from that front matter. Nothing is invented here;
   if a value needs to change, change DESIGN.md first and re-derive.

   The Stitch exports drove these tokens through the Tailwind CDN at runtime.
   This site ships no CDN and no runtime CSS framework (E49 ground rule:
   self-contained), so the handful of utilities the pages actually need are
   compiled into site.css instead.
   ========================================================================= */

:root {
  /* ── Surfaces ─────────────────────────────────────────────────────────── */
  --surface: #101415;
  --surface-dim: #101415;
  --surface-bright: #363a3b;
  --surface-container-lowest: #0b0f10;
  --surface-container-low: #191c1e;
  --surface-container: #1d2022;
  --surface-container-high: #272a2c;
  --surface-container-highest: #323537;
  --surface-variant: #323537;
  --surface-tint: #adc6ff;
  --background: #101415;

  /* ── Content ──────────────────────────────────────────────────────────── */
  --on-surface: #e0e3e5;
  --on-surface-variant: #c2c6d6;
  --on-background: #e0e3e5;
  --inverse-surface: #e0e3e5;
  --inverse-on-surface: #2d3133;

  /* ── Lines ────────────────────────────────────────────────────────────── */
  --outline: #8c909f;
  --outline-variant: #424754;

  /* ── Primary (Command Blue family) ────────────────────────────────────── */
  --primary: #adc6ff;
  --on-primary: #002e6a;
  --primary-container: #4d8eff;
  --on-primary-container: #00285d;
  --inverse-primary: #005ac2;
  --primary-fixed: #d8e2ff;
  --primary-fixed-dim: #adc6ff;
  --on-primary-fixed: #001a42;
  --on-primary-fixed-variant: #004395;

  /* ── Secondary ────────────────────────────────────────────────────────── */
  --secondary: #bec6e0;
  --on-secondary: #283044;
  --secondary-container: #3f465c;
  --on-secondary-container: #adb4ce;
  --secondary-fixed: #dae2fd;
  --secondary-fixed-dim: #bec6e0;
  --on-secondary-fixed: #131b2e;
  --on-secondary-fixed-variant: #3f465c;

  /* ── Tertiary ─────────────────────────────────────────────────────────── */
  --tertiary: #b7c8e1;
  --on-tertiary: #213145;
  --tertiary-container: #8292aa;
  --on-tertiary-container: #1a2b3e;
  --tertiary-fixed: #d3e4fe;
  --tertiary-fixed-dim: #b7c8e1;
  --on-tertiary-fixed: #0b1c30;
  --on-tertiary-fixed-variant: #38485d;

  /* ── Error ────────────────────────────────────────────────────────────── */
  --error: #ffb4ab;
  --on-error: #690005;
  --error-container: #93000a;
  --on-error-container: #ffdad6;

  /* ── Typography ───────────────────────────────────────────────────────────
     Two families, per DESIGN.md §Typography: Inter for everything a person
     reads as prose, IBM Plex Mono for "technical data points". Both are
     self-hosted (assets/fonts/, SIL OFL 1.1 — see the OFL-*.txt beside them);
     the system stack behind each one is the fallback while the woff2 loads and
     the answer if it never does.                                             */
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo,
    Consolas, "Liberation Mono", monospace;

  /* display-lg */
  --display-lg-size: 64px;
  --display-lg-weight: 800;
  --display-lg-line: 72px;
  --display-lg-tracking: -0.02em;
  /* display-lg-mobile */
  --display-lg-mobile-size: 40px;
  --display-lg-mobile-weight: 800;
  --display-lg-mobile-line: 48px;
  --display-lg-mobile-tracking: -0.02em;
  /* headline-md */
  --headline-md-size: 32px;
  --headline-md-weight: 600;
  --headline-md-line: 40px;
  --headline-md-tracking: -0.01em;
  /* body-base */
  --body-base-size: 16px;
  --body-base-weight: 400;
  --body-base-line: 24px;
  --body-base-tracking: 0em;
  /* data-mono */
  --data-mono-size: 14px;
  --data-mono-weight: 500;
  --data-mono-line: 20px;
  --data-mono-tracking: 0.02em;
  /* label-caps */
  --label-caps-size: 12px;
  --label-caps-weight: 700;
  --label-caps-line: 16px;
  --label-caps-tracking: 0.1em;

  /* ── Shape ────────────────────────────────────────────────────────────── */
  --radius-sm: 0.125rem;
  --radius: 0.25rem;
  --radius-md: 0.375rem;
  --radius-lg: 0.5rem;
  --radius-xl: 0.75rem;
  --radius-full: 9999px;

  /* ── Space ────────────────────────────────────────────────────────────── */
  --unit: 4px;
  --gutter: 24px;
  --margin-mobile: 20px;
  --margin-desktop: 80px;
  --container-max: 1280px;

  /* ── Derived (not in DESIGN.md's front matter; named here so the value is
        stated once) ─────────────────────────────────────────────────────── */
  --nav-height: 80px;
  --hairline: rgba(255, 255, 255, 0.1);
  --hairline-dim: rgba(255, 255, 255, 0.05);
  --light-edge: rgba(255, 255, 255, 0.2);
  --grid-line: rgba(255, 255, 255, 0.03);
  --glass-fill: rgba(44, 49, 51, 0.4);
  --glow-primary: rgba(173, 198, 255, 0.15);
}

/* ── Self-hosted webfonts ───────────────────────────────────────────────────
   Latin subsets only, taken from the Google Fonts CDN once and committed —
   the site never talks to fonts.googleapis.com at runtime.
   `font-display: swap` so text paints in the fallback immediately.           */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900; /* variable: 400 / 600 / 800 are the weights in use */
  font-display: swap;
  src: url("../fonts/inter-latin-var.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;
}

@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-500.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;
}

@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-700.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;
}
