/* Fleet agent theme — TYPE tokens (Patron font-identity.md). Generated by generate.py;
   edit there. Pairs with theme.css (colour). The woff2 faces in ./fonts/ are converted
   from the licensed originals in /ai_models/data-sets/fonts. Set data-agent="ngil|homebot|chronicler"
   on <html> to pick the identity colour tokens; the type map is role-based, not per-agent.

   Role map: Untitled Sans Medium = page/sheet titles; Ivory = sign-in; Untitled Sans = structural labels;
   Untitled Sans = UI/user/document text; Akkurat = assistant prose and reply headings;
   Berkeley Mono = marks/metadata; Söhne Mono = code. JMZC wordmark stays Akkurat Black. Every token carries a
   generic fallback so an unloaded face degrades rather than blanks (font-display: swap). */
@font-face { font-family: 'Untitled Sans'; src: url('./fonts/untitled-sans-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Untitled Sans'; src: url('./fonts/untitled-sans-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Untitled Sans'; src: url('./fonts/untitled-sans-medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Untitled Sans'; src: url('./fonts/untitled-sans-medium-italic.woff2') format('woff2'); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: 'Untitled Sans'; src: url('./fonts/untitled-sans-bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Untitled Sans'; src: url('./fonts/untitled-sans-bold-italic.woff2') format('woff2'); font-weight: 700; font-style: italic; font-display: swap; }
@font-face { font-family: 'Ivory LL'; src: url('./fonts/ivory-medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Akkurat LL'; src: url('./fonts/akkurat-light.woff2') format('woff2'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'Akkurat LL'; src: url('./fonts/akkurat-light-italic.woff2') format('woff2'); font-weight: 300; font-style: italic; font-display: swap; }
@font-face { font-family: 'Akkurat LL'; src: url('./fonts/akkurat-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Akkurat LL'; src: url('./fonts/akkurat-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Akkurat LL'; src: url('./fonts/akkurat-bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Akkurat LL'; src: url('./fonts/akkurat-bold-italic.woff2') format('woff2'); font-weight: 700; font-style: italic; font-display: swap; }
@font-face { font-family: 'Akkurat LL'; src: url('./fonts/akkurat-black.woff2') format('woff2'); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Berkeley Mono'; src: url('./fonts/berkeley-mono.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Söhne Mono'; src: url('./fonts/sohne-mono-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Söhne Mono'; src: url('./fonts/sohne-mono-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Söhne Mono'; src: url('./fonts/sohne-mono-semibold.woff2') format('woff2'); font-weight: 600 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Söhne Mono'; src: url('./fonts/sohne-mono-semibold-italic.woff2') format('woff2'); font-weight: 600 900; font-style: italic; font-display: swap; }
:root {
  --font-display: 'Untitled Sans', ui-sans-serif, system-ui, sans-serif;  /* Untitled Sans Medium: page/sheet titles */
  --font-signin: 'Ivory LL', Georgia, 'Times New Roman', serif;  /* Ivory Medium: sign-in only */
  --font-structural: 'Untitled Sans', ui-sans-serif, system-ui, sans-serif;  /* Untitled Sans role: subheadings, field labels, table headers */
  --font-ui: 'Untitled Sans', ui-sans-serif, system-ui, sans-serif;  /* Untitled Sans role: UI, nav, buttons, composer, user text */
  --font-reading: 'Untitled Sans', ui-sans-serif, system-ui, sans-serif;  /* Untitled Sans role: source excerpts and documents */
  --font-answer: 'Akkurat LL', ui-sans-serif, system-ui, sans-serif;  /* Akkurat role: assistant prose and reply headings */
  --font-marks: 'Berkeley Mono', ui-monospace, SFMono-Regular, monospace;  /* marks & metadata */
  --font-code: 'Söhne Mono', ui-monospace, SFMono-Regular, monospace;  /* code & machine text */
  --agent-font: var(--font-ui);  /* backwards-compatible alias for older consumers; not per-agent */
  --font-display-weight: 500;
  --font-structural-weight: 400;
  --font-answer-weight: 300;  /* Akkurat Light answer body (Patron 2026-09-20) */
  --font-answer-bold-weight: 700;
}
