/* Mint UI — the single source of visual tokens. No component rules here. */
:root, :root[data-mint-theme="dark"], [data-mint-theme="dark"] {
  color-scheme: dark;
  --mint-canvas: #0b1118;
  --mint-surface: #121c26;
  --mint-border: #2b404e;
  --mint-text: #e7eef5;
  --mint-muted: #9cb0bf;
  --mint-accent: #63ddc2;
  --mint-on-accent: var(--mint-canvas);
  --mint-control-surface: var(--mint-surface-table-head);
  --mint-control-hover: var(--mint-border);
  --mint-control-active: var(--mint-surface-equation);
  --mint-control-text: var(--mint-text);
  --mint-blue: #b9d9ff;
  --mint-text-heading: var(--mint-blue);
  --mint-text-emphasis: #96e6c5;
  --mint-card-heading-color: var(--mint-accent);
  --mint-lavender: #c7bcf5;
  --mint-lavender-wash: #c7bcf50d;
  --mint-blue-wash: #b9d9ff0d;
  --mint-warning: #e5cc96;
  --mint-warning-surface: #28271f;
  --mint-warning-line: #66573a80;
  --mint-menu-layer: 30;
  --mint-accent-surface: #142c29;
  --mint-link-surface-hover: #193631;
  --mint-link-surface-active: #24483f;
  --mint-selection-surface: var(--mint-link-surface-active);
  --mint-line-divider: rgba(43, 64, 78, .5);
  --mint-prose-quote-line: var(--mint-link-surface-hover);
  --mint-shadow-soft: #00000014;
  --mint-shadow-raised: #00000020;
  --mint-surface-table: #0f1821;
  --mint-surface-section: #101923;
  --mint-surface-formula: #101e25;
  --mint-surface-equation: #152738;
  --mint-surface-row-hover: #162530;
  --mint-surface-group: #172b2a;
  --mint-print-ink: #172b40;
  --mint-surface-expanded: #17302c;
  --mint-print-accent: #176753;
  --mint-surface-row-label-hover: #1a2a35;
  --mint-surface-table-head: #1b2a36;
  --mint-surface-target: #1b3731;
  --mint-line-table: #20313f;
  --mint-surface-control-hover: #203e36;
  --mint-print-blue: #244768;
  --mint-line-equation: #2a465f;
  --mint-line-faint: #2b404e55;
  --mint-line-subtle: #2b404e60;
  --mint-line-soft: #2b404e70;
  --mint-line-surface: #2b404e80;
  --mint-print-body: #344555;
  --mint-line-accent: #36574f;
  --mint-print-muted: #526373;
  --mint-accent-hover-wash: #63ddc208;
  --mint-accent-icon-wash: #63ddc20b;
  --mint-accent-wash: #63ddc20d;
  --mint-accent-icon-hover: #63ddc217;
  --mint-accent-outline-soft: #63ddc218;
  --mint-accent-outline: #63ddc222;
  --mint-text-secondary: #829aab;
  --mint-neutral-wash: #9cb0bf09;
  --mint-text-accent: #b3ffdf;
  --mint-text-body: #bdccd7;
  --mint-text-formula: #c8d8e5;
  --mint-text-table-head: #cbdce7;
  --mint-print-line: #cdd5dd;
  --mint-print-equation: #f1f5f8;
  --mint-decrease: #f4b78e;
  --mint-decrease-wash: #f4b78e0d;
  --mint-print-paper: #fff;
  --mint-sticky-top: 0px;
  --mint-sticky-layer: 8;
  --mint-font: "Nunito", "Zen Maru Gothic", "Yu Gothic UI", Meiryo, sans-serif;
  --mint-radius-card: 28px;
  --mint-radius-header: 24px;
  --mint-radius-panel: 20px;
  --mint-radius-control: 16px;
  --mint-radius-option: 14px;
  --mint-radius-badge: 13px;
  --mint-space-1: 4px;
  --mint-space-2: 8px;
  --mint-space-3: 12px;
  --mint-space-4: 16px;
  --mint-space-5: 20px;
  --mint-space-6: 24px;
  --mint-space-7: 28px;
  --mint-font-body: 1rem;
  --mint-font-label: .875rem;
  --mint-font-meta: .8125rem;
  --mint-line-height: 1.85;
  --mint-ease-out: cubic-bezier(.22, 1, .36, 1);
  --mint-ease-pop: cubic-bezier(.34, 1.35, .64, 1);
  --mint-ease: var(--mint-ease-out);
  --mint-duration-fast: 200ms;
  --mint-duration-control: 250ms;
  --mint-duration-tabs: 400ms;
  --mint-duration-disclosure: 360ms;
  --mint-duration-page: 420ms;
  --mint-shadow-card: 0 12px 36px var(--mint-shadow-soft);
  --mint-shadow-menu: 0 12px 32px var(--mint-shadow-raised);
}
@media (prefers-reduced-motion: reduce) {
  :root, [data-mint-theme="dark"] {
    --mint-duration-fast: 0ms;
    --mint-duration-control: 0ms;
    --mint-duration-tabs: 0ms;
    --mint-duration-disclosure: 0ms;
    --mint-duration-page: 0ms;
  }
}

