/* Interlink design tokens — GENERATED by tokens/tokens.py. Do not edit by hand. */
/* version 1.0.0 · built 2026-09-30 · values locked by _dev/orchestration/DECISIONS.md §3, §4, §6 */

/* Load order: fonts.css → tokens.css → reset.css. No @import: each is its own link,
   so nothing waits on a stylesheet to discover the next one. */

:root {
  color-scheme: light;

  /* surface */
  --il-paper: #F2EFE8;
  --il-paper-raised: #FBF9F5;
  --il-paper-sunk: #E7E2D8;
  /* ink */
  --il-ink: #14120F;
  --il-ink-2: #4A453D;
  --il-ink-muted: #6E665B;
  --il-ink-muted-sunk: #686056;
  /* line */
  --il-rule: #D0C8B6;
  --il-rule-strong: #B3A896;
  --il-rule-raised: #D0C8B6;
  --il-rule-sunk: #B3A896;
  /* accent */
  --il-signal: #C8362A;
  --il-on-signal: #FBF9F5;
  --il-focus: #C8362A;
  /* state */
  --il-selection-bg: #14120F;
  --il-selection-ink: #F2EFE8;
  --il-overlay: rgba(20, 18, 15, 0.55);
  /* data-seq */
  --il-seq-1: #EDE3DA;
  --il-seq-2: #E3C3B7;
  --il-seq-3: #D89C8B;
  --il-seq-4: #CE6A58;
  --il-seq-5: #C8362A;
  /* data-series */
  --il-series-1: #3E4A52;
  --il-series-2: #7A6A4E;
  --il-series-3: #5C5560;
  --il-series-4: #2F5148;
  --il-series-5: #8A4A44;

  /* type — families and axes */
  --il-font-sans: 'Archivo Variable', 'Archivo', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --il-font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
  --il-wght-regular: 400;
  --il-wght-medium: 500;
  --il-wght-semibold: 600;
  --il-wght-bold: 700;
  --il-wdth-condensed: 88%;
  --il-wdth-normal: 100%;
  --il-wdth-display: 100%;
  --il-wdth-wide: 112%;

  /* type — the scale. Each step is a size, a line-height and a tracking. */
  /* display-1: hero — 'The zone is flooded.' */
  --il-text-display-1: clamp(40px, 20.26px + 5.484vw, 108px);
  --il-leading-display-1: 0.93;
  --il-tracking-display-1: -0.03em;
  /* display-2: section opener, report cover */
  --il-text-display-2: clamp(32px, 20.39px + 3.226vw, 72px);
  --il-leading-display-2: 0.96;
  --il-tracking-display-2: -0.026em;
  /* display-3: large pull statement */
  --il-text-display-3: clamp(27px, 20.32px + 1.855vw, 50px);
  --il-leading-display-3: 1.02;
  --il-tracking-display-3: -0.02em;
  /* h1: page title */
  --il-text-h1: clamp(25px, 21.23px + 1.048vw, 38px);
  --il-leading-h1: 1.1;
  --il-tracking-h1: -0.018em;
  /* h2: section heading */
  --il-text-h2: clamp(21px, 18.68px + 0.6452vw, 29px);
  --il-leading-h2: 1.18;
  --il-tracking-h2: -0.014em;
  /* h3: sub-heading, card title */
  --il-text-h3: clamp(18.5px, 17.19px + 0.3629vw, 23px);
  --il-leading-h3: 1.28;
  --il-tracking-h3: -0.008em;
  /* h4: smallest heading; = body weight step */
  --il-text-h4: clamp(16.5px, 15.92px + 0.1613vw, 18.5px);
  --il-leading-h4: 1.35;
  --il-tracking-h4: -0.004em;
  /* body-lg: + standfirst / lede paragraph */
  --il-text-body-lg: clamp(17px, 16.13px + 0.2419vw, 20px);
  --il-leading-body-lg: 1.6;
  --il-tracking-body-lg: 0em;
  /* body: running text */
  --il-text-body: clamp(16px, 15.56px + 0.121vw, 17.5px);
  --il-leading-body: 1.62;
  --il-tracking-body: 0em;
  /* small: captions, footnotes, fine print */
  --il-text-small: clamp(14px, 13.71px + 0.08065vw, 15px);
  --il-leading-small: 1.5;
  --il-tracking-small: 0.002em;
  /* label: THE mono label — section numbers, dates, dataset names, source credits */
  --il-text-label: clamp(12px, 11.71px + 0.08065vw, 13px);
  --il-leading-label: 1.25;
  --il-tracking-label: 0.1em;
  /* label-sm: + table heads, byline chips, badge text */
  --il-text-label-sm: clamp(10.5px, 10.21px + 0.08065vw, 11.5px);
  --il-leading-label-sm: 1.2;
  --il-tracking-label-sm: 0.12em;
  /* code: + code and raw data; lower-case, unlike the labels */
  --il-text-code: clamp(13.5px, 13.21px + 0.08065vw, 14.5px);
  --il-leading-code: 1.6;
  --il-tracking-code: 0em;

  /* space — 4px base */
  --il-space-1: 4px;
  --il-space-2: 8px;
  --il-space-3: 12px;
  --il-space-4: 16px;
  --il-space-5: 24px;
  --il-space-6: 32px;
  --il-space-7: 48px;
  --il-space-8: 64px;
  --il-space-9: 96px;
  --il-space-10: 128px;

  /* shape */
  --il-radius: 0;
  --il-hairline: 1px;

  /* layout */
  --il-container: 1280px;
  --il-container-wide: 1600px;
  --il-container-prose: 68ch;
  --il-gutter: clamp(16px, 4vw, 48px);

  /* focus ring (colour lives with the accent group, per theme) */
  --il-focus-width: 2px;
  --il-focus-offset: 2px;

  /* motion */
  --il-dur-micro: 120ms;
  --il-dur-ui: 200ms;
  --il-dur-ambient: 24s;
  --il-ease: cubic-bezier(.2, 0, 0, 1);

  /* stacking */
  --il-z-field: -1;
  --il-z-base: 0;
  --il-z-sticky: 100;
  --il-z-header: 200;
  --il-z-overlay: 800;
  --il-z-modal: 900;
  --il-z-toast: 950;
  --il-z-tooltip: 1000;
}

