/*!
 * Kohort iQ — design tokens
 * Generated by design/scripts/build-tokens.mjs from design/colour/palette.json.
 * Do not edit by hand: run the script.
 *
 * Two layers. The ramps are the palette; the semantic tokens are the API.
 * Product code should use the semantic tokens (--kiq-surface-page, --kiq-ink-primary)
 * so that switching theme is a re-map, not a rewrite.
 *
 * Theme: light by default; dark via [data-theme="dark"], or automatically when
 * the visitor prefers dark and has not chosen a theme explicitly.
 */

/* ------------------------------------------------------------- 1. palette */
:root {
  --kiq-petrol-50: #EAF7FC;
  --kiq-petrol-100: #D7EAF1;
  --kiq-petrol-200: #BBD4DE;
  --kiq-petrol-300: #9CBCC8;
  --kiq-petrol-400: #82A5B2;
  --kiq-petrol-500: #6B8F9D;
  --kiq-petrol-600: #507785;
  --kiq-petrol-700: #375F6D;
  --kiq-petrol-800: #1E4957;
  --kiq-petrol-900: #023341;
  --kiq-petrol-950: #00222C;
  --kiq-coral-50: #FFF0F2;
  --kiq-coral-100: #FFDCE0;
  --kiq-coral-200: #FFBAC4;
  --kiq-coral-300: #FF8FA3;
  --kiq-coral-400: #F26B87;
  --kiq-coral-500: #F76C89;
  --kiq-coral-600: #BC395A;
  --kiq-coral-700: #9D2044;
  --kiq-coral-800: #7F0231;
  --kiq-coral-900: #5A0120;
  --kiq-coral-950: #3E0014;
  --kiq-harbour-50: #ECF6FE;
  --kiq-harbour-100: #D4EAFA;
  --kiq-harbour-200: #B7D4EA;
  --kiq-harbour-300: #97BBD6;
  --kiq-harbour-400: #7EA4C0;
  --kiq-harbour-500: #668EAB;
  --kiq-harbour-600: #4D7592;
  --kiq-harbour-700: #244D69;
  --kiq-harbour-800: #1F4762;
  --kiq-harbour-900: #09314A;
  --kiq-harbour-950: #002034;
  --kiq-slate-0: #FFFFFF;
  --kiq-slate-50: #F8FBFC;
  --kiq-slate-100: #EDF1F3;
  --kiq-slate-200: #DBE1E3;
  --kiq-slate-300: #C5CCD0;
  --kiq-slate-400: #A9B1B5;
  --kiq-slate-500: #8C9498;
  --kiq-slate-600: #6E767A;
  --kiq-slate-650: #60686C;
  --kiq-slate-700: #525A5E;
  --kiq-slate-800: #3B4145;
  --kiq-slate-900: #262C2F;
  --kiq-slate-950: #151A1C;
  --kiq-bone-50: #FEFCF8;
  --kiq-bone-100: #FAF8F2;
  --kiq-bone-200: #F4F1E9;
  --kiq-bone-300: #ECE7DF;
  --kiq-success-50: #E3FCEC;
  --kiq-success-100: #CBF1D9;
  --kiq-success-200: #A7DFBD;
  --kiq-success-300: #7DC99E;
  --kiq-success-400: #63B286;
  --kiq-success-500: #4A9C70;
  --kiq-success-600: #318259;
  --kiq-success-700: #176943;
  --kiq-success-800: #005130;
  --kiq-success-900: #003820;
  --kiq-success-950: #002513;
  --kiq-success-name: lichen;
  --kiq-warning-50: #FFF3DE;
  --kiq-warning-100: #FCE3B7;
  --kiq-warning-200: #EDCA8B;
  --kiq-warning-300: #DCAE54;
  --kiq-warning-400: #C59633;
  --kiq-warning-500: #AF7F04;
  --kiq-warning-600: #916802;
  --kiq-warning-700: #735201;
  --kiq-warning-800: #583E00;
  --kiq-warning-900: #3D2A00;
  --kiq-warning-950: #291B00;
  --kiq-warning-name: gorse;
  --kiq-danger-50: #FFF1EE;
  --kiq-danger-100: #FFDED7;
  --kiq-danger-200: #FFBDAF;
  --kiq-danger-300: #FF947F;
  --kiq-danger-400: #F47159;
  --kiq-danger-500: #DC5841;
  --kiq-danger-600: #BD3F2A;
  --kiq-danger-700: #9E2612;
  --kiq-danger-800: #7E1200;
  --kiq-danger-900: #590A00;
  --kiq-danger-950: #3E0400;
  --kiq-danger-name: ember;
  --kiq-info-50: #EAF7FF;
  --kiq-info-100: #CCECFF;
  --kiq-info-200: #A5D7F5;
  --kiq-info-300: #7BBFE7;
  --kiq-info-400: #60A8D0;
  --kiq-info-500: #4892BA;
  --kiq-info-600: #2F789E;
  --kiq-info-700: #156083;
  --kiq-info-800: #014967;
  --kiq-info-900: #003249;
  --kiq-info-950: #002131;
  --kiq-info-name: cove;
  --kiq-blush: #F37799;

/* --------------------------------------------------------- 2. typography */
  --kiq-font-display: 'Eczar', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
  --kiq-font-text: 'Schibsted Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  --kiq-font-mono: 'Spline Sans Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  --kiq-text-display-1-size: clamp(3rem, 1.25rem + 7.8vw, 7rem);
  --kiq-text-display-1-lh: 0.94;
  --kiq-text-display-1-ls: -0.035em;
  --kiq-text-display-1-weight: 700;
  --kiq-text-display-2-size: clamp(2.25rem, 1.35rem + 4vw, 4.5rem);
  --kiq-text-display-2-lh: 0.98;
  --kiq-text-display-2-ls: -0.03em;
  --kiq-text-display-2-weight: 700;
  --kiq-text-h1-size: clamp(2rem, 1.45rem + 2.45vw, 3.25rem);
  --kiq-text-h1-lh: 1.06;
  --kiq-text-h1-ls: -0.025em;
  --kiq-text-h1-weight: 700;
  --kiq-text-h2-size: clamp(1.625rem, 1.35rem + 1.22vw, 2.25rem);
  --kiq-text-h2-lh: 1.14;
  --kiq-text-h2-ls: -0.02em;
  --kiq-text-h2-weight: 600;
  --kiq-text-h3-size: clamp(1.25rem, 1.14rem + 0.49vw, 1.5rem);
  --kiq-text-h3-lh: 1.25;
  --kiq-text-h3-ls: -0.014em;
  --kiq-text-h3-weight: 600;
  --kiq-text-h4-size: 1.125rem;
  --kiq-text-h4-lh: 1.35;
  --kiq-text-h4-ls: -0.01em;
  --kiq-text-h4-weight: 600;
  --kiq-text-body-lg-size: 1.125rem;
  --kiq-text-body-lg-lh: 1.6;
  --kiq-text-body-lg-ls: -0.005em;
  --kiq-text-body-lg-weight: 400;
  --kiq-text-body-size: 1rem;
  --kiq-text-body-lh: 1.6;
  --kiq-text-body-ls: 0;
  --kiq-text-body-weight: 400;
  --kiq-text-body-sm-size: 0.875rem;
  --kiq-text-body-sm-lh: 1.55;
  --kiq-text-body-sm-ls: 0;
  --kiq-text-body-sm-weight: 400;
  --kiq-text-caption-size: 0.8125rem;
  --kiq-text-caption-lh: 1.45;
  --kiq-text-caption-ls: 0.005em;
  --kiq-text-caption-weight: 400;
  --kiq-text-label-size: 0.8125rem;
  --kiq-text-label-lh: 1.3;
  --kiq-text-label-ls: 0.01em;
  --kiq-text-label-weight: 600;
  --kiq-text-overline-size: 0.6875rem;
  --kiq-text-overline-lh: 1.2;
  --kiq-text-overline-ls: 0.14em;
  --kiq-text-overline-weight: 600;
  --kiq-text-mono-size: 0.875rem;
  --kiq-text-mono-lh: 1.5;
  --kiq-text-mono-ls: -0.01em;
  --kiq-text-mono-weight: 400;
  --kiq-text-mono-sm-size: 0.75rem;
  --kiq-text-mono-sm-lh: 1.45;
  --kiq-text-mono-sm-ls: -0.005em;
  --kiq-text-mono-sm-weight: 400;
  --kiq-text-metric-size: clamp(2.5rem, 1.6rem + 4vw, 4.5rem);
  --kiq-text-metric-lh: 0.92;
  --kiq-text-metric-ls: -0.03em;
  --kiq-text-metric-weight: 600;
  --kiq-text-metric-sm-size: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);
  --kiq-text-metric-sm-lh: 0.95;
  --kiq-text-metric-sm-ls: -0.025em;
  --kiq-text-metric-sm-weight: 600;

