/*
 * ═══════════════════════════════════════════════════════════════
 * TESSERACTIC — DESIGN TOKENS
 * ═══════════════════════════════════════════════════════════════
 *
 * Version:   0.2
 * Date:      29 September 2026 (0.1: 30 April 2026)
 * Author:    Diane — Creative Director, Saint Clair Pte. Ltd.
 * Source:    Tesseractic Étude 00 — Principles & System
 *
 * Purpose:   Single source of truth for all Tesseractic design
 *            tokens. Every Tesseractic stylesheet imports this file.
 *
 * Hierarchy: Layer 0 (Foundation)
 *            └─ Imported by: tesseractic-base.css (Layer 1)
 *               ├─ tesseractic-web.css   (Layer 2a — Websites)
 *               └─ tesseractic-docs.css  (Layer 2b — A4 print / PDF)
 *
 * Discipline: --t-* variables only. Never reference --sc-*.
 *             Brand boundary enforced by namespace.
 *
 * ═══════════════════════════════════════════════════════════════
 */


/* =================================================================
   FONTS
   Two voices: Jost (display + body) + Space Mono (system).
   GT Sectra is amputated entirely from Tesseractic.
   ================================================================= */

/* Self-hosted (29 September 2026): no request leaves the page for a
   font host, so the privacy notice has nothing to disclose about fonts.
   Files in assetsc/fonts/, copied from the Saint Clair platform set. */