/* Optional light palette. Dark remains the backwards-compatible default. */
:root[data-mint-theme="light"], [data-mint-theme="light"] {
  color-scheme: light;
  --mint-canvas: #f5f8fa;
  --mint-surface: #ffffff;
  --mint-border: #c8d9dd;
  --mint-text: #1e3442;
  --mint-muted: #526d7c;
  --mint-accent: #167762;
  --mint-blue: #285783;
  --mint-lavender: #69539c;
  --mint-text-emphasis: #216a55;
  --mint-accent-surface: #e2f2eb;
  --mint-link-surface-hover: var(--mint-accent-surface);
  --mint-link-surface-active: var(--mint-surface-control-hover);
  --mint-line-divider: var(--mint-line-subtle);
  --mint-surface-control-hover: #cce8dc;
  --mint-surface-table: #ffffff;
  --mint-surface-section: #f0f5f5;
  --mint-surface-formula: #edf6f3;
  --mint-surface-equation: #e8f1f8;
  --mint-surface-row-hover: #e6f0ee;
  --mint-surface-group: #deede6;
  --mint-surface-expanded: #e0efe8;
  --mint-surface-row-label-hover: #dcece5;
  --mint-surface-table-head: #dfebef;
  --mint-surface-target: #d5ebdf;
  --mint-text-secondary: #617886;
  --mint-text-accent: #185e4c;
  --mint-text-body: #344f60;
  --mint-text-formula: #284b60;
  --mint-text-table-head: #294552;
  --mint-line-table: #c5d8dc;
  --mint-line-equation: #bccfdf;
  --mint-line-faint: #c8d9dd88;
  --mint-line-subtle: #c8d9dda0;
  --mint-line-soft: #c8d9ddc0;
  --mint-line-surface: #c8d9dd;
  --mint-line-accent: #a2c9bc;
  --mint-accent-outline: #16776240;
  --mint-accent-outline-soft: #16776225;
  --mint-decrease: #a65027;
  --mint-decrease-wash: #a650270d;
  --mint-warning: #805810;
  --mint-warning-surface: #faf0d9;
  --mint-warning-line: #dec493;
}
:root {
  --mint-prose-leading: 1.75;
  --mint-prose-paragraph-gap: 1.1em;
  --mint-prose-heading-gap: 1.8em;
  --mint-radius-inline: 6px;
}

/* Optional presentation primitives. Existing body/control defaults stay intact. */
:root, [data-mint-theme] {
  --mint-font-display: var(--mint-font);
  --mint-display-size: clamp(2.75rem, 1.5rem + 4vw, 6.75rem);
  --mint-display-weight: 800;
  --mint-display-leading: 1.3;
  --mint-display-tracking: -.04em;
  --mint-title-size: clamp(2rem, 1.3rem + 2.5vw, 4.5rem);
  --mint-title-leading: 1.5;
  --mint-eyebrow-tracking: .12em;
  --mint-content-width: 1380px;
  --mint-content-gutter: clamp(20px, 4vw, 56px);
  --mint-band-space: clamp(64px, 8vw, 132px);
  --mint-header-glass: color-mix(in srgb, var(--mint-surface) 88%, transparent);
  --mint-header-blur: 20px;
  --mint-header-offset: clamp(12px, 2vw, 28px);
  --mint-header-layer: 20;
  --mint-link-icon-shift: .2em;
  --mint-link-row-space: 26px;
  --mint-reveal-distance: 24px;
  --mint-reveal-duration: 650ms;
  --mint-reveal-delay: 0ms;
}
@media (prefers-reduced-motion: reduce) {
  :root, [data-mint-theme] { --mint-reveal-duration: 0ms; --mint-reveal-delay: 0ms; }
}
