/* ============================================================
   tokens.css — the brand skin for the Florida Startup Ecosystem Map.

   Florida-coastal palette on the Embarc Collective design system:
   deep-ocean primary, riptide/teal secondary, sunglow highlight,
   radical-red reserved for CTAs. Type is Instrument Sans + Serif.

   The engine (site.css) consumes ONLY these custom properties — zero
   colour/font/radius literals live outside this file and the small
   brand slots in build.mjs (wordmark SVG + favicon writer). Variable
   NAMES mirror the upstream template so the shared engine resolves
   unchanged; only the VALUES are Florida's.
   ============================================================ */

:root {
  /* ---- brand anchors (Florida accent on Embarc palette) ---- */
  --brand-navy: #0b5a86;        /* deep ocean — primary nav/headings/hero */
  --brand-navy-deep: #0a3d5c;   /* hero gradient floor */
  --brand-riptide: #12a594;     /* riptide teal (Embarc primary, deepened for AA) */
  --brand-sun: #f5b301;         /* sunglow highlight */
  --brand-saffron: #d98218;     /* warm highlight (wizard branch tone) */
  --brand-green: #0c7a63;       /* teal-green success / branch tone */
  --brand-blue: #1466a3;        /* ocean hyperlink */
  --brand-coral: #ff3a61;       /* radical red — CTA only */
  --brand-coral-deep: #cc2e4d;  /* CTA hover */
  --lockup-plate: #000000;      /* partner-lockup plate — the black bar the
                                   social cards carry, reused on print covers
                                   so the white Embarc mark stays legible */

  /* ---- typography (Embarc: Instrument Sans + Serif) ---- */
  --font-display: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-serif: "Instrument Serif", Georgia, "Times New Roman", serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* ---- shape ---- */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-pill: 999px;

  /* ---- elevation ---- */
  --shadow-1: 0 1px 2px rgb(11 61 92 / 0.06), 0 1px 3px rgb(11 61 92 / 0.10);
  --shadow-2: 0 4px 8px -2px rgb(11 61 92 / 0.10), 0 2px 4px -2px rgb(11 61 92 / 0.06);
  --shadow-3: 0 14px 28px -8px rgb(11 61 92 / 0.18), 0 4px 10px -4px rgb(11 61 92 / 0.10);

  /* ---- glassmorphism (Embarc landing echo) ---- */
  --glass-blur: 14px;

  /* ---- motion ---- */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --speed: 180ms;
}

