/*
 * @aurbis/ui — design tokens
 *
 * Canonical color, spacing, type, and motion tokens for the Aurbis Annals.
 * Source: aurbis/docs/AESTHETIC.md. Overlays reference these via `var(--name)`.
 *
 * Two visual registers coexist:
 *   - Nordic   — slate/iron/frost-white/cold-gold for chrome, navigation,
 *                interactive surfaces. Default register for the Annals.
 *   - Parchment — aged paper/sepia-ink for written-media surfaces:
 *                 post bodies, public board notices, character archives,
 *                 in-world letter renderings.
 *
 * Register switching is per-section, not per-page. Apply
 * `data-register="parchment"` (or `.register-parchment`) on a container
 * to flip its children to the parchment palette.
 */

:root {
  /* === Nordic register — chrome, panels, navigation, interaction === */
  --ink-slate:        #14181C;
  --ink-panel:        #1C2228;
  --ink-panel-hi:     #232A31;
  --iron-rule:        #3A4048;
  --iron-rule-hi:     #525964;
  --frost-text:       #D9DEE3;
  --frost-text-dim:   #A8AEB6;
  --frost-text-fade:  #8B9098;
  --cold-gold:        #A8822E;
  --cold-gold-hi:     #C9A24A;
  --rune-teal:        #2F4848;
  --blood-faded:      #5A1A15;

  /* === Parchment register — letters, news, ledger, public board === */
  --paper-cream:      #E8DCC0;
  --paper-warm:       #D8C9A3;
  --paper-edge:       #C2B28A;
  --paper-shadow:     #A89B7A;
  --sepia-ink:        #3B2A1C;
  --sepia-ink-hi:     #1E1711;
  --sepia-ink-fade:   #6E5A40;
  --rust:             #8C4A1E;
  --wax-red:          #6E2016;

  /* === Semantic — used across both registers === */
  --ok:               #7A8F3C;
  --warn:             #C9A24A;
  --danger:           #8C3A22;
  --uncertain:        #B89D6E;
  --illegible:        #6B6862;

  /* === Spacing scale === */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;

  /* === Type scale === */
  --size-eyebrow:  0.78rem;
  --size-small:    0.86rem;
  --size-body:     1rem;
  --size-lead:     1.1rem;
  --size-h3:       1.25rem;
  --size-h2:       1.6rem;
  --size-h1:       clamp(2rem, 3.6vw, 2.8rem);
  --size-display:  clamp(2.4rem, 5vw, 3.6rem);

  --line-tight:    1.05;
  --line-snug:     1.25;
  --line-body:     1.5;
  --line-prose:    1.65;

  --track-loose:   0.18em;
  --track-tight:   0.04em;

  /* === Decoration === */
  --rule-width:     1px;
  --rule-color:     var(--iron-rule);
  --rule-color-hi:  var(--iron-rule-hi);
  --shadow-deep:    0 18px 60px rgba(0, 0, 0, 0.45);
  --shadow-panel:   0 10px 30px rgba(0, 0, 0, 0.26);
  --shadow-card:    0 6px 18px rgba(0, 0, 0, 0.22);
  --inset-hi:       inset 0 1px 0 rgba(255, 255, 255, 0.03);

  /* === Motion === */
  --motion-fast:    120ms;
  --motion-base:    200ms;
  --motion-slow:    320ms;
  --ease-out:       cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out:    cubic-bezier(0.4, 0, 0.2, 1);

  /* === Semantic surface mappings (Nordic = default) === */
  --surface-base:   var(--ink-slate);
  --surface-panel:  var(--ink-panel);
  --surface-raised: var(--ink-panel-hi);
  --text-primary:   var(--frost-text);
  --text-secondary: var(--frost-text-dim);
  --text-faint:     var(--frost-text-fade);
  --accent:         var(--cold-gold);
  --accent-hi:      var(--cold-gold-hi);
  --body-font:      var(--font-clean-body);
  --display-font:   var(--font-display);
}

/* Parchment register — flip surface mappings on opt-in containers. */
[data-register="parchment"],
.register-parchment {
  --surface-base:   var(--paper-warm);
  --surface-panel:  var(--paper-cream);
  --surface-raised: var(--paper-cream);
  --text-primary:   var(--sepia-ink);
  --text-secondary: var(--sepia-ink-fade);
  --text-faint:     var(--paper-shadow);
  --accent:         var(--rust);
  --accent-hi:      var(--wax-red);
  --rule-color:     var(--paper-edge);
  --rule-color-hi:  var(--paper-shadow);
  --body-font:      var(--font-parchment-body);
}
