:root {
  --cx-ground:        #f5f2ef;
  --cx-panel:         #ffffff;
  --cx-panel-sunken:  #fbf9f7;
  --cx-line:          #e6e1dc;
  --cx-line-2:        #f0ece8;
  --cx-line-strong:   #d6cfc7;
  --cx-ink:    #1c1b1a;
  --cx-ink-2:  #5d5952;
  --cx-ink-3:  #736e66;
  --cx-ink-on-accent: #ffffff;
  --cx-ink-on-vivid:  #ffffff;
  --cx-accent:        #1c1b1a;
  --cx-accent-hover:  #3a3733;
  --cx-accent-bright: #b8b2a9;
  --cx-accent-wash:   #f6f4f1;
  --cx-accent-quiet:  #35312d;
  --cx-canon:      #35786f;  --cx-canon-wash: #e9f2f0;
  --cx-working:    #656d7a;  --cx-working-wash:#eef0f2;
  --cx-ok:         #2d794d;  --cx-ok-wash:    #e7f0e9;
  --cx-warn:       #8a6508;  --cx-warn-wash:  #faf3e0;
  --cx-error:      #b23f34;  --cx-error-wash: #fdeeec;
  --cx-info:       #3b6ea5;  --cx-info-wash:  #e8eef6;
  --cx-ai:      var(--cx-accent-wash);
  --cx-ai-line: color-mix(in oklab, var(--cx-accent-bright) 35%, var(--cx-accent-wash));
  --cx-ai-ink:  var(--cx-accent-quiet);
  --cx-cat-1: var(--cx-obj-orange);
  --cx-cat-2: var(--cx-obj-blue);
  --cx-cat-3: var(--cx-obj-yellow);
  --cx-cat-4: var(--cx-ink-3);
  --cx-cat-5: var(--cx-line);
  --cx-obj-orange: #f24c00;  --cx-obj-orange-deep: #eb3100;
  --cx-obj-blue:   #4bb3fd;  --cx-obj-blue-deep:   #3098fc;
  --cx-obj-yellow: #ffc738;  --cx-obj-yellow-deep: #ffb122;
  --cx-obj-pink:   #f28ba8;  --cx-obj-pink-deep:   #eb6b8b;
  --cx-series-1: #2d92f2;
  --cx-series-2: #f34f0b;
  --cx-font:         Figtree, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --cx-font-display: "Bricolage Grotesque", var(--cx-font);
  --cx-font-figure:  "Departure Mono", ui-monospace, monospace;
  --cx-font-mono:    ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --cx-display: 60px;
  --cx-h1:      25px;
  --cx-h2:      18px;
  --cx-h3:      14.5px;
  --cx-body:    13.5px;
  --cx-sm:      12px;
  --cx-xs:      10.5px;
  --cx-w-regular: 400;
  --cx-w-medium:  500;
  --cx-w-semi:    600;
  --cx-w-bold:    700;
  --cx-lh-display: 1.02;
  --cx-lh-tight:   1.25;
  --cx-lh-snug:    1.4;
  --cx-lh-normal:  1.55;
  --cx-tr-display: -.035em;
  --cx-tr-heading: -.015em;
  --cx-tr-normal:  0;
  --cx-tr-wide:    .09em;
  --cx-s1: 4px;   --cx-s2: 8px;   --cx-s3: 12px;  --cx-s4: 16px;
  --cx-s5: 24px;  --cx-s6: 32px;  --cx-s7: 48px;  --cx-s8: 64px;
  --cx-radius-sm:    6px;
  --cx-radius-md:    9px;
  --cx-radius-lg:    12px;
  --cx-radius-panel: 16px;
  --cx-radius-modal: 18px;
  --cx-radius-pill:  999px;
  --cx-row-comfortable: 44px;
  --cx-row-compact:     32px;
  --cx-row: var(--cx-row-comfortable);
  --cx-shadow-none:    none;
  --cx-shadow-hover:   0 4px 14px rgb(28 27 26 / .07);
  --cx-shadow-popover: 0 4px 14px rgb(28 27 26 / .09), 0 1px 2px rgb(28 27 26 / .05);
  --cx-shadow-modal:   0 24px 60px rgb(28 27 26 / .22);
  --cx-shadow-card:    0 .5px .5px rgb(28 27 26 / .10), 0 0 0 .5px rgb(28 27 26 / .04);
  --cx-focus-ring: 0 0 0 1px var(--cx-panel), 0 0 0 3px var(--cx-accent);
  --cx-focus-outline: 2px solid var(--cx-accent);
  --cx-focus-offset:  2px;
  --cx-scrim: rgb(28 27 26 / .28);
  --cx-scrim-blur: 3px;
  --cx-chrome-top: 0px;
  --cx-motion-w: 96px;
  --cx-motion-w-lg: calc(var(--cx-motion-w) * 2);
  --cx-motion-face: var(--cx-accent);
  --cx-motion-accent: var(--cx-obj-orange);
  --cx-spark-y: 0;
  --cx-bar-v: 0;
  --cx-bar-t: -1;
  --cx-bar-v2: 0;
  --cx-bars-t: 0;
  --cx-seg: 0%;
  --cx-costbar-tick: 100%;
  --cx-chart-radius:    4px;
  --cx-chart-tip:       8px;
  --cx-chart-outline:     1px;
  --cx-chart-outline-ink: #1c1b1a;
  --cx-chart-stroke:    2px;
  --cx-chart-stroke-sm: 1.5px;
  --cx-chart-hair:      1px;
  --cx-chart-dot:       4px;
  --cx-chart-ring:      2px;
  --cx-plot-h:    196px;
  --cx-cell-h:    72px;
  --cx-plot-row:  30px;
  --cx-bars-max:  560px;
  --cx-trend-floor: 5;
  --cx-band-floor: 8;
  --cx-swatch-step: 50;
  --cx-lattice-cell:  19px;
  --cx-lattice-band:  11px;
  --cx-lattice-label: 10px;
  --cx-lattice-max-rows: 13;
  --cx-dur-fast: 120ms;
  --cx-dur:      140ms;
  --cx-dur-slow: 240ms;
  --cx-hover-grace:  800ms;
  --cx-hover-intent: 300ms;
  --cx-ease:        cubic-bezier(.2, 0, 0, 1);
  --cx-ease-in-out: cubic-bezier(.4, 0, .2, 1);
}
[data-theme="dark"] {
  --cx-ground:        #141312;
  --cx-panel:         #1e1d1c;
  --cx-panel-sunken:  #191817;
  --cx-line:          #302e2c;
  --cx-line-2:        #262423;
  --cx-line-strong:   #423f3c;
  --cx-ink:    #f2f0ec;
  --cx-ink-2:  #a8a29a;
  --cx-ink-3:  #8a847b;
  --cx-ink-on-accent: #1c1b1a;
  --cx-accent:        #f2f0ec;
  --cx-accent-hover:  #ffffff;
  --cx-accent-bright: #6b655d;
  --cx-accent-wash:   #2a2826;
  --cx-accent-quiet:  #e8e4de;
  --cx-canon:      #4fa89c;  --cx-canon-wash:  #1c2f2d;
  --cx-working:    #98a0ad;  --cx-working-wash:#24262a;
  --cx-ok:         #56b07a;  --cx-ok-wash:     #1a2b21;
  --cx-warn:       #d1a13c;  --cx-warn-wash:   #33291a;
  --cx-error:      #e08379;  --cx-error-wash:  #33211f;
  --cx-info:       #7aa8db;  --cx-info-wash:   #1c2733;
  --cx-ai-line: color-mix(in oklab, var(--cx-accent-bright) 12%, var(--cx-accent-wash));
  --cx-series-1: #3598f9;
  --cx-series-2: #f34f0b;
  --cx-shadow-hover:   0 4px 14px rgb(0 0 0 / .45);
  --cx-shadow-popover: 0 4px 14px rgb(0 0 0 / .5), 0 1px 2px rgb(0 0 0 / .4);
  --cx-shadow-modal:   0 24px 60px rgb(0 0 0 / .65);
  --cx-shadow-card:    0 .5px .5px rgb(0 0 0 / .5), 0 0 0 .5px rgb(255 255 255 / .06);
  --cx-scrim: rgb(0 0 0 / .5);
}
[data-density="compact"] { --cx-row: var(--cx-row-compact); }
@media (prefers-reduced-motion: reduce) {
  :root { --cx-dur-fast: 0ms; --cx-dur: 0ms; --cx-dur-slow: 0ms; }
}