/* ============ LIGHT (default) ============ */
:root,
:root[data-theme="light"] {
  color-scheme: light;

  --bg: #f8fbfc;
  --surface: #ffffff;
  --surface-alt: #eef4f6;
  --surface-sunken: #e4edf0;
  --border: #dbe6ea;
  --border-strong: #c1d1d8;

  --text: #10222c;
  --text-muted: #3f5560;
  --text-faint: #5a6f7a;        /* AA: 4.5:1+ on every light surface */

  --primary: #0b5a86;           /* deep ocean — nav, headings, hero, primary buttons */
  --primary-contrast: #ffffff;
  --accent: #c62c49;            /* deepened coral — AA as bold text on white */
  --accent-strong: #a8203c;
  --accent-contrast: #ffffff;
  --accent-tint: #fdeef1;

  /* ---- Glaring Gap (women in the ecosystem) ----
     A magenta-through-plum ramp used ONLY by .gg-scope on glaring-gap.html.
     It replaces the ocean primary on that page rather than sitting beside it,
     so the page reads as its own publication while keeping the same type,
     spacing and component shapes as the rest of the site.

     Measured against #ffffff: gg-ink 11.8:1, gg-deep 7.3:1, gg-mid 5.1:1 —
     all AA for normal text. gg-bright is 4.4:1, which is AA-large ONLY: use it
     for fills, rules and display type, never for body copy, and put white on
     gg-deep (7.3:1) rather than on gg-bright (4.4:1) for buttons. gg-soft is
     a fill, never a text colour. */
  --gg-ink: #6b0f47;            /* headings — deep plum */
  --gg-deep: #a3176b;           /* primary actions, section rules */
  --gg-mid: #c72a86;            /* magenta — links and emphasis on white */
  --gg-bright: #e0218a;         /* the accent proper; large text and fills only */
  --gg-soft: #f6a6cd;           /* map fills, chart bands */
  --gg-tint: #fdeaf4;           /* card + callout washes */
  --gg-tint-2: #fbd8ea;         /* the second choropleth step */
  --gg-contrast: #ffffff;       /* text on gg-deep / gg-bright */
  --link: #1466a3;
  --link-hover: #0f4f80;
  --success: #0c7a63;           /* riptide-green — AA as small bold text on white */
  --success-tint: #e2f5f0;
  --warning: #92610a;
  --warning-tint: #fff5df;
  --danger: #c62c49;

  --hero-bg: linear-gradient(135deg, #0a3d5c 0%, #0b5a86 52%, #0e8090 100%);
  --hero-text: #eef8fb;
  --hero-muted: #b7d6e2;

  --sidebar-bg: #f2f8fa;
  --topbar-bg: rgb(248 251 252 / 0.82);
  --code-bg: #eef4f6;
  --kbd-bg: #ffffff;
  --scrim: rgb(10 34 44 / 0.55);

  /* glass */
  --glass-bg: rgb(255 255 255 / 0.62);
  --glass-border: rgb(255 255 255 / 0.55);
  --glass-shadow: 0 10px 34px -10px rgb(11 90 134 / 0.22);

  /* walkable Florida */
  --walk-water: #bfe5ec;
  --walk-water-grid: rgb(11 90 134 / 0.09);
  --walk-land: #dfeccf;
  --walk-land-alt: #c9dfba;
  --walk-land-border: #6e9a70;
  --walk-path: rgb(255 255 255 / 0.32);
  --walk-overlay: rgb(255 255 255 / 0.88);
  --walk-overlay-strong: #ffffff;
  --walk-shadow: rgb(10 61 92 / 0.28);
  --walk-avatar: #ff3a61;
  --walk-avatar-detail: #ffffff;
  --walk-sign: #fff7da;
  --walk-sign-border: #a5670f;

  /* org-type hues (badges/dots) — tints derived via color-mix in site.css */
  --org-accelerator: #c62c49;
  --org-incubator: #0e7d8f;
  --org-venture-capital: #1466a3;
  --org-angel-network: #6d4fc4;
  --org-university-research: #0c7a63;
  --org-edo-government: #345f88;
  --org-coworking: #a5670f;
  --org-service-provider: #5b6474;
  --org-corporate-innovation: #9a5b2a;
  --org-nonprofit-community: #2e8b6f;
  --org-foundation-funder: #8a6d1f;

  /* AA-track sector hues (echo the AA spectrum, AA-contrast) */
  --sec-fintech: #1466a3;
  --sec-defense-dual-use: #345f88;
  --sec-healthtech: #0e7d8f;
  --sec-resilience: #0c7a63;

  /* legacy category hues kept so the shared engine resolves (mostly unused) */
  --cat-grant: #0c7a63;         --cat-grant-tint: #e2f5f0;
  --cat-equity: #6d4fc4;        --cat-equity-tint: #f0ecfb;
  --cat-loan: #a5670f;          --cat-loan-tint: #fdf1df;
  --cat-incubation: #0e7d8f;    --cat-incubation-tint: #e2f2f5;
  --cat-market: #1466a3;        --cat-market-tint: #e7f0f8;
  --cat-mixed: #c62c49;         --cat-mixed-tint: #fdeef1;
  --cat-other: #5b6474;         --cat-other-tint: #eef1f3;

  /* lifecycle stage hues */
  --stage-ideation: #a5670f;
  --stage-prototype: #0e7d8f;
  --stage-early: #c62c49;
  --stage-growth: #0b5a86;
  --stage-market: #0c7a63;
}

/* ============ DARK ============ */
:root[data-theme="dark"] {
  color-scheme: dark;

  --bg: #071620;
  --surface: #0e2230;
  --surface-alt: #143040;
  --surface-sunken: #050f17;
  --border: #22404f;
  --border-strong: #315466;

  --text: #e4eff4;
  --text-muted: #a6bcc7;
  --text-faint: #83a0ac;        /* AA on raised dark surfaces */

  --primary: #6fc3e0;
  --primary-contrast: #071620;
  --accent: #ff6d84;
  --accent-strong: #ff8398;
  --accent-contrast: #1a0509;
  --accent-tint: #35141b;

  /* ---- Glaring Gap (women in the ecosystem) ----
     Same ramp inverted for dark: the light end carries the text, the deep end
     the fills. Measured against --surface (#0e2230): gg-ink 11.1:1, gg-mid
     7.6:1, gg-bright 6.3:1 — all AA. gg-deep is 3.7:1, AA-large only, so it
     is a fill here (gg-contrast on it is 4.2:1 — large text only). */
  --gg-ink: #ffc4e4;            /* headings */
  --gg-deep: #e0218a;           /* primary actions, section rules */
  --gg-mid: #ff8dc4;            /* links and emphasis on dark */
  --gg-bright: #ff6db4;
  --gg-soft: #7d1552;           /* map fills, chart bands */
  --gg-tint: #2b0d1e;           /* card + callout washes */
  --gg-tint-2: #43122c;         /* the second choropleth step */
  --gg-contrast: #2b0416;
  --link: #6bb9e6;
  --link-hover: #98d0f2;
  --success: #4ec9a9;
  --success-tint: #0b2f28;
  --warning: #e0b24a;
  --warning-tint: #33280d;
  --danger: #ff6d84;

  --hero-bg: linear-gradient(135deg, #0a2c40 0%, #0b3d54 55%, #0c4f5a 100%);
  --hero-text: #eef8fb;
  --hero-muted: #a5c6d4;

  --sidebar-bg: #0a1c28;
  --topbar-bg: rgb(7 22 32 / 0.82);
  --code-bg: #143040;
  --kbd-bg: #143040;
  --scrim: rgb(2 9 14 / 0.72);

  /* glass */
  --glass-bg: rgb(14 34 48 / 0.58);
  --glass-border: rgb(120 170 190 / 0.18);
  --glass-shadow: 0 12px 34px -10px rgb(0 0 0 / 0.55);

  /* walkable Florida */
  --walk-water: #082a3a;
  --walk-water-grid: rgb(107 185 230 / 0.09);
  --walk-land: #173c35;
  --walk-land-alt: #205045;
  --walk-land-border: #4f8c75;
  --walk-path: rgb(255 255 255 / 0.08);
  --walk-overlay: rgb(14 34 48 / 0.9);
  --walk-overlay-strong: #0e2230;
  --walk-shadow: rgb(0 0 0 / 0.55);
  --walk-avatar: #ff6d84;
  --walk-avatar-detail: #ffffff;
  --walk-sign: #33280d;
  --walk-sign-border: #e0a24a;

  --org-accelerator: #ff7d92;
  --org-incubator: #47c2d6;
  --org-venture-capital: #6bb9e6;
  --org-angel-network: #a68cf0;
  --org-university-research: #4ec9a9;
  --org-edo-government: #86aacb;
  --org-coworking: #e0a24a;
  --org-service-provider: #9aa8b6;
  --org-corporate-innovation: #d99b6a;
  --org-nonprofit-community: #58c79f;
  --org-foundation-funder: #d8b85a;

  --sec-fintech: #6bb9e6;
  --sec-defense-dual-use: #86aacb;
  --sec-healthtech: #47c2d6;
  --sec-resilience: #4ec9a9;

  --cat-grant: #4ec9a9;         --cat-grant-tint: #0b2f28;
  --cat-equity: #a68cf0;        --cat-equity-tint: #241d3f;
  --cat-loan: #e0a24a;          --cat-loan-tint: #33280d;
  --cat-incubation: #47c2d6;    --cat-incubation-tint: #0a2c36;
  --cat-market: #6bb9e6;        --cat-market-tint: #0d2739;
  --cat-mixed: #ff7d92;         --cat-mixed-tint: #35141b;
  --cat-other: #9aa8b6;         --cat-other-tint: #18242f;

  --stage-ideation: #e0a24a;
  --stage-prototype: #47c2d6;
  --stage-early: #ff7d92;
  --stage-growth: #6fc3e0;
  --stage-market: #4ec9a9;

  --shadow-1: 0 1px 2px rgb(0 0 0 / 0.4);
  --shadow-2: 0 4px 8px -2px rgb(0 0 0 / 0.5);
  --shadow-3: 0 14px 28px -8px rgb(0 0 0 / 0.6);
}
