/* GENERATED by build/build_tokens.py from design.md — DO NOT EDIT BY HAND. */

:root {
  /* ===== primitive ===== */
  --color-paper-50: #ece6da;
  --color-paper-100: #e4ddcd;
  --color-paper-200: #e0d8c6;
  --color-paper-300: #ddd5c4;
  --color-ink-900: #211d18;
  --color-ink-800: #2a251c;
  --color-ink-700: #3a3426;
  --color-ink-600: #564e3b;
  --color-stone-500: #5b5349;
  --color-stone-400: #8a8073;
  --color-stone-300: #c4b9a2;
  --color-stone-200: #d6cdba;
  --color-fjord-700: #163b2e;
  --color-fjord-600: #1f4d3d;
  --color-fjord-500: #2a6450;
  --color-fjord-400: #4ca88b;
  --color-fjord-300: #6fc1a6;
  --color-fjord-100: #e1eae3;
  --color-amber-600: #9a6a16;
  --color-amber-300: #e6c275;
  --color-amber-100: #f6ead0;
  --color-rust-600: #a8412a;
  --color-rust-300: #e09a86;
  --color-rust-100: #f4dcd4;
  --color-white: #fcfaf5;
  --color-overlay-ink: rgba(20, 18, 13, 0.55);
  --font-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --font-sans: "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --text-xs: 0.78rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.1875rem;
  --text-xl: 1.5rem;
  --text-2xl: 2rem;
  --text-3xl: 2.75rem;
  --text-4xl: 3.75rem;
  --text-5xl: 5rem;
  --leading-tight: 1.08;
  --leading-snug: 1.28;
  --leading-normal: 1.6;
  --tracking-display: -0.02em;
  --tracking-tight: -0.01em;
  --tracking-normal: 0;
  --tracking-wide: 0.06em;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --space-0: 0;
  --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;
  --radius-none: 0;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-pill: 999px;
  --border-hair: 1px;
  --border-thick: 2px;
  --border-ring: 3px;
  --shadow-sm: 0 1px 2px rgba(20, 18, 13, 0.06);
  --shadow-md: 0 4px 16px -4px rgba(20, 18, 13, 0.12);
  --shadow-lg: 0 18px 48px -12px rgba(20, 18, 13, 0.22);
  --ease-standard: cubic-bezier(0.2, 0.7, 0.2, 1);
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-slow: 320ms;
  --size-measure: 66ch;
  --size-container: 72rem;
  --size-container-narrow: 44rem;

  /* ===== semantic (light) ===== */
  --color-bg: var(--color-paper-50);
  --color-surface: var(--color-white);
  --color-surface-sunken: var(--color-paper-100);
  --color-surface-raised: var(--color-white);
  --color-hairline: var(--color-paper-300);
  --color-border-strong: var(--color-stone-300);
  --text-default: var(--color-ink-900);
  --text-muted: var(--color-stone-500);
  --text-subtle: var(--color-stone-400);
  --text-on-accent: var(--color-white);
  --color-action: var(--color-fjord-600);
  --color-action-hover: var(--color-fjord-700);
  --color-action-active: var(--color-fjord-700);
  --color-action-subtle: var(--color-fjord-100);
  --color-link: var(--color-fjord-600);
  --color-focus-ring: var(--color-fjord-500);
  --color-warning: var(--color-amber-600);
  --color-warning-surface: var(--color-amber-100);
  --color-danger: var(--color-rust-600);
  --color-danger-surface: var(--color-rust-100);
  --color-success: var(--color-fjord-600);
  --elevation-sm: var(--shadow-sm);
  --elevation-md: var(--shadow-md);
  --elevation-lg: var(--shadow-lg);

  /* ===== component (light) ===== */
  --button-bg: var(--color-action);
  --button-bg-hover: var(--color-action-hover);
  --button-fg: var(--text-on-accent);
  --button-ghost-fg: var(--text-default);
  --button-ghost-border: var(--color-border-strong);
  --button-radius: var(--radius-md);
  --input-bg: var(--color-surface);
  --input-fg: var(--text-default);
  --input-border: var(--color-border-strong);
  --input-placeholder: var(--text-subtle);
  --input-focus-ring: var(--color-focus-ring);
  --input-radius: var(--radius-md);
  --card-bg: var(--color-surface);
  --card-border: var(--color-hairline);
  --card-shadow: var(--elevation-sm);
  --card-radius: var(--radius-lg);
  --dialog-bg: var(--color-surface-raised);
  --dialog-border: var(--color-hairline);
  --dialog-shadow: var(--elevation-lg);
  --dialog-overlay: var(--color-overlay-ink);
  --dialog-radius: var(--radius-lg);
  --badge-bg: var(--color-action-subtle);
  --badge-fg: var(--color-action-hover);
  --badge-radius: var(--radius-pill);
}

