/*
 * Generated from tokens.json. Do not edit by hand.
 * Consumed by the static HTML article template.
 *
 * Both Flutter (lib/core/theme/tokens.dart) and this file are downstream of
 * static/tokens/tokens.json. If tokens change, regenerate both outputs.
 */

:root,
:root[data-theme='dark'] {
  --bg-canvas: #000000;
  --bg-surface: #0e0e0e;
  --bg-elevated: #1a1a1a;
  --bg-overlay: #2a2a2a;
  --bg-inset: #050505;

  --text-primary: #ffffff;
  --text-secondary: rgba(255, 255, 255, 0.72);
  --text-tertiary: rgba(255, 255, 255, 0.48);
  --text-disabled: rgba(255, 255, 255, 0.24);

  --border-subtle: rgba(255, 255, 255, 0.08);
  --border-default: rgba(255, 255, 255, 0.16);
  --border-strong: rgba(255, 255, 255, 0.32);

  --accent-default: #00843d;
  --accent-hover: #00a04a;
  --accent-pressed: #006b30;
  --accent-subtle: rgba(0, 132, 61, 0.18);
  --accent-on-accent: #ffffff;

  --status-error: #ff5c5c;
  --status-warning: #f5a623;
  --status-info: #4a9eff;
  --status-success: #00a04a;

  --dataviz-1: #00c457;
  --dataviz-2: #ffffff;
  --dataviz-3: #4a9eff;
  --dataviz-4: #f5a623;
  --dataviz-5: #ff5c8a;
  --dataviz-6: #b388ff;
  --dataviz-7: #7ce7b8;
  --dataviz-8: #ffd166;
}

:root[data-theme='light'] {
  --bg-canvas: #ffffff;
  --bg-surface: #fafafa;
  --bg-elevated: #ffffff;
  --bg-overlay: #f0f0f0;
  --bg-inset: #f5f5f5;

  --text-primary: #000000;
  --text-secondary: rgba(0, 0, 0, 0.72);
  --text-tertiary: rgba(0, 0, 0, 0.52);
  --text-disabled: rgba(0, 0, 0, 0.30);

  --border-subtle: rgba(0, 0, 0, 0.08);
  --border-default: rgba(0, 0, 0, 0.16);
  --border-strong: rgba(0, 0, 0, 0.36);

  --accent-default: #00843d;
  --accent-hover: #006b30;
  --accent-pressed: #00532a;
  --accent-subtle: rgba(0, 132, 61, 0.10);
  --accent-on-accent: #ffffff;

  --status-error: #d43838;
  --status-warning: #b5750e;
  --status-info: #1a6cd4;
  --status-success: #006b30;

  --dataviz-2: #000000;
}

:root {
  --family-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --family-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  --text-xs: 12px;
  --text-sm: 14px;
  --text-md: 16px;
  --text-lg: 18px;
  --text-xl: 22px;
  --text-2xl: 28px;
  --text-3xl: 36px;
  --text-4xl: 48px;
  --text-5xl: 64px;

  --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-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-full: 9999px;

  --duration-default: 180ms;
  --duration-page: 240ms;
  --curve-default: cubic-bezier(0.2, 0.8, 0.2, 1);

  --content-max: 1280px;
  --prose-max: 720px;
  --viz-max: 1024px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0ms !important;
    transition-duration: 0ms !important;
  }
}
