/* ============================================================================
   SIGIL design tokens v1.0 (AVOWAL family, Module 38)
   Canonical spec: /Users/icloudabe/sigil/BRAND.md. Contrast source: brand/_build/contrast.py.
   Family values are copied from ~/aria/avowal_brand/tokens/palette.css v1.0 and
   ~/apparitor/BRAND.md v2 and are never changed here. SIGIL adds light grounds and
   the derived -ink tones only.

   Surfaces (one ground per surface, chosen by role, not by taste):
     Vellum  default for the parent app and the reading sections of sigil.avowal.ai
     Night   the same surfaces when the device is in dark mode (or data-theme="dark")
     Field   the navy brand field: site nav/cover band/footer, verify page, receipts,
             professional portal (dark). Always navy, in both modes. class="field"
     Paper   professional views in light mode. data-surface="paper"
     Print   message reports, printable receipts: white, ink, no colour carries meaning
   ========================================================================== */

:root{
  /* ---- family, exact (do not fork) ---- */
  --navy:#050a1a; --navy-mid:#0a1228; --navy-light:#0f1a38;
  --surface:#0d1630; --surface-2:#111e42;
  --text:#e8edf8; --dim:#7a8aaa; --xdim:#3a4a6a;
  --gold:#f0b429; --cyan:#00d4ff; --green:#27c93f; --red:#ff5f56;
  --border:rgba(0,212,255,.12); --border-hi:rgba(0,212,255,.30); --panel-line:rgba(0,212,255,.14);
  --gold-border:rgba(240,180,41,.22); --green-border:rgba(39,201,63,.28); --red-border:rgba(255,95,86,.26);

  /* ---- SIGIL light grounds (new; neutral, no new hue) ---- */
  --vellum:#f3f3ee;        /* parent app + site reading ground */
  --vellum-deep:#e9e8e1;   /* bands, wells, composer tray; the darkest light ground (all -ink tokens pass on it) */
  --sheet:#fbfbf8;         /* message sheets and cards on vellum */
  --paper:#f4f6fa;         /* professional views, light */
  --white:#ffffff;         /* print only: reports, printable receipts */

  /* ---- ink on light grounds (derived: family hex mixed toward navy, contrast.py) ---- */
  --ink:#050a1a;           /* = navy. 17.72:1 on vellum, 16.05:1 on vellum-deep */
  --ink-2:#414b63;         /* mix(dim 51%, navy). 7.82:1 vellum, 7.09:1 vellum-deep */
  --ink-3:#5a6783;         /* mix(dim 73%, navy). 5.10:1 vellum, 4.62:1 vellum-deep */
  --gold-ink:#7a5f22;      /* mix(gold 50%, navy).  5.41:1 vellum, 4.90:1 vellum-deep */
  --cyan-ink:#036d8a;      /* mix(cyan 49%, navy).  5.30:1 vellum, 4.80:1 vellum-deep */
  --green-ink:#18732e;     /* mix(green 55%, navy). 5.34:1 vellum, 4.84:1 vellum-deep */
  --red-ink:#a84141;       /* mix(red 65%, navy).   5.39:1 vellum, 4.89:1 vellum-deep */
  --rule:rgba(5,10,26,.10); --rule-2:rgba(5,10,26,.18);

  /* ---- washes (state backgrounds; same on every ground) ---- */
  --gold-wash:rgba(240,180,41,.16); --cyan-wash:rgba(0,212,255,.10);
  --green-wash:rgba(39,201,63,.12); --red-wash:rgba(255,95,86,.10);

  /* ---- type ---- */
  --font-display:'Bebas Neue','Arial Narrow',sans-serif;          /* wordmark; professional kickers */
  --font-serif:'EB Garamond',Georgia,'Times New Roman',serif;    /* headlines, the voice */
  --font-body:'Outfit','Helvetica Neue',Arial,sans-serif;        /* everything read or tapped */
  --font-mono:'DM Mono','SF Mono',Menlo,Consolas,monospace;      /* the record, and only the record */

  /* consumer scale: base 18, major third (parent app, consumer sections of the site) */
  --c-record:13px; --c-caption:15px; --c-body:18px; --c-message:18px; --c-lead:22px;
  --c-h3:28px; --c-h2:35px; --c-h1:44px; --c-hero:clamp(44px,7.2vw,84px);
  --c-lh-body:1.6; --c-lh-message:1.6; --c-lh-head:1.08;
  /* professional scale: base 16, major third (portal, reports on screen, professional site sections) */
  --p-fine:12px; --p-caption:13px; --p-body:16px; --p-lead:20px; --p-h3:25px; --p-h2:31px; --p-h1:39px; --p-hero:49px;
  --p-lh-body:1.6;
  --measure:68ch;

  /* ---- shape, space, motion ---- */
  --r-doc:3px;  --r-input:10px; --r-control:12px; --r-card:16px; --r-message:18px; --r-stub:14px; --r-icon:22.5%;
  --space:8px;  --gutter-mobile:16px;
  --dot:10px;  --dot-dense:8px;
  --ease:cubic-bezier(.2,.7,.2,1); --t-press:600ms; --t-verify:600ms;

  /* ---- semantic aliases: VELLUM (default) ---- */
  --bg:var(--vellum); --bg-2:var(--vellum-deep); --raised:var(--sheet);
  --fg:var(--ink); --fg-2:var(--ink-2); --fg-3:var(--ink-3);
  --line:var(--rule); --line-2:var(--rule-2);
  --mark:var(--ink);
  --human:var(--gold);     --human-text:var(--gold-ink);
  --machine:var(--cyan);   --machine-text:var(--cyan-ink);
  --proof:var(--green);    --proof-text:var(--green-ink);
  --refusal:var(--red);    --refusal-text:var(--red-ink);
  --bubble-own:#e5e5e1;    /* navy at 6% over vellum; meta text inside uses --fg-2 (6.90:1) */
  --bubble-in:var(--sheet);
  --btn-ink-bg:var(--ink); --btn-ink-fg:var(--vellum);
  color-scheme:light;
}