/* Explicit dark override: <html data-theme="dark"> */
[data-theme="dark"] {
  /* semantic */
  --color-bg: var(--color-ink-900);
  --color-surface: var(--color-ink-800);
  --color-surface-sunken: var(--color-ink-900);
  --color-surface-raised: var(--color-ink-700);
  --color-hairline: var(--color-ink-600);
  --color-border-strong: var(--color-stone-500);
  --text-default: var(--color-paper-100);
  --text-muted: var(--color-stone-300);
  --text-subtle: var(--color-stone-400);
  --text-on-accent: var(--color-ink-900);
  --color-action: var(--color-fjord-400);
  --color-action-hover: var(--color-fjord-300);
  --color-action-active: var(--color-fjord-300);
  --color-action-subtle: var(--color-ink-700);
  --color-link: var(--color-fjord-300);
  --color-focus-ring: var(--color-fjord-400);
  --color-warning: var(--color-amber-300);
  --color-warning-surface: var(--color-ink-700);
  --color-danger: var(--color-rust-300);
  --color-danger-surface: var(--color-ink-700);
  --color-success: var(--color-fjord-400);
  --elevation-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --elevation-md: 0 4px 16px -4px rgba(0, 0, 0, 0.5);
  --elevation-lg: 0 18px 48px -12px rgba(0, 0, 0, 0.6);

  /* component */
  --button-bg: var(--color-action);
  --button-bg-hover: var(--color-action-hover);
  --button-fg: var(--text-on-accent);
  --button-ghost-fg: var(--text-default);
  --button-ghost-border: var(--color-border-strong);
  --button-radius: var(--radius-md);
  --input-bg: var(--color-surface-sunken);
  --input-fg: var(--text-default);
  --input-border: var(--color-border-strong);
  --input-placeholder: var(--text-subtle);
  --input-focus-ring: var(--color-focus-ring);
  --input-radius: var(--radius-md);
  --card-bg: var(--color-surface);
  --card-border: var(--color-hairline);
  --card-shadow: var(--elevation-sm);
  --card-radius: var(--radius-lg);
  --dialog-bg: var(--color-surface-raised);
  --dialog-border: var(--color-hairline);
  --dialog-shadow: var(--elevation-lg);
  --dialog-overlay: rgba(0, 0, 0, 0.6);
  --dialog-radius: var(--radius-lg);
  --badge-bg: var(--color-action-subtle);
  --badge-fg: var(--color-action);
  --badge-radius: var(--radius-pill);
}

/* Automatic dark mode unless the document opts out with data-theme="light". */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    /* semantic */
    --color-bg: var(--color-ink-900);
    --color-surface: var(--color-ink-800);
    --color-surface-sunken: var(--color-ink-900);
    --color-surface-raised: var(--color-ink-700);
    --color-hairline: var(--color-ink-600);
    --color-border-strong: var(--color-stone-500);
    --text-default: var(--color-paper-100);
    --text-muted: var(--color-stone-300);
    --text-subtle: var(--color-stone-400);
    --text-on-accent: var(--color-ink-900);
    --color-action: var(--color-fjord-400);
    --color-action-hover: var(--color-fjord-300);
    --color-action-active: var(--color-fjord-300);
    --color-action-subtle: var(--color-ink-700);
    --color-link: var(--color-fjord-300);
    --color-focus-ring: var(--color-fjord-400);
    --color-warning: var(--color-amber-300);
    --color-warning-surface: var(--color-ink-700);
    --color-danger: var(--color-rust-300);
    --color-danger-surface: var(--color-ink-700);
    --color-success: var(--color-fjord-400);
    --elevation-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
    --elevation-md: 0 4px 16px -4px rgba(0, 0, 0, 0.5);
    --elevation-lg: 0 18px 48px -12px rgba(0, 0, 0, 0.6);

    /* component */
    --button-bg: var(--color-action);
    --button-bg-hover: var(--color-action-hover);
    --button-fg: var(--text-on-accent);
    --button-ghost-fg: var(--text-default);
    --button-ghost-border: var(--color-border-strong);
    --button-radius: var(--radius-md);
    --input-bg: var(--color-surface-sunken);
    --input-fg: var(--text-default);
    --input-border: var(--color-border-strong);
    --input-placeholder: var(--text-subtle);
    --input-focus-ring: var(--color-focus-ring);
    --input-radius: var(--radius-md);
    --card-bg: var(--color-surface);
    --card-border: var(--color-hairline);
    --card-shadow: var(--elevation-sm);
    --card-radius: var(--radius-lg);
    --dialog-bg: var(--color-surface-raised);
    --dialog-border: var(--color-hairline);
    --dialog-shadow: var(--elevation-lg);
    --dialog-overlay: rgba(0, 0, 0, 0.6);
    --dialog-radius: var(--radius-lg);
    --badge-bg: var(--color-action-subtle);
    --badge-fg: var(--color-action);
    --badge-radius: var(--radius-pill);
  }
}
