/* Generated from source/design-system/tokens.json by tools/tokens-to-css.mjs.
   Do not edit by hand: change tokens.json, then rerun the script.
   Build with the role tokens; the palette is here for them to reference.
   data-theme="dark" on a section swaps the role tokens for that subtree;
   data-theme="light" makes a light island inside a dark one. */

:root {
  color-scheme: light;

  /* Palette */
  --near-black: #1D1D1E;
  --brand-blue: #00A8C3;
  --neutral-gray: #848484;
  --blue-800: #00778A;
  --brand-green: #00D474;
  --red: #C83E6A;
  --yellow: #FFC800;
  --purple: #8B3AFF;
  --teal: #76A5AF;
  --white: #FFFFFF;
  --blue-50: #E6F4F7;
  --blue-100: #A7DFE8;
  --blue-700: #0089A3;
  --green-50: #E6F9F0;
  --green-100: #99EBC3;
  --green-700: #00B85C;
  --red-50: #FEF0F5;
  --yellow-50: #FFF8E1;
  --purple-700: #6D1FD6;
  --gray-50: #F2F2F2;
  --gray-100: #E0E0E0;
  --gray-300: #B0B0B0;
  --gray-500: #707070;
  --gray-700: #4A4A4A;
  --action: var(--brand-blue);
  --on-action: var(--near-black);
  --action-hover: var(--blue-100);
  --action-strong: var(--blue-800);
  --on-action-strong: var(--white);

  /* Roles, light theme */
  --bg: #FAFAFA;
  --surface: var(--white);
  --panel: var(--gray-50);
  --panel-blue: var(--blue-50);
  --text-primary: var(--near-black);
  --text-secondary: #555555;
  --accent-text: var(--blue-800);
  --accent-large: var(--blue-700);
  --border: var(--gray-100);
  --border-strong: var(--gray-500);
  --focus: var(--blue-800);

  /* Type */
  --font-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", Menlo, monospace;
  --type-display-font-size: 3.2rem;
  --type-display-line-height: 1.1;
  --type-display-font-weight: 800;
  --type-display-letter-spacing: -1px;
  --type-h2-font-size: 2rem;
  --type-h2-line-height: 1.2;
  --type-h2-font-weight: 700;
  --type-h3-font-size: 1.17rem;
  --type-h3-line-height: 1.35;
  --type-h3-font-weight: 700;
  --type-eyebrow-font-size: 0.8rem;
  --type-eyebrow-line-height: 1.4;
  --type-eyebrow-font-weight: 700;
  --type-eyebrow-letter-spacing: 0.08em;
  --type-subtitle-font-size: 1.2rem;
  --type-subtitle-line-height: 1.6;
  --type-subtitle-font-weight: 500;
  --type-body-font-size: 1rem;
  --type-body-line-height: 1.6;
  --type-body-font-weight: 400;
  --type-body-sm-font-size: 0.9rem;
  --type-body-sm-line-height: 1.6;
  --type-body-sm-font-weight: 400;
  --type-note-font-size: 0.85rem;
  --type-note-line-height: 1.6;
  --type-note-font-weight: 400;
  --type-button-font-size: 1.05rem;
  --type-button-line-height: 1.2;
  --type-button-font-weight: 700;
  --type-label-font-size: 0.8rem;
  --type-label-line-height: 1.6;
  --type-label-font-weight: 700;
  --type-mono-font-size: 1.05rem;
  --type-mono-line-height: 1.6;
  --type-mono-font-weight: 700;

  /* Spacing */
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 1.75rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;

  /* Radius */
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-2xl: 32px;
  --radius-pill: 999px;

  /* Shadow */
  --shadow-float: 0 4px 15px rgba(0, 0, 0, 0.2);
  --shadow-card: 0 8px 25px rgba(0, 0, 0, 0.08);

  /* Layout */
  --container-max: 1280px;
  --measure: 760px;
  --gutter: 1rem;
}

[data-theme="light"] {
  color-scheme: light;
  --bg: #FAFAFA;
  --surface: var(--white);
  --panel: var(--gray-50);
  --panel-blue: var(--blue-50);
  --text-primary: var(--near-black);
  --text-secondary: #555555;
  --accent-text: var(--blue-800);
  --accent-large: var(--blue-700);
  --border: var(--gray-100);
  --border-strong: var(--gray-500);
  --focus: var(--blue-800);
  --shadow-card: 0 8px 25px rgba(0, 0, 0, 0.08);
}

[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0E0E10;
  --surface: var(--near-black);
  --panel: var(--near-black);
  --panel-blue: var(--near-black);
  --text-primary: #EEEEEE;
  --text-secondary: #AAAAAA;
  --accent-text: var(--brand-blue);
  --accent-large: var(--brand-blue);
  --border: #333333;
  --border-strong: var(--neutral-gray);
  --focus: var(--brand-blue);
  --shadow-card: 0 8px 25px rgba(0, 0, 0, 0.4);
}