/* -------------------------------------------------------------- 3. space */
  --kiq-space-0: 0;
  --kiq-space-1: 2px;
  --kiq-space-2: 4px;
  --kiq-space-3: 8px;
  --kiq-space-4: 12px;
  --kiq-space-5: 16px;
  --kiq-space-6: 20px;
  --kiq-space-7: 24px;
  --kiq-space-8: 32px;
  --kiq-space-9: 40px;
  --kiq-space-10: 48px;
  --kiq-space-11: 64px;
  --kiq-space-12: 80px;
  --kiq-space-13: 96px;
  --kiq-space-14: 128px;
  --kiq-space-15: 160px;

/* ------------------------------------------------------------- 4. radius */
  --kiq-radius-none: 0;
  --kiq-radius-xs: 2px;
  --kiq-radius-sm: 4px;
  --kiq-radius-md: 6px;
  --kiq-radius-lg: 10px;
  --kiq-radius-pill: 999px;

/* ------------------------------------------------------------ 5. shadows */
  --kiq-shadow-xs: 0 1px 2px rgba(2, 51, 65, 0.07);
  --kiq-shadow-sm: 0 2px 4px -1px rgba(2, 51, 65, 0.08), 0 1px 2px -1px rgba(2, 51, 65, 0.06);
  --kiq-shadow-md: 0 8px 20px -6px rgba(2, 51, 65, 0.14), 0 2px 6px -2px rgba(2, 51, 65, 0.08);
  --kiq-shadow-lg: 0 24px 48px -16px rgba(2, 51, 65, 0.22), 0 6px 14px -6px rgba(2, 51, 65, 0.10);
  --kiq-shadow-block: 0 0 0 1px rgba(2, 51, 65, 0.10);

