/* tokens.css — GENERATED; do not hand-edit. Source: design-engine/brand.json → design-engine/tools/tokens_build.py. */
@font-face{font-family:'Schib';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/schibstedgrotesk-latin-var.woff2) format('woff2')}
@font-face{font-family:'PSans';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plexsans-latin-400.woff2) format('woff2')}
@font-face{font-family:'PSans';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plexsans-latin-600.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plexmono-latin-400.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plexmono-latin-600.woff2) format('woff2')}
:root{
  color-scheme:dark;
  /* the ledger palette (specs/design-direction.md): warm ink + paper + ONE
     accent — the auditor's vermilion. Family hues survive only as metadata. */
  --ink:#15120D;--ink-2:#0F0D09;--panel:#1C1812;--panel-2:#252017;
  --line:#2B2519;--line-2:#3B3423;--line-3:#524931;
  --text:#F0EADC;--dim:#B9B09B;--faint:#948A72;--body:#D6CFBE;
  --btn:#F0EADC;--btn-fg:#15120D;
  --amber:#DFA355;--amber-2:#EFC183;--fc:#FF6B47;
  --success:#5AB380;--warning:#E09540;--danger:#F0522E;
  /* one severity ramp (COLOR C6/R64), re-keyed onto the ledger palette — the
     hero's S2 chip and Studio's .c-s* both consume these. --sev-3 sits
     deliberately off the ledger amber; --sev-ink is the on-chip ink, AA 4.5+
     on --sev-2 in each theme (SeverityContrastTests pins both). */
  --sev-1:var(--danger);--sev-2:var(--warning);--sev-3:#D9C874;--sev-low:var(--faint);--sev-fixed:var(--success);--sev-ink:#15120D;
  /* text-on-panel variants for the two ramp stops (Studio's .c-s2/.c-fixed):
     dark aliases the fills (they already read as text there); light re-keys
     them onto the paper surfaces. */
  --sev-2-text:var(--sev-2);--sev-fixed-text:var(--sev-fixed);
  /* Primary-action colour convention (HIERARCHY F6): the accent --fc is the
     *browse/navigate* primary; --act (red) is the *commit / act-adjacent*
     primary — the Studio Fixer button, the Act family. In the ledger system
     both live in the vermilion family on purpose: red = flagged / act. */
  --good:var(--success);--act:var(--danger);--up:var(--success);--down:var(--danger);--meta:#C9C0AC;
  --r-sm:2px;--r-md:3px;--r-pill:999px;--radius:2px;
  /* container + rhythm scale (LAYOUT L1/T4 — one source; @media can't take var() so breakpoints stay literal) */
  --w-page:1120px;--w-doc:960px;--w-read:760px;--gutter:24px;--lh-body:1.6;
  /* spacing scale — 4pt base (LAYOUT L2/L4/L6); map off-grid values (9,7,22…) onto it */
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:40px;--s8:48px;--s9:64px;
  --section:64px;--section-tight:48px;
  /* motion (STATES §4) — the one vocabulary already in use, named */
  --dur-press:.1s;--dur-state:.15s;--dur-move:.2s;--dur-enter:.4s;
  --ease:ease;--ease-enter:cubic-bezier(.2,.7,.3,1);
  --disp:'Schib','PSans',system-ui,-apple-system,sans-serif;
  --sans:'PSans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
}
:root[data-theme="light"]{
  color-scheme:light;
  /* the ledger palette (specs/design-direction.md): warm ink + paper + ONE
     accent — the auditor's vermilion. Family hues survive only as metadata. */
  --ink:#F2EFE6;--ink-2:#E9E5D6;--panel:#FAF8F1;--panel-2:#ECE7D8;
  --line:#DCD6C3;--line-2:#C8C1A9;--line-3:#A69D82;
  --text:#1B1810;--dim:#524C3C;--faint:#736B55;--body:#35302A;
  --btn:#1B1810;--btn-fg:#F5F2E9;
  --amber:#8A651E;--amber-2:#A47B2B;--fc:#B93A16;
  --success:#207142;--warning:#8F650E;--danger:#B02E12;
  /* one severity ramp (COLOR C6/R64), re-keyed onto the ledger palette — the
     hero's S2 chip and Studio's .c-s* both consume these. --sev-3 sits
     deliberately off the ledger amber; --sev-ink is the on-chip ink, AA 4.5+
     on --sev-2 in each theme (SeverityContrastTests pins both). */
  --sev-1:var(--danger);--sev-2:var(--warning);--sev-3:#736616;--sev-low:var(--faint);--sev-fixed:var(--success);--sev-ink:#F5F2E9;
  /* text-on-panel variants for the two ramp stops (Studio's .c-s2/.c-fixed):
     dark aliases the fills (they already read as text there); light re-keys
     them onto the paper surfaces. */
  --sev-2-text:#8F650E;--sev-fixed-text:#207142;
  /* Primary-action colour convention (HIERARCHY F6): the accent --fc is the
     *browse/navigate* primary; --act (red) is the *commit / act-adjacent*
     primary — the Studio Fixer button, the Act family. In the ledger system
     both live in the vermilion family on purpose: red = flagged / act. */
  --good:var(--success);--act:var(--danger);--up:var(--success);--down:var(--danger);--meta:#6B6553;
}
/* OS-light users without a stored choice get the light theme by default;
   an explicit data-theme (set by the toggle) always wins, both directions. */
