/* Tenax Labs — design tokens as CSS custom properties.
 * GENERATED from design/tenax.tokens.json (W3C DTCG v1) — the source of truth.
 * Do NOT hand-edit values; change the tokens and regenerate.
 * House aesthetic: dark muted-cyberpunk. Default theme = dark; light is a per-vertical sibling.
 */
:root {
  /* Type system — shared by every vertical, never overridden. */
  --font-serif: 'Instrument Serif', Georgia, serif;
  --font-sans:  'Hanken Grotesk', system-ui, sans-serif;
  --font-mono:  'IBM Plex Mono', ui-monospace, monospace;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 650;

  /* Relative spacing — enum to rem. Pixels are never a valid value. */
  --space-none: 0rem;
  --space-tight: 0.375rem;
  --space-normal: 0.75rem;
  --space-loose: 1.5rem;

  /* Type ramp. */
  --size-display: clamp(2.8rem, 7vw, 5rem);
  --size-title:   clamp(1.9rem, 4vw, 2.6rem);
  --size-heading: 1.25rem;
  --size-body:    1.0625rem;
  --size-small:   0.9375rem;
  --size-micro:   0.75rem;

  /* Signal — gold, SHARED across all verticals. CTAs / status / the one focal thing only;
     never decoration, never body text. */
  --color-gold:        #E3B25A;
  --color-gold-bright: #F2CB7E;  /* hover / glint only */
  --color-gold-weak:   #2A2418;  /* gold-tinted fill for pills/badges on dark */

  /* Mood — the ONE per-vertical knob. Override --color-mood-current per vertical. */
  --color-mood-tenax:     #AC8FE2;
  --color-mood-herald:    #7FA6E6;
  --color-mood-financial: #5FBFA0;
  --color-mood-legal:     #C77E9A;
  --color-mood-current:   var(--color-mood-tenax);  /* default = house */

  /* Endorsement mark — FIXED amethyst->gold on EVERY vertical (parent signal stays constant). */
  --gradient-endorsement: linear-gradient(135deg, var(--color-mood-tenax), var(--color-gold));
  /* Vertical mark — active mood -> gold (e.g. azure->gold for Herald). */
  --gradient-mark: linear-gradient(135deg, var(--color-mood-current), var(--color-gold));
}

/* Theme is a DIMENSION. Default (no attribute) = dark. */
:root,
[data-theme="dark"] {
  --bg:         #1A1822;
  --surface:    #221F2D;
  --lift:       #2A2636;
  --sunken:     #151320;
  --text:       #ECEAF2;   /* all body copy uses this, never an accent */
  --text-dim:   #9A93AD;
  --text-faint: #6E677F;
  --rule:       #302B40;
  --rule-soft:  #272235;
  --accent:     var(--color-mood-current);
  --warn:       #E07A55;
  --good:       #5FBF93;
}

/* Light is a per-vertical SIBLING — base placeholders. Verticals author real values
 * (see design/herald.css for Herald's authored reading canvas). */
[data-theme="light"] {
  --bg:         #FAF7F1;
  --surface:    #FFFFFF;
  --lift:       #F3EEE5;
  --text:       #1C1814;
  --text-dim:   #6C655B;
  --rule:       #E7E0D3;
  --accent:     var(--color-mood-current);
  --warn:       #9A3F1E;
  --good:       #2E6B4E;
}

/* Composite typography roles (family + size + weight + leading). */
.t-display { font-family: var(--font-serif); font-size: var(--size-display); font-weight: var(--weight-regular); line-height: 1.0; letter-spacing: 0.005em; }
.t-heading { font-family: var(--font-serif); font-size: var(--size-heading); font-weight: var(--weight-regular); line-height: 1.3; }
.t-body    { font-family: var(--font-sans);  font-size: var(--size-body);    font-weight: var(--weight-regular); line-height: 1.6; }
.t-label   { font-family: var(--font-mono);  font-size: var(--size-micro);   font-weight: var(--weight-medium);  line-height: 1.4; letter-spacing: 0.14em; text-transform: uppercase; }