/* ------------------------------------------------------------- 6. motion */
  --kiq-dur-1: 120ms;
  --kiq-dur-2: 180ms;
  --kiq-dur-3: 260ms;
  --kiq-dur-4: 420ms;
  --kiq-dur-5: 680ms;
  --kiq-ease-out: cubic-bezier(0.16, 1, 0.30, 1);
  --kiq-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --kiq-ease-entrance: cubic-bezier(0.22, 1, 0.36, 1);

/* ------------------------------------------------------------- 7. layout */
  --kiq-grid-columns: 12;
  --kiq-gutter: 24px;
  --kiq-gutter-lg: 32px;
  --kiq-margin: 20px;
  --kiq-margin-lg: 48px;
  --kiq-measure: 68ch;
  --kiq-measure-tight: 46ch;
  --kiq-container-text: 760px;
  --kiq-container: 1200px;
  --kiq-container-wide: 1440px;
  --kiq-header-h: 72px;

/* --------------------------------------------------------------- 8. z-index */
  --kiq-z-base: 0;
  --kiq-z-raised: 10;
  --kiq-z-sticky: 100;
  --kiq-z-header: 200;
  --kiq-z-overlay: 800;
  --kiq-z-modal: 900;
  --kiq-z-toast: 1000;

/* ---------------------------------------------- 9. semantic — light theme */
  --kiq-surface-page: #FEFCF8;
  --kiq-surface-raised: #FFFFFF;
  --kiq-surface-sunken: #F4F1E9;
  --kiq-surface-inverse: #023341;
  --kiq-surface-accent: #F76C89;
  --kiq-surface-accent-soft: #FFDCE0;
  --kiq-surface-secondary: #244D69;
  --kiq-surface-muted: #EDF1F3;
  --kiq-surface-hover: #EDF1F3;
  --kiq-surface-active: #DBE1E3;
  --kiq-ink-primary: #00222C;
  --kiq-ink-secondary: #375F6D;
  --kiq-ink-muted: #60686C;
  --kiq-ink-inverse: #FEFCF8;
  --kiq-ink-on-accent: #00222C;
  --kiq-ink-on-secondary: #FEFCF8;
  --kiq-ink-accent: #9D2044;
  --kiq-ink-link: #244D69;
  --kiq-border-subtle: #DBE1E3;
  --kiq-border-default: #C5CCD0;
  --kiq-border-strong: #023341;
  --kiq-border-accent: #F76C89;
  --kiq-focus-ring: #BC395A;
  --kiq-focus-ring-offset: #FEFCF8;
  --kiq-selection-bg: #FFBAC4;
  --kiq-selection-ink: #00222C;
  --kiq-success: #176943;
  --kiq-success-surface: #E3FCEC;
  --kiq-success-border: #7DC99E;
  --kiq-warning: #735201;
  --kiq-warning-surface: #FFF3DE;
  --kiq-warning-border: #DCAE54;
  --kiq-danger: #9E2612;
  --kiq-danger-surface: #FFF1EE;
  --kiq-danger-border: #FF947F;
  --kiq-info: #156083;
  --kiq-info-surface: #EAF7FF;
  --kiq-info-border: #7BBFE7;
  --kiq-chart-surface: #FEFCF8;
  --kiq-chart-grid: #DBE1E3;
  --kiq-chart-axis: #A9B1B5;
  --kiq-chart-neutral: #8C9498;

