/* GENERATED FILE -- DO NOT EDIT.
 *
 * Written by scripts/build_tokens.py from two sources:
 *
 *   .claude/skills/noon-brand/SKILL.md   the palette, vendored at 05bbda07a808
 *   config/brand.yaml                    what each colour is FOR, and every number
 *
 * Regenerate with `scripts/build_tokens.py` after a brand sync or a brand.yaml change,
 * and commit both -- the file is generated AND committed so a rebrand is a reviewable
 * diff rather than a build artifact nobody sees.
 *
 * This is the only file in the project that may contain a colour literal or a
 * font-family. Components use the role tokens below; four tests in
 * tests/test_dev_4_tokens.py enforce that, because a convention nobody checks is a
 * convention that lasts one busy afternoon.
 */

:root {
  /* --- brand primitives: the brand's own vocabulary. Referenced ONLY below. --- */
  --noon-cover-navy: #001A35;
  --noon-body-navy: #0F1F3D;
  --noon-coral: #E85A4F;
  --noon-coral-deep: #C44A40;
  --noon-sand: #E9E4E0;
  --noon-sand-dark: #DCD5CE;
  --noon-ink: #1A2438;
  --noon-slate: #5B6478;
  --noon-white: #FFFFFF;  /* named by the brand's prose, absent from its table */

  /* --- roles: what the portal uses each colour FOR (config/brand.yaml) --- */
  --color-canvas: var(--noon-sand);
  --color-surface: var(--noon-white);
  --color-surface-sunken: var(--noon-sand-dark);
  --color-panel: var(--noon-cover-navy);
  --color-panel-text: var(--noon-white);
  --color-panel-muted: var(--noon-sand-dark);
  --color-text: var(--noon-ink);
  --color-text-muted: var(--noon-slate);
  --color-heading: var(--noon-body-navy);
  --color-accent: var(--noon-coral);
  --color-accent-strong: var(--noon-coral-deep);
  --color-border: var(--noon-sand-dark);
  --color-border-strong: var(--noon-slate);
  --color-focus: var(--noon-coral);

  /* --- typography --- */
  --font-sans: 'DM Sans', Calibri, sans-serif;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-bold: 700;
  --font-size-page-title: 2rem;
  --font-size-h1: 1.5rem;
  --font-size-h2: 1.25rem;
  --font-size-h3: 1.125rem;
  --font-size-body: 1rem;
  --font-size-table: 0.9375rem;
  --font-size-small: 0.8125rem;
  --font-size-eyebrow: 0.75rem;
  --line-height-tight: 1.2;
  --line-height-normal: 1.55;
  --line-height-table: 1.35;
  --letter-spacing-eyebrow: 0.12em;
  --letter-spacing-normal: 0;

  /* --- space, geometry, layout: ours, not the brand's --- */
  --space-0: 0;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --radius-sm: 3px;
  --radius-md: 6px;
  --radius-pill: 999px;
  --shadow-card: 0 2px 6px rgba(0, 26, 53, 0.08);
  --shadow-raised: 0 6px 18px rgba(0, 26, 53, 0.12);
  --accent-stripe: 6px;
  --focus-ring-width: 3px;
  --focus-ring-offset: 2px;
  --layout-measure: 68ch;
  --layout-content-max: 1080px;
  --layout-wide-max: 1600px;
  --layout-masthead-height: 64px;
}
