/* Accordo design tokens. The source of truth for colour, type, space and motion: see DESIGN.md. */
@font-face { font-family: "Albert Sans"; src: url("/fonts/albert-sans-400-latin-ext.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Albert Sans"; src: url("/fonts/albert-sans-400-latin.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; src: url("/fonts/ibm-plex-sans-400-latin-ext.woff2") format("woff2"); font-weight: 400 600; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Sans"; src: url("/fonts/ibm-plex-sans-400-latin.woff2") format("woff2"); font-weight: 400 600; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --space-3xs: 2px; --space-2xs: 4px; --space-xs: 8px; --space-sm: 12px; --space-md: 16px; --space-lg: 24px; --space-xl: 40px; --space-2xl: 64px; --space-3xl: 96px; --space-4xl: 144px;
  --text-xs: 0.8125rem; --text-sm: 0.875rem; --text-md: 1.0625rem; --text-lg: 1.25rem; --text-xl: 1.5625rem; --text-2xl: 1.953rem; --text-3xl: 2.441rem;
  --text-display-s: clamp(2.25rem, 4vw + 0.5rem, 3.75rem); --text-display: clamp(2.75rem, 5vw + 1rem, 5.25rem);
  --text-section: clamp(2rem, 2.5vw + 1rem, 3.5rem); --text-title: clamp(1.25rem, 0.75vw + 0.875rem, 1.625rem); --text-lead: clamp(1.125rem, 0.35vw + 1rem, 1.375rem);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1); --ease-in: cubic-bezier(0.7, 0, 0.84, 0); --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 120ms; --dur-short: 220ms; --dur-long: 420ms;
  --container: 1440px; --gutter: 64px; --gap-columns: 32px; --section-gap-s: 120px; --section-gap: 144px; --section-gap-l: 176px;
  --z-base: 1; --z-raised: 10; --z-dropdown: 100; --z-sticky: 200; --z-sticky-nav: 300; --z-modal: 400; --z-toast: 500; --z-tooltip: 600;
}

/* Light: warm violet-tinted paper, Accordo navy ink, Accordo purple as the one signal.
   Also matched by [data-theme="light"], so a light island can sit inside a dark page (the illustration lab does). */
:root, [data-theme="light"] {
  --color-paper: oklch(98.3% 0.004 320); --color-paper-2: oklch(95.8% 0.010 318); --color-paper-3: oklch(92.6% 0.015 316);
  --color-surface: oklch(99.4% 0.002 320);
  --color-ink: oklch(25.5% 0.075 270); --color-ink-2: oklch(37% 0.06 270); --color-muted: oklch(47.5% 0.04 270);
  --color-rule: oklch(88.5% 0.014 300); --color-rule-strong: oklch(78% 0.02 290);
  --color-accent: oklch(39.2% 0.148 321); --color-accent-hover: oklch(33.5% 0.13 321); --color-accent-ink: oklch(98.5% 0.006 320);
  --color-accent-soft: oklch(93.5% 0.03 320);
  --color-focus: oklch(43% 0.19 321);
  --color-seal: oklch(63.4% 0.182 37); --color-seal-ink: oklch(47% 0.15 38); --color-seal-soft: oklch(94.5% 0.03 45);
  --color-band: oklch(25.5% 0.075 270); --color-band-ink: oklch(97% 0.008 300); --color-band-muted: oklch(82% 0.03 290);
  --color-error: oklch(52% 0.19 27); --color-success: oklch(50% 0.12 150);
  --color-scrim: oklch(20% 0.05 270 / 0.62);

  /* Illustration: the commissioned artwork's palette, for scenes built by public/illustration/engine.js. See DESIGN.md. */
  --illo-line: oklch(35.9% 0.044 275); --illo-hatch: oklch(35.9% 0.044 275 / 0.85);
  --illo-paper: oklch(100% 0 0); --illo-tint: oklch(91.7% 0.04 270); --illo-tint-2: oklch(75.3% 0.067 272);
  --illo-shade: oklch(27.7% 0.097 269); --illo-signal: oklch(39.2% 0.148 321); --illo-signal-soft: oklch(92.8% 0.055 319);
  --illo-magenta: oklch(54.6% 0.226 351); --illo-orange: oklch(63.4% 0.182 37); --illo-peach: oklch(84.9% 0.069 34); --illo-sky: oklch(71.2% 0.089 254);
  --illo-blush: oklch(86.1% 0.048 34);
  --font-display: "Albert Sans", ui-sans-serif, system-ui, sans-serif;
  --font-body: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --font-outlier: var(--font-body);
  --display-weight: 700; --weight-body: 400; --weight-strong: 600;
  --radius-card: 12px; --radius-control: 999px; --radius-input: 8px; --radius-pill: 999px; --rule-hair: 1px;
  --shadow-card: 0 1px 2px oklch(25% 0.05 270 / 0.06);
  --shadow-float: 0 18px 50px oklch(25% 0.05 270 / 0.14);
  --tracking-display: -0.035em;
  --control-h: 48px; --control-h-s: 44px;
}

/* Dark: derived, never inverted. Deep navy paper, lavender signal. */
[data-theme="dark"] {
  --color-paper: oklch(18.5% 0.035 270); --color-paper-2: oklch(22% 0.04 270); --color-paper-3: oklch(26% 0.044 270);
  --color-surface: oklch(22.5% 0.041 270);
  --color-ink: oklch(95.5% 0.01 300); --color-ink-2: oklch(87% 0.02 295); --color-muted: oklch(77% 0.03 285);
  --color-rule: oklch(33% 0.04 272); --color-rule-strong: oklch(45% 0.045 275);
  --color-accent: oklch(80.5% 0.1 318); --color-accent-hover: oklch(86% 0.08 318); --color-accent-ink: oklch(21% 0.06 300);
  --color-accent-soft: oklch(30% 0.06 310);
  --color-focus: oklch(80% 0.13 318);
  --color-seal: oklch(72% 0.15 42); --color-seal-ink: oklch(84% 0.1 48); --color-seal-soft: oklch(30% 0.06 40);
  --color-band: oklch(26% 0.044 270); --color-band-ink: oklch(95.5% 0.01 300); --color-band-muted: oklch(80% 0.03 285);
  --color-scrim: oklch(10% 0.03 270 / 0.7);
  /* Same roles as tools/build-illustrations.py RECOLOR: line work goes light, paper goes navy, accents stay. */
  --illo-line: oklch(85.7% 0.035 268); --illo-hatch: oklch(85.7% 0.035 268 / 0.6);
  --illo-paper: oklch(22.1% 0.041 267); --illo-tint: oklch(29% 0.056 266); --illo-tint-2: oklch(46.9% 0.075 270);
  --illo-shade: oklch(69.6% 0.061 270); --illo-signal: oklch(54% 0.185 321); --illo-signal-soft: oklch(31.8% 0.049 310);
  --illo-magenta: oklch(54.6% 0.226 351); --illo-orange: oklch(63.4% 0.182 37); --illo-peach: oklch(48.3% 0.092 37); --illo-sky: oklch(71.2% 0.089 254);
  --illo-blush: oklch(44.1% 0.084 34);
  --shadow-card: none; --shadow-float: 0 18px 50px oklch(5% 0.02 270 / 0.5);
  color-scheme: dark;
}
:root:not([data-theme="dark"]), [data-theme="light"] { color-scheme: light; }
