/* =========================================================================
   Lightstone — Retail Command tokens
   Derived from the Lightstone DIRECT design-system tokens, with the
   Phil-ruled corrections (2026-08-10 / 2026-08-14):
     - site red = #B8232A everywhere (supersedes the DS's #FF3222)
     - pipeline stage color ramp (color encodes STAGE, not market tier)
   ========================================================================= */

@font-face {
  font-family: "HW Nuckle";
  src: url("../assets/fonts/HWNuckle-300.woff2") format("woff2");
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "HW Nuckle";
  src: url("../assets/fonts/HWNuckle-400.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "HW Nuckle";
  src: url("../assets/fonts/HWNuckle-500.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "HW Nuckle";
  src: url("../assets/fonts/HWNuckle-600.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}
/* JetBrains Mono (OFL) — pinned mono voice for overlines/labels, Stage 2 */
@font-face {
  font-family: "JetBrains Mono";
  src: url("../assets/fonts/JetBrainsMono-Regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("../assets/fonts/JetBrainsMono-Medium.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}

:root {
  /* ---- Primary palette ---- */
  --clear-white: #FFFFFF;
  --sand:        #FBF8F3;
  --charcoal:    #191818;
  --red:         #B8232A;   /* Lightstone site red (Phil-ruled 2026-08-10) */

  /* ---- Secondary ---- */
  --champagne:   #DDD8C4;
  --light-gold:  #AFA287;
  --gold:        #8E7E5C;
  --lime:        #CEF7A0;

  /* ---- Extended / functional ---- */
  --red-deep:    #A8000F;   /* deep red — hover/pressed states */
  --panel:       #211F1E;
  --panel-2:     #262422;
  --sand-2:      #F3EEE4;

  --ink-2:       #4A4843;
  --ink-3:       #7A766E;
  --mut:         #B8B2A6;

  --line:        rgba(25, 24, 24, .14);
  --line-d:      rgba(251, 248, 243, .16);

  /* ---- Pipeline stage ramp (ratified 2026-08-14) ----
     Each color used twice per marker: solid ring + same color at 30% fill. */
  --stage-screening: #B8232A;   /* ring 4px  */
  --stage-chasing:   #C05A28;   /* ring 3px — burnt orange (Phil re-ruled 2026-08-18) */
  --stage-uc:        #D98A2B;   /* ring 2.5px — honey gold: under contract = excited */
  --stage-closed:    #3E7A4E;   /* ring 2px — forest green: closed = good */
  --stage-passed:    #C4C8CE;   /* ring 1.5px — vault archive, near-invisible */

  /* ---- Type ---- */
  --font: "HW Nuckle", "Helvetica Neue", Arial, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;
  --fw-regular: 400; --fw-medium: 500; --fw-semibold: 600;

  /* ---- Type scale (design-system sweep, ratified 2026-08-17) ----
     7 sizes / 3 weights. HW Nuckle ships 300-600: NEVER use 700+ (browser
     synthesizes a smeared fake bold). Mono = figures only, never headers. */
  --t-micro:   10px;     /* overlines: th, small labels, badges — mono/500/+0.08em/uppercase */
  --t-title:   11px;     /* card titles — one step above th so cards announce themselves (Stage 2) */
  --t-caption: 11px;     /* sub-lines: city under name, tile subs — 400 */
  --t-body:    13.5px;   /* table cells, kv rows, rail text — 400; emphasis 600 (Stage 2: was 12.5) */
  --t-ui:      14px;     /* nav, tabs, prose, buttons — 500 (Stage 2: was 13) */
  --t-h2:      16px;     /* section heads — 600 */
  --t-h1:      20px;     /* page titles + detail h1 — 600/-0.01em */
  --t-stat:    24px;     /* stat values — 600/-0.02em/tabular */
  --track-micro: 0.06em;
  --track-mono: 0.08em;  /* overlines in mono (cohesion pack 2026-08-18) */

  /* ---- Spacing scale: 4px grid ---- */
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-6: 24px; --s-8: 32px;

  /* ---- Status hues (fold-ins from site.css strays) ---- */
  --green:       #3E7A4E;
  --amber:       #C99A2E;
  --amber-text:  #7a5b00;
  --amber-fill:  #f5e6b8;
  --red-tint:    #FDEFED;
  --nav-faint:   #6b6760;
  --hover-row:   rgba(25, 24, 24, .03);

  /* ---- Layout (cohesion pack, Phil-ratified 2026-08-18) ----
     Radius tiers: 4px badges/chips · 6px buttons/inputs · 8px cards. No exceptions.
     Elevation: cards carry stacked micro-shadows + a 1px inset hairline ring
     (replaces border + single drop — the "blocky" doubled edge). */
  --radius-badge: 4px;
  --radius-ctl: 6px;
  --radius-card: 8px;
  --shadow-card: inset 0 0 0 1px rgba(25, 24, 24, .08),
                 0 1px 1px rgba(0, 0, 0, .02),
                 0 2px 2px rgba(0, 0, 0, .04);
  --shadow-card-lift: inset 0 0 0 1px rgba(25, 24, 24, .12),
                      0 2px 2px rgba(0, 0, 0, .05),
                      0 10px 14px -10px rgba(0, 0, 0, .10);
  --shadow-md: 0 8px 28px rgba(0, 0, 0, .28);

  /* ---- Semantic ---- */
  --bg: var(--charcoal);
  --bg-light: var(--sand);
  --bg-light-alt: var(--sand-2);
  --surface-card: var(--clear-white);
  --surface-panel: var(--panel);
  --text: var(--sand);
  --text-on-light: var(--charcoal);
  --text-muted: var(--mut);
  --text-muted-light: var(--ink-2);
  --text-faint: var(--ink-3);
  --accent: var(--red);
  --accent-hover: var(--red-deep);
  --border: var(--line);
  --border-dark: var(--line-d);
}