@font-face { font-family: 'Jost'; font-style: normal; font-weight: 300; font-display: swap; src: url('../fonts/jost/Jost-Light.woff2') format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/jost/Jost-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/jost/Jost-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/jost/Jost-SemiBold.woff2') format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/jost/Jost-Bold.woff2') format('woff2'); }
@font-face { font-family: 'Space Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/space-mono/SpaceMono-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Space Mono'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/space-mono/SpaceMono-Bold.woff2') format('woff2'); }


/* =================================================================
   DESIGN TOKENS
   ================================================================= */

:root {

  /* ── Dark-pine register — digital, terminal, screen ─────── */
  --t-pine:               #0F1E14;   /* Ground. One ground, no tonal elevation. */
  --t-stone:              #FAF9F5;   /* Primary text on dark. Cream — same hex as Saint Clair, deliberate family resemblance. */
  --t-mint:               #96D1AA;   /* Penetrating-plane accent. Inherited from existing mark. */
  --t-mute:               #6B7C72;   /* Muted text on dark — metadata, captions, timestamps. */

  /* ── Bleached register — print, paper, stone ────────────── */
  --t-stone-ground:       #E8E4D8;   /* Mistral-bleached limestone. Cooler than cream. */
  --t-pine-deep:          #1E3024;   /* Primary text on stone. */
  --t-pine-mid:           #4A7A5A;   /* Penetrating-plane accent on stone. */
  --t-mute-light:         #8A8B82;   /* Muted text on stone. */

  /* ── Cross-register constant ─────────────────────────────── */
  --t-pastis:             #C9A54A;   /* System amber. Rules, borders, tag fills, tabular numerals. NEVER a polygon fill on the mark. */

  /* ── Pastis at opacity ───────────────────────────────────── */
  --t-pastis-10:          rgba(201, 165, 74, 0.10);
  --t-pastis-18:          rgba(201, 165, 74, 0.18);
  --t-pastis-40:          rgba(201, 165, 74, 0.40);

  /* ── Pine at opacity (dark register) ─────────────────────── */
  --t-pine-10:            rgba(15, 30, 20, 0.10);
  --t-pine-50:            rgba(15, 30, 20, 0.50);

  /* ── Pine-deep at opacity (bleached register dividers) ───── */
  --t-pine-deep-12:       rgba(30, 48, 36, 0.12);
  --t-pine-deep-18:       rgba(30, 48, 36, 0.18);


  /* ── Typography stack ───────────────────────────────────── */
  --t-font-primary:       'Jost', system-ui, -apple-system, sans-serif;
  --t-font-mono:          'Space Mono', 'SF Mono', Consolas, monospace;

  /* ── Weights ─────────────────────────────────────────────── */
  --t-w-light:            300;       /* Body text */
  --t-w-regular:          400;       /* Body emphasis */
  --t-w-medium:           500;       /* Section labels, secondary headings */
  --t-w-semi:             600;       /* Wordmark contender */
  --t-w-bold:             700;       /* Display, hero, wordmark canonical */
  --t-w-black:            800;       /* Hero scale display */

  /* ── Tracking — lapidary scale ───────────────────────────── */
  --t-track-tight:        -0.01em;
  --t-track-normal:       0;
  --t-track-wide:         0.04em;    /* Mono labels, table cells */
  --t-track-wider:        0.16em;    /* Section labels, footers */
  --t-track-lapidary:     0.20em;    /* Canonical for Jost caps. Wordmark default. */
  --t-track-lapidary-22:  0.22em;    /* Hero scale Jost caps. */
  --t-track-display:      0.06em;    /* Jost caps set as a sentence at display size (36 px and above): claims and page titles. At 0.20em a 60 px line of caps loses a third of its width (Diane, 30 Sep 2026). */
  --t-track-display:      0.06em;    /* Hero display headlines (large scale, less aggressive). */

  /* ── Spacing scale ───────────────────────────────────────── */
  --t-space-1:            0.25rem;   /*  4px */
  --t-space-2:            0.5rem;    /*  8px */
  --t-space-3:            0.75rem;   /* 12px */
  --t-space-4:            1rem;      /* 16px */
  --t-space-6:            1.5rem;    /* 24px */
  --t-space-8:            2rem;      /* 32px */
  --t-space-12:           3rem;      /* 48px */
  --t-space-16:           4rem;      /* 64px */
  --t-space-24:           6rem;      /* 96px */
  --t-space-32:           8rem;      /* 128px */

  /* ── Page indent (web — overridden in docs.css for print) ─ */
  --t-indent:             56px;

  /* ── Mark stroke widths ──────────────────────────────────── */
  --t-mark-stroke:        10;        /* Filled treatment — original tesseractic.com value. */
  --t-mark-stroke-out:    14;        /* Outlined treatment — heavier for visibility at small scale. */

  /* ── Pastis rule widths ──────────────────────────────────── */
  --t-rule-short:         24px;
  --t-rule-mid:           40px;
  --t-rule-long:          56px;
  --t-rule-height:        1.5px;     /* Default rule weight */


  /* ── Platform additions (0.2, 29 September 2026) ─────────── */
  --t-mute-hi:            #93A399;   /* Small text on pine. --t-mute measures 3.9 : 1, below 4.5 : 1 for text under 18px; this measures 6.3 : 1. */
  --t-stone-80:           rgba(250, 249, 245, 0.80);
  --t-stone-06:           rgba(250, 249, 245, 0.06);
  --t-pastis-deep:        #A6832F;   /* Chart only: the second series. Against mint on pine: deutan ΔE 19.2, normal ΔE 21.3; 4.9 : 1 on pine. */
  --t-pastis-25:          rgba(201, 165, 74, 0.25);
  --t-mint-12:            rgba(150, 209, 170, 0.12);
  --t-pine-anchor:        #467255;   /* The mark's anchor pane (cls-4) on pine: 3.1 : 1 to ground, 3.2 : 1 to mint, 5.3 : 1 to cream. */
  --t-gutter:             40px;      /* Application shell side gutter. */
  --t-bar-h:              60px;      /* Application bar height. */

}


/* =================================================================
   MOBILE OVERRIDE — page indent
   ================================================================= */

@media (max-width: 720px) {
  :root {
    --t-indent:           24px;
    --t-gutter:           16px;
    --t-bar-h:            56px;
  }
}
