/* ═══════════════════════════════════════════════════════════════════════════
   __darmaster/css/base/scale.css — THE PLATFORM SCALE CONTRACT (2026-07-16)
   ─────────────────────────────────────────────────────────────────────────────
   ONE file, ONE job: every page served by the platform renders at the SAME
   scale. Created after weeks of "font sizes differ between pages" — the root
   cause was never multiple ladders (the ladder was always single-source); it
   was PAGES THAT NEVER LOADED IT: ~95 static HTML documents (including routed
   pages like /wsj, /know, /certify/...) rendered UNZOOMED — 33% larger than
   every platform page — because the zoom rule lived inside tokens.css, which
   also paints colours/fonts and therefore could never be given to documents
   that have their own designs.

   THE CONTRACT (carved):
     · html { zoom } and the --ui-fs-* ladder are defined HERE and ONLY here.
     · EVERY served page loads this file:
         - platform PHP pages  → automatically, via darx_load_skin() (1st link)
         - static HTML documents → one hand-placed <link> in <head>:
           <link rel="stylesheet" href="/darmaster/__darmaster/css/base/scale.css?v=1">
     · This file contains NO colours, NO font families, NO layout — a document
       keeps its own design; it only gains the platform scale + the ladder vars
       (which apply only where referenced).
     · NEVER re-add zoom or --ui-fs-* definitions to any other file.

   PLATFORM ZOOM (2026-06-26, user "decrease entire platform text by 25%").
   Renders the WHOLE platform at 75% — the equivalent of the user's manual 75%
   browser zoom. Deliberately `zoom`, NOT font-size scaling: it shrinks text +
   layout uniformly AND bypasses the browser's ~14px min-font-size floor
   (shrinking font-size would clamp small text and flatten the hierarchy — the
   recurring "fonts" complaint). Tune the WHOLE platform from this ONE number.
   NOTE for embedded documents: the unified doc viewer neutralises this inside
   its same-origin iframe (zoom already applies to the viewer page itself —
   without the guard the document would double-zoom to 56%).
   ═══════════════════════════════════════════════════════════════════════════ */
html { zoom: 0.75; }

:root {
  /* ── INTERFACE SCALE · ONE KNOB (2026-06-22, user) ─────────────────────────
     A single multiplier for ALL interface text + icons. Set --ui-scale in the
     skin manager (SIZING tab) and everything resizes IN STEP. */
  --ui-scale:    1;   /* SIZING slider knob · 1 = NORMAL. Scales the WHOLE interface. */

  /* 2026-06-25 (user): REAL, FLOOR-AWARE TEXT HIERARCHY. The browser floors
     sub-~14px text, so a VISIBLE hierarchy must sit at/above 14px and step
     UPWARD (titles bigger) — label/micro are differentiated by weight/case,
     not size. All scale-driven by the --ui-scale knob; the wordmark (22px,
     tokens.css --wordmark-fs) stays the single dominant element.
     THIS IS THE ONE PLATFORM SIZE SYSTEM. */
  --ui-fs-display: calc(19px * var(--ui-scale, 1));   /* hero / page titles */
  --ui-fs-title:   calc(16px * var(--ui-scale, 1));   /* section / card titles */
  --ui-fs-value:   calc(14px * var(--ui-scale, 1));   /* body · values · buttons · filenames (at the ~14px floor) */
  --ui-fs-label:   calc(13px * var(--ui-scale, 1));   /* captions · column heads (weight/case-differentiated) */
  --ui-fs-micro:   calc(12px * var(--ui-scale, 1));   /* chips · badges */
}
