/* Generated by design/build_tokens.py from design/tokens.json. Edit tokens.json, not this file. */
:root {
  color-scheme: light;
  /* colour primitives */
  --c-crimson-950: #1e0509;
  --c-crimson-900: #540014;
  --c-crimson-800: #720119;
  --c-crimson-700: #8c0a25;
  --c-crimson-ink: #2b0a10;
  --c-crimson-muted: #6e1f2b;
  --c-crimson-line: #4a1a22;
  --c-gold-100: #fcf1c7;
  --c-gold-300: #f6d873;
  --c-gold-400: #f0c94a;
  --c-fire: #edbe3a;
  --c-fire-core: #ffe680;
  --c-cream-50: #fffcf3;
  --c-cream-100: #fdf7e4;
  --c-cream-200: #f2e3b6;
  --c-cream-300: #e2cfa6;
  --c-paper: #f6e7c8;
  --c-paper-rule: #dbc99e;
  --c-tag-ink: #400c12;
  --c-white: #ffffff;
  --c-line-light: #e8ddc9;
  --c-status-ok: #1e6b34;
  --c-status-warn: #8a5300;
  --c-status-bad: #b3261e;
  /* colour roles (light) */
  --color-page: var(--c-white);
  --color-text: var(--c-crimson-ink);
  --color-text-muted: var(--c-crimson-muted);
  --color-heading: var(--c-crimson-800);
  --color-link: var(--c-crimson-800);
  --color-border: var(--c-line-light);
  --color-focus: var(--c-crimson-800);
  --color-brand: var(--c-crimson-800);
  --color-on-brand: var(--c-cream-100);
  --color-on-brand-muted: var(--c-cream-200);
  --color-brand-deep: var(--c-crimson-900);
  --color-on-brand-deep: var(--c-cream-100);
  --color-on-brand-deep-muted: var(--c-cream-200);
  --color-focus-on-brand: var(--c-gold-400);
  --color-action: var(--c-gold-400);
  --color-action-hover: var(--c-gold-300);
  --color-on-action: var(--c-crimson-900);
  --color-tag: var(--c-paper);
  --color-on-tag: var(--c-tag-ink);
  --color-tag-rule: var(--c-paper-rule);
  --color-tag-string: var(--c-gold-400);
  --color-fire: var(--c-fire);
  --color-fire-core: var(--c-fire-core);
  --color-success: var(--c-status-ok);
  --color-warning: var(--c-status-warn);
  --color-danger: var(--c-status-bad);
  /* type */
  --font-display: "Young Serif", Georgia, "Times New Roman", serif;
  --font-body: -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, "Noto Sans", "Liberation Sans", Arial, sans-serif;
  --text-sm: 14px;
  --text-base: 16px;
  --text-md: 18px;
  --text-lg: 21px;
  --text-xl: 24px;
  --text-2xl: 36px;
  --text-3xl: 48px;
  --text-4xl: 60px;
  --text-5xl: 72px;
  --leading-display: 1.05;
  --leading-heading: 1.15;
  --leading-sub: 1.25;
  --leading-body: 1.55;
  --leading-lede: 1.5;
  --leading-small: 1.5;
  --leading-label: 1.2;
  --leading-tag: 1.4;
  --leading-step: 1;
  --tracking-display: -0.01em;
  --tracking-label: 0;
  /* space and layout */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --max-width: 1180px;
  --measure: 640px;
  --gutter: max(24px, env(safe-area-inset-left, 0px));
  --size-control: 52px;
  --size-tap: 44px;
  /* edges */
  --radius: 0;
  --border-hairline: 1px;
  --border-strong: 2px;
  --border-focus-width: 3px;
  --border-focus-offset: 3px;
  --border-underline-offset: 3px;
  --motion-hover: 120ms ease-out;
}
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --color-page: var(--c-crimson-950);
    --color-text: var(--c-cream-100);
    --color-text-muted: var(--c-cream-300);
    --color-heading: var(--c-cream-100);
    --color-link: var(--c-gold-400);
    --color-border: var(--c-crimson-line);
    --color-focus: var(--c-gold-400);
  }
}
@media (prefers-reduced-motion: reduce) { :root { --motion-hover: 0s; } }
