/* Composed Glass — design tokens v1.
 * Generated from scripts/generate-tokens.js — do not edit directly.
 * Spec: docs/design/glass-design-language.md + one-language-two-renderers.md */

/* The faces the native shell rasterises with fontdue, served to the web so
 * both renderers draw the same letters — that is what "one language, two
 * renderers" has to mean before it means anything else. SIL OFL, vendored
 * from crates/ikonic_os_shell/assets/fonts, never a CDN.
 *
 * Without these the stacks below fall through to whatever the OS happens to
 * have, which on Linux is DejaVu: the exact failure typography-decision.md
 * was written to stop. Measured before this landed: the published manual
 * reported fontsLoaded = [] and drew in Avenir Next. */
@font-face {
  font-family: "Archivo";
  src: url("fonts/Archivo-SemiBold.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("fonts/Inter-Regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Iosevka";
  src: url("fonts/Iosevka-Regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}

:root {
  --void: oklch(0.18 0.015 260);
  --panel: oklch(0.22 0.02 260);
  --raised: oklch(0.26 0.025 260);
  --line: oklch(0.35 0.03 260);
  --fg: oklch(0.92 0.02 260);
  --muted: oklch(0.65 0.02 260);
  --amber: oklch(0.78 0.14 70);
  --cyan: oklch(0.82 0.12 200);
  --lavender: oklch(0.78 0.13 280);
  --vault: oklch(0.85 0.14 160);
  --alert: oklch(0.68 0.22 20);
  --family-knowledge: color-mix(in oklch, oklch(0.78 0.14 35) 100%, var(--amber));
  --family-library: color-mix(in oklch, oklch(0.78 0.14 83) 100%, var(--amber));
  --family-time: color-mix(in oklch, oklch(0.78 0.14 131) 100%, var(--amber));
  --family-work: color-mix(in oklch, oklch(0.78 0.14 179) 100%, var(--amber));
  --family-system: color-mix(in oklch, oklch(0.78 0.14 227) 100%, var(--amber));
  --family-idle: color-mix(in oklch, var(--family-knowledge) 55%, var(--panel));
  --amber-deep: color-mix(in oklch, var(--amber) 65%, black);
  --amber-idle: color-mix(in oklch, var(--amber) 55%, var(--panel));
  --cyan-idle: color-mix(in oklch, var(--cyan) 55%, var(--panel));
  --lavender-idle: color-mix(in oklch, var(--lavender) 55%, var(--panel));
  --vault-idle: color-mix(in oklch, var(--vault) 55%, var(--panel));
  --amber-latched: color-mix(in oklch, var(--amber) 85%, white);
  --cyan-latched: color-mix(in oklch, var(--cyan) 85%, white);
  --focused: color-mix(in oklch, var(--cyan) 30%, var(--panel));
  --ghost: color-mix(in oklch, var(--fg) 12%, transparent);
  --on-amber: oklch(0.22 0.04 70);
  --on-cyan: oklch(0.18 0.03 200);
  --font-display: "Archivo", "Archivo Variable", sans-serif;
  --font-body: "Inter", "Inter Variable", sans-serif;
  --font-data: "Iosevka", ui-monospace, monospace;
  --fs-1: 0.62rem;
  --fs-2: 0.68rem;
  --fs-3: 0.78rem;
  --fs-4: 0.88rem;
  --fs-5: 1rem;
  --fs-6: 1.35rem;
  --fs-7: 1.9rem;
  --track-wide: 0.18em;
  --track-label: 0.14em;
  --track-tight: 0.01em;
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --r-card: 2px;
  --r-rail: 22px;
  --r-elbow: 18px;
  --t-sweep: 140ms;
  --t-stagger: 50ms;
}
