/* GENERATED by tools/build_css.py from tokens/floperati.tokens.json.
 * Do not edit by hand: edit the JSON and rebuild. */

:root {
  color-scheme: dark;
  --base-graphite-950: #0A0A0A;  /* Page ground. Neutral: zero chroma. Never navy. */
  --base-graphite-900: #111111;  /* Surface (cards, panels). */
  --base-graphite-850: #1A1A1A;  /* Raised surface. */
  --base-graphite-800: #262626;  /* Border. */
  --base-graphite-700: #3A3A3A;  /* Strong border. */
  --base-gray-500: #8A8A8A;  /* Faint text. 5.0:1+ on every surface. */
  --base-gray-400: #A3A3A3;  /* Muted text. 6.9:1+ on every surface. */
  --base-gray-100: #EDEDED;  /* Primary text. 14.9:1+ on every surface. */
  --base-bone: #EEEAE2;  /* Solid, placed cubes in imagery; display text on art. */
  --base-ultramarine-500: #2F5BFF;  /* Signature. Fills, borders, ghost outlines, text >= 24px only (3.4-3.8:1 on dark). */
  --base-ultramarine-300: #8FA2FF;  /* Ultramarine for text and links on dark (7.3:1+). */
  --base-amber-400: #FFB347;  /* The placed block. Rare accent, about 3% of any composition. */
  --base-white: #FFFFFF;  /* Text on ultramarine fills (5.2:1). */
  --base-green-400: #4ADE80;  /* Status: success. Never a brand colour. */
  --base-red-400: #FF7A7A;  /* Status: danger. Never a brand colour. */
  --color-bg: var(--base-graphite-950);  /* Page background. */
  --color-surface: var(--base-graphite-900);  /* Cards, panels, inputs. */
  --color-surface-hi: var(--base-graphite-850);  /* Hover and raised surfaces. */
  --color-border: var(--base-graphite-800);  /* Default 1px border. */
  --color-border-strong: var(--base-graphite-700);  /* Emphasised border. */
  --color-text: var(--base-gray-100);  /* Body and headings. */
  --color-text-muted: var(--base-gray-400);  /* Secondary text. */
  --color-text-faint: var(--base-gray-500);  /* Captions, metadata. */
  --color-accent: var(--base-ultramarine-500);  /* Buttons, focus, ghost-block outlines. */
  --color-accent-text: var(--base-ultramarine-300);  /* Links and accent text. */
  --color-on-accent: var(--base-white);  /* Text on accent fills. */
  --color-highlight: var(--base-amber-400);  /* Just placed / new / live. Sparingly. */
  --color-solid: var(--base-bone);  /* Solid cube colour in imagery and illustration. */
  --color-success: var(--base-green-400);  /* Status only. */
  --color-danger: var(--base-red-400);  /* Status only. */
  --font-sans: "Geist", ui-sans-serif, system-ui, sans-serif;  /* Geist Sans, SIL OFL 1.1. Headings and body. */
  --font-mono: "Geist Mono", ui-monospace, "SFMono-Regular", "Menlo", monospace;  /* Geist Mono, SIL OFL 1.1. Labels, data, agent-facing text. Never Space Mono (FLOP's). */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-48: 48px;
  --space-64: 64px;
  --space-96: 96px;
  --space-128: 128px;
  --radius-none: 0px;  /* Default. Cubes have crisp edges; FLOP's tiles are rounded, ours are not. */
  --radius-sm: 2px;  /* Inputs and buttons, at most. */
  --border-width: 1px;  /* All borders and ghost-block outlines. */
}