/* Dark. Applied by OS preference unless the user has explicitly chosen light, and
   unconditionally by an explicit choice — so `[data-theme]` always wins. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) {
    color-scheme: dark;

    /* surface */
    --il-paper: #0D0C0B;
    --il-paper-raised: #181613;
    --il-paper-sunk: #060605;
    /* ink */
    --il-ink: #EFEAE1;
    --il-ink-2: #B6AEA1;
    --il-ink-muted: #8A8175;
    --il-ink-muted-sunk: #8A8175;
    /* line */
    --il-rule: #332F2B;
    --il-rule-strong: #4C463F;
    --il-rule-raised: #4C463F;
    --il-rule-sunk: #332F2B;
    /* accent */
    --il-signal: #E2503B;
    --il-on-signal: #0D0C0B;
    --il-focus: #E2503B;
    /* state */
    --il-selection-bg: #EFEAE1;
    --il-selection-ink: #0D0C0B;
    --il-overlay: rgba(6, 6, 5, 0.66);
    /* data-seq */
    --il-seq-1: #2A1C18;
    --il-seq-2: #4A2620;
    --il-seq-3: #7B3227;
    --il-seq-4: #AE3F2E;
    --il-seq-5: #E2503B;
    /* data-series */
    --il-series-1: #8FA4B0;
    --il-series-2: #C3AE85;
    --il-series-3: #A198A8;
    --il-series-4: #7FAE9E;
    --il-series-5: #D0928A;
  }
}

:root[data-theme='dark'] {
  color-scheme: dark;

  /* surface */
  --il-paper: #0D0C0B;
  --il-paper-raised: #181613;
  --il-paper-sunk: #060605;
  /* ink */
  --il-ink: #EFEAE1;
  --il-ink-2: #B6AEA1;
  --il-ink-muted: #8A8175;
  --il-ink-muted-sunk: #8A8175;
  /* line */
  --il-rule: #332F2B;
  --il-rule-strong: #4C463F;
  --il-rule-raised: #4C463F;
  --il-rule-sunk: #332F2B;
  /* accent */
  --il-signal: #E2503B;
  --il-on-signal: #0D0C0B;
  --il-focus: #E2503B;
  /* state */
  --il-selection-bg: #EFEAE1;
  --il-selection-ink: #0D0C0B;
  --il-overlay: rgba(6, 6, 5, 0.66);
  /* data-seq */
  --il-seq-1: #2A1C18;
  --il-seq-2: #4A2620;
  --il-seq-3: #7B3227;
  --il-seq-4: #AE3F2E;
  --il-seq-5: #E2503B;
  /* data-series */
  --il-series-1: #8FA4B0;
  --il-series-2: #C3AE85;
  --il-series-3: #A198A8;
  --il-series-4: #7FAE9E;
  --il-series-5: #D0928A;
}

/* An explicit light choice must also restore light on a dark OS. */
:root[data-theme='light'] {
  color-scheme: light;

  /* surface */
  --il-paper: #F2EFE8;
  --il-paper-raised: #FBF9F5;
  --il-paper-sunk: #E7E2D8;
  /* ink */
  --il-ink: #14120F;
  --il-ink-2: #4A453D;
  --il-ink-muted: #6E665B;
  --il-ink-muted-sunk: #686056;
  /* line */
  --il-rule: #D0C8B6;
  --il-rule-strong: #B3A896;
  --il-rule-raised: #D0C8B6;
  --il-rule-sunk: #B3A896;
  /* accent */
  --il-signal: #C8362A;
  --il-on-signal: #FBF9F5;
  --il-focus: #C8362A;
  /* state */
  --il-selection-bg: #14120F;
  --il-selection-ink: #F2EFE8;
  --il-overlay: rgba(20, 18, 15, 0.55);
  /* data-seq */
  --il-seq-1: #EDE3DA;
  --il-seq-2: #E3C3B7;
  --il-seq-3: #D89C8B;
  --il-seq-4: #CE6A58;
  --il-seq-5: #C8362A;
  /* data-series */
  --il-series-1: #3E4A52;
  --il-series-2: #7A6A4E;
  --il-series-3: #5C5560;
  --il-series-4: #2F5148;
  --il-series-5: #8A4A44;
}

body {
  background-color: var(--il-paper);
  color: var(--il-ink);
}

/* Anything built on the duration tokens reduces for free. 1ms rather than 0 so that
   `transitionend` / `animationend` still fire and no component waits forever. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --il-dur-micro: 1ms;
    --il-dur-ui: 1ms;
    --il-dur-ambient: 1ms;
  }
}