/* ------------------------------------------------------ 10. data-viz — light */
  --kiq-chart-1: #E46075; /* coral */
  --kiq-chart-2: #01A2AD; /* cove */
  --kiq-chart-3: #B78B01; /* gorse */
  --kiq-chart-4: #8E4BA4; /* heather */
  --kiq-chart-5: #359658; /* lichen */
  --kiq-chart-6: #0465AF; /* harbour */
  --kiq-chart-7: #BE4B13; /* bracken */
  --kiq-seq-1: #A0B5BD;
  --kiq-seq-2: #78A1B1;
  --kiq-seq-3: #528DA2;
  --kiq-seq-4: #30788F;
  --kiq-seq-5: #146279;
  --kiq-seq-6: #084C5F;
  --kiq-seq-7: #0D3744;
  --kiq-seq-8: #112228;
  --kiq-div-1: #982645;
  --kiq-div-2: #BD5168;
  --kiq-div-3: #D9818F;
  --kiq-div-4: #EBB3BB;
  --kiq-div-5: #DADFE1;
  --kiq-div-6: #9FCED5;
  --kiq-div-7: #5DACBA;
  --kiq-div-8: #1B899B;
  --kiq-div-9: #016373;

  color-scheme: light;
}

/* ----------------------------------------------- semantic — dark theme */
/* Dark is a selected theme, not an inverted one: every value below was chosen
   against the Petrol ground and re-checked for contrast. */
