/* GENERATED by scripts/gen-tokens.js from tokens/tokens.json — do not edit. vantage · tokens/tokens.json · Fix 1 · v9 */

:root, :root[data-mode="dark"] {
  color-scheme: dark;
  --a11y: var(--a11y-dark);
  --bg: oklch(clamp(0%, calc((18 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --panel: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --card: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --raised: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --all: oklch(88% 0.02 255.5);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(92% + (100 - 92) * var(--a11y) / 100 * 1%) 0.02 255.5);
  --text2: oklch(calc(72% + (100 - 72) * var(--a11y) / 100 * 1%) 0.02 255.5);
  --line: oklch(calc(55% + (75 - 55) * var(--a11y) / 100 * 1%) 0.02 255.5);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --bg-press: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --bg-selected: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --panel-hover: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --panel-press: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --panel-selected: oklch(clamp(0%, calc((32 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --card-hover: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --card-press: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --card-selected: oklch(clamp(0%, calc((38 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --raised-hover: oklch(clamp(0%, calc((42 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --raised-press: oklch(clamp(0%, calc((32 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --raised-selected: oklch(clamp(0%, calc((44 + var(--depth-dark) * -0.12) * 1%), 100%) 0.02 255.5);
  --row-banner: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0225 195);
  --row-status: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0747 290);
  --row-nav: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0705 300);
  --row-tools: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0364 150);
  --row-filters: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0278 75);
  --row-dialogue: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0587 335);
  --shade-dir: 1;
  --btn-l: 76; --btn-c: 0.191; --btn-h: 125;   /* page-body buttons */
  --button-text: oklch(8% 0.02 255.5);   /* the light page's ink */
  --glow-alpha: 0.55;   /* the button's own colour cast on the ground */
  --btn-banner-l: 76; --btn-banner-c: 0.1297; --btn-banner-h: 195;
  --btn-status-l: 76; --btn-status-c: 0.1323; --btn-status-h: 290;
  --btn-nav-l: 76; --btn-nav-c: 0.145; --btn-nav-h: 300;
  --btn-tools-l: 76; --btn-tools-c: 0.2093; --btn-tools-h: 150;
  --btn-filters-l: 76; --btn-filters-c: 0.1603; --btn-filters-h: 75;
  --btn-digitools-l: 76; --btn-digitools-c: 0.1483; --btn-digitools-h: 40;
  --btn-dialogue-l: 76; --btn-dialogue-c: 0.2128; --btn-dialogue-h: 335;
  --dialogue-fill: oklch(72% 0.13 335);
  --dialogue-input-fill: oklch(82% 0.078 335);
  --dialogue-ink: oklch(8% 0.02 255.5);
  --scroll-thumb: oklch(8% 0.02 255.5 / 0.35);
  --scroll-thumb-page: oklch(92% 0.02 255.5 / 0.3);
  --map-ink: oklch(95% 0.045 95);
  --map-ink-bold: 1px;
  --map-ink-min: 1;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(72% 0.1743 27);
  --crew-red-b: oklch(54% 0.2201 27);
  --crew-orange-a: oklch(72% 0.1852 52);
  --crew-orange-b: oklch(54% 0.1389 52);
  --crew-amber-a: oklch(72% 0.1501 78);
  --crew-amber-b: oklch(54% 0.1126 78);
  --crew-yellow-a: oklch(72% 0.1497 100);
  --crew-yellow-b: oklch(54% 0.1123 100);
  --crew-lime-a: oklch(72% 0.1747 122);
  --crew-lime-b: oklch(54% 0.131 122);
  --crew-green-a: oklch(72% 0.2422 142);
  --crew-green-b: oklch(54% 0.1817 142);
  --crew-blue-a: oklch(72% 0.1514 250);
  --crew-blue-b: oklch(54% 0.1529 250);
  --crew-indigo-a: oklch(72% 0.1519 285);
  --crew-indigo-b: oklch(54% 0.268 285);
  --crew-violet-a: oklch(72% 0.1971 310);
  --crew-violet-b: oklch(54% 0.2731 310);
  --crew-magenta-a: oklch(72% 0.2393 340);
  --crew-magenta-b: oklch(54% 0.2346 340);
  --crew-a-ink: oklch(8% 0.02 255.5);   /* 7.43:1 at worst on a crew's light tier */
}

:root[data-mode="light"] {
  color-scheme: light;
  --a11y: var(--a11y-light);
  --bg: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --panel: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --card: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --raised: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --all: oklch(12% 0.02 255.5);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(8% + (0 - 8) * var(--a11y) / 100 * 1%) 0.02 255.5);
  --text2: oklch(calc(28% + (0 - 28) * var(--a11y) / 100 * 1%) 0.02 255.5);
  --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.02 255.5);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --bg-press: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --bg-selected: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --panel-hover: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --panel-press: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --panel-selected: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --card-hover: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --card-press: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --card-selected: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --raised-hover: oklch(clamp(0%, calc((58 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --raised-press: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --raised-selected: oklch(clamp(0%, calc((56 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
  --row-banner: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0225 195);
  --row-status: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0747 290);
  --row-nav: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0705 300);
  --row-tools: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0364 150);
  --row-filters: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0278 75);
  --row-dialogue: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0587 335);
  --shade-dir: 1;
  --btn-l: 76; --btn-c: 0.191; --btn-h: 125;   /* page-body buttons */
  --button-text: oklch(8% 0.02 255.5);   /* the light page's ink */
  --glow-alpha: 0;   /* the button's own colour cast on the ground */
  --btn-banner-l: 76; --btn-banner-c: 0.1297; --btn-banner-h: 195;
  --btn-status-l: 76; --btn-status-c: 0.1323; --btn-status-h: 290;
  --btn-nav-l: 76; --btn-nav-c: 0.145; --btn-nav-h: 300;
  --btn-tools-l: 76; --btn-tools-c: 0.2093; --btn-tools-h: 150;
  --btn-filters-l: 76; --btn-filters-c: 0.1603; --btn-filters-h: 75;
  --btn-digitools-l: 76; --btn-digitools-c: 0.1483; --btn-digitools-h: 40;
  --btn-dialogue-l: 76; --btn-dialogue-c: 0.2128; --btn-dialogue-h: 335;
  --dialogue-fill: oklch(72% 0.13 335);
  --dialogue-input-fill: oklch(82% 0.078 335);
  --dialogue-ink: oklch(8% 0.02 255.5);
  --scroll-thumb: oklch(92% 0.02 255.5 / 0.35);
  --scroll-thumb-page: oklch(8% 0.02 255.5 / 0.3);
  --map-ink: var(--text2);
  --map-ink-bold: 0px;
  --map-ink-min: 0.8;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(28% 0.1141 27);
  --crew-red-b: oklch(46% 0.1875 27);
  --crew-orange-a: oklch(28% 0.072 52);
  --crew-orange-b: oklch(46% 0.1183 52);
  --crew-amber-a: oklch(28% 0.0584 78);
  --crew-amber-b: oklch(46% 0.0959 78);
  --crew-yellow-a: oklch(28% 0.0582 100);
  --crew-yellow-b: oklch(46% 0.0956 100);
  --crew-lime-a: oklch(28% 0.0679 122);
  --crew-lime-b: oklch(46% 0.1116 122);
  --crew-green-a: oklch(28% 0.0942 142);
  --crew-green-b: oklch(46% 0.1548 142);
  --crew-blue-a: oklch(28% 0.0793 250);
  --crew-blue-b: oklch(46% 0.1302 250);
  --crew-indigo-a: oklch(28% 0.1636 285);
  --crew-indigo-b: oklch(46% 0.2688 285);
  --crew-violet-a: oklch(28% 0.1416 310);
  --crew-violet-b: oklch(46% 0.2326 310);
  --crew-magenta-a: oklch(28% 0.1217 340);
  --crew-magenta-b: oklch(46% 0.1999 340);
  --crew-a-ink: oklch(92% 0.02 255.5);   /* 11.28:1 at worst on a crew's light tier */
}

@media (prefers-color-scheme: light) {
    :root:not([data-mode="dark"]) {
    color-scheme: light;
    --a11y: var(--a11y-light);
    --bg: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --panel: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --card: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --raised: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --all: oklch(12% 0.02 255.5);
    /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
    --text: oklch(calc(8% + (0 - 8) * var(--a11y) / 100 * 1%) 0.02 255.5);
    --text2: oklch(calc(28% + (0 - 28) * var(--a11y) / 100 * 1%) 0.02 255.5);
    --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.02 255.5);
  
    /* hover pops one rung, press pushes in, selected lifts further — real rungs on
       the ladder, not a guessed tint (Addendum H §7). */
    --bg-hover: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --bg-press: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --bg-selected: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --panel-hover: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --panel-press: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --panel-selected: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --card-hover: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --card-press: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --card-selected: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --raised-hover: oklch(clamp(0%, calc((58 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --raised-press: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --raised-selected: oklch(clamp(0%, calc((56 + var(--depth-light) * 0.14) * 1%), 100%) 0.02 255.5);
    --row-banner: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0225 195);
    --row-status: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0747 290);
    --row-nav: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0705 300);
    --row-tools: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0364 150);
    --row-filters: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0278 75);
    --row-dialogue: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0587 335);
    --shade-dir: 1;
    --btn-l: 76; --btn-c: 0.191; --btn-h: 125;   /* page-body buttons */
    --button-text: oklch(8% 0.02 255.5);   /* the light page's ink */
    --glow-alpha: 0;   /* the button's own colour cast on the ground */
    --btn-banner-l: 76; --btn-banner-c: 0.1297; --btn-banner-h: 195;
    --btn-status-l: 76; --btn-status-c: 0.1323; --btn-status-h: 290;
    --btn-nav-l: 76; --btn-nav-c: 0.145; --btn-nav-h: 300;
    --btn-tools-l: 76; --btn-tools-c: 0.2093; --btn-tools-h: 150;
    --btn-filters-l: 76; --btn-filters-c: 0.1603; --btn-filters-h: 75;
    --btn-digitools-l: 76; --btn-digitools-c: 0.1483; --btn-digitools-h: 40;
    --btn-dialogue-l: 76; --btn-dialogue-c: 0.2128; --btn-dialogue-h: 335;
    --dialogue-fill: oklch(72% 0.13 335);
    --dialogue-input-fill: oklch(82% 0.078 335);
    --dialogue-ink: oklch(8% 0.02 255.5);
    --scroll-thumb: oklch(92% 0.02 255.5 / 0.35);
    --scroll-thumb-page: oklch(8% 0.02 255.5 / 0.3);
    --map-ink: var(--text2);
    --map-ink-bold: 0px;
    --map-ink-min: 0.8;
  
    /* crew colours — colour is WHO. Records store the reference, never the hex. */
    --crew-red-a: oklch(28% 0.1141 27);
    --crew-red-b: oklch(46% 0.1875 27);
    --crew-orange-a: oklch(28% 0.072 52);
    --crew-orange-b: oklch(46% 0.1183 52);
    --crew-amber-a: oklch(28% 0.0584 78);
    --crew-amber-b: oklch(46% 0.0959 78);
    --crew-yellow-a: oklch(28% 0.0582 100);
    --crew-yellow-b: oklch(46% 0.0956 100);
    --crew-lime-a: oklch(28% 0.0679 122);
    --crew-lime-b: oklch(46% 0.1116 122);
    --crew-green-a: oklch(28% 0.0942 142);
    --crew-green-b: oklch(46% 0.1548 142);
    --crew-blue-a: oklch(28% 0.0793 250);
    --crew-blue-b: oklch(46% 0.1302 250);
    --crew-indigo-a: oklch(28% 0.1636 285);
    --crew-indigo-b: oklch(46% 0.2688 285);
    --crew-violet-a: oklch(28% 0.1416 310);
    --crew-violet-b: oklch(46% 0.2326 310);
    --crew-magenta-a: oklch(28% 0.1217 340);
    --crew-magenta-b: oklch(46% 0.1999 340);
    --crew-a-ink: oklch(92% 0.02 255.5);   /* 11.28:1 at worst on a crew's light tier */
  }
}

/* preset: Halloween */
:root[data-preset="halloween"], :root[data-preset="halloween"][data-mode="dark"] {
  color-scheme: dark;
  --a11y: var(--a11y-dark);
  --bg: oklch(clamp(0%, calc((18 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --panel: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --card: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --raised: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --all: oklch(88% 0.03 300);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(92% + (100 - 92) * var(--a11y) / 100 * 1%) 0.03 300);
  --text2: oklch(calc(72% + (100 - 72) * var(--a11y) / 100 * 1%) 0.03 300);
  --line: oklch(calc(55% + (75 - 55) * var(--a11y) / 100 * 1%) 0.03 300);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --bg-press: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --bg-selected: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --panel-hover: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --panel-press: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --panel-selected: oklch(clamp(0%, calc((32 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --card-hover: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --card-press: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --card-selected: oklch(clamp(0%, calc((38 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --raised-hover: oklch(clamp(0%, calc((42 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --raised-press: oklch(clamp(0%, calc((32 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --raised-selected: oklch(clamp(0%, calc((44 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 300);
  --row-banner: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0327 55);
  --row-status: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0705 300);
  --row-nav: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0668 310);
  --row-tools: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0377 45);
  --row-filters: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0273 80);
  --row-dialogue: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0633 320);
  --shade-dir: 1;
  --btn-l: 76; --btn-c: 0.1579; --btn-h: 50;   /* page-body buttons */
  --button-text: oklch(8% 0.03 300);   /* the light page's ink */
  --glow-alpha: 0.55;   /* the button's own colour cast on the ground */
  --btn-banner-l: 76; --btn-banner-c: 0.1651; --btn-banner-h: 55;
  --btn-status-l: 76; --btn-status-c: 0.145; --btn-status-h: 300;
  --btn-nav-l: 76; --btn-nav-c: 0.166; --btn-nav-h: 310;
  --btn-tools-l: 76; --btn-tools-c: 0.1524; --btn-tools-h: 45;
  --btn-filters-l: 76; --btn-filters-c: 0.1574; --btn-filters-h: 80;
  --btn-digitools-l: 76; --btn-digitools-c: 0.1437; --btn-digitools-h: 30;
  --btn-dialogue-l: 76; --btn-dialogue-c: 0.2014; --btn-dialogue-h: 320;
  --dialogue-fill: oklch(72% 0.1196 320);
  --dialogue-input-fill: oklch(82% 0.0718 320);
  --dialogue-ink: oklch(8% 0.03 300);
  --scroll-thumb: oklch(8% 0.03 300 / 0.35);
  --scroll-thumb-page: oklch(92% 0.03 300 / 0.3);
  --map-ink: oklch(95% 0.045 95);
  --map-ink-bold: 1px;
  --map-ink-min: 1;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(72% 0.1743 27);
  --crew-red-b: oklch(54% 0.2201 27);
  --crew-orange-a: oklch(72% 0.1852 52);
  --crew-orange-b: oklch(54% 0.1389 52);
  --crew-amber-a: oklch(72% 0.1501 78);
  --crew-amber-b: oklch(54% 0.1126 78);
  --crew-yellow-a: oklch(72% 0.1497 100);
  --crew-yellow-b: oklch(54% 0.1123 100);
  --crew-lime-a: oklch(72% 0.1747 122);
  --crew-lime-b: oklch(54% 0.131 122);
  --crew-green-a: oklch(72% 0.2422 142);
  --crew-green-b: oklch(54% 0.1817 142);
  --crew-blue-a: oklch(72% 0.1514 250);
  --crew-blue-b: oklch(54% 0.1529 250);
  --crew-indigo-a: oklch(72% 0.1519 285);
  --crew-indigo-b: oklch(54% 0.268 285);
  --crew-violet-a: oklch(72% 0.1971 310);
  --crew-violet-b: oklch(54% 0.2731 310);
  --crew-magenta-a: oklch(72% 0.2393 340);
  --crew-magenta-b: oklch(54% 0.2346 340);
  --crew-a-ink: oklch(8% 0.03 300);   /* 7.44:1 at worst on a crew's light tier */
}

:root[data-preset="halloween"][data-mode="light"] {
  color-scheme: light;
  --a11y: var(--a11y-light);
  --bg: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --panel: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --card: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --raised: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --all: oklch(12% 0.03 300);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(8% + (0 - 8) * var(--a11y) / 100 * 1%) 0.03 300);
  --text2: oklch(calc(28% + (0 - 28) * var(--a11y) / 100 * 1%) 0.03 300);
  --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.03 300);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --bg-press: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --bg-selected: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --panel-hover: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --panel-press: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --panel-selected: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --card-hover: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --card-press: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --card-selected: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --raised-hover: oklch(clamp(0%, calc((58 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --raised-press: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --raised-selected: oklch(clamp(0%, calc((56 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
  --row-banner: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0327 55);
  --row-status: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0705 300);
  --row-nav: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0668 310);
  --row-tools: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0377 45);
  --row-filters: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0273 80);
  --row-dialogue: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0633 320);
  --shade-dir: 1;
  --btn-l: 76; --btn-c: 0.1579; --btn-h: 50;   /* page-body buttons */
  --button-text: oklch(8% 0.03 300);   /* the light page's ink */
  --glow-alpha: 0;   /* the button's own colour cast on the ground */
  --btn-banner-l: 76; --btn-banner-c: 0.1651; --btn-banner-h: 55;
  --btn-status-l: 76; --btn-status-c: 0.145; --btn-status-h: 300;
  --btn-nav-l: 76; --btn-nav-c: 0.166; --btn-nav-h: 310;
  --btn-tools-l: 76; --btn-tools-c: 0.1524; --btn-tools-h: 45;
  --btn-filters-l: 76; --btn-filters-c: 0.1574; --btn-filters-h: 80;
  --btn-digitools-l: 76; --btn-digitools-c: 0.1437; --btn-digitools-h: 30;
  --btn-dialogue-l: 76; --btn-dialogue-c: 0.2014; --btn-dialogue-h: 320;
  --dialogue-fill: oklch(72% 0.1196 320);
  --dialogue-input-fill: oklch(82% 0.0718 320);
  --dialogue-ink: oklch(8% 0.03 300);
  --scroll-thumb: oklch(92% 0.03 300 / 0.35);
  --scroll-thumb-page: oklch(8% 0.03 300 / 0.3);
  --map-ink: var(--text2);
  --map-ink-bold: 0px;
  --map-ink-min: 0.8;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(28% 0.1141 27);
  --crew-red-b: oklch(46% 0.1875 27);
  --crew-orange-a: oklch(28% 0.072 52);
  --crew-orange-b: oklch(46% 0.1183 52);
  --crew-amber-a: oklch(28% 0.0584 78);
  --crew-amber-b: oklch(46% 0.0959 78);
  --crew-yellow-a: oklch(28% 0.0582 100);
  --crew-yellow-b: oklch(46% 0.0956 100);
  --crew-lime-a: oklch(28% 0.0679 122);
  --crew-lime-b: oklch(46% 0.1116 122);
  --crew-green-a: oklch(28% 0.0942 142);
  --crew-green-b: oklch(46% 0.1548 142);
  --crew-blue-a: oklch(28% 0.0793 250);
  --crew-blue-b: oklch(46% 0.1302 250);
  --crew-indigo-a: oklch(28% 0.1636 285);
  --crew-indigo-b: oklch(46% 0.2688 285);
  --crew-violet-a: oklch(28% 0.1416 310);
  --crew-violet-b: oklch(46% 0.2326 310);
  --crew-magenta-a: oklch(28% 0.1217 340);
  --crew-magenta-b: oklch(46% 0.1999 340);
  --crew-a-ink: oklch(92% 0.03 300);   /* 11.18:1 at worst on a crew's light tier */
}

@media (prefers-color-scheme: light) {
    :root[data-preset="halloween"]:not([data-mode="dark"]) {
    color-scheme: light;
    --a11y: var(--a11y-light);
    --bg: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --panel: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --card: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --raised: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --all: oklch(12% 0.03 300);
    /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
    --text: oklch(calc(8% + (0 - 8) * var(--a11y) / 100 * 1%) 0.03 300);
    --text2: oklch(calc(28% + (0 - 28) * var(--a11y) / 100 * 1%) 0.03 300);
    --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.03 300);
  
    /* hover pops one rung, press pushes in, selected lifts further — real rungs on
       the ladder, not a guessed tint (Addendum H §7). */
    --bg-hover: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --bg-press: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --bg-selected: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --panel-hover: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --panel-press: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --panel-selected: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --card-hover: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --card-press: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --card-selected: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --raised-hover: oklch(clamp(0%, calc((58 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --raised-press: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --raised-selected: oklch(clamp(0%, calc((56 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 300);
    --row-banner: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0327 55);
    --row-status: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0705 300);
    --row-nav: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0668 310);
    --row-tools: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0377 45);
    --row-filters: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0273 80);
    --row-dialogue: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0633 320);
    --shade-dir: 1;
    --btn-l: 76; --btn-c: 0.1579; --btn-h: 50;   /* page-body buttons */
    --button-text: oklch(8% 0.03 300);   /* the light page's ink */
    --glow-alpha: 0;   /* the button's own colour cast on the ground */
    --btn-banner-l: 76; --btn-banner-c: 0.1651; --btn-banner-h: 55;
    --btn-status-l: 76; --btn-status-c: 0.145; --btn-status-h: 300;
    --btn-nav-l: 76; --btn-nav-c: 0.166; --btn-nav-h: 310;
    --btn-tools-l: 76; --btn-tools-c: 0.1524; --btn-tools-h: 45;
    --btn-filters-l: 76; --btn-filters-c: 0.1574; --btn-filters-h: 80;
    --btn-digitools-l: 76; --btn-digitools-c: 0.1437; --btn-digitools-h: 30;
    --btn-dialogue-l: 76; --btn-dialogue-c: 0.2014; --btn-dialogue-h: 320;
    --dialogue-fill: oklch(72% 0.1196 320);
    --dialogue-input-fill: oklch(82% 0.0718 320);
    --dialogue-ink: oklch(8% 0.03 300);
    --scroll-thumb: oklch(92% 0.03 300 / 0.35);
    --scroll-thumb-page: oklch(8% 0.03 300 / 0.3);
    --map-ink: var(--text2);
    --map-ink-bold: 0px;
    --map-ink-min: 0.8;
  
    /* crew colours — colour is WHO. Records store the reference, never the hex. */
    --crew-red-a: oklch(28% 0.1141 27);
    --crew-red-b: oklch(46% 0.1875 27);
    --crew-orange-a: oklch(28% 0.072 52);
    --crew-orange-b: oklch(46% 0.1183 52);
    --crew-amber-a: oklch(28% 0.0584 78);
    --crew-amber-b: oklch(46% 0.0959 78);
    --crew-yellow-a: oklch(28% 0.0582 100);
    --crew-yellow-b: oklch(46% 0.0956 100);
    --crew-lime-a: oklch(28% 0.0679 122);
    --crew-lime-b: oklch(46% 0.1116 122);
    --crew-green-a: oklch(28% 0.0942 142);
    --crew-green-b: oklch(46% 0.1548 142);
    --crew-blue-a: oklch(28% 0.0793 250);
    --crew-blue-b: oklch(46% 0.1302 250);
    --crew-indigo-a: oklch(28% 0.1636 285);
    --crew-indigo-b: oklch(46% 0.2688 285);
    --crew-violet-a: oklch(28% 0.1416 310);
    --crew-violet-b: oklch(46% 0.2326 310);
    --crew-magenta-a: oklch(28% 0.1217 340);
    --crew-magenta-b: oklch(46% 0.1999 340);
    --crew-a-ink: oklch(92% 0.03 300);   /* 11.18:1 at worst on a crew's light tier */
  }
}

/* preset: Christmas */
:root[data-preset="christmas"], :root[data-preset="christmas"][data-mode="dark"] {
  color-scheme: dark;
  --a11y: var(--a11y-dark);
  --bg: oklch(clamp(0%, calc((18 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --panel: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --card: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --raised: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --all: oklch(88% 0.025 150);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(92% + (100 - 92) * var(--a11y) / 100 * 1%) 0.025 150);
  --text2: oklch(calc(72% + (100 - 72) * var(--a11y) / 100 * 1%) 0.025 150);
  --line: oklch(calc(55% + (75 - 55) * var(--a11y) / 100 * 1%) 0.025 150);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --bg-press: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --bg-selected: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --panel-hover: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --panel-press: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --panel-selected: oklch(clamp(0%, calc((32 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --card-hover: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --card-press: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --card-selected: oklch(clamp(0%, calc((38 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --raised-hover: oklch(clamp(0%, calc((42 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --raised-press: oklch(clamp(0%, calc((32 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --raised-selected: oklch(clamp(0%, calc((44 + var(--depth-dark) * -0.12) * 1%), 100%) 0.025 150);
  --row-banner: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0364 150);
  --row-status: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0538 27);
  --row-nav: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0538 27);
  --row-tools: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0364 150);
  --row-filters: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0364 150);
  --row-dialogue: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0364 150);
  --shade-dir: 1;
  --btn-l: 44; --btn-c: 0.1793; --btn-h: 27;   /* page-body buttons */
  --button-text: oklch(92% 0.025 150);   /* the dark page's ink */
  --glow-alpha: 0.55;   /* the button's own colour cast on the ground */
  --btn-banner-l: 44; --btn-banner-c: 0.1212; --btn-banner-h: 150;
  --btn-status-l: 44; --btn-status-c: 0.1793; --btn-status-h: 27;
  --btn-nav-l: 44; --btn-nav-c: 0.1793; --btn-nav-h: 27;
  --btn-tools-l: 44; --btn-tools-c: 0.1212; --btn-tools-h: 150;
  --btn-filters-l: 44; --btn-filters-c: 0.1212; --btn-filters-h: 150;
  --btn-digitools-l: 44; --btn-digitools-c: 0.1793; --btn-digitools-h: 27;
  --btn-dialogue-l: 44; --btn-dialogue-c: 0.1212; --btn-dialogue-h: 150;
  --dialogue-fill: oklch(72% 0.0991 150);
  --dialogue-input-fill: oklch(82% 0.0595 150);
  --dialogue-ink: oklch(8% 0.025 150);
  --scroll-thumb: oklch(8% 0.025 150 / 0.35);
  --scroll-thumb-page: oklch(92% 0.025 150 / 0.3);
  --map-ink: oklch(95% 0.045 95);
  --map-ink-bold: 1px;
  --map-ink-min: 1;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(72% 0.1743 27);
  --crew-red-b: oklch(54% 0.2201 27);
  --crew-orange-a: oklch(72% 0.1852 52);
  --crew-orange-b: oklch(54% 0.1389 52);
  --crew-amber-a: oklch(72% 0.1501 78);
  --crew-amber-b: oklch(54% 0.1126 78);
  --crew-yellow-a: oklch(72% 0.1497 100);
  --crew-yellow-b: oklch(54% 0.1123 100);
  --crew-lime-a: oklch(72% 0.1747 122);
  --crew-lime-b: oklch(54% 0.131 122);
  --crew-green-a: oklch(72% 0.2422 142);
  --crew-green-b: oklch(54% 0.1817 142);
  --crew-blue-a: oklch(72% 0.1514 250);
  --crew-blue-b: oklch(54% 0.1529 250);
  --crew-indigo-a: oklch(72% 0.1519 285);
  --crew-indigo-b: oklch(54% 0.268 285);
  --crew-violet-a: oklch(72% 0.1971 310);
  --crew-violet-b: oklch(54% 0.2731 310);
  --crew-magenta-a: oklch(72% 0.2393 340);
  --crew-magenta-b: oklch(54% 0.2346 340);
  --crew-a-ink: oklch(8% 0.025 150);   /* 7.42:1 at worst on a crew's light tier */
}

:root[data-preset="christmas"][data-mode="light"] {
  color-scheme: light;
  --a11y: var(--a11y-light);
  --bg: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --panel: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --card: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --raised: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --all: oklch(12% 0.025 150);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(8% + (0 - 8) * var(--a11y) / 100 * 1%) 0.025 150);
  --text2: oklch(calc(28% + (0 - 28) * var(--a11y) / 100 * 1%) 0.025 150);
  --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.025 150);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --bg-press: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --bg-selected: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --panel-hover: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --panel-press: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --panel-selected: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --card-hover: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --card-press: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --card-selected: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --raised-hover: oklch(clamp(0%, calc((58 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --raised-press: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --raised-selected: oklch(clamp(0%, calc((56 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
  --row-banner: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0364 150);
  --row-status: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0538 27);
  --row-nav: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0538 27);
  --row-tools: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0364 150);
  --row-filters: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0364 150);
  --row-dialogue: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0364 150);
  --shade-dir: 1;
  --btn-l: 44; --btn-c: 0.1793; --btn-h: 27;   /* page-body buttons */
  --button-text: oklch(92% 0.025 150);   /* the dark page's ink */
  --glow-alpha: 0;   /* the button's own colour cast on the ground */
  --btn-banner-l: 44; --btn-banner-c: 0.1212; --btn-banner-h: 150;
  --btn-status-l: 44; --btn-status-c: 0.1793; --btn-status-h: 27;
  --btn-nav-l: 44; --btn-nav-c: 0.1793; --btn-nav-h: 27;
  --btn-tools-l: 44; --btn-tools-c: 0.1212; --btn-tools-h: 150;
  --btn-filters-l: 44; --btn-filters-c: 0.1212; --btn-filters-h: 150;
  --btn-digitools-l: 44; --btn-digitools-c: 0.1793; --btn-digitools-h: 27;
  --btn-dialogue-l: 44; --btn-dialogue-c: 0.1212; --btn-dialogue-h: 150;
  --dialogue-fill: oklch(72% 0.0991 150);
  --dialogue-input-fill: oklch(82% 0.0595 150);
  --dialogue-ink: oklch(8% 0.025 150);
  --scroll-thumb: oklch(92% 0.025 150 / 0.35);
  --scroll-thumb-page: oklch(8% 0.025 150 / 0.3);
  --map-ink: var(--text2);
  --map-ink-bold: 0px;
  --map-ink-min: 0.8;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(28% 0.1141 27);
  --crew-red-b: oklch(46% 0.1875 27);
  --crew-orange-a: oklch(28% 0.072 52);
  --crew-orange-b: oklch(46% 0.1183 52);
  --crew-amber-a: oklch(28% 0.0584 78);
  --crew-amber-b: oklch(46% 0.0959 78);
  --crew-yellow-a: oklch(28% 0.0582 100);
  --crew-yellow-b: oklch(46% 0.0956 100);
  --crew-lime-a: oklch(28% 0.0679 122);
  --crew-lime-b: oklch(46% 0.1116 122);
  --crew-green-a: oklch(28% 0.0942 142);
  --crew-green-b: oklch(46% 0.1548 142);
  --crew-blue-a: oklch(28% 0.0793 250);
  --crew-blue-b: oklch(46% 0.1302 250);
  --crew-indigo-a: oklch(28% 0.1636 285);
  --crew-indigo-b: oklch(46% 0.2688 285);
  --crew-violet-a: oklch(28% 0.1416 310);
  --crew-violet-b: oklch(46% 0.2326 310);
  --crew-magenta-a: oklch(28% 0.1217 340);
  --crew-magenta-b: oklch(46% 0.1999 340);
  --crew-a-ink: oklch(92% 0.025 150);   /* 11.35:1 at worst on a crew's light tier */
}

@media (prefers-color-scheme: light) {
    :root[data-preset="christmas"]:not([data-mode="dark"]) {
    color-scheme: light;
    --a11y: var(--a11y-light);
    --bg: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --panel: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --card: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --raised: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --all: oklch(12% 0.025 150);
    /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
    --text: oklch(calc(8% + (0 - 8) * var(--a11y) / 100 * 1%) 0.025 150);
    --text2: oklch(calc(28% + (0 - 28) * var(--a11y) / 100 * 1%) 0.025 150);
    --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.025 150);
  
    /* hover pops one rung, press pushes in, selected lifts further — real rungs on
       the ladder, not a guessed tint (Addendum H §7). */
    --bg-hover: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --bg-press: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --bg-selected: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --panel-hover: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --panel-press: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --panel-selected: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --card-hover: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --card-press: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --card-selected: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --raised-hover: oklch(clamp(0%, calc((58 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --raised-press: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --raised-selected: oklch(clamp(0%, calc((56 + var(--depth-light) * 0.14) * 1%), 100%) 0.025 150);
    --row-banner: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0364 150);
    --row-status: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0538 27);
    --row-nav: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0538 27);
    --row-tools: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0364 150);
    --row-filters: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0364 150);
    --row-dialogue: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0364 150);
    --shade-dir: 1;
    --btn-l: 44; --btn-c: 0.1793; --btn-h: 27;   /* page-body buttons */
    --button-text: oklch(92% 0.025 150);   /* the dark page's ink */
    --glow-alpha: 0;   /* the button's own colour cast on the ground */
    --btn-banner-l: 44; --btn-banner-c: 0.1212; --btn-banner-h: 150;
    --btn-status-l: 44; --btn-status-c: 0.1793; --btn-status-h: 27;
    --btn-nav-l: 44; --btn-nav-c: 0.1793; --btn-nav-h: 27;
    --btn-tools-l: 44; --btn-tools-c: 0.1212; --btn-tools-h: 150;
    --btn-filters-l: 44; --btn-filters-c: 0.1212; --btn-filters-h: 150;
    --btn-digitools-l: 44; --btn-digitools-c: 0.1793; --btn-digitools-h: 27;
    --btn-dialogue-l: 44; --btn-dialogue-c: 0.1212; --btn-dialogue-h: 150;
    --dialogue-fill: oklch(72% 0.0991 150);
    --dialogue-input-fill: oklch(82% 0.0595 150);
    --dialogue-ink: oklch(8% 0.025 150);
    --scroll-thumb: oklch(92% 0.025 150 / 0.35);
    --scroll-thumb-page: oklch(8% 0.025 150 / 0.3);
    --map-ink: var(--text2);
    --map-ink-bold: 0px;
    --map-ink-min: 0.8;
  
    /* crew colours — colour is WHO. Records store the reference, never the hex. */
    --crew-red-a: oklch(28% 0.1141 27);
    --crew-red-b: oklch(46% 0.1875 27);
    --crew-orange-a: oklch(28% 0.072 52);
    --crew-orange-b: oklch(46% 0.1183 52);
    --crew-amber-a: oklch(28% 0.0584 78);
    --crew-amber-b: oklch(46% 0.0959 78);
    --crew-yellow-a: oklch(28% 0.0582 100);
    --crew-yellow-b: oklch(46% 0.0956 100);
    --crew-lime-a: oklch(28% 0.0679 122);
    --crew-lime-b: oklch(46% 0.1116 122);
    --crew-green-a: oklch(28% 0.0942 142);
    --crew-green-b: oklch(46% 0.1548 142);
    --crew-blue-a: oklch(28% 0.0793 250);
    --crew-blue-b: oklch(46% 0.1302 250);
    --crew-indigo-a: oklch(28% 0.1636 285);
    --crew-indigo-b: oklch(46% 0.2688 285);
    --crew-violet-a: oklch(28% 0.1416 310);
    --crew-violet-b: oklch(46% 0.2326 310);
    --crew-magenta-a: oklch(28% 0.1217 340);
    --crew-magenta-b: oklch(46% 0.1999 340);
    --crew-a-ink: oklch(92% 0.025 150);   /* 11.35:1 at worst on a crew's light tier */
  }
}

/* preset: Fourth of July */
:root[data-preset="fourth"], :root[data-preset="fourth"][data-mode="dark"] {
  color-scheme: dark;
  --a11y: var(--a11y-dark);
  --bg: oklch(clamp(0%, calc((18 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --panel: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --card: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --raised: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --all: oklch(88% 0.03 250);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(92% + (100 - 92) * var(--a11y) / 100 * 1%) 0.03 250);
  --text2: oklch(calc(72% + (100 - 72) * var(--a11y) / 100 * 1%) 0.03 250);
  --line: oklch(calc(55% + (75 - 55) * var(--a11y) / 100 * 1%) 0.03 250);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --bg-press: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --bg-selected: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --panel-hover: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --panel-press: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --panel-selected: oklch(clamp(0%, calc((32 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --card-hover: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --card-press: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --card-selected: oklch(clamp(0%, calc((38 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --raised-hover: oklch(clamp(0%, calc((42 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --raised-press: oklch(clamp(0%, calc((32 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --raised-selected: oklch(clamp(0%, calc((44 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 250);
  --row-banner: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0374 250);
  --row-status: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0535 25);
  --row-nav: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0538 260);
  --row-tools: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0435 255);
  --row-filters: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.053 20);
  --row-dialogue: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0374 250);
  --shade-dir: 1;
  --btn-l: 76; --btn-c: 0.1278; --btn-h: 250;   /* page-body buttons */
  --button-text: oklch(8% 0.03 250);   /* the light page's ink */
  --glow-alpha: 0.55;   /* the button's own colour cast on the ground */
  --btn-banner-l: 76; --btn-banner-c: 0.1278; --btn-banner-h: 250;
  --btn-status-l: 76; --btn-status-c: 0.143; --btn-status-h: 25;
  --btn-nav-l: 76; --btn-nav-c: 0.123; --btn-nav-h: 260;
  --btn-tools-l: 76; --btn-tools-c: 0.1249; --btn-tools-h: 255;
  --btn-filters-l: 76; --btn-filters-c: 0.1434; --btn-filters-h: 20;
  --btn-digitools-l: 76; --btn-digitools-c: 0.1437; --btn-digitools-h: 30;
  --btn-dialogue-l: 76; --btn-dialogue-c: 0.1278; --btn-dialogue-h: 250;
  --dialogue-fill: oklch(72% 0.0757 250);
  --dialogue-input-fill: oklch(82% 0.0454 250);
  --dialogue-ink: oklch(8% 0.03 250);
  --scroll-thumb: oklch(8% 0.03 250 / 0.35);
  --scroll-thumb-page: oklch(92% 0.03 250 / 0.3);
  --map-ink: oklch(95% 0.045 95);
  --map-ink-bold: 1px;
  --map-ink-min: 1;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(72% 0.1743 27);
  --crew-red-b: oklch(54% 0.2201 27);
  --crew-orange-a: oklch(72% 0.1852 52);
  --crew-orange-b: oklch(54% 0.1389 52);
  --crew-amber-a: oklch(72% 0.1501 78);
  --crew-amber-b: oklch(54% 0.1126 78);
  --crew-yellow-a: oklch(72% 0.1497 100);
  --crew-yellow-b: oklch(54% 0.1123 100);
  --crew-lime-a: oklch(72% 0.1747 122);
  --crew-lime-b: oklch(54% 0.131 122);
  --crew-green-a: oklch(72% 0.2422 142);
  --crew-green-b: oklch(54% 0.1817 142);
  --crew-blue-a: oklch(72% 0.1514 250);
  --crew-blue-b: oklch(54% 0.1529 250);
  --crew-indigo-a: oklch(72% 0.1519 285);
  --crew-indigo-b: oklch(54% 0.268 285);
  --crew-violet-a: oklch(72% 0.1971 310);
  --crew-violet-b: oklch(54% 0.2731 310);
  --crew-magenta-a: oklch(72% 0.2393 340);
  --crew-magenta-b: oklch(54% 0.2346 340);
  --crew-a-ink: oklch(8% 0.03 250);   /* 7.42:1 at worst on a crew's light tier */
}

:root[data-preset="fourth"][data-mode="light"] {
  color-scheme: light;
  --a11y: var(--a11y-light);
  --bg: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --panel: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --card: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --raised: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --all: oklch(12% 0.03 250);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(8% + (0 - 8) * var(--a11y) / 100 * 1%) 0.03 250);
  --text2: oklch(calc(28% + (0 - 28) * var(--a11y) / 100 * 1%) 0.03 250);
  --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.03 250);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --bg-press: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --bg-selected: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --panel-hover: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --panel-press: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --panel-selected: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --card-hover: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --card-press: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --card-selected: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --raised-hover: oklch(clamp(0%, calc((58 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --raised-press: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --raised-selected: oklch(clamp(0%, calc((56 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
  --row-banner: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0374 250);
  --row-status: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0535 25);
  --row-nav: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0538 260);
  --row-tools: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0435 255);
  --row-filters: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.053 20);
  --row-dialogue: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0374 250);
  --shade-dir: 1;
  --btn-l: 76; --btn-c: 0.1278; --btn-h: 250;   /* page-body buttons */
  --button-text: oklch(8% 0.03 250);   /* the light page's ink */
  --glow-alpha: 0;   /* the button's own colour cast on the ground */
  --btn-banner-l: 76; --btn-banner-c: 0.1278; --btn-banner-h: 250;
  --btn-status-l: 76; --btn-status-c: 0.143; --btn-status-h: 25;
  --btn-nav-l: 76; --btn-nav-c: 0.123; --btn-nav-h: 260;
  --btn-tools-l: 76; --btn-tools-c: 0.1249; --btn-tools-h: 255;
  --btn-filters-l: 76; --btn-filters-c: 0.1434; --btn-filters-h: 20;
  --btn-digitools-l: 76; --btn-digitools-c: 0.1437; --btn-digitools-h: 30;
  --btn-dialogue-l: 76; --btn-dialogue-c: 0.1278; --btn-dialogue-h: 250;
  --dialogue-fill: oklch(72% 0.0757 250);
  --dialogue-input-fill: oklch(82% 0.0454 250);
  --dialogue-ink: oklch(8% 0.03 250);
  --scroll-thumb: oklch(92% 0.03 250 / 0.35);
  --scroll-thumb-page: oklch(8% 0.03 250 / 0.3);
  --map-ink: var(--text2);
  --map-ink-bold: 0px;
  --map-ink-min: 0.8;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(28% 0.1141 27);
  --crew-red-b: oklch(46% 0.1875 27);
  --crew-orange-a: oklch(28% 0.072 52);
  --crew-orange-b: oklch(46% 0.1183 52);
  --crew-amber-a: oklch(28% 0.0584 78);
  --crew-amber-b: oklch(46% 0.0959 78);
  --crew-yellow-a: oklch(28% 0.0582 100);
  --crew-yellow-b: oklch(46% 0.0956 100);
  --crew-lime-a: oklch(28% 0.0679 122);
  --crew-lime-b: oklch(46% 0.1116 122);
  --crew-green-a: oklch(28% 0.0942 142);
  --crew-green-b: oklch(46% 0.1548 142);
  --crew-blue-a: oklch(28% 0.0793 250);
  --crew-blue-b: oklch(46% 0.1302 250);
  --crew-indigo-a: oklch(28% 0.1636 285);
  --crew-indigo-b: oklch(46% 0.2688 285);
  --crew-violet-a: oklch(28% 0.1416 310);
  --crew-violet-b: oklch(46% 0.2326 310);
  --crew-magenta-a: oklch(28% 0.1217 340);
  --crew-magenta-b: oklch(46% 0.1999 340);
  --crew-a-ink: oklch(92% 0.03 250);   /* 11.28:1 at worst on a crew's light tier */
}

@media (prefers-color-scheme: light) {
    :root[data-preset="fourth"]:not([data-mode="dark"]) {
    color-scheme: light;
    --a11y: var(--a11y-light);
    --bg: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --panel: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --card: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --raised: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --all: oklch(12% 0.03 250);
    /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
    --text: oklch(calc(8% + (0 - 8) * var(--a11y) / 100 * 1%) 0.03 250);
    --text2: oklch(calc(28% + (0 - 28) * var(--a11y) / 100 * 1%) 0.03 250);
    --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.03 250);
  
    /* hover pops one rung, press pushes in, selected lifts further — real rungs on
       the ladder, not a guessed tint (Addendum H §7). */
    --bg-hover: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --bg-press: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --bg-selected: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --panel-hover: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --panel-press: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --panel-selected: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --card-hover: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --card-press: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --card-selected: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --raised-hover: oklch(clamp(0%, calc((58 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --raised-press: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --raised-selected: oklch(clamp(0%, calc((56 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 250);
    --row-banner: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0374 250);
    --row-status: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0535 25);
    --row-nav: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0538 260);
    --row-tools: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0435 255);
    --row-filters: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.053 20);
    --row-dialogue: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0374 250);
    --shade-dir: 1;
    --btn-l: 76; --btn-c: 0.1278; --btn-h: 250;   /* page-body buttons */
    --button-text: oklch(8% 0.03 250);   /* the light page's ink */
    --glow-alpha: 0;   /* the button's own colour cast on the ground */
    --btn-banner-l: 76; --btn-banner-c: 0.1278; --btn-banner-h: 250;
    --btn-status-l: 76; --btn-status-c: 0.143; --btn-status-h: 25;
    --btn-nav-l: 76; --btn-nav-c: 0.123; --btn-nav-h: 260;
    --btn-tools-l: 76; --btn-tools-c: 0.1249; --btn-tools-h: 255;
    --btn-filters-l: 76; --btn-filters-c: 0.1434; --btn-filters-h: 20;
    --btn-digitools-l: 76; --btn-digitools-c: 0.1437; --btn-digitools-h: 30;
    --btn-dialogue-l: 76; --btn-dialogue-c: 0.1278; --btn-dialogue-h: 250;
    --dialogue-fill: oklch(72% 0.0757 250);
    --dialogue-input-fill: oklch(82% 0.0454 250);
    --dialogue-ink: oklch(8% 0.03 250);
    --scroll-thumb: oklch(92% 0.03 250 / 0.35);
    --scroll-thumb-page: oklch(8% 0.03 250 / 0.3);
    --map-ink: var(--text2);
    --map-ink-bold: 0px;
    --map-ink-min: 0.8;
  
    /* crew colours — colour is WHO. Records store the reference, never the hex. */
    --crew-red-a: oklch(28% 0.1141 27);
    --crew-red-b: oklch(46% 0.1875 27);
    --crew-orange-a: oklch(28% 0.072 52);
    --crew-orange-b: oklch(46% 0.1183 52);
    --crew-amber-a: oklch(28% 0.0584 78);
    --crew-amber-b: oklch(46% 0.0959 78);
    --crew-yellow-a: oklch(28% 0.0582 100);
    --crew-yellow-b: oklch(46% 0.0956 100);
    --crew-lime-a: oklch(28% 0.0679 122);
    --crew-lime-b: oklch(46% 0.1116 122);
    --crew-green-a: oklch(28% 0.0942 142);
    --crew-green-b: oklch(46% 0.1548 142);
    --crew-blue-a: oklch(28% 0.0793 250);
    --crew-blue-b: oklch(46% 0.1302 250);
    --crew-indigo-a: oklch(28% 0.1636 285);
    --crew-indigo-b: oklch(46% 0.2688 285);
    --crew-violet-a: oklch(28% 0.1416 310);
    --crew-violet-b: oklch(46% 0.2326 310);
    --crew-magenta-a: oklch(28% 0.1217 340);
    --crew-magenta-b: oklch(46% 0.1999 340);
    --crew-a-ink: oklch(92% 0.03 250);   /* 11.28:1 at worst on a crew's light tier */
  }
}

/* preset: Matrix */
:root[data-preset="matrix"], :root[data-preset="matrix"][data-mode="dark"] {
  color-scheme: dark;
  --a11y: var(--a11y-dark);
  --bg: oklch(clamp(0%, calc((8 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --panel: oklch(clamp(0%, calc((12 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --card: oklch(clamp(0%, calc((16 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --raised: oklch(clamp(0%, calc((22 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --all: oklch(88% 0.04 145);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(90% + (100 - 90) * var(--a11y) / 100 * 1%) 0.04 145);
  --text2: oklch(calc(70% + (100 - 70) * var(--a11y) / 100 * 1%) 0.04 145);
  --line: oklch(calc(52% + (72 - 52) * var(--a11y) / 100 * 1%) 0.04 145);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --bg-press: oklch(clamp(0%, calc((6 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --bg-selected: oklch(clamp(0%, calc((16 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --panel-hover: oklch(clamp(0%, calc((18 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --panel-press: oklch(clamp(0%, calc((8 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --panel-selected: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --card-hover: oklch(clamp(0%, calc((22 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --card-press: oklch(clamp(0%, calc((12 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --card-selected: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --raised-hover: oklch(clamp(0%, calc((28 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --raised-press: oklch(clamp(0%, calc((18 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --raised-selected: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.04 145);
  --row-banner: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0248 140);
  --row-status: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0212 150);
  --row-nav: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0225 135);
  --row-tools: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0242 145);
  --row-filters: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.019 155);
  --row-dialogue: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0242 145);
  --shade-dir: 1;
  --btn-l: 76; --btn-c: 0.239; --btn-h: 145;   /* page-body buttons */
  --button-text: oklch(10% 0.04 145);   /* the light page's ink */
  --glow-alpha: 0.55;   /* the button's own colour cast on the ground */
  --btn-banner-l: 76; --btn-banner-c: 0.2447; --btn-banner-h: 140;
  --btn-status-l: 76; --btn-status-c: 0.2093; --btn-status-h: 150;
  --btn-nav-l: 76; --btn-nav-c: 0.222; --btn-nav-h: 135;
  --btn-tools-l: 76; --btn-tools-c: 0.239; --btn-tools-h: 145;
  --btn-filters-l: 76; --btn-filters-c: 0.1879; --btn-filters-h: 155;
  --btn-digitools-l: 76; --btn-digitools-c: 0.2045; --btn-digitools-h: 130;
  --btn-dialogue-l: 76; --btn-dialogue-c: 0.239; --btn-dialogue-h: 145;
  --dialogue-fill: oklch(72% 0.1132 145);
  --dialogue-input-fill: oklch(82% 0.0679 145);
  --dialogue-ink: oklch(10% 0.04 145);
  --scroll-thumb: oklch(10% 0.04 145 / 0.35);
  --scroll-thumb-page: oklch(90% 0.04 145 / 0.3);
  --map-ink: oklch(95% 0.045 95);
  --map-ink-bold: 1px;
  --map-ink-min: 1;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(72% 0.1743 27);
  --crew-red-b: oklch(54% 0.2201 27);
  --crew-orange-a: oklch(72% 0.1852 52);
  --crew-orange-b: oklch(54% 0.1389 52);
  --crew-amber-a: oklch(72% 0.1501 78);
  --crew-amber-b: oklch(54% 0.1126 78);
  --crew-yellow-a: oklch(72% 0.1497 100);
  --crew-yellow-b: oklch(54% 0.1123 100);
  --crew-lime-a: oklch(72% 0.1747 122);
  --crew-lime-b: oklch(54% 0.131 122);
  --crew-green-a: oklch(72% 0.2422 142);
  --crew-green-b: oklch(54% 0.1817 142);
  --crew-blue-a: oklch(72% 0.1514 250);
  --crew-blue-b: oklch(54% 0.1529 250);
  --crew-indigo-a: oklch(72% 0.1519 285);
  --crew-indigo-b: oklch(54% 0.268 285);
  --crew-violet-a: oklch(72% 0.1971 310);
  --crew-violet-b: oklch(54% 0.2731 310);
  --crew-magenta-a: oklch(72% 0.2393 340);
  --crew-magenta-b: oklch(54% 0.2346 340);
  --crew-a-ink: oklch(10% 0.04 145);   /* 7.35:1 at worst on a crew's light tier */
}

:root[data-preset="matrix"][data-mode="light"] {
  color-scheme: light;
  --a11y: var(--a11y-light);
  --bg: oklch(clamp(0%, calc((92 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --panel: oklch(clamp(0%, calc((88 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --card: oklch(clamp(0%, calc((84 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --raised: oklch(clamp(0%, calc((78 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --all: oklch(12% 0.04 145);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(10% + (0 - 10) * var(--a11y) / 100 * 1%) 0.04 145);
  --text2: oklch(calc(30% + (0 - 30) * var(--a11y) / 100 * 1%) 0.04 145);
  --line: oklch(calc(48% + (28 - 48) * var(--a11y) / 100 * 1%) 0.04 145);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --bg-press: oklch(clamp(0%, calc((94 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --bg-selected: oklch(clamp(0%, calc((84 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --panel-hover: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --panel-press: oklch(clamp(0%, calc((92 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --panel-selected: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --card-hover: oklch(clamp(0%, calc((78 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --card-press: oklch(clamp(0%, calc((88 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --card-selected: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --raised-hover: oklch(clamp(0%, calc((72 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --raised-press: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --raised-selected: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
  --row-banner: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.0248 140);
  --row-status: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.0212 150);
  --row-nav: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.0225 135);
  --row-tools: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.0242 145);
  --row-filters: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.019 155);
  --row-dialogue: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.0242 145);
  --shade-dir: 1;
  --btn-l: 76; --btn-c: 0.239; --btn-h: 145;   /* page-body buttons */
  --button-text: oklch(10% 0.04 145);   /* the light page's ink */
  --glow-alpha: 0;   /* the button's own colour cast on the ground */
  --btn-banner-l: 76; --btn-banner-c: 0.2447; --btn-banner-h: 140;
  --btn-status-l: 76; --btn-status-c: 0.2093; --btn-status-h: 150;
  --btn-nav-l: 76; --btn-nav-c: 0.222; --btn-nav-h: 135;
  --btn-tools-l: 76; --btn-tools-c: 0.239; --btn-tools-h: 145;
  --btn-filters-l: 76; --btn-filters-c: 0.1879; --btn-filters-h: 155;
  --btn-digitools-l: 76; --btn-digitools-c: 0.2045; --btn-digitools-h: 130;
  --btn-dialogue-l: 76; --btn-dialogue-c: 0.239; --btn-dialogue-h: 145;
  --dialogue-fill: oklch(72% 0.1132 145);
  --dialogue-input-fill: oklch(82% 0.0679 145);
  --dialogue-ink: oklch(10% 0.04 145);
  --scroll-thumb: oklch(90% 0.04 145 / 0.35);
  --scroll-thumb-page: oklch(10% 0.04 145 / 0.3);
  --map-ink: var(--text2);
  --map-ink-bold: 0px;
  --map-ink-min: 0.8;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(28% 0.1141 27);
  --crew-red-b: oklch(46% 0.1875 27);
  --crew-orange-a: oklch(28% 0.072 52);
  --crew-orange-b: oklch(46% 0.1183 52);
  --crew-amber-a: oklch(28% 0.0584 78);
  --crew-amber-b: oklch(46% 0.0959 78);
  --crew-yellow-a: oklch(28% 0.0582 100);
  --crew-yellow-b: oklch(46% 0.0956 100);
  --crew-lime-a: oklch(28% 0.0679 122);
  --crew-lime-b: oklch(46% 0.1116 122);
  --crew-green-a: oklch(28% 0.0942 142);
  --crew-green-b: oklch(46% 0.1548 142);
  --crew-blue-a: oklch(28% 0.0793 250);
  --crew-blue-b: oklch(46% 0.1302 250);
  --crew-indigo-a: oklch(28% 0.1636 285);
  --crew-indigo-b: oklch(46% 0.2688 285);
  --crew-violet-a: oklch(28% 0.1416 310);
  --crew-violet-b: oklch(46% 0.2326 310);
  --crew-magenta-a: oklch(28% 0.1217 340);
  --crew-magenta-b: oklch(46% 0.1999 340);
  --crew-a-ink: oklch(90% 0.04 145);   /* 10.73:1 at worst on a crew's light tier */
}

@media (prefers-color-scheme: light) {
    :root[data-preset="matrix"]:not([data-mode="dark"]) {
    color-scheme: light;
    --a11y: var(--a11y-light);
    --bg: oklch(clamp(0%, calc((92 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --panel: oklch(clamp(0%, calc((88 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --card: oklch(clamp(0%, calc((84 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --raised: oklch(clamp(0%, calc((78 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --all: oklch(12% 0.04 145);
    /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
    --text: oklch(calc(10% + (0 - 10) * var(--a11y) / 100 * 1%) 0.04 145);
    --text2: oklch(calc(30% + (0 - 30) * var(--a11y) / 100 * 1%) 0.04 145);
    --line: oklch(calc(48% + (28 - 48) * var(--a11y) / 100 * 1%) 0.04 145);
  
    /* hover pops one rung, press pushes in, selected lifts further — real rungs on
       the ladder, not a guessed tint (Addendum H §7). */
    --bg-hover: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --bg-press: oklch(clamp(0%, calc((94 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --bg-selected: oklch(clamp(0%, calc((84 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --panel-hover: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --panel-press: oklch(clamp(0%, calc((92 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --panel-selected: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --card-hover: oklch(clamp(0%, calc((78 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --card-press: oklch(clamp(0%, calc((88 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --card-selected: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --raised-hover: oklch(clamp(0%, calc((72 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --raised-press: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --raised-selected: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.04 145);
    --row-banner: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.0248 140);
    --row-status: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.0212 150);
    --row-nav: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.0225 135);
    --row-tools: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.0242 145);
    --row-filters: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.019 155);
    --row-dialogue: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.0242 145);
    --shade-dir: 1;
    --btn-l: 76; --btn-c: 0.239; --btn-h: 145;   /* page-body buttons */
    --button-text: oklch(10% 0.04 145);   /* the light page's ink */
    --glow-alpha: 0;   /* the button's own colour cast on the ground */
    --btn-banner-l: 76; --btn-banner-c: 0.2447; --btn-banner-h: 140;
    --btn-status-l: 76; --btn-status-c: 0.2093; --btn-status-h: 150;
    --btn-nav-l: 76; --btn-nav-c: 0.222; --btn-nav-h: 135;
    --btn-tools-l: 76; --btn-tools-c: 0.239; --btn-tools-h: 145;
    --btn-filters-l: 76; --btn-filters-c: 0.1879; --btn-filters-h: 155;
    --btn-digitools-l: 76; --btn-digitools-c: 0.2045; --btn-digitools-h: 130;
    --btn-dialogue-l: 76; --btn-dialogue-c: 0.239; --btn-dialogue-h: 145;
    --dialogue-fill: oklch(72% 0.1132 145);
    --dialogue-input-fill: oklch(82% 0.0679 145);
    --dialogue-ink: oklch(10% 0.04 145);
    --scroll-thumb: oklch(90% 0.04 145 / 0.35);
    --scroll-thumb-page: oklch(10% 0.04 145 / 0.3);
    --map-ink: var(--text2);
    --map-ink-bold: 0px;
    --map-ink-min: 0.8;
  
    /* crew colours — colour is WHO. Records store the reference, never the hex. */
    --crew-red-a: oklch(28% 0.1141 27);
    --crew-red-b: oklch(46% 0.1875 27);
    --crew-orange-a: oklch(28% 0.072 52);
    --crew-orange-b: oklch(46% 0.1183 52);
    --crew-amber-a: oklch(28% 0.0584 78);
    --crew-amber-b: oklch(46% 0.0959 78);
    --crew-yellow-a: oklch(28% 0.0582 100);
    --crew-yellow-b: oklch(46% 0.0956 100);
    --crew-lime-a: oklch(28% 0.0679 122);
    --crew-lime-b: oklch(46% 0.1116 122);
    --crew-green-a: oklch(28% 0.0942 142);
    --crew-green-b: oklch(46% 0.1548 142);
    --crew-blue-a: oklch(28% 0.0793 250);
    --crew-blue-b: oklch(46% 0.1302 250);
    --crew-indigo-a: oklch(28% 0.1636 285);
    --crew-indigo-b: oklch(46% 0.2688 285);
    --crew-violet-a: oklch(28% 0.1416 310);
    --crew-violet-b: oklch(46% 0.2326 310);
    --crew-magenta-a: oklch(28% 0.1217 340);
    --crew-magenta-b: oklch(46% 0.1999 340);
    --crew-a-ink: oklch(90% 0.04 145);   /* 10.73:1 at worst on a crew's light tier */
  }
}

/* preset: Night Vision */
:root[data-preset="nightvision"], :root[data-preset="nightvision"][data-mode="dark"] {
  color-scheme: dark;
  --a11y: var(--a11y-dark);
  --bg: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --panel: oklch(clamp(0%, calc((18 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --card: oklch(clamp(0%, calc((22 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --raised: oklch(clamp(0%, calc((28 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --all: oklch(88% 0.03 135);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(90% + (100 - 90) * var(--a11y) / 100 * 1%) 0.03 135);
  --text2: oklch(calc(70% + (100 - 70) * var(--a11y) / 100 * 1%) 0.03 135);
  --line: oklch(calc(55% + (75 - 55) * var(--a11y) / 100 * 1%) 0.03 135);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --bg-press: oklch(clamp(0%, calc((10 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --bg-selected: oklch(clamp(0%, calc((22 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --panel-hover: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --panel-press: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --panel-selected: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --card-hover: oklch(clamp(0%, calc((28 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --card-press: oklch(clamp(0%, calc((18 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --card-selected: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --raised-hover: oklch(clamp(0%, calc((34 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --raised-press: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --raised-selected: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 135);
  --row-banner: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0242 130);
  --row-status: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.029 140);
  --row-nav: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0263 135);
  --row-tools: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0278 138);
  --row-filters: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0235 128);
  --row-dialogue: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0268 136);
  --shade-dir: 1;
  --btn-l: 72; --btn-c: 0.2103; --btn-h: 135;   /* page-body buttons */
  --button-text: oklch(10% 0.03 135);   /* the light page's ink */
  --glow-alpha: 0.55;   /* the button's own colour cast on the ground */
  --btn-banner-l: 72; --btn-banner-c: 0.1938; --btn-banner-h: 130;
  --btn-status-l: 72; --btn-status-c: 0.2318; --btn-status-h: 140;
  --btn-nav-l: 72; --btn-nav-c: 0.2103; --btn-nav-h: 135;
  --btn-tools-l: 72; --btn-tools-c: 0.2225; --btn-tools-h: 138;
  --btn-filters-l: 72; --btn-filters-c: 0.1883; --btn-filters-h: 128;
  --btn-digitools-l: 72; --btn-digitools-c: 0.1999; --btn-digitools-h: 132;
  --btn-dialogue-l: 72; --btn-dialogue-c: 0.2141; --btn-dialogue-h: 136;
  --dialogue-fill: oklch(68% 0.0809 136);
  --dialogue-input-fill: oklch(78% 0.0485 136);
  --dialogue-ink: oklch(10% 0.03 135);
  --scroll-thumb: oklch(10% 0.03 135 / 0.35);
  --scroll-thumb-page: oklch(90% 0.03 135 / 0.3);
  --map-ink: oklch(95% 0.045 95);
  --map-ink-bold: 1px;
  --map-ink-min: 1;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(72% 0.1743 27);
  --crew-red-b: oklch(54% 0.2201 27);
  --crew-orange-a: oklch(72% 0.1852 52);
  --crew-orange-b: oklch(54% 0.1389 52);
  --crew-amber-a: oklch(72% 0.1501 78);
  --crew-amber-b: oklch(54% 0.1126 78);
  --crew-yellow-a: oklch(72% 0.1497 100);
  --crew-yellow-b: oklch(54% 0.1123 100);
  --crew-lime-a: oklch(72% 0.1747 122);
  --crew-lime-b: oklch(54% 0.131 122);
  --crew-green-a: oklch(72% 0.2422 142);
  --crew-green-b: oklch(54% 0.1817 142);
  --crew-blue-a: oklch(72% 0.1514 250);
  --crew-blue-b: oklch(54% 0.1529 250);
  --crew-indigo-a: oklch(72% 0.1519 285);
  --crew-indigo-b: oklch(54% 0.268 285);
  --crew-violet-a: oklch(72% 0.1971 310);
  --crew-violet-b: oklch(54% 0.2731 310);
  --crew-magenta-a: oklch(72% 0.2393 340);
  --crew-magenta-b: oklch(54% 0.2346 340);
  --crew-a-ink: oklch(10% 0.03 135);   /* 7.34:1 at worst on a crew's light tier */
}

:root[data-preset="nightvision"][data-mode="light"] {
  color-scheme: light;
  --a11y: var(--a11y-light);
  --bg: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --panel: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --card: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --raised: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --all: oklch(12% 0.03 135);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(10% + (0 - 10) * var(--a11y) / 100 * 1%) 0.03 135);
  --text2: oklch(calc(30% + (0 - 30) * var(--a11y) / 100 * 1%) 0.03 135);
  --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.03 135);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --bg-press: oklch(clamp(0%, calc((90 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --bg-selected: oklch(clamp(0%, calc((78 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --panel-hover: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --panel-press: oklch(clamp(0%, calc((84 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --panel-selected: oklch(clamp(0%, calc((72 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --card-hover: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --card-press: oklch(clamp(0%, calc((78 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --card-selected: oklch(clamp(0%, calc((66 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --raised-hover: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --raised-press: oklch(clamp(0%, calc((72 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --raised-selected: oklch(clamp(0%, calc((60 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
  --row-banner: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.0242 130);
  --row-status: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.029 140);
  --row-nav: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.0263 135);
  --row-tools: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.0278 138);
  --row-filters: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.0235 128);
  --row-dialogue: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.0268 136);
  --shade-dir: 1;
  --btn-l: 72; --btn-c: 0.2103; --btn-h: 135;   /* page-body buttons */
  --button-text: oklch(10% 0.03 135);   /* the light page's ink */
  --glow-alpha: 0;   /* the button's own colour cast on the ground */
  --btn-banner-l: 72; --btn-banner-c: 0.1938; --btn-banner-h: 130;
  --btn-status-l: 72; --btn-status-c: 0.2318; --btn-status-h: 140;
  --btn-nav-l: 72; --btn-nav-c: 0.2103; --btn-nav-h: 135;
  --btn-tools-l: 72; --btn-tools-c: 0.2225; --btn-tools-h: 138;
  --btn-filters-l: 72; --btn-filters-c: 0.1883; --btn-filters-h: 128;
  --btn-digitools-l: 72; --btn-digitools-c: 0.1999; --btn-digitools-h: 132;
  --btn-dialogue-l: 72; --btn-dialogue-c: 0.2141; --btn-dialogue-h: 136;
  --dialogue-fill: oklch(68% 0.0809 136);
  --dialogue-input-fill: oklch(78% 0.0485 136);
  --dialogue-ink: oklch(10% 0.03 135);
  --scroll-thumb: oklch(90% 0.03 135 / 0.35);
  --scroll-thumb-page: oklch(10% 0.03 135 / 0.3);
  --map-ink: var(--text2);
  --map-ink-bold: 0px;
  --map-ink-min: 0.8;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(28% 0.1141 27);
  --crew-red-b: oklch(46% 0.1875 27);
  --crew-orange-a: oklch(28% 0.072 52);
  --crew-orange-b: oklch(46% 0.1183 52);
  --crew-amber-a: oklch(28% 0.0584 78);
  --crew-amber-b: oklch(46% 0.0959 78);
  --crew-yellow-a: oklch(28% 0.0582 100);
  --crew-yellow-b: oklch(46% 0.0956 100);
  --crew-lime-a: oklch(28% 0.0679 122);
  --crew-lime-b: oklch(46% 0.1116 122);
  --crew-green-a: oklch(28% 0.0942 142);
  --crew-green-b: oklch(46% 0.1548 142);
  --crew-blue-a: oklch(28% 0.0793 250);
  --crew-blue-b: oklch(46% 0.1302 250);
  --crew-indigo-a: oklch(28% 0.1636 285);
  --crew-indigo-b: oklch(46% 0.2688 285);
  --crew-violet-a: oklch(28% 0.1416 310);
  --crew-violet-b: oklch(46% 0.2326 310);
  --crew-magenta-a: oklch(28% 0.1217 340);
  --crew-magenta-b: oklch(46% 0.1999 340);
  --crew-a-ink: oklch(90% 0.03 135);   /* 10.67:1 at worst on a crew's light tier */
}

@media (prefers-color-scheme: light) {
    :root[data-preset="nightvision"]:not([data-mode="dark"]) {
    color-scheme: light;
    --a11y: var(--a11y-light);
    --bg: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --panel: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --card: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --raised: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --all: oklch(12% 0.03 135);
    /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
    --text: oklch(calc(10% + (0 - 10) * var(--a11y) / 100 * 1%) 0.03 135);
    --text2: oklch(calc(30% + (0 - 30) * var(--a11y) / 100 * 1%) 0.03 135);
    --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.03 135);
  
    /* hover pops one rung, press pushes in, selected lifts further — real rungs on
       the ladder, not a guessed tint (Addendum H §7). */
    --bg-hover: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --bg-press: oklch(clamp(0%, calc((90 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --bg-selected: oklch(clamp(0%, calc((78 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --panel-hover: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --panel-press: oklch(clamp(0%, calc((84 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --panel-selected: oklch(clamp(0%, calc((72 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --card-hover: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --card-press: oklch(clamp(0%, calc((78 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --card-selected: oklch(clamp(0%, calc((66 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --raised-hover: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --raised-press: oklch(clamp(0%, calc((72 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --raised-selected: oklch(clamp(0%, calc((60 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 135);
    --row-banner: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.0242 130);
    --row-status: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.029 140);
    --row-nav: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.0263 135);
    --row-tools: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.0278 138);
    --row-filters: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.0235 128);
    --row-dialogue: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.0268 136);
    --shade-dir: 1;
    --btn-l: 72; --btn-c: 0.2103; --btn-h: 135;   /* page-body buttons */
    --button-text: oklch(10% 0.03 135);   /* the light page's ink */
    --glow-alpha: 0;   /* the button's own colour cast on the ground */
    --btn-banner-l: 72; --btn-banner-c: 0.1938; --btn-banner-h: 130;
    --btn-status-l: 72; --btn-status-c: 0.2318; --btn-status-h: 140;
    --btn-nav-l: 72; --btn-nav-c: 0.2103; --btn-nav-h: 135;
    --btn-tools-l: 72; --btn-tools-c: 0.2225; --btn-tools-h: 138;
    --btn-filters-l: 72; --btn-filters-c: 0.1883; --btn-filters-h: 128;
    --btn-digitools-l: 72; --btn-digitools-c: 0.1999; --btn-digitools-h: 132;
    --btn-dialogue-l: 72; --btn-dialogue-c: 0.2141; --btn-dialogue-h: 136;
    --dialogue-fill: oklch(68% 0.0809 136);
    --dialogue-input-fill: oklch(78% 0.0485 136);
    --dialogue-ink: oklch(10% 0.03 135);
    --scroll-thumb: oklch(90% 0.03 135 / 0.35);
    --scroll-thumb-page: oklch(10% 0.03 135 / 0.3);
    --map-ink: var(--text2);
    --map-ink-bold: 0px;
    --map-ink-min: 0.8;
  
    /* crew colours — colour is WHO. Records store the reference, never the hex. */
    --crew-red-a: oklch(28% 0.1141 27);
    --crew-red-b: oklch(46% 0.1875 27);
    --crew-orange-a: oklch(28% 0.072 52);
    --crew-orange-b: oklch(46% 0.1183 52);
    --crew-amber-a: oklch(28% 0.0584 78);
    --crew-amber-b: oklch(46% 0.0959 78);
    --crew-yellow-a: oklch(28% 0.0582 100);
    --crew-yellow-b: oklch(46% 0.0956 100);
    --crew-lime-a: oklch(28% 0.0679 122);
    --crew-lime-b: oklch(46% 0.1116 122);
    --crew-green-a: oklch(28% 0.0942 142);
    --crew-green-b: oklch(46% 0.1548 142);
    --crew-blue-a: oklch(28% 0.0793 250);
    --crew-blue-b: oklch(46% 0.1302 250);
    --crew-indigo-a: oklch(28% 0.1636 285);
    --crew-indigo-b: oklch(46% 0.2688 285);
    --crew-violet-a: oklch(28% 0.1416 310);
    --crew-violet-b: oklch(46% 0.2326 310);
    --crew-magenta-a: oklch(28% 0.1217 340);
    --crew-magenta-b: oklch(46% 0.1999 340);
    --crew-a-ink: oklch(90% 0.03 135);   /* 10.67:1 at worst on a crew's light tier */
  }
}

/* preset: Infrared */
:root[data-preset="infrared"], :root[data-preset="infrared"][data-mode="dark"] {
  color-scheme: dark;
  --a11y: var(--a11y-dark);
  --bg: oklch(clamp(0%, calc((18 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --panel: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --card: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --raised: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --all: oklch(88% 0.03 290);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(92% + (100 - 92) * var(--a11y) / 100 * 1%) 0.03 290);
  --text2: oklch(calc(72% + (100 - 72) * var(--a11y) / 100 * 1%) 0.03 290);
  --line: oklch(calc(55% + (75 - 55) * var(--a11y) / 100 * 1%) 0.03 290);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --bg-press: oklch(clamp(0%, calc((14 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --bg-selected: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --panel-hover: oklch(clamp(0%, calc((30 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --panel-press: oklch(clamp(0%, calc((20 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --panel-selected: oklch(clamp(0%, calc((32 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --card-hover: oklch(clamp(0%, calc((36 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --card-press: oklch(clamp(0%, calc((26 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --card-selected: oklch(clamp(0%, calc((38 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --raised-hover: oklch(clamp(0%, calc((42 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --raised-press: oklch(clamp(0%, calc((32 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --raised-selected: oklch(clamp(0%, calc((44 + var(--depth-dark) * -0.12) * 1%), 100%) 0.03 290);
  --row-banner: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0705 300);
  --row-status: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0374 250);
  --row-nav: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0224 200);
  --row-tools: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0529 30);
  --row-filters: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0327 55);
  --row-dialogue: oklch(clamp(0%, calc((24 + var(--depth-dark) * -0.12) * 1%), 100%) 0.0528 15);
  --shade-dir: 1;
  --btn-l: 76; --btn-c: 0.1524; --btn-h: 45;   /* page-body buttons */
  --button-text: oklch(8% 0.03 290);   /* the light page's ink */
  --glow-alpha: 0.55;   /* the button's own colour cast on the ground */
  --btn-banner-l: 76; --btn-banner-c: 0.145; --btn-banner-h: 300;
  --btn-status-l: 76; --btn-status-c: 0.1278; --btn-status-h: 250;
  --btn-nav-l: 76; --btn-nav-c: 0.1292; --btn-nav-h: 200;
  --btn-tools-l: 76; --btn-tools-c: 0.1437; --btn-tools-h: 30;
  --btn-filters-l: 76; --btn-filters-c: 0.1651; --btn-filters-h: 55;
  --btn-digitools-l: 76; --btn-digitools-c: 0.1558; --btn-digitools-h: 85;
  --btn-dialogue-l: 76; --btn-dialogue-c: 0.1448; --btn-dialogue-h: 15;
  --dialogue-fill: oklch(72% 0.0883 15);
  --dialogue-input-fill: oklch(82% 0.053 15);
  --dialogue-ink: oklch(8% 0.03 290);
  --scroll-thumb: oklch(8% 0.03 290 / 0.35);
  --scroll-thumb-page: oklch(92% 0.03 290 / 0.3);
  --map-ink: oklch(95% 0.045 95);
  --map-ink-bold: 1px;
  --map-ink-min: 1;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(72% 0.1743 27);
  --crew-red-b: oklch(54% 0.2201 27);
  --crew-orange-a: oklch(72% 0.1852 52);
  --crew-orange-b: oklch(54% 0.1389 52);
  --crew-amber-a: oklch(72% 0.1501 78);
  --crew-amber-b: oklch(54% 0.1126 78);
  --crew-yellow-a: oklch(72% 0.1497 100);
  --crew-yellow-b: oklch(54% 0.1123 100);
  --crew-lime-a: oklch(72% 0.1747 122);
  --crew-lime-b: oklch(54% 0.131 122);
  --crew-green-a: oklch(72% 0.2422 142);
  --crew-green-b: oklch(54% 0.1817 142);
  --crew-blue-a: oklch(72% 0.1514 250);
  --crew-blue-b: oklch(54% 0.1529 250);
  --crew-indigo-a: oklch(72% 0.1519 285);
  --crew-indigo-b: oklch(54% 0.268 285);
  --crew-violet-a: oklch(72% 0.1971 310);
  --crew-violet-b: oklch(54% 0.2731 310);
  --crew-magenta-a: oklch(72% 0.2393 340);
  --crew-magenta-b: oklch(54% 0.2346 340);
  --crew-a-ink: oklch(8% 0.03 290);   /* 7.44:1 at worst on a crew's light tier */
}

:root[data-preset="infrared"][data-mode="light"] {
  color-scheme: light;
  --a11y: var(--a11y-light);
  --bg: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --panel: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --card: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --raised: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --all: oklch(12% 0.03 290);
  /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
  --text: oklch(calc(8% + (0 - 8) * var(--a11y) / 100 * 1%) 0.03 290);
  --text2: oklch(calc(28% + (0 - 28) * var(--a11y) / 100 * 1%) 0.03 290);
  --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.03 290);

  /* hover pops one rung, press pushes in, selected lifts further — real rungs on
     the ladder, not a guessed tint (Addendum H §7). */
  --bg-hover: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --bg-press: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --bg-selected: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --panel-hover: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --panel-press: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --panel-selected: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --card-hover: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --card-press: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --card-selected: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --raised-hover: oklch(clamp(0%, calc((58 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --raised-press: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --raised-selected: oklch(clamp(0%, calc((56 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
  --row-banner: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0705 300);
  --row-status: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0374 250);
  --row-nav: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0224 200);
  --row-tools: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0529 30);
  --row-filters: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0327 55);
  --row-dialogue: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0528 15);
  --shade-dir: 1;
  --btn-l: 76; --btn-c: 0.1524; --btn-h: 45;   /* page-body buttons */
  --button-text: oklch(8% 0.03 290);   /* the light page's ink */
  --glow-alpha: 0;   /* the button's own colour cast on the ground */
  --btn-banner-l: 76; --btn-banner-c: 0.145; --btn-banner-h: 300;
  --btn-status-l: 76; --btn-status-c: 0.1278; --btn-status-h: 250;
  --btn-nav-l: 76; --btn-nav-c: 0.1292; --btn-nav-h: 200;
  --btn-tools-l: 76; --btn-tools-c: 0.1437; --btn-tools-h: 30;
  --btn-filters-l: 76; --btn-filters-c: 0.1651; --btn-filters-h: 55;
  --btn-digitools-l: 76; --btn-digitools-c: 0.1558; --btn-digitools-h: 85;
  --btn-dialogue-l: 76; --btn-dialogue-c: 0.1448; --btn-dialogue-h: 15;
  --dialogue-fill: oklch(72% 0.0883 15);
  --dialogue-input-fill: oklch(82% 0.053 15);
  --dialogue-ink: oklch(8% 0.03 290);
  --scroll-thumb: oklch(92% 0.03 290 / 0.35);
  --scroll-thumb-page: oklch(8% 0.03 290 / 0.3);
  --map-ink: var(--text2);
  --map-ink-bold: 0px;
  --map-ink-min: 0.8;

  /* crew colours — colour is WHO. Records store the reference, never the hex. */
  --crew-red-a: oklch(28% 0.1141 27);
  --crew-red-b: oklch(46% 0.1875 27);
  --crew-orange-a: oklch(28% 0.072 52);
  --crew-orange-b: oklch(46% 0.1183 52);
  --crew-amber-a: oklch(28% 0.0584 78);
  --crew-amber-b: oklch(46% 0.0959 78);
  --crew-yellow-a: oklch(28% 0.0582 100);
  --crew-yellow-b: oklch(46% 0.0956 100);
  --crew-lime-a: oklch(28% 0.0679 122);
  --crew-lime-b: oklch(46% 0.1116 122);
  --crew-green-a: oklch(28% 0.0942 142);
  --crew-green-b: oklch(46% 0.1548 142);
  --crew-blue-a: oklch(28% 0.0793 250);
  --crew-blue-b: oklch(46% 0.1302 250);
  --crew-indigo-a: oklch(28% 0.1636 285);
  --crew-indigo-b: oklch(46% 0.2688 285);
  --crew-violet-a: oklch(28% 0.1416 310);
  --crew-violet-b: oklch(46% 0.2326 310);
  --crew-magenta-a: oklch(28% 0.1217 340);
  --crew-magenta-b: oklch(46% 0.1999 340);
  --crew-a-ink: oklch(92% 0.03 290);   /* 11.2:1 at worst on a crew's light tier */
}

@media (prefers-color-scheme: light) {
    :root[data-preset="infrared"]:not([data-mode="dark"]) {
    color-scheme: light;
    --a11y: var(--a11y-light);
    --bg: oklch(clamp(0%, calc((82 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --panel: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --card: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --raised: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --all: oklch(12% 0.03 290);
    /* text and borders move together with --a11y (Site Design, 0 = as built = AA) */
    --text: oklch(calc(8% + (0 - 8) * var(--a11y) / 100 * 1%) 0.03 290);
    --text2: oklch(calc(28% + (0 - 28) * var(--a11y) / 100 * 1%) 0.03 290);
    --line: oklch(calc(45% + (25 - 45) * var(--a11y) / 100 * 1%) 0.03 290);
  
    /* hover pops one rung, press pushes in, selected lifts further — real rungs on
       the ladder, not a guessed tint (Addendum H §7). */
    --bg-hover: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --bg-press: oklch(clamp(0%, calc((86 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --bg-selected: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --panel-hover: oklch(clamp(0%, calc((70 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --panel-press: oklch(clamp(0%, calc((80 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --panel-selected: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --card-hover: oklch(clamp(0%, calc((64 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --card-press: oklch(clamp(0%, calc((74 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --card-selected: oklch(clamp(0%, calc((62 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --raised-hover: oklch(clamp(0%, calc((58 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --raised-press: oklch(clamp(0%, calc((68 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --raised-selected: oklch(clamp(0%, calc((56 + var(--depth-light) * 0.14) * 1%), 100%) 0.03 290);
    --row-banner: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0705 300);
    --row-status: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0374 250);
    --row-nav: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0224 200);
    --row-tools: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0529 30);
    --row-filters: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0327 55);
    --row-dialogue: oklch(clamp(0%, calc((76 + var(--depth-light) * 0.14) * 1%), 100%) 0.0528 15);
    --shade-dir: 1;
    --btn-l: 76; --btn-c: 0.1524; --btn-h: 45;   /* page-body buttons */
    --button-text: oklch(8% 0.03 290);   /* the light page's ink */
    --glow-alpha: 0;   /* the button's own colour cast on the ground */
    --btn-banner-l: 76; --btn-banner-c: 0.145; --btn-banner-h: 300;
    --btn-status-l: 76; --btn-status-c: 0.1278; --btn-status-h: 250;
    --btn-nav-l: 76; --btn-nav-c: 0.1292; --btn-nav-h: 200;
    --btn-tools-l: 76; --btn-tools-c: 0.1437; --btn-tools-h: 30;
    --btn-filters-l: 76; --btn-filters-c: 0.1651; --btn-filters-h: 55;
    --btn-digitools-l: 76; --btn-digitools-c: 0.1558; --btn-digitools-h: 85;
    --btn-dialogue-l: 76; --btn-dialogue-c: 0.1448; --btn-dialogue-h: 15;
    --dialogue-fill: oklch(72% 0.0883 15);
    --dialogue-input-fill: oklch(82% 0.053 15);
    --dialogue-ink: oklch(8% 0.03 290);
    --scroll-thumb: oklch(92% 0.03 290 / 0.35);
    --scroll-thumb-page: oklch(8% 0.03 290 / 0.3);
    --map-ink: var(--text2);
    --map-ink-bold: 0px;
    --map-ink-min: 0.8;
  
    /* crew colours — colour is WHO. Records store the reference, never the hex. */
    --crew-red-a: oklch(28% 0.1141 27);
    --crew-red-b: oklch(46% 0.1875 27);
    --crew-orange-a: oklch(28% 0.072 52);
    --crew-orange-b: oklch(46% 0.1183 52);
    --crew-amber-a: oklch(28% 0.0584 78);
    --crew-amber-b: oklch(46% 0.0959 78);
    --crew-yellow-a: oklch(28% 0.0582 100);
    --crew-yellow-b: oklch(46% 0.0956 100);
    --crew-lime-a: oklch(28% 0.0679 122);
    --crew-lime-b: oklch(46% 0.1116 122);
    --crew-green-a: oklch(28% 0.0942 142);
    --crew-green-b: oklch(46% 0.1548 142);
    --crew-blue-a: oklch(28% 0.0793 250);
    --crew-blue-b: oklch(46% 0.1302 250);
    --crew-indigo-a: oklch(28% 0.1636 285);
    --crew-indigo-b: oklch(46% 0.2688 285);
    --crew-violet-a: oklch(28% 0.1416 310);
    --crew-violet-b: oklch(46% 0.2326 310);
    --crew-magenta-a: oklch(28% 0.1217 340);
    --crew-magenta-b: oklch(46% 0.1999 340);
    --crew-a-ink: oklch(92% 0.03 290);   /* 11.2:1 at worst on a crew's light tier */
  }
}

:root {
  /* type — six steps, no seventh. 100 is the largest text on the page. */
  --font: "Roboto Condensed", "Roboto", system-ui, sans-serif;
  --font-full: "Roboto", system-ui, sans-serif;
  --lh: 1.2;
  --type-spread: 50;
  --t-page: 2rem;   /* 100 — page heading */
  --t-section: 1.68rem;   /* 84 — section heading */
  --t-card: 1.42rem;   /* 71 — card / dialogue heading */
  --t-label: 1.18rem;   /* 59 — sub-heading, button label */
  --t-body: 1rem;   /* 50 — body text */
  --t-small: 0.84rem;   /* 42 — smallest label, footer build number */

  /* the dialogue box — one height, every state */
  --dialogue-say-lines: 3;
  --dialogue-actions: 27%;
  --dialogue-say-height: calc(var(--dialogue-say-lines) * var(--t-label) * var(--lh) + var(--pad) * 2 + var(--t-small));  /* the lines, the padding, and a little air */

  /* spacing — inside < between, ratio 2:1 */
  --pad: 0.63em;
  --space-ratio: 2;   /* floor 2, max 4 — Site Design */
  --a11y-dark: 0; --a11y-light: 0;  /* 0-100 each — Site Design: contrast per mode */
  --depth-dark: 0; --depth-light: 0;      /* 0-100 each — Site Design: darker dark, brighter light */
  --map-height: 55vh;                 /* row 6 — the person drags it; prefs.js sets it */
  --map-handle: 0.9rem;
  --map-name: 2.1cqw; --map-name-small: 1.7cqw; --map-name-small-scale: 0.8;   /* the names on the map (map.js draws them by the same numbers) */
  --hover-style: tonal;
  --gap: calc(var(--pad) * var(--space-ratio));

  /* shape — 9% of the shortest side, capped. js/shape.js measures and sets --radius. */
  --radius-percent: 9;
  --radius-cap: 1.5rem;
  --radius: var(--radius-cap);

  /* the shell (Layout 2, drawers) — the drawer open, the drawer folded to its icons, the top bar. prefs.js moves each. */
  --drawer-w: 13.75rem;
  --rail-w: 3.5rem;
  --topbar-h: 3rem;
  --topbar-phone-h: 2.5rem;   /* a phone's header: one sliver (Pete, 2026-10-10) */
  --drawer-phone-w: 66.667vw;   /* a phone's open drawer: two thirds of the screen (Pete, 2026-10-11) */
  --drawer-max: 35vw;   /* the most of the window a drawer dragged wide may take (drawers.js v4, Pete 2026-10-13) */

  /* states — there is no disabled state */
  --border: 0.0625rem solid var(--line);
  --selected-border: 0.125rem solid var(--text);
  --hover-rung: 6%;
  --press-rung: -4%;
  --selected-L-boost: 8%;
  --light-green: oklch(78% 0.24 145);
  --light-amber: oklch(82% 0.18 82);
  --light-red: oklch(64% 0.25 28);
  --light-highlight-l: 96%;   /* the bright spot on the bulb */
  --light-glow-size: 0.55em; --light-glow-alpha: 0.9;   /* the status light shines in both modes */
  --glow-size: 0.7em;   /* how far a button's colour reaches; --glow-alpha per mode says how strongly */

  /* the sheet — the person's own document, drawn as they drew it (grid.js) */
  --sheet-paper: oklch(100% 0 0);
  --sheet-ink: oklch(0% 0 0);
  --sheet-gridline: oklch(90% 0 0);
  --sheet-font: Arial, sans-serif;
  --sheet-size: 10pt;
  --sheet-pick-width: 0.2rem; --sheet-pick-colour: oklch(42.5% 0.1178 255.5);   /* the column being chosen — Egan blue */
  --sheet-picker-height: 58vh;

  /* the Document Control Center — the Drive selector's box and a Drive file's card (documents.js) */
  --gpick-height: 44vh;
  --gdoc-unit: 19rem;

  /* the printed form — colours read off Pete's form PDF, in OKLCH (form.js, form.css) */
  --form-blockBox: oklch(77.9% 0 89.9);   /* #b7b7b7 */
  --form-blockText: oklch(96.8% 0.211 109.8);   /* #ffff00 */
  --form-crewBand: oklch(51% 0 89.9);   /* #666666 */
  --form-crewText: oklch(86.6% 0.2948 142.5);   /* #00ff00 */
  --form-section: oklch(84.3% 0.0729 136.4);   /* #b6d7a8 */
  --form-taskBox: oklch(0% 0 0);   /* #000000 */
  --form-taskText: oklch(86.6% 0.2948 142.5);   /* #00ff00 */
  --form-ink: oklch(0% 0 0);   /* #000000 */
  --form-paper: oklch(100% 0 89.9);   /* #ffffff */
  --form-stringsCell: oklch(95.2% 0 89.9);   /* #efefef */
  --form-stringsCell3: oklch(88.5% 0 89.9);   /* #d9d9d9 */
  --form-stringsText: oklch(51% 0 89.9);   /* #666666 */
  --form-stringsText3: oklch(45.2% 0.3132 264.1);   /* #0000ff */
  --form-sectionCol: oklch(68.3% 0 89.9);   /* #999999 */
  --form-sectionText: oklch(96.8% 0.211 109.8);   /* #ffff00 */
  --form-rowText: oklch(96.8% 0.211 109.8);   /* #ffff00 */
  --form-typeCol: oklch(51% 0 89.9);   /* #666666 */
  --form-typeXH: oklch(76.4% 0.0977 19.6);   /* #ea9999 */
  --form-typeLE: oklch(90.5% 0.1546 194.8);   /* #00ffff */
  --form-typeLI: oklch(96.8% 0.211 109.8);   /* #ffff00 */
  --form-typeOther: oklch(100% 0 89.9);   /* #ffffff */
  --form-serText: oklch(45.2% 0.3132 264.1);   /* #0000ff */

  /* the V3 progress map and section view — the crews' own colours, as V3 had them (tokens.progress) */
  --v3-sd: oklch(86.644% 0.294827 142.495);   /* #00FF00 */
  --v3-sd-light: oklch(84.2816% 0.07289 136.433);   /* #B6D7A8 */
  --v3-sd-ink: var(--v3-ink);   /* 11.73:1 on the crew's colour */
  --v3-tt: oklch(96.7983% 0.211006 109.769);   /* #FFFF00 */
  --v3-tt-light: oklch(96.1847% 0.051239 91.371);   /* #FFF2CC */
  --v3-tt-ink: var(--v3-ink);   /* 14.99:1 on the crew's colour */
  --v3-mr: oklch(62.7941% 0.160691 259.724);   /* #4A86E8 */
  --v3-mr-light: oklch(80.7955% 0.064242 246.481);   /* #9FC5E8 */
  --v3-mr-ink: var(--v3-ink);   /* 4.5:1 on the crew's colour */
  --v3-bt: oklch(77.1951% 0.173815 64.552);   /* #FF9900 */
  --v3-bt-light: oklch(87.1138% 0.080423 67.051);   /* #F9CB9C */
  --v3-bt-ink: var(--v3-ink);   /* 7.52:1 on the crew's colour */
  --v3-st: oklch(70.1674% 0.322491 328.363);   /* #FF00FF */
  --v3-st-light: oklch(77.4886% 0.062806 347.728);   /* #D5A6BD */
  --v3-st-ink: var(--v3-ink);   /* 5.13:1 on the crew's colour */
  --v3-mod: oklch(96.7983% 0.211006 109.769);   /* #FFFF00 */
  --v3-mod-light: oklch(96.1847% 0.051239 91.371);   /* #FFF2CC */
  --v3-mod-ink: var(--v3-ink);   /* 14.99:1 on the crew's colour */
  --v3-ink: oklch(24.7936% 0.005846 271.176);   /* #202124 — V3's own ink */
  --v3-paper: oklch(100% 0 0);
  --v3-all: var(--text2); --v3-all-ink: var(--bg);   /* All Racking: the page's second ink, in either mode */
  --v3-xh: oklch(67.8642% 0.209484 24.658); --v3-xh-label: oklch(53.1794% 0.197611 27.905); --v3-le: oklch(51.0278% 0 89.9);   /* a row's number, by its type */
  --tube-unit: 1.625rem; --tube-bar: 1.125rem; --tube-col: 1.875rem; --tube-num: 1.625rem; --tube-gap: 0.1875rem; --tube-day: 0.72;   /* a torque tube: one pier bay */
  --map-sub-scale: 0.9;   /* a section's own % under its name on the map */

  /* (v11) the tracker's LBD Terms and INV Terms tabs, as they are (tokens.terms — termstab.js) */
  --tab-band: oklch(0% 0 0);   /* #000000 */
  --tab-title-lbd: oklch(100% 0 89.9);   /* #FFFFFF */
  --tab-title-inv: oklch(96.7983% 0.211006 109.769);   /* #FFFF00 */
  --tab-sub-lbd: oklch(86.644% 0.294827 142.495);   /* #00FF00 */
  --tab-sub-inv: oklch(84.2816% 0.07289 136.433);   /* #B6D7A8 */
  --tab-task-1: oklch(90.5399% 0.15455 194.769);   /* #00FFFF */
  --tab-task-2: oklch(70.1674% 0.322491 328.363);   /* #FF00FF */
  --tab-task-3: oklch(96.7983% 0.211006 109.769);   /* #FFFF00 */
  --tab-task-4: oklch(65.9074% 0.153046 22.17);   /* #E06666 */
  --tab-task-5: oklch(77.1951% 0.173815 64.552);   /* #FF9900 */
  --tab-task-6: oklch(86.644% 0.294827 142.495);   /* #00FF00 */
  --tab-ink: oklch(0% 0 0);   /* #000000 */
  --tab-paper: oklch(100% 0 89.9);   /* #FFFFFF */
  --tab-ct: oklch(77.944% 0 89.9);   /* #B7B7B7 */
  --tab-group: oklch(88.5305% 0 89.9);   /* #D9D9D9 */
  --tab-ser: oklch(45.2014% 0.313214 264.052);   /* #0000FF */
  --tab-initials: oklch(62.7955% 0.257683 29.234);   /* #FF0000 */
  --tab-done-ser: oklch(45.2014% 0.313214 264.052);   /* #0000FF */
  --tab-done-qaqc: oklch(53.0762% 0.2178 29.234);   /* #CC0000 */
  --tab-grid: oklch(80.7796% 0 89.9);   /* #C0C0C0 */

  /* (v12) the DC Underground book's own colours (tokens.ug — lbddraw.js) */
  --ug-band: oklch(55.9996% 0.137219 261.06);   /* #4472C4 */
  --ug-navy: oklch(29.7128% 0.072656 260.886);   /* #172C51 */
  --ug-switch: oklch(50.726% 0.208156 29.234);   /* #C00000 */
  --ug-wire-a: oklch(50.726% 0.208156 29.234);   /* #C00000 */
  --ug-wire-b: oklch(45.6521% 0.116342 260.642);   /* #2F5597 */
  --ug-ground: oklch(55.5487% 0.119065 134.511);   /* #548235 */
  --ug-pipe: oklch(69.6511% 0.137334 229.317);   /* #03ACE1 */
  --ug-pipe-one: oklch(88.968% 0.057986 18.3);   /* #FFCCCC */
  --ug-label: oklch(54.9639% 0.123472 249.485);   /* #2E75B6 */
  --ug-rack: oklch(67.2963% 0.214572 25.04);   /* #FF4D4D */
  --ug-window: oklch(45.2014% 0.313214 264.052);   /* #0000FF */
  --ug-conduit: oklch(64.7113% 0.150043 143.801);   /* #4DA54E */
  --ug-pvc: oklch(51.6955% 0.17543 142.505);   /* #017F01 */
  --ug-rail: oklch(67.3122% 0 89.9);   /* #969696 */

  /* motion — none for now */
  --t-fast: 0ms;
}