/* ---- NIGHT: consumer surfaces follow the device; one-tap manual switch sets data-theme ---- */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:var(--navy-mid); --bg-2:var(--navy); --raised:var(--navy-light);
    --fg:var(--text); --fg-2:var(--dim); --fg-3:var(--dim);
    --line:var(--border); --line-2:var(--border-hi);
    --mark:var(--text);
    --human-text:var(--gold); --machine-text:var(--cyan); --proof-text:var(--green); --refusal-text:var(--red);
    --bubble-own:var(--surface-2); --bubble-in:var(--navy-light);
    --btn-ink-bg:var(--text); --btn-ink-fg:var(--navy);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:var(--navy-mid); --bg-2:var(--navy); --raised:var(--navy-light);
  --fg:var(--text); --fg-2:var(--dim); --fg-3:var(--dim);
  --line:var(--border); --line-2:var(--border-hi);
  --mark:var(--text);
  --human-text:var(--gold); --machine-text:var(--cyan); --proof-text:var(--green); --refusal-text:var(--red);
  --bubble-own:var(--surface-2); --bubble-in:var(--navy-light);
  --btn-ink-bg:var(--text); --btn-ink-fg:var(--navy);
  color-scheme:dark;
}

/* ---- FIELD: the navy brand field. Always navy, in both modes. No glow, no scanlines on consumer pages ---- */
.field,[data-surface="field"]{
  --bg:var(--navy); --bg-2:var(--navy-mid); --raised:var(--surface);
  --fg:var(--text); --fg-2:var(--dim); --fg-3:var(--dim);
  --line:var(--border); --line-2:var(--border-hi);
  --mark:var(--text);
  --human-text:var(--gold); --machine-text:var(--cyan); --proof-text:var(--green); --refusal-text:var(--red);
  --bubble-own:var(--surface-2); --bubble-in:var(--navy-light);
  --btn-ink-bg:var(--text); --btn-ink-fg:var(--navy);
  background:var(--navy); color:var(--text);
  color-scheme:dark;
}

/* ---- PAPER: professional views in light mode (in dark mode they take the Field) ---- */
[data-surface="paper"]{
  --bg:var(--paper); --bg-2:#eaedf1; /* navy 4% over paper */ --raised:var(--white);
  --fg:var(--ink); --fg-2:var(--ink-2); --fg-3:var(--ink-3);
  --line:var(--rule); --line-2:var(--rule-2); --mark:var(--ink);
  --human-text:var(--gold-ink); --machine-text:var(--cyan-ink); --proof-text:var(--green-ink); --refusal-text:var(--red-ink);
  --btn-ink-bg:var(--ink); --btn-ink-fg:var(--white);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) [data-surface="paper"]{
    --bg:var(--navy); --bg-2:var(--navy-mid); --raised:var(--surface);
    --fg:var(--text); --fg-2:var(--dim); --fg-3:var(--dim);
    --line:var(--border); --line-2:var(--border-hi); --mark:var(--text);
    --human-text:var(--gold); --machine-text:var(--cyan); --proof-text:var(--green); --refusal-text:var(--red);
    --btn-ink-bg:var(--text); --btn-ink-fg:var(--navy);
  }
}

/* ---- PRINT: white, ink, 9.5pt mono. Colour never carries meaning on paper ---- */
@media print{
  :root,.field,[data-surface="field"],[data-surface="paper"]{
    --bg:#ffffff; --bg-2:#ffffff; --raised:#ffffff;
    --fg:#050a1a; --fg-2:#414b63; --fg-3:#5a6783; --line:rgba(5,10,26,.18); --line-2:rgba(5,10,26,.30);
    --mark:#050a1a;
    --human-text:#050a1a; --machine-text:#050a1a; --proof-text:#050a1a; --refusal-text:#050a1a;
    background:#ffffff !important; color:#050a1a !important;
  }
}

@media (prefers-reduced-motion:reduce){
  :root{ --t-press:0ms; --t-verify:0ms; }
}