:root[data-theme="dark"] {
  --kiq-surface-page: #00222C;
  --kiq-surface-raised: #023341;
  --kiq-surface-sunken: #001A22;
  --kiq-surface-inverse: #FEFCF8;
  --kiq-surface-accent: #F76C89;
  --kiq-surface-accent-soft: #1E4957;
  --kiq-surface-secondary: #244D69;
  --kiq-surface-muted: #1E4957;
  --kiq-surface-hover: #1E4957;
  --kiq-surface-active: #375F6D;
  --kiq-ink-primary: #FEFCF8;
  --kiq-ink-secondary: #BBD4DE;
  --kiq-ink-muted: #9CBCC8;
  --kiq-ink-inverse: #00222C;
  --kiq-ink-on-accent: #00222C;
  --kiq-ink-on-secondary: #FEFCF8;
  --kiq-ink-accent: #FF8FA3;
  --kiq-ink-link: #FF8FA3;
  --kiq-border-subtle: #1E4957;
  --kiq-border-default: #375F6D;
  --kiq-border-strong: #9CBCC8;
  --kiq-border-accent: #F76C89;
  --kiq-focus-ring: #FF8FA3;
  --kiq-focus-ring-offset: #00222C;
  --kiq-selection-bg: #9D2044;
  --kiq-selection-ink: #FEFCF8;
  --kiq-success: #7DC99E;
  --kiq-success-surface: #052617;
  --kiq-success-border: #176943;
  --kiq-warning: #DCAE54;
  --kiq-warning-surface: #241900;
  --kiq-warning-border: #735201;
  --kiq-danger: #FF947F;
  --kiq-danger-surface: #2A0B03;
  --kiq-danger-border: #9E2612;
  --kiq-info: #7BBFE7;
  --kiq-info-surface: #04202E;
  --kiq-info-border: #156083;
  --kiq-chart-surface: #023341;
  --kiq-chart-grid: #1E4957;
  --kiq-chart-axis: #375F6D;
  --kiq-chart-neutral: #A9B1B5;
  --kiq-chart-1: #D3576B; /* coral */
  --kiq-chart-2: #1CA8B3; /* cove */
  --kiq-chart-3: #997401; /* gorse */
  --kiq-chart-4: #AB6BC2; /* heather */
  --kiq-chart-5: #2E894F; /* lichen */
  --kiq-chart-6: #4B97E0; /* harbour */
  --kiq-chart-7: #C85B2C; /* bracken */
  --kiq-seq-1: #51646B;
  --kiq-seq-2: #527A89;
  --kiq-seq-3: #5590A5;
  --kiq-seq-4: #5FA6BE;
  --kiq-seq-5: #74BAD4;
  --kiq-seq-6: #92CEE4;
  --kiq-seq-7: #B6E1F1;
  --kiq-seq-8: #DDF3FB;
  --kiq-div-1: #982645;
  --kiq-div-2: #BD5168;
  --kiq-div-3: #D9818F;
  --kiq-div-4: #EBB3BB;
  --kiq-div-5: #DADFE1;
  --kiq-div-6: #9FCED5;
  --kiq-div-7: #5DACBA;
  --kiq-div-8: #1B899B;
  --kiq-div-9: #016373;
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
  --kiq-surface-page: #00222C;
  --kiq-surface-raised: #023341;
  --kiq-surface-sunken: #001A22;
  --kiq-surface-inverse: #FEFCF8;
  --kiq-surface-accent: #F76C89;
  --kiq-surface-accent-soft: #1E4957;
  --kiq-surface-secondary: #244D69;
  --kiq-surface-muted: #1E4957;
  --kiq-surface-hover: #1E4957;
  --kiq-surface-active: #375F6D;
  --kiq-ink-primary: #FEFCF8;
  --kiq-ink-secondary: #BBD4DE;
  --kiq-ink-muted: #9CBCC8;
  --kiq-ink-inverse: #00222C;
  --kiq-ink-on-accent: #00222C;
  --kiq-ink-on-secondary: #FEFCF8;
  --kiq-ink-accent: #FF8FA3;
  --kiq-ink-link: #FF8FA3;
  --kiq-border-subtle: #1E4957;
  --kiq-border-default: #375F6D;
  --kiq-border-strong: #9CBCC8;
  --kiq-border-accent: #F76C89;
  --kiq-focus-ring: #FF8FA3;
  --kiq-focus-ring-offset: #00222C;
  --kiq-selection-bg: #9D2044;
  --kiq-selection-ink: #FEFCF8;
  --kiq-success: #7DC99E;
  --kiq-success-surface: #052617;
  --kiq-success-border: #176943;
  --kiq-warning: #DCAE54;
  --kiq-warning-surface: #241900;
  --kiq-warning-border: #735201;
  --kiq-danger: #FF947F;
  --kiq-danger-surface: #2A0B03;
  --kiq-danger-border: #9E2612;
  --kiq-info: #7BBFE7;
  --kiq-info-surface: #04202E;
  --kiq-info-border: #156083;
  --kiq-chart-surface: #023341;
  --kiq-chart-grid: #1E4957;
  --kiq-chart-axis: #375F6D;
  --kiq-chart-neutral: #A9B1B5;
  --kiq-chart-1: #D3576B; /* coral */
  --kiq-chart-2: #1CA8B3; /* cove */
  --kiq-chart-3: #997401; /* gorse */
  --kiq-chart-4: #AB6BC2; /* heather */
  --kiq-chart-5: #2E894F; /* lichen */
  --kiq-chart-6: #4B97E0; /* harbour */
  --kiq-chart-7: #C85B2C; /* bracken */
  --kiq-seq-1: #51646B;
  --kiq-seq-2: #527A89;
  --kiq-seq-3: #5590A5;
  --kiq-seq-4: #5FA6BE;
  --kiq-seq-5: #74BAD4;
  --kiq-seq-6: #92CEE4;
  --kiq-seq-7: #B6E1F1;
  --kiq-seq-8: #DDF3FB;
  --kiq-div-1: #982645;
  --kiq-div-2: #BD5168;
  --kiq-div-3: #D9818F;
  --kiq-div-4: #EBB3BB;
  --kiq-div-5: #DADFE1;
  --kiq-div-6: #9FCED5;
  --kiq-div-7: #5DACBA;
  --kiq-div-8: #1B899B;
  --kiq-div-9: #016373;
    color-scheme: dark;
  }
}

/* ---------------------------------------------------------- base surfaces */
/* The parts nobody draws still carry the brand. */
::selection {
  background: var(--kiq-selection-bg);
  color: var(--kiq-selection-ink);
}
:root {
  accent-color: var(--kiq-surface-accent);
  caret-color: var(--kiq-ink-accent);
  scrollbar-color: var(--kiq-border-default) transparent;
  scrollbar-width: thin;
}
:focus-visible {
  outline: 2px solid var(--kiq-focus-ring);
  outline-offset: 2px;
  border-radius: var(--kiq-radius-xs);
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
