:root {
  color-scheme: light dark;
  --lumi-font-body: "Source Sans 3", Inter, ui-sans-serif, system-ui, -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lumi-font-display: "Space Grotesk", Inter, ui-sans-serif, system-ui, sans-serif;
  --lumi-font-mono: "Cascadia Code", "SFMono-Regular", Consolas, monospace;
  --lumi-font-size-base: 16px;
  --lumi-heading-scale: 1;
  --lumi-control-scale: 1;

  --lumi-text: var(--ink, #182026);
  --lumi-text-muted: var(--ink-soft, #5a6872);
  --lumi-primary: var(--sea, #176b75);
  --lumi-accent: var(--sun, #e58b2b);
  --lumi-danger: var(--rose, #bd4d4d);
  --lumi-success: #23845b;
  --lumi-warning: #a96612;
  --lumi-info: #3479a8;
  --lumi-link: var(--lumi-primary);
  --lumi-surface: var(--card, #ffffff);
  --lumi-surface-subtle: var(--surface-2, #f4f7f8);
  --lumi-surface-raised: var(--surface-3, #edf2f3);
  --lumi-border: var(--border, #d8e0e3);
  --lumi-input-bg: var(--lumi-surface);
  --lumi-input-border: var(--lumi-border);
  --lumi-input-text: var(--lumi-text);
  --lumi-button-bg: var(--lumi-primary);
  --lumi-button-text: #ffffff;
  --lumi-button-hover: color-mix(in srgb, var(--lumi-button-bg) 86%, black);
  --lumi-focus: color-mix(in srgb, var(--lumi-primary) 72%, white);
  --lumi-color-unsaved-bg: color-mix(in srgb, var(--lumi-warning) 13%, var(--lumi-surface));
  --lumi-color-unsaved-border: color-mix(in srgb, var(--lumi-warning) 45%, var(--lumi-border));
  --lumi-color-unsaved-text: var(--lumi-text);
  --lumi-color-unsaved-ring: color-mix(in srgb, var(--lumi-warning) 26%, transparent);
  --lumi-savebar-bg: color-mix(in srgb, var(--lumi-surface) 94%, transparent);
  --lumi-savebar-border: var(--lumi-color-unsaved-border);
  --lumi-savebar-shadow: var(--lumi-shadow-md);

  --lumi-space-scale: 1;
  --lumi-space-1: calc(0.25rem * var(--lumi-space-scale));
  --lumi-space-2: calc(0.5rem * var(--lumi-space-scale));
  --lumi-space-3: calc(0.75rem * var(--lumi-space-scale));
  --lumi-space-4: calc(1rem * var(--lumi-space-scale));
  --lumi-space-5: calc(1.5rem * var(--lumi-space-scale));
  --lumi-space-6: calc(2rem * var(--lumi-space-scale));
  --lumi-space-7: calc(3rem * var(--lumi-space-scale));

  --lumi-radius-sm: calc(var(--lumi-radius, 14px) * 0.58);
  --lumi-radius-md: var(--lumi-radius, 14px);
  --lumi-radius-lg: calc(var(--lumi-radius, 14px) * 1.42);
  --lumi-radius-pill: 999px;
  --lumi-shadow-sm: 0 1px 2px rgba(11, 20, 24, calc(var(--lumi-shadow-strength, 0.14) * 0.7));
  --lumi-shadow-md: 0 12px 34px rgba(11, 20, 24, var(--lumi-shadow-strength, 0.14));
  --lumi-shadow-lg: 0 22px 60px rgba(11, 20, 24, calc(var(--lumi-shadow-strength, 0.14) * 1.15));
  --lumi-transition: 150ms ease;
  --lumi-control-height: calc(2.75rem * var(--lumi-control-scale));
  --lumi-content-max: 1600px;

  /* Compatibility aliases for existing core and plugin styles. */
  --text: var(--lumi-text);
  --muted: var(--lumi-text-muted);
  --primary: var(--lumi-primary);
  --accent: var(--lumi-accent);
  --danger: var(--lumi-danger);
  --success: var(--lumi-success);
  --warning: var(--lumi-warning);
  --info: var(--lumi-info);
  --panel: var(--lumi-surface);
  --panel-2: var(--lumi-surface-subtle);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