@media (prefers-color-scheme:light){:root:not([data-theme]){
  color-scheme:light;
  /* the ledger palette (specs/design-direction.md): warm ink + paper + ONE
     accent — the auditor's vermilion. Family hues survive only as metadata. */
  --ink:#F2EFE6;--ink-2:#E9E5D6;--panel:#FAF8F1;--panel-2:#ECE7D8;
  --line:#DCD6C3;--line-2:#C8C1A9;--line-3:#A69D82;
  --text:#1B1810;--dim:#524C3C;--faint:#736B55;--body:#35302A;
  --btn:#1B1810;--btn-fg:#F5F2E9;
  --amber:#8A651E;--amber-2:#A47B2B;--fc:#B93A16;
  --success:#207142;--warning:#8F650E;--danger:#B02E12;
  /* one severity ramp (COLOR C6/R64), re-keyed onto the ledger palette — the
     hero's S2 chip and Studio's .c-s* both consume these. --sev-3 sits
     deliberately off the ledger amber; --sev-ink is the on-chip ink, AA 4.5+
     on --sev-2 in each theme (SeverityContrastTests pins both). */
  --sev-1:var(--danger);--sev-2:var(--warning);--sev-3:#736616;--sev-low:var(--faint);--sev-fixed:var(--success);--sev-ink:#F5F2E9;
  /* text-on-panel variants for the two ramp stops (Studio's .c-s2/.c-fixed):
     dark aliases the fills (they already read as text there); light re-keys
     them onto the paper surfaces. */
  --sev-2-text:#8F650E;--sev-fixed-text:#207142;
  /* Primary-action colour convention (HIERARCHY F6): the accent --fc is the
     *browse/navigate* primary; --act (red) is the *commit / act-adjacent*
     primary — the Studio Fixer button, the Act family. In the ledger system
     both live in the vermilion family on purpose: red = flagged / act. */
  --good:var(--success);--act:var(--danger);--up:var(--success);--down:var(--danger);--meta:#6B6553;
}}
button:active{transform:scale(.97)}
button:disabled,[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.f-venture{--fc:#C878F0}.f-product{--fc:#E8B44C}.f-quality{--fc:#E8705F}.f-speed{--fc:#4D9FFF}.f-trust{--fc:#52C280}.f-growth{--fc:#A98CF5}.f-team{--fc:#3FC1C9}.f-clarity{--fc:#9AD4E8}.f-design{--fc:#5CE8A0}.f-data{--fc:#F0904A}.f-ops{--fc:#B4C64A}.f-subtract{--fc:#E87FB0}.f-meta{--fc:#C4CBD8}.f-act{--fc:#E84C3D}.f-agent{--fc:#8B7CF8}.f-automation{--fc:#E8DE5A}.f-ai-ux{--fc:#F06FD8}.f-compliance{--fc:#8892B0}.f-api{--fc:#36B3EC}.f-reliability{--fc:#8CA878}.f-ai-ethics{--fc:#6E8AF0}.f-build{--fc:#8CD94C}.f-mission{--fc:#AA7A55}.f-craft{--fc:#F8D0A8}
:root[data-theme="light"] .f-venture{--fc:color-mix(in srgb,#C878F0 58%,black)}:root[data-theme="light"] .f-product{--fc:color-mix(in srgb,#E8B44C 58%,black)}:root[data-theme="light"] .f-quality{--fc:color-mix(in srgb,#E8705F 58%,black)}:root[data-theme="light"] .f-speed{--fc:color-mix(in srgb,#4D9FFF 58%,black)}:root[data-theme="light"] .f-trust{--fc:color-mix(in srgb,#52C280 58%,black)}:root[data-theme="light"] .f-growth{--fc:color-mix(in srgb,#A98CF5 58%,black)}:root[data-theme="light"] .f-team{--fc:color-mix(in srgb,#3FC1C9 58%,black)}:root[data-theme="light"] .f-clarity{--fc:color-mix(in srgb,#9AD4E8 58%,black)}:root[data-theme="light"] .f-design{--fc:color-mix(in srgb,#5CE8A0 58%,black)}:root[data-theme="light"] .f-data{--fc:color-mix(in srgb,#F0904A 58%,black)}:root[data-theme="light"] .f-ops{--fc:color-mix(in srgb,#B4C64A 58%,black)}:root[data-theme="light"] .f-subtract{--fc:color-mix(in srgb,#E87FB0 58%,black)}:root[data-theme="light"] .f-meta{--fc:color-mix(in srgb,#C4CBD8 58%,black)}:root[data-theme="light"] .f-act{--fc:color-mix(in srgb,#E84C3D 58%,black)}:root[data-theme="light"] .f-agent{--fc:color-mix(in srgb,#8B7CF8 58%,black)}:root[data-theme="light"] .f-automation{--fc:color-mix(in srgb,#E8DE5A 58%,black)}:root[data-theme="light"] .f-ai-ux{--fc:color-mix(in srgb,#F06FD8 58%,black)}:root[data-theme="light"] .f-compliance{--fc:color-mix(in srgb,#8892B0 58%,black)}:root[data-theme="light"] .f-api{--fc:color-mix(in srgb,#36B3EC 58%,black)}:root[data-theme="light"] .f-reliability{--fc:color-mix(in srgb,#8CA878 58%,black)}:root[data-theme="light"] .f-ai-ethics{--fc:color-mix(in srgb,#6E8AF0 58%,black)}:root[data-theme="light"] .f-build{--fc:color-mix(in srgb,#8CD94C 58%,black)}:root[data-theme="light"] .f-mission{--fc:color-mix(in srgb,#AA7A55 58%,black)}:root[data-theme="light"] .f-craft{--fc:color-mix(in srgb,#F8D0A8 58%,black)}@media (prefers-color-scheme:light){:root:not([data-theme]) .f-venture{--fc:color-mix(in srgb,#C878F0 58%,black)}:root:not([data-theme]) .f-product{--fc:color-mix(in srgb,#E8B44C 58%,black)}:root:not([data-theme]) .f-quality{--fc:color-mix(in srgb,#E8705F 58%,black)}:root:not([data-theme]) .f-speed{--fc:color-mix(in srgb,#4D9FFF 58%,black)}:root:not([data-theme]) .f-trust{--fc:color-mix(in srgb,#52C280 58%,black)}:root:not([data-theme]) .f-growth{--fc:color-mix(in srgb,#A98CF5 58%,black)}:root:not([data-theme]) .f-team{--fc:color-mix(in srgb,#3FC1C9 58%,black)}:root:not([data-theme]) .f-clarity{--fc:color-mix(in srgb,#9AD4E8 58%,black)}:root:not([data-theme]) .f-design{--fc:color-mix(in srgb,#5CE8A0 58%,black)}:root:not([data-theme]) .f-data{--fc:color-mix(in srgb,#F0904A 58%,black)}:root:not([data-theme]) .f-ops{--fc:color-mix(in srgb,#B4C64A 58%,black)}:root:not([data-theme]) .f-subtract{--fc:color-mix(in srgb,#E87FB0 58%,black)}:root:not([data-theme]) .f-meta{--fc:color-mix(in srgb,#C4CBD8 58%,black)}:root:not([data-theme]) .f-act{--fc:color-mix(in srgb,#E84C3D 58%,black)}:root:not([data-theme]) .f-agent{--fc:color-mix(in srgb,#8B7CF8 58%,black)}:root:not([data-theme]) .f-automation{--fc:color-mix(in srgb,#E8DE5A 58%,black)}:root:not([data-theme]) .f-ai-ux{--fc:color-mix(in srgb,#F06FD8 58%,black)}:root:not([data-theme]) .f-compliance{--fc:color-mix(in srgb,#8892B0 58%,black)}:root:not([data-theme]) .f-api{--fc:color-mix(in srgb,#36B3EC 58%,black)}:root:not([data-theme]) .f-reliability{--fc:color-mix(in srgb,#8CA878 58%,black)}:root:not([data-theme]) .f-ai-ethics{--fc:color-mix(in srgb,#6E8AF0 58%,black)}:root:not([data-theme]) .f-build{--fc:color-mix(in srgb,#8CD94C 58%,black)}:root:not([data-theme]) .f-mission{--fc:color-mix(in srgb,#AA7A55 58%,black)}:root:not([data-theme]) .f-craft{--fc:color-mix(in srgb,#F8D0A8 58%,black)}}
