/* tokens.css · RAMTT design system, edition 2026-09-28
   GENERATED by source/build-tokens.mjs from color.source.mjs, identity.source.mjs
   and system.source.mjs. Never edit this file: change a source and rebuild.
   hash: b74a03d9cb757fde
   The 380 neutrals, roles and states locked on 2 September 2026
   (8da117309bf227e4) are reproduced exactly; the build stops if one of them drifts. */

@layer tokens {
:root {
  color-scheme: light;
  /* ── ramps: 9 hues × 35 steps, one lightness per step (L = 1 − 0.85·step/900) ── */
  --gray-0: #ffffff;
  --gray-10: #fcfcfb;
  --gray-20: #f9f9f7;
  --gray-30: #f6f6f4;
  --gray-40: #f3f3f0;
  --gray-50: #f0efec;
  --gray-60: #edece8;
  --gray-70: #eae9e4;
  --gray-80: #e7e6e1;
  --gray-90: #e4e3dd;
  --gray-100: #e1e0d9;
  --gray-150: #d2d1c7;
  --gray-200: #c3c2b7;
  --gray-250: #b4b3a8;
  --gray-300: #a5a49a;
  --gray-350: #97958d;
  --gray-400: #898781;
  --gray-450: #7b7974;
  --gray-500: #6d6b67;
  --gray-550: #5f5e5a;
  --gray-600: #52514e;
  --gray-650: #444442;
  --gray-700: #383835;
  --gray-750: #2c2c2a;
  --gray-800: #20201f;
  --gray-810: #1e1e1d;
  --gray-820: #1c1c1b;
  --gray-830: #1a1a19;
  --gray-840: #181817;
  --gray-850: #151515;
  --gray-860: #131313;
  --gray-870: #111111;
  --gray-880: #0f0f0f;
  --gray-890: #0d0d0d;
  --gray-900: #0b0b0b;
  --red-0: #ffffff;
  --red-10: #fffbfb;
  --red-20: #fef7f7;
  --red-30: #fef3f3;
  --red-40: #fdefef;
  --red-50: #fbebeb;
  --red-60: #fae7e7;
  --red-70: #fae3e3;
  --red-80: #fadfdf;
  --red-90: #fadada;
  --red-100: #fad6d6;
  --red-150: #f7c1c1;
  --red-200: #f4abab;
  --red-250: #f09595;
  --red-300: #ec7e7e;
  --red-350: #e66767;
  --red-400: #e34948;
  --red-450: #d03b3b;
  --red-500: #b93535;
  --red-550: #a32c2c;
  --red-600: #8e2626;
  --red-650: #791e1e;
  --red-700: #641919;
  --red-750: #511212;
  --red-800: #3c0e0e;
  --red-810: #380d0d;
  --red-820: #340c0c;
  --red-830: #310b0b;
  --red-840: #2d0a0a;
  --red-850: #280a0a;
  --red-860: #230b0a;
  --red-870: #1d0b0a;
  --red-880: #170c0b;
  --red-890: #110c0b;
  --red-900: #0b0b0b;
  --orange-0: #ffffff;
  --orange-10: #fefbfa;
  --orange-20: #fdf7f5;
  --orange-30: #fcf4f0;
  --orange-40: #faf0ec;
  --orange-50: #f9ece7;
  --orange-60: #f8e9e2;
  --orange-70: #f7e5dd;
  --orange-80: #f7e1d7;
  --orange-90: #f7dcd1;
  --orange-100: #f7d8cb;
  --orange-150: #f3c5b2;
  --orange-200: #f4ae94;
  --orange-250: #f09978;
  --orange-300: #ec835a;
  --orange-350: #eb6834;
  --orange-400: #d95926;
  --orange-450: #c25124;
  --orange-500: #ae461c;
  --orange-550: #993d19;
  --orange-600: #863311;
  --orange-650: #712b0f;
  --orange-700: #5d230b;
  --orange-750: #4b1b08;
  --orange-800: #371407;
  --orange-810: #341307;
  --orange-820: #301106;
  --orange-830: #2d1006;
  --orange-840: #290f06;
  --orange-850: #240e07;
  --orange-860: #1f0e08;
  --orange-870: #1a0e09;
  --orange-880: #150d0a;
  --orange-890: #100c0b;
  --orange-900: #0b0b0b;
  --yellow-0: #ffffff;
  --yellow-10: #fefcf8;
  --yellow-20: #fcf8f1;
  --yellow-30: #fbf5ea;
  --yellow-40: #f9f2e4;
  --yellow-50: #f9eeda;
  --yellow-60: #faebce;
  --yellow-70: #fae7c2;
  --yellow-80: #fae3b8;
  --yellow-90: #f9e0b0;
  --yellow-100: #f9dca4;
  --yellow-150: #f9c868;
  --yellow-200: #fab219;
  --yellow-250: #eda104;
  --yellow-300: #da9303;
  --yellow-350: #c98500;
  --yellow-400: #b77701;
  --yellow-450: #a66a00;
  --yellow-500: #945d01;
  --yellow-550: #835100;
  --yellow-600: #724500;
  --yellow-650: #623900;
  --yellow-700: #512e00;
  --yellow-750: #412400;
  --yellow-800: #311a00;
  --yellow-810: #2e1800;
  --yellow-820: #2b1700;
  --yellow-830: #271500;
  --yellow-840: #231402;
  --yellow-850: #1f1204;
  --yellow-860: #1b1106;
  --yellow-870: #171007;
  --yellow-880: #130e09;
  --yellow-890: #0f0d0a;
  --yellow-900: #0b0b0b;
  --green-0: #ffffff;
  --green-10: #fafdfa;
  --green-20: #f5fbf4;
  --green-30: #f0f9ef;
  --green-40: #ebf7e9;
  --green-50: #e5f4e4;
  --green-60: #e0f2de;
  --green-70: #dbf0d8;
  --green-80: #d5eed3;
  --green-90: #d0eccd;
  --green-100: #caeac7;
  --green-150: #aee0a9;
  --green-200: #91d68b;
  --green-250: #73cb6d;
  --green-300: #55bf50;
  --green-350: #34b231;
  --green-400: #0da30e;
  --green-450: #009300;
  --green-500: #028301;
  --green-550: #017301;
  --green-600: #006300;
  --green-650: #005400;
  --green-700: #074505;
  --green-750: #0f350d;
  --green-800: #11260f;
  --green-810: #10230f;
  --green-820: #10210f;
  --green-830: #101e0f;
  --green-840: #101b0f;
  --green-850: #0f180e;
  --green-860: #0e160e;
  --green-870: #0e130d;
  --green-880: #0d100d;
  --green-890: #0c0e0c;
  --green-900: #0b0b0b;
  --aqua-0: #ffffff;
  --aqua-10: #f9fdfb;
  --aqua-20: #f3fbf8;
  --aqua-30: #edf9f4;
  --aqua-40: #e8f7f1;
  --aqua-50: #e2f4ed;
  --aqua-60: #dcf2ea;
  --aqua-70: #d5f0e6;
  --aqua-80: #ceefe2;
  --aqua-90: #c7eddf;
  --aqua-100: #bfebdb;
  --aqua-150: #a0e1c9;
  --aqua-200: #7ad7b4;
  --aqua-250: #5acba0;
  --aqua-300: #3cbd8c;
  --aqua-350: #1baf7a;
  --aqua-400: #1a9e70;
  --aqua-450: #148e65;
  --aqua-500: #0f7e5c;
  --aqua-550: #0f6e53;
  --aqua-600: #065f49;
  --aqua-650: #095040;
  --aqua-700: #034235;
  --aqua-750: #02342b;
  --aqua-800: #022720;
  --aqua-810: #02241e;
  --aqua-820: #02221c;
  --aqua-830: #021f1a;
  --aqua-840: #031c18;
  --aqua-850: #051a16;
  --aqua-860: #071713;
  --aqua-870: #081411;
  --aqua-880: #0a110f;
  --aqua-890: #0b0e0d;
  --aqua-900: #0b0b0b;
  --blue-0: #ffffff;
  --blue-10: #fafcff;
  --blue-20: #f5f9fe;
  --blue-30: #f0f7fe;
  --blue-40: #ebf4fc;
  --blue-50: #e7f1fb;
  --blue-60: #e2eefa;
  --blue-70: #ddebfa;
  --blue-80: #d7e8fa;
  --blue-90: #d2e5fa;
  --blue-100: #cde2fb;
  --blue-150: #b7d3f6;
  --blue-200: #9ec5f4;
  --blue-250: #86b6ef;
  --blue-300: #6da7ec;
  --blue-350: #5598e7;
  --blue-400: #3987e5;
  --blue-450: #2a78d6;
  --blue-500: #256abf;
  --blue-550: #1c5cab;
  --blue-600: #184f95;
  --blue-650: #114281;
  --blue-700: #0d366b;
  --blue-750: #062b57;
  --blue-800: #032042;
  --blue-810: #031e3d;
  --blue-820: #021c39;
  --blue-830: #021a36;
  --blue-840: #021831;
  --blue-850: #03162c;
  --blue-860: #051426;
  --blue-870: #07121f;
  --blue-880: #091018;
  --blue-890: #0a0d11;
  --blue-900: #0b0b0b;
  --violet-0: #ffffff;
  --violet-10: #fcfbff;
  --violet-20: #f8f8ff;
  --violet-30: #f5f4ff;
  --violet-40: #f2f1ff;
  --violet-50: #efedff;
  --violet-60: #ebeafe;
  --violet-70: #e8e6fe;
  --violet-80: #e5e2fd;
  --violet-90: #e2dffd;
  --violet-100: #dfdbfd;
  --violet-150: #cfcafb;
  --violet-200: #bfb9f5;
  --violet-250: #b0a7f2;
  --violet-300: #a096eb;
  --violet-350: #9085e9;
  --violet-400: #8173e3;
  --violet-450: #7161e0;
  --violet-500: #6250d6;
  --violet-550: #5645be;
  --violet-600: #4a3aa7;
  --violet-650: #3e318e;
  --violet-700: #322777;
  --violet-750: #271e60;
  --violet-800: #1d1649;
  --violet-810: #1b1544;
  --violet-820: #19133f;
  --violet-830: #17123b;
  --violet-840: #151036;
  --violet-850: #130f32;
  --violet-860: #110e2b;
  --violet-870: #0f0e23;
  --violet-880: #0e0d1b;
  --violet-890: #0c0c13;
  --violet-900: #0b0b0b;
  --magenta-0: #ffffff;
  --magenta-10: #fefbfc;
  --magenta-20: #fef6f9;
  --magenta-30: #fdf2f6;
  --magenta-40: #fbeff3;
  --magenta-50: #faebf0;
  --magenta-60: #f9e6ed;
  --magenta-70: #f9e2eb;
  --magenta-80: #f9dee8;
  --magenta-90: #f9d9e5;
  --magenta-100: #f9d4e2;
  --magenta-150: #f3c0d3;
  --magenta-200: #f3a8c3;
  --magenta-250: #ed93b4;
  --magenta-300: #e87ba4;
  --magenta-350: #e46191;
  --magenta-400: #d55181;
  --magenta-450: #c04873;
  --magenta-500: #ad3d66;
  --magenta-550: #993458;
  --magenta-600: #862a4c;
  --magenta-650: #722340;
  --magenta-700: #5e1c34;
  --magenta-750: #4c1429;
  --magenta-800: #390f1f;
  --magenta-810: #360d1c;
  --magenta-820: #320c1a;
  --magenta-830: #2f0b18;
  --magenta-840: #2b0a16;
  --magenta-850: #270a14;
  --magenta-860: #220a12;
  --magenta-870: #1c0b11;
  --magenta-880: #170b0f;
  --magenta-890: #110b0d;
  --magenta-900: #0b0b0b;
  /* ── colour roles, light ── */
  --raised: #ffffff;
  --raised-hover: #f6f6f4;
  --raised-selected: #eeedeb;
  --raised-selected-hover: #e9e9e5;
  --paper: #fcfcfb;
  --paper-hover: #f3f3f1;
  --paper-selected: #ebeae7;
  --paper-selected-hover: #e6e6e2;
  --mat: #f9f9f8;
  --mat-hover: #f0f0ee;
  --mat-selected: #e8e7e3;
  --mat-selected-hover: #e3e3df;
  --ground: #f3f3f1;
  --ground-hover: #eaeae7;
  --ground-selected: #e2e1dd;
  --ground-selected-hover: #deddd8;
  --well: #f0f0ee;
  --well-hover: #e7e7e4;
  --well-selected: #dfdeda;
  --well-selected-hover: #dbdad5;
  --pill: #ededeb;
  --pill-hover: #e4e4e1;
  --pill-selected: #dcdbd7;
  --pill-selected-hover: #d8d7d2;
  --rule: #e8e8e6;
  --ink: #0b0b0b;
  --ink-2: #52514e;
  --ink-3: #6c6b69;
  --ink-4: #888784;
  --ink-disabled: rgb(11 11 11 / 35%);
  --a5: rgb(11 11 11 / 5%);
  --a10: rgb(11 11 11 / 10%);
  --a20: rgb(11 11 11 / 20%);
  --a35: rgb(11 11 11 / 35%);
  --a50: rgb(11 11 11 / 50%);
  --a60: rgb(11 11 11 / 60%);
  --a70: rgb(11 11 11 / 70%);
  --a85: rgb(11 11 11 / 85%);
  --a95: rgb(11 11 11 / 95%);
  --rank-1: rgb(11 11 11 / 20%);
  --rank-2: rgb(11 11 11 / 35%);
  --rank-3: rgb(11 11 11 / 60%);
  --rank-4: rgb(11 11 11 / 85%);
  --line-1: rgb(11 11 11 / 6%);
  --line-2: rgb(11 11 11 / 8%);
  --line-3: rgb(11 11 11 / 10%);
  --line-4: rgb(11 11 11 / 15%);
  --line-5: rgb(11 11 11 / 20%);
  --accent: #6250d6;
  --accent-hover: #5645be;
  --accent-ink: #4a3aa7;
  --accent-glyph: #6250d6;
  --accent-tint: #dfdbfd;
  --accent-line: #b0a7f2;
  --on-accent: #ffffff;
  --ring-glow: #dddffd;
  --selection: rgb(113 97 224 / 24%);
  --danger: #d03b3b;
  --danger-hover: #b93535;
  --danger-ink: #8e2626;
  --danger-tint: #fad6d6;
  --danger-line: #f09595;
  --danger-dot: #e34948;
  --success-ink: #006300;
  --success-tint: #caeac7;
  --success-line: #73cb6d;
  --success-dot: #0da30e;
  --warning-ground: #fab219;
  --warning-ink: #724500;
  --warning-tint: #f9dca4;
  --warning-line: #eda104;
  --warning-dot: #b77701;
  --info: #256abf;
  --info-hover: #1c5cab;
  --info-ink: #184f95;
  --info-tint: #cde2fb;
  --info-line: #86b6ef;
  --info-dot: #3987e5;
  --on-fill: #ffffff;
  --ring-glow-danger: #fcd8d4;
  --on-warning: #0b0b0b;
  --label-violet-bg: rgb(164 152 249 / 35%);
  --label-violet-fg: #4a3aa7;
  --label-violet-dot: #8173e3;
  --label-blue-bg: rgb(112 172 244 / 35%);
  --label-blue-fg: #184f95;
  --label-blue-dot: #3987e5;
  --label-red-bg: rgb(241 138 138 / 35%);
  --label-red-fg: #8e2626;
  --label-red-dot: #e34948;
  --label-green-bg: rgb(104 195 95 / 35%);
  --label-green-fg: #006300;
  --label-green-dot: #0da30e;
  --label-yellow-bg: rgb(238 155 0 / 35%);
  --label-yellow-fg: #724500;
  --label-yellow-dot: #b77701;
  --label-orange-bg: rgb(232 144 106 / 35%);
  --label-orange-fg: #863311;
  --label-orange-dot: #d95926;
  --label-aqua-bg: rgb(72 198 152 / 35%);
  --label-aqua-fg: #065f49;
  --label-aqua-dot: #1a9e70;
  --label-magenta-bg: rgb(238 132 172 / 35%);
  --label-magenta-fg: #862a4c;
  --label-magenta-dot: #d55181;
  --label-neutral-bg: rgb(11 11 11 / 6%);
  --avatar-violet: #7161e0;
  --avatar-blue: #256abf;
  --avatar-red: #d03b3b;
  --avatar-green: #028301;
  --avatar-yellow: #945d01;
  --avatar-orange: #c25124;
  --avatar-aqua: #0f7e5c;
  --avatar-magenta: #c04873;
  --label-neutral-fg: #52514e;
  --chart-1: #6250d6;
  --chart-2: #eb6834;
  --chart-3: #1baf7a;
  --chart-4: #eda104;
  --chart-5: #e87ba4;
  --chart-6: #028301;
  --chart-7: #2a78d6;
  --chart-8: #e34948;
  --chart-grid: rgb(11 11 11 / 7%);
  --chart-axis: #c3c2b7;
  --chart-reference: #898781;
  --ch-power: #028301;
  --ch-hr: #e34948;
  --ch-speed: #2a78d6;
  --ch-cadence: #8173e3;
  --ch-pace: #d55181;
  --ch-kjmin: #b77701;
  --ch-torque: #c25124;
  --ch-carb: #da9303;
  --ch-fructose: #f09978;
  --ch-fluid: #6da7ec;
  --ch-power-estimated: #55bf50;
  --ch-power-area: #aee0a9;
  --zone-1: #cde2fb;
  --zone-2: #9ec5f4;
  --zone-3: #6da7ec;
  --zone-4: #3987e5;
  --zone-5: #256abf;
  --zone-6: #184f95;
  --tomrum-hand: #5f5e5a;
  --tomrum-hand-light: #9fa4ab;
  --tomrum-hand-fine: #c4c8cd;
  --key-face: #ffffff;
  --key-lip: #e9e8e4;
  --key-ring: rgb(11 11 11 / 13%);
  --key-down: #f1f0ed;
  --lit: inset 0 1px 0 rgb(255 255 255 / 16%), inset 0 0 0 var(--px) rgb(0 0 0 / 6%);
  --knob: #ffffff;
  --knob-shadow: 0 1px 1px rgb(0 0 0 / .08), 0 0 0 .5px rgb(0 0 0 / .04);
  --handle-shadow: 0 0 0 var(--px) rgb(0 0 0 / .16), 0 1px 2px rgb(0 0 0 / .14);
  --cursor: #0b0b0b;
  --cursor-edge: #ffffff;
  --on-knob: #383835;
  --on-fill-line: rgb(255 255 255 / 30%);
  --on-fill-key-face: rgb(0 0 0 / 14%);
  --on-fill-key-lip: rgb(0 0 0 / 24%);
  --on-fill-key-ring: rgb(255 255 255 / 18%);
  --ring-raised: 0.088;
  --ring-raised-hover: 0.147;
  --ring-paper: 0.089;
  --ring-paper-hover: 0.148;
  --ring-mat: 0.09;
  --ring-mat-hover: 0.15;
  --ring-ground: 0.092;
  --ring-ground-hover: 0.153;
  --ring-well: 0.093;
  --ring-well-hover: 0.155;
  --ring-rgb: 11 11 11;
  --e1: 0 3px 6px -2px rgb(0 0 0 / .02), 0 1px 1px rgb(0 0 0 / .04);
  --e2: 0 6px 18px rgb(0 0 0 / .02), 0 3px 9px rgb(0 0 0 / .04), 0 1px 1px rgb(0 0 0 / .04);
  --e3: 0 9px 48px rgb(0 0 0 / .08), 0 6px 24px rgb(0 0 0 / .10), 0 1px 1px rgb(0 0 0 / .04);
  --dock-shadow: 0 18px 44px -8px rgb(0 0 0 / .2), 0 4px 12px -2px rgb(0 0 0 / .08);
  --backdrop: lch(0 0 0 / 0.25);
  /* ── the plane you stand on (default: paper) ── */
  --plane: var(--paper); --plane-hover: var(--paper-hover); --plane-selected: var(--paper-selected); --plane-selected-hover: var(--paper-selected-hover);
  --ring: var(--ring-paper); --ring-hover: var(--ring-paper-hover); --pill-rest: var(--raised);
  /* ── one device pixel ── */
  --px: 1px;
  /* ── system ── */
  --r-press: 9999px;
  --r-value: 8px;
  --r-mark: 9999px;
  --r-key: 4px;
  --r-contain: 12px;
  --r-row: 8px;
  --r-round: 50%;
  --inset: 4px;
  --h-20: 20px;
  --h-24: 24px;
  --h-28: 28px;
  --h-32: 32px;
  --h-36: 36px;
  --h-44: 44px;
  --row-24: 24px;
  --row-28: 28px;
  --row-32: 32px;
  --row-36: 36px;
  --row-40: 40px;
  --row-44: 44px;
  --row-52: 52px;
  --row-60: 60px;
  --space-0: 0px;
  --space-1: 1px;
  --space-2: 2px;
  --space-3: 3px;
  --space-4: 4px;
  --space-5: 5px;
  --space-6: 6px;
  --space-7: 7px;
  --space-8: 8px;
  --space-9: 9px;
  --space-10: 10px;
  --space-12: 12px;
  --space-14: 14px;
  --space-16: 16px;
  --space-18: 18px;
  --space-20: 20px;
  --space-22: 22px;
  --space-24: 24px;
  --space-28: 28px;
  --space-32: 32px;
  --space-36: 36px;
  --space-40: 40px;
  --space-44: 44px;
  --space-48: 48px;
  --space-56: 56px;
  --space-64: 64px;
  --space-72: 72px;
  --space-80: 80px;
  --space-96: 96px;
  --space-120: 120px;
  --font: "Inter Variable","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --font-features: "kern" 1,"calt" 1,"liga" 1,"tnum" 1,"ss01" 1,"ss04" 1,"ss07" 1,"ss08" 1,"cv01" 1,"cv02" 1,"cv03" 1,"cv04" 1,"cv05" 1,"cv06" 1,"cv07" 1,"cv08" 1,"cv09" 1,"cv10" 1,"cv11" 1,"cv12" 1,"cv13" 1,"zero" 0;
  --tracking: -0.006em;
  --fs-9: 9px;
  --lh-9: 14px;
  --fs-11: 11px;
  --lh-11: 16px;
  --fs-12: 12px;
  --lh-12: 17px;
  --fs-13: 13px;
  --lh-13: 19px;
  --fs-16: 16px;
  --lh-16: 22px;
  --fs-20: 20px;
  --lh-20: 26px;
  --fs-24: 24px;
  --lh-24: 30px;
  --font-mono: "Geist Mono",ui-monospace,monospace;
  --fw-400: 400;
  --fw-450: 450;
  --fw-500: 500;
  --fw-550: 550;
  --icon-12: 12px;
  --icon-14: 14px;
  --icon-16: 16px;
  --icon-20: 20px;
  --icon-stroke: 1.25;
  --tau: 50ms;
  --state-in: 0s;
  --state-out: 150ms;
  --opacity-in: 40ms;
  --opacity-out: 120ms;
  --scale-in: 200ms;
  --scale-out: 30ms;
  --scale-from: .98;
  --section: 190ms;
  --toggle-move: 100ms;
  --toggle-lag: 50ms;
  --key-out: 90ms;
  --spin: 700ms;
  --shimmer: 1400ms;
  --indeterminate: 1200ms;
  --draw: 600ms;
  --draw-fade: 400ms;
  --ease-expo: cubic-bezier(.19,1,.22,1);
  --ease-quad: cubic-bezier(.25,.46,.45,.94);
  --ring-in: 60ms;
  --ease-ring: cubic-bezier(.4,0,.2,1);
  --z-sticky: 20;
  --z-dock: 40;
  --z-popover: 70;
  --z-backdrop: 80;
  --z-dialog: 81;
  --z-toast: 90;
  --z-tooltip: 95;
  --col-prose: 640px;
  --col-feed: 768px;
  --col-collection: 1024px;
  --panel-list: 320px;
  --panel-props: 285px;
  --panel-peek: 380px;
  --panel-inspector: 352px;
  --status-bar: 28px;
  --ring-field: inset 0 0 0 1px var(--ring-gap, var(--raised)), 0 0 0 1px var(--accent), 0 0 6px 1px var(--ring-glow);
  --ring-field-danger: inset 0 0 0 1px var(--ring-gap, var(--raised)), 0 0 0 1px var(--danger), 0 0 6px 1px var(--ring-glow-danger);
  --ring-inline: inset 0 0 0 1px var(--accent);
  /* ── scales: colour for every chart (28 September) ── */
  --intensity-1: #86b6ef;
  --intensity-1-lit: #9ec5f4;
  --intensity-1-deep: #6da7ec;
  --intensity-1-edge: #256abf;
  --intensity-1-on: #0b0b0b;
  --intensity-2: #3cbd8c;
  --intensity-2-lit: #5acba0;
  --intensity-2-deep: #1baf7a;
  --intensity-2-edge: #0f6e53;
  --intensity-2-on: #0b0b0b;
  --intensity-3: #eda104;
  --intensity-3-lit: #fab219;
  --intensity-3-deep: #da9303;
  --intensity-3-edge: #945d01;
  --intensity-3-on: #0b0b0b;
  --intensity-4: #eb6834;
  --intensity-4-lit: #ec835a;
  --intensity-4-deep: #d95926;
  --intensity-4-edge: #863311;
  --intensity-4-on: #0b0b0b;
  --intensity-5: #d03b3b;
  --intensity-5-lit: #e34948;
  --intensity-5-deep: #b93535;
  --intensity-5-edge: #641919;
  --intensity-5-on: #ffffff;
  --intensity-6: #993458;
  --intensity-6-lit: #ad3d66;
  --intensity-6-deep: #862a4c;
  --intensity-6-edge: #390f1f;
  --intensity-6-on: #ffffff;
  --ch-load: #2a78d6;
  --ch-load-planned: #9ec5f4;
  --ch-capacity: #6250d6;
  --ch-pressure: #e87ba4;
  --ch-form: #eda104;
  --rim: rgb(255 255 255 / 38%);
  /* ── colour map: one meaning, one ramp colour (29 September) ── */
  --clay: #d97757;
  --clay-emphasized: #c6613f;
  --heather: #cbcadb;
  --plum: #827dbd;
  --cactus: #bcd1ca;
  --mineral: #629987;
  --ch-sodium: #148e65;
  --ch-hr-area: #f7c1c1;
  --ch-elevation: #b4b3a8;
  --ch-temperature: #eb6834;
  --ch-glucose: #c04873;
  --ch-smo2: #1a9e70;
  --chart-seq-1: #cde2fb;
  --chart-seq-2: #9ec5f4;
  --chart-seq-3: #6da7ec;
  --chart-seq-4: #3987e5;
  --chart-seq-5: #256abf;
  --chart-seq-6: #184f95;
  --chart-seq-7: #0d366b;
  --chart-div-1: #256abf;
  --chart-div-2: #5598e7;
  --chart-div-3: #9ec5f4;
  --chart-div-4: #f0efec;
  --chart-div-5: #f4abab;
  --chart-div-6: #e66767;
  --chart-div-7: #b93535;
  --status-good: #0da30e;
  --status-warning: #fab219;
  --status-serious: #ec835a;
  --status-critical: #d03b3b;
  --sport-ride: #2a78d6;
  --sport-run: #d95926;
  --sport-swim: #1a9e70;
  --sport-strength: #7161e0;
  --sport-walk: #009300;
  --sport-hike: #017301;
  --sport-row: #184f95;
  --sport-ski: #6da7ec;
  --sport-mobility: #e46191;
  --sport-other: #7b7974;
  --body-hrv: #d55181;
  --body-sleep: #7161e0;
  --body-rhr: #e34948;
  --body-weight: #5598e7;
  --body-mood: #da9303;
  --body-soreness: #c25124;
  --body-energy: #009300;
  --body-stress: #b93535;
  --body-spo2: #3987e5;
  --body-temperature: #ec835a;
  --body-readiness: #1a9e70;
  --body-menstrual: #ad3d66;
  --macro-carbohydrate: #da9303;
  --macro-protein: #e46191;
  --macro-fat: #ec835a;
  --macro-fibre: #0da30e;
  --macro-alcohol: #a096eb;
  --macro-water: #6da7ec;
  --sky-sun: #eda104;
  --sky-cloud-sun: #c98500;
  --sky-cloud: #97958d;
  --sky-rain: #3987e5;
  --sky-wind: #1a9e70;
  --sky-fog: #a5a49a;
  --sky-snow: #86b6ef;
  --sky-storm: #7161e0;
  --session-planned: #898781;
  --session-progress: #eda104;
  --session-done: #0da30e;
  --session-missed: #e34948;
  --session-excused: #3987e5;
  --session-unplanned: #8173e3;
  --intent-recovery: #0da30e;
  --intent-endurance: #3987e5;
  --intent-tempo: #eda104;
  --intent-threshold: #eb6834;
  --intent-adaptation: #d95926;
  --intent-vo2max: #e34948;
  --intent-anaerobic: #c04873;
  --intent-test: #e46191;
  --intent-race: #7161e0;
  --intent-technique: #1baf7a;
  --intent-train-low: #148e65;
  --al-1: #0da30e;
  --al-2: #eda104;
  --al-3: #d03b3b;
  --domain-fuel: #da9303;
  --domain-state: #7161e0;
  --domain-load: #2a78d6;
  --domain-power: #028301;
  --domain-lab: #148e65;
  --domain-social: #e46191;
  --domain-gut: #ec835a;
  --domain-adapt: #3cbd8c;
  --domain-durability: #c25124;
  --domain-environment: #6da7ec;
  --domain-body: #e66767;
  --domain-codex: #7b7974;
  --domain-energy: #b77701;
  --domain-plan: #184f95;
  --domain-race: #4a3aa7;
  --domain-composite: #ad3d66;
  /* ── type: the reading sizes (1 October) ── */
  --fs-14: 14px;
  --lh-14: 22px;
  --fs-18: 18px;
  --lh-18: 24px;
  --lh-13-long: 20px;
  --ch-lactate: #0f7e5c;
  --ch-energy: #a66a00;
  --ch-glycogen: #c98500;
  /* ── state: the pulse of work under way (6 October) ── */
  --pulse: 600ms;
  --pulse-low: .22;
  --ease-pulse: cubic-bezier(.42,0,.58,1);
  /* ── glass: the tab bar on the phone (6 October) ── */
  --glass: rgb(255 255 255 / 68%);
  --glass-solid: rgb(255 255 255 / 94%);
  --glass-blur: 6px;
  --lift-dock: 0 0 0 1px rgb(11 11 11 / 12%), 0 9px 48px rgb(0 0 0 / .08), 0 6px 24px rgb(0 0 0 / .10), 0 1px 1px rgb(0 0 0 / .04);
  --accent-mark: #6250d6;
  /* ── glass button: a Button on a photograph, a film or a dark band (7 October) ── */
  --glass-button: rgb(252 252 251 / 14%);
  --glass-button-hover: rgb(252 252 251 / 20%);
  --glass-button-ring: rgb(252 252 251 / 16%);
  --glass-button-ink: var(--gray-10);
  /* ── motion: a step in a flow, and the door’s moments (12 October) ── */
  --step-tempo: 1;
  --step-leave: 240ms;
  --ease-step-leave: cubic-bezier(.45,0,.75,.4);
  --step-sink: 8px;
  --step-fade: 460ms;
  --ease-step-fade: cubic-bezier(.25,.6,.3,1);
  --step-move: 700ms;
  --ease-step-move: cubic-bezier(.22,1,.36,1);
  --step-gap: 70ms;
  --step-rise: 12px;
  --moment-check: 420ms;
  --moment-fly: 560ms;
  --moment-fly-gap: 20ms;
  --ease-fly: cubic-bezier(.16,1,.3,1);
  --moment-sweep: 1800ms;
  --moment-breath: 420ms;
  --moment-breath-scale: .988;
  --moment-flight: 1040ms;
  --ease-flight: cubic-bezier(.6,0,.2,1);
  --moment-contract: 1000ms;
  --moment-contract-delay: 180ms;
  --moment-rows: 420ms;
  /* ── corners: the continuous corner (round 33) ── */
  --corner-k: 1;
  --corner-k-nested: 1;
  /* ── springs: where something is let go (round 33) ── */
  --spring-release: linear(0, 0.0059 1.28%, 0.0223 2.56%, 0.0554 4.21%, 0.0987 5.86%, 0.1389 7.18%, 0.1952 8.88%, 0.4158 15.11%, 0.5108 17.94%, 0.5951 20.69%, 0.6703 23.44%, 0.7525 26.95%, 0.8193 30.47%, 0.8721 33.98%, 0.9128 37.5%, 0.9487 41.77%, 0.9729 46.04%, 0.99 50.85%, 1.0013 57.03%, 1.0063 67.77%, 1);
  --spring-release-duration: 419ms;
  --spring-release-physics: 438.6491 35.6047 1;
  --spring-snap: linear(0, 0.0055 1.64%, 0.0205 3.29%, 0.0509 5.4%, 0.0906 7.52%, 0.1787 11.4%, 0.3807 19.39%, 0.4685 23.03%, 0.5471 26.55%, 0.6182 30.08%, 0.6795 33.5%, 0.7332 36.91%, 0.7797 40.33%, 0.8195 43.75%, 0.8638 48.36%, 0.8987 52.98%, 0.9322 58.91%, 0.9559 64.84%, 0.9736 71.44%, 0.9849 78.03%, 0.9932 86.27%, 1);
  --spring-snap-duration: 356ms;
  --spring-snap-physics: 341.5088 34.0031 1;
  --spring-settle: linear(0, 0.0037 0.96%, 0.0141 1.92%, 0.0353 3.16%, 0.0634 4.39%, 0.1023 5.83%, 0.1592 7.67%, 0.3653 13.8%, 0.481 17.49%, 0.5645 20.46%, 0.6379 23.44%, 0.7116 26.95%, 0.7723 30.47%, 0.8216 33.98%, 0.861 37.5%, 0.8981 41.77%, 0.9258 46.04%, 0.9511 51.54%, 0.968 57.03%, 0.9816 64.08%, 0.9911 73.14%, 1);
  --spring-settle-duration: 383ms;
  --spring-settle-physics: 584.0003 48.3322 1;
  --spring-zoom: linear(0, 0.0037 0.96%, 0.0141 1.92%, 0.0352 3.16%, 0.0633 4.39%, 0.1022 5.83%, 0.159 7.67%, 0.3649 13.8%, 0.4806 17.49%, 0.5641 20.46%, 0.6374 23.44%, 0.7112 26.95%, 0.7719 30.47%, 0.8212 33.98%, 0.8607 37.5%, 0.8979 41.77%, 0.9256 46.04%, 0.9509 51.54%, 0.9679 57.03%, 0.9815 64.08%, 0.991 73.14%, 1);
  --spring-zoom-duration: 471ms;
  --spring-zoom-physics: 385.5314 39.2699 1;
  /* ── material: glass on the navigation layer (round 33) ── */
  --material-blur: 24px;
  --material-saturate: 170%;
  --material-tint: rgb(255 255 255 / 84%);
  --material-clear: rgb(255 255 255 / 66%);
  --material-solid: var(--raised);
  --material-edge: inset 0 1px 0 rgb(255 255 255 / 90%), inset 0 0 0 1px rgb(255 255 255 / 35%), 0 0 0 1px rgb(11 11 11 / 9%);
  --material-hover: rgb(42 42 8 / 4.3%);
  --material-selected: rgb(42 42 8 / 8.2%);
  --material-selected-hover: rgb(42 42 8 / 10.4%);
  --material-intensity: 1;
  /* ── view transitions: a view changes in place (round 33) ── */
  --view-in: 200ms;
  --view-out: 100ms;
  --view-shift: 24px;
  --view-scale: .985;
  --spring-follow: linear(0, 0.0037 0.96%, 0.014 1.92%, 0.0352 3.16%, 0.0632 4.39%, 0.1021 5.83%, 0.1589 7.67%, 0.3647 13.8%, 0.4804 17.49%, 0.5639 20.46%, 0.6372 23.44%, 0.711 26.95%, 0.7718 30.47%, 0.821 33.98%, 0.8606 37.5%, 0.8978 41.77%, 0.9255 46.04%, 0.9508 51.54%, 0.9678 57.03%, 0.9815 64.08%, 0.991 73.14%, 1);
  --spring-follow-duration: 231ms;
  --spring-follow-physics: 1601.6235 80.0406 1;
  /* ── chart motion: the five techniques (17 October 2026) ── */
  --stagger-span: 80ms;
  --draw-season: 1200ms;
  --fling-friction: .998;
  --rubber-band: .55;
  /* ── brand: the brand mark (16 October, proposed) ── */
  --brand-mark: #6250d6;
  /* ── key: the docs key (16 October) ── */
  --key-docs-face: #ffffff;
  --key-docs-down: #f1f0ed;
  --key-docs-radius-16: 4.5px;
  --key-docs-radius: 6px;
  --key-docs-radius-28: 8px;
  --key-docs-fs-16: 10px;
  --key-docs-lh-16: 14px;
  --key-docs-fs: 12px;
  --key-docs-lh: 16px;
  --key-docs-fs-28: 14px;
  --key-docs-lh-28: 18px;
  --new-mark: #3987e5;
  /* ── window tabs: the strip at the top of the desktop window (24 October) ── */
  --h-42: 42px;
  --h-26: 26px;
  --window-tab-width: 218px;
  --window-tab-gap: 6px;
  /* ── chat: the look of a conversation between people (27 October) ── */
  --chat-own-top: #6250d6;
  --chat-own: #5645be;
  --chat-own-end: #4a3aa7;
  --on-chat-own: #ffffff;
  --on-chat-own-2: rgb(255 255 255 / 84%);
  --chat-own-line: rgb(11 11 11 / 16%);
  --chat-their: #edece8;
  --chat-veil: rgb(11 11 11 / 25%);
  --chat-on-photo: rgb(11 11 11 / 56%);
  /* ── overlays: springs (28 October 2026) ── */
  --overlay-in-physics: 1500 100 1;
  --overlay-out-physics: 2500 100 1;
  --popover-out-physics: 2000 100 1;
  --menu-size-physics: 30000 500 1;
  --palette-size-physics: 20000 500 1;
  --dialog-spring: linear(0, 0.0037 0.96%, 0.0141 1.92%, 0.0353 3.16%, 0.0635 4.39%, 0.1025 5.83%, 0.1594 7.67%, 0.3657 13.8%, 0.4815 17.49%, 0.565 20.46%, 0.6384 23.44%, 0.7121 26.95%, 0.7727 30.47%, 0.8219 33.98%, 0.8613 37.5%, 0.8984 41.77%, 0.926 46.04%, 0.9512 51.54%, 0.9681 57.03%, 0.9817 64.08%, 0.9911 73.14%, 1);
  --dialog-spring-duration: 301ms;
  --dialog-spring-physics: 947.29 61.56 1;
  --overlay-in-opacity: linear(0, 0.2753 5.26%, 0.49 10.53%, 0.6967 15.79%, 0.8835 21.05%, 1 26.32%, 1);
  --overlay-in-scale: linear(0, 0.1376 5.26%, 0.245 10.53%, 0.3484 15.79%, 0.4418 21.05%, 0.5236 26.32%, 0.5943 31.58%, 0.6549 36.84%, 0.7066 42.11%, 0.7507 47.37%, 0.7882 52.63%, 0.82 57.89%, 0.8471 63.16%, 0.8701 68.42%, 0.8896 73.68%, 0.9062 78.95%, 0.9203 84.21%, 0.9323 89.47%, 0.9425 94.74%, 1);
  --overlay-in-duration: 158ms;
  --overlay-out-opacity: linear(0, 0.0704 17.65%, 0.3098 23.53%, 0.4961 29.41%, 0.6365 35.29%, 0.7402 41.18%, 0.8155 47.06%, 0.8697 52.94%, 0.9083 58.82%, 0.9357 64.71%, 0.955 70.59%, 0.9686 76.47%, 0.9781 82.35%, 0.9848 88.24%, 0.9894 94.12%, 1);
  --overlay-out-scale: linear(0, 0.2241 5.88%, 0.3886 11.76%, 1 17.65%, 1);
  --overlay-out-duration: 142ms;
  --backdrop-in: 400ms;
  --backdrop-out: 280ms;
  --backdrop-opacity: 0.95;
  --tooltip-delay: 450ms;
  --tooltip-delay-interactive: 550ms;
  --tooltip-grace: 100ms;
  --palette-out-scale: 0.96;
  --palette-dip: 80ms;
  --dialog-from: 0.95;
  /* ── right panel: width, handle and corner (2 November, locked) ── */
  --panel-side: 360px;
  --panel-side-max: 600px;
  --panel-handle: 7px;
  --r-side: 10px;
  /* ── Trail: the text above the reading line fades (Dim) ── */
  --trail-dim-near-fade: 280ms;
  --trail-dim-far-fade: 480ms;
  --ease-trail-dim: cubic-bezier(.2,0,0,1);
  /* ── motion: groups and arriving rows (3 November 2026) ── */
  --fold-turn: 150ms;
  --ease-fold-turn: ease;
  --arrive-clip: 300ms;
  --ease-arrive: cubic-bezier(.28,.48,.04,1);
  --arrive-fade: 250ms;
  --arrive-fade-delay: 75ms;
  --arrive-slide: 300ms;
  --arrive-quiet: 300ms;
  --trail-dim-faint: .14;
  --trail-dim-blur: 2px;
}
@media (min-resolution: 2dppx) { :root { --px: .5px; } }
@media (min-resolution: 3dppx) { :root { --px: calc(1px / 3); } }

/* ── dark: a proposal, not a lock (identity.source.mjs) ── */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --raised: #1a1a19;
    --raised-hover: #20201e;
    --raised-selected: #272623;
    --raised-selected-hover: #2b2a26;
    --paper: #131313;
    --paper-hover: #1a1918;
    --paper-selected: #20201d;
    --paper-selected-hover: #242320;
    --mat: #111111;
    --mat-hover: #171716;
    --mat-selected: #1e1d1b;
    --mat-selected-hover: #21211e;
    --ground: #0d0d0d;
    --ground-hover: #131312;
    --ground-selected: #191917;
    --ground-selected-hover: #1d1c1a;
    --well: #0b0b0b;
    --well-hover: #111110;
    --well-selected: #171715;
    --well-selected-hover: #1b1a18;
    --pill: #20201f;
    --pill-hover: #272725;
    --pill-selected: #2e2d2a;
    --pill-selected-hover: #32312d;
    --rule: rgb(255 255 255 / 10%);
    --ink: #f0efec;
    --ink-2: #c3c2b7;
    --ink-3: #888784;
    --ink-4: #6c6b69;
    --ink-disabled: rgb(255 255 255 / 35%);
    --a5: rgb(255 255 255 / 5%);
    --a10: rgb(255 255 255 / 10%);
    --a20: rgb(255 255 255 / 20%);
    --a35: rgb(255 255 255 / 35%);
    --a50: rgb(255 255 255 / 50%);
    --a60: rgb(255 255 255 / 60%);
    --a70: rgb(255 255 255 / 70%);
    --a85: rgb(255 255 255 / 85%);
    --a95: rgb(255 255 255 / 95%);
    --rank-1: rgb(255 255 255 / 10%);
    --rank-2: rgb(255 255 255 / 20%);
    --rank-3: rgb(255 255 255 / 50%);
    --rank-4: rgb(255 255 255 / 85%);
    --line-1: rgb(255 255 255 / 6%);
    --line-2: rgb(255 255 255 / 8%);
    --line-3: rgb(255 255 255 / 10%);
    --line-4: rgb(255 255 255 / 15%);
    --line-5: rgb(255 255 255 / 20%);
    --accent-ink: #a096eb;
    --accent-glyph: #9085e9;
    --accent-tint: #1d1649;
      --accent-line: #322777;
    --ring-glow: #18172d;
    --danger-ink: #ec7e7e;
    --danger-tint: #3c0e0e;
    --danger-line: #641919;
    --danger-dot: #b93535;
    --success-ink: #0da30e;
    --success-tint: #11260f;
    --success-line: #074505;
    --success-dot: #028301;
    --warning-ink: #da9303;
    --warning-tint: #311a00;
    --warning-line: #512e00;
    --warning-dot: #945d01;
    --info-ink: #6da7ec;
    --info-tint: #032042;
    --info-line: #0d366b;
    --info-dot: #256abf;
    --ring-glow-danger: #301715;
    --label-violet-bg: rgb(30 21 89 / 75%);
    --label-violet-fg: #a096eb;
    --label-violet-dot: #6250d6;
    --label-blue-bg: rgb(0 34 80 / 75%);
    --label-blue-fg: #6da7ec;
    --label-blue-dot: #256abf;
    --label-red-bg: rgb(71 10 10 / 75%);
    --label-red-fg: #ec7e7e;
    --label-red-dot: #b93535;
    --label-green-bg: rgb(14 42 12 / 75%);
    --label-green-fg: #55bf50;
    --label-green-dot: #028301;
    --label-yellow-bg: rgb(57 26 0 / 75%);
    --label-yellow-fg: #da9303;
    --label-yellow-dot: #945d01;
    --label-orange-bg: rgb(65 18 1 / 75%);
    --label-orange-fg: #ec835a;
    --label-orange-dot: #ae461c;
    --label-aqua-bg: rgb(0 43 34 / 75%);
    --label-aqua-fg: #3cbd8c;
    --label-aqua-dot: #0f7e5c;
    --label-magenta-bg: rgb(67 11 33 / 75%);
    --label-magenta-fg: #e87ba4;
    --label-magenta-dot: #ad3d66;
    --label-neutral-bg: rgb(255 255 255 / 8%);
    --label-neutral-fg: #c3c2b7;
    --chart-1: #9085e9;
    --chart-2: #d95926;
    --chart-3: #1a9e70;
    --chart-4: #c98500;
    --chart-5: #d55181;
    --chart-7: #3987e5;
    --chart-8: #e66767;
    --chart-grid: rgb(255 255 255 / 8%);
    --chart-axis: #383835;
    --chart-reference: #97958d;
    --tomrum-hand: #969590;
    --tomrum-hand-light: #4d5157;
    --tomrum-hand-fine: #303337;
    --key-face: #20201f;
    --key-lip: #0b0b0b;
    --key-ring: rgb(255 255 255 / 12%);
    --key-down: #1a1a19;
    --lit: inset 0 1px 0 rgb(255 255 255 / 12%), inset 0 0 0 var(--px) rgb(0 0 0 / 10%);
    --knob-shadow: 0 1px 1px rgb(0 0 0 / .30), 0 0 0 .5px rgb(0 0 0 / .20);
    --handle-shadow: 0 0 0 var(--px) rgb(0 0 0 / .40), 0 1px 2px rgb(0 0 0 / .40);
    --ring-raised: 0.1;
    --ring-raised-hover: 0.16;
    --ring-paper: 0.11;
    --ring-paper-hover: 0.17;
    --ring-mat: 0.11;
    --ring-mat-hover: 0.17;
    --ring-ground: 0.12;
    --ring-ground-hover: 0.18;
    --ring-well: 0.12;
    --ring-well-hover: 0.18;
    --ring-rgb: 255 255 255;
    --e1: 0 1px 1px rgb(0 0 0 / .30), 0 0 0 .5px rgb(0 0 0 / .20);
    --e2: 0 3px 8px rgb(0 0 0 / .125), 0 2px 5px rgb(0 0 0 / .125), 0 1px 1px rgb(0 0 0 / .125);
    --e3: 0 4px 40px rgb(0 0 0 / .10), 0 3px 20px rgb(0 0 0 / .125), 0 3px 12px rgb(0 0 0 / .125), 0 2px 8px rgb(0 0 0 / .125), 0 1px 1px rgb(0 0 0 / .125);
    --dock-shadow: 0 18px 44px -8px rgb(0 0 0 / .5), 0 4px 12px -2px rgb(0 0 0 / .3);
    --backdrop: lch(0 0 0 / 0.25);
    /* ── scales: colour for every chart (28 September) ── */
    --intensity-1: #5598e7;
    --intensity-1-lit: #6da7ec;
    --intensity-1-deep: #3987e5;
    --intensity-1-edge: #b7d3f6;
    --intensity-1-on: #0b0b0b;
    --intensity-2: #1a9e70;
    --intensity-2-lit: #1baf7a;
    --intensity-2-deep: #148e65;
    --intensity-2-edge: #7ad7b4;
    --intensity-2-on: #0b0b0b;
    --intensity-3: #c98500;
    --intensity-3-lit: #da9303;
    --intensity-3-deep: #b77701;
    --intensity-3-edge: #f9c868;
    --intensity-3-on: #0b0b0b;
    --intensity-4: #c25124;
    --intensity-4-lit: #d95926;
    --intensity-4-deep: #ae461c;
    --intensity-4-edge: #f09978;
    --intensity-4-on: #ffffff;
    --intensity-5: #a32c2c;
    --intensity-5-lit: #b93535;
    --intensity-5-deep: #8e2626;
    --intensity-5-edge: #e66767;
    --intensity-5-on: #ffffff;
    --intensity-6: #722340;
    --intensity-6-lit: #862a4c;
    --intensity-6-deep: #5e1c34;
    --intensity-6-edge: #c04873;
    --intensity-6-on: #ffffff;
    --ch-load: #3987e5;
    --ch-load-planned: #114281;
    --ch-capacity: #9085e9;
    --ch-pressure: #d55181;
    --ch-form: #c98500;
    --rim: rgb(255 255 255 / 12%);
    /* ── colour map: one meaning, one ramp colour (29 September) ── */
    --ch-power: #0da30e;
    --ch-hr: #e66767;
    --ch-speed: #3987e5;
    --ch-cadence: #9085e9;
    --ch-pace: #e46191;
    --ch-kjmin: #da9303;
    --ch-torque: #d95926;
    --ch-carb: #da9303;
    --ch-fructose: #eb6834;
    --ch-fluid: #5598e7;
    --ch-sodium: #1baf7a;
    --ch-power-estimated: #017301;
    --ch-power-area: #0f350d;
    --ch-hr-area: #511212;
    --ch-elevation: #52514e;
    --ch-temperature: #ec835a;
    --ch-glucose: #e46191;
    --ch-smo2: #1baf7a;
    --zone-1: #0d366b;
    --zone-2: #184f95;
    --zone-3: #256abf;
    --zone-4: #3987e5;
    --zone-5: #6da7ec;
    --zone-6: #9ec5f4;
    --chart-seq-1: #0d366b;
    --chart-seq-2: #184f95;
    --chart-seq-3: #256abf;
    --chart-seq-4: #3987e5;
    --chart-seq-5: #6da7ec;
    --chart-seq-6: #9ec5f4;
    --chart-seq-7: #cde2fb;
    --chart-div-1: #6da7ec;
    --chart-div-2: #3987e5;
    --chart-div-3: #184f95;
    --chart-div-4: #383835;
    --chart-div-5: #8e2626;
    --chart-div-6: #e34948;
    --chart-div-7: #ec7e7e;
    --status-good: #0da30e;
    --status-warning: #fab219;
    --status-serious: #ec835a;
    --status-critical: #d03b3b;
    --sport-ride: #5598e7;
    --sport-run: #ec835a;
    --sport-swim: #3cbd8c;
    --sport-strength: #9085e9;
    --sport-walk: #34b231;
    --sport-hike: #009300;
    --sport-row: #256abf;
    --sport-ski: #86b6ef;
    --sport-mobility: #ed93b4;
    --sport-other: #97958d;
    --body-hrv: #e87ba4;
    --body-sleep: #9085e9;
    --body-rhr: #ec7e7e;
    --body-weight: #86b6ef;
    --body-mood: #eda104;
    --body-soreness: #eb6834;
    --body-energy: #34b231;
    --body-stress: #e34948;
    --body-spo2: #6da7ec;
    --body-temperature: #f09978;
    --body-readiness: #3cbd8c;
    --body-menstrual: #d55181;
    --macro-carbohydrate: #eda104;
    --macro-protein: #e87ba4;
    --macro-fat: #f09978;
    --macro-fibre: #34b231;
    --macro-alcohol: #b0a7f2;
    --macro-water: #86b6ef;
    --sky-sun: #eda104;
    --sky-cloud-sun: #da9303;
    --sky-cloud: #a5a49a;
    --sky-rain: #5598e7;
    --sky-wind: #1baf7a;
    --sky-fog: #b4b3a8;
    --sky-snow: #86b6ef;
    --sky-storm: #8173e3;
    --session-planned: #7b7974;
    --session-progress: #eda104;
    --session-done: #0da30e;
    --session-missed: #e66767;
    --session-excused: #5598e7;
    --session-unplanned: #9085e9;
    --intent-recovery: #34b231;
    --intent-endurance: #5598e7;
    --intent-tempo: #eda104;
    --intent-threshold: #ec835a;
    --intent-adaptation: #eb6834;
    --intent-vo2max: #e66767;
    --intent-anaerobic: #d55181;
    --intent-test: #e87ba4;
    --intent-race: #8173e3;
    --intent-technique: #3cbd8c;
    --intent-train-low: #1a9e70;
    --al-1: #0da30e;
    --al-2: #eda104;
    --al-3: #d03b3b;
    --domain-fuel: #eda104;
    --domain-state: #9085e9;
    --domain-load: #5598e7;
    --domain-power: #0da30e;
    --domain-lab: #1baf7a;
    --domain-social: #ed93b4;
    --domain-gut: #f09978;
    --domain-adapt: #5acba0;
    --domain-durability: #eb6834;
    --domain-environment: #86b6ef;
    --domain-body: #f09595;
    --domain-codex: #97958d;
    --domain-energy: #da9303;
    --domain-plan: #256abf;
    --domain-race: #6250d6;
    --domain-composite: #d55181;
    --ch-lactate: #1a9e70;
    --ch-energy: #c98500;
    --ch-glycogen: #eda104;
    /* ── glass: the tab bar on the phone (6 October) ── */
    --glass: rgb(26 26 25 / 68%);
    --glass-solid: rgb(26 26 25 / 94%);
    --lift-dock: 0 0 0 1px rgb(255 255 255 / 12%), 0 4px 40px rgb(0 0 0 / .10), 0 3px 20px rgb(0 0 0 / .125), 0 2px 8px rgb(0 0 0 / .125), 0 1px 1px rgb(0 0 0 / .125);
    /* ── state: the pulse of work under way (6 October) ── */
    --accent-mark: #8173e3;
    /* ── material: glass on the navigation layer (round 33) ── */
    --material-saturate: 150%;
    --material-tint: rgb(26 26 25 / 84%);
    --material-clear: rgb(26 26 25 / 70%);
    --material-edge: inset 0 1px 0 rgb(255 255 255 / 10%), inset 0 0 0 1px rgb(255 255 255 / 4%), 0 0 0 1px rgb(255 255 255 / 12%);
    --material-hover: rgb(240 239 236 / 2.8%);
    --material-selected: rgb(240 239 236 / 5.6%);
    --material-selected-hover: rgb(240 239 236 / 7.9%);
    /* ── key: the docs key (16 October) ── */
    --key-docs-face: #1d1d1c;
    --key-docs-down: #151515;
    --new-mark: #6da7ec;
    /* ── chat: the look of a conversation between people (27 October) ── */
    --chat-own-line: rgb(0 0 0 / 20%);
    --chat-their: #201f1d;
    --chat-veil: rgb(0 0 0 / 50%);
    --chat-on-photo: rgb(0 0 0 / 56%);
    /* ── Trail: the text above the reading line fades (Dim) ── */
    --trail-dim-faint: .12;
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --raised: #1a1a19;
  --raised-hover: #20201e;
  --raised-selected: #272623;
  --raised-selected-hover: #2b2a26;
  --paper: #131313;
  --paper-hover: #1a1918;
  --paper-selected: #20201d;
  --paper-selected-hover: #242320;
  --mat: #111111;
  --mat-hover: #171716;
  --mat-selected: #1e1d1b;
  --mat-selected-hover: #21211e;
  --ground: #0d0d0d;
  --ground-hover: #131312;
  --ground-selected: #191917;
  --ground-selected-hover: #1d1c1a;
  --well: #0b0b0b;
  --well-hover: #111110;
  --well-selected: #171715;
  --well-selected-hover: #1b1a18;
  --pill: #20201f;
  --pill-hover: #272725;
  --pill-selected: #2e2d2a;
  --pill-selected-hover: #32312d;
  --rule: rgb(255 255 255 / 10%);
  --ink: #f0efec;
  --ink-2: #c3c2b7;
  --ink-3: #888784;
  --ink-4: #6c6b69;
  --ink-disabled: rgb(255 255 255 / 35%);
  --a5: rgb(255 255 255 / 5%);
  --a10: rgb(255 255 255 / 10%);
  --a20: rgb(255 255 255 / 20%);
  --a35: rgb(255 255 255 / 35%);
  --a50: rgb(255 255 255 / 50%);
  --a60: rgb(255 255 255 / 60%);
  --a70: rgb(255 255 255 / 70%);
  --a85: rgb(255 255 255 / 85%);
  --a95: rgb(255 255 255 / 95%);
  --rank-1: rgb(255 255 255 / 10%);
  --rank-2: rgb(255 255 255 / 20%);
  --rank-3: rgb(255 255 255 / 50%);
  --rank-4: rgb(255 255 255 / 85%);
  --line-1: rgb(255 255 255 / 6%);
  --line-2: rgb(255 255 255 / 8%);
  --line-3: rgb(255 255 255 / 10%);
  --line-4: rgb(255 255 255 / 15%);
  --line-5: rgb(255 255 255 / 20%);
  --accent-ink: #a096eb;
  --accent-glyph: #9085e9;
  --accent-tint: #1d1649;
  --accent-line: #322777;
  --ring-glow: #18172d;
  --danger-ink: #ec7e7e;
  --danger-tint: #3c0e0e;
  --danger-line: #641919;
  --danger-dot: #b93535;
  --success-ink: #0da30e;
  --success-tint: #11260f;
  --success-line: #074505;
  --success-dot: #028301;
  --warning-ink: #da9303;
  --warning-tint: #311a00;
  --warning-line: #512e00;
  --warning-dot: #945d01;
  --info-ink: #6da7ec;
  --info-tint: #032042;
  --info-line: #0d366b;
  --info-dot: #256abf;
  --ring-glow-danger: #301715;
  --label-violet-bg: rgb(30 21 89 / 75%);
  --label-violet-fg: #a096eb;
  --label-violet-dot: #6250d6;
  --label-blue-bg: rgb(0 34 80 / 75%);
  --label-blue-fg: #6da7ec;
  --label-blue-dot: #256abf;
  --label-red-bg: rgb(71 10 10 / 75%);
  --label-red-fg: #ec7e7e;
  --label-red-dot: #b93535;
  --label-green-bg: rgb(14 42 12 / 75%);
  --label-green-fg: #55bf50;
  --label-green-dot: #028301;
  --label-yellow-bg: rgb(57 26 0 / 75%);
  --label-yellow-fg: #da9303;
  --label-yellow-dot: #945d01;
  --label-orange-bg: rgb(65 18 1 / 75%);
  --label-orange-fg: #ec835a;
  --label-orange-dot: #ae461c;
  --label-aqua-bg: rgb(0 43 34 / 75%);
  --label-aqua-fg: #3cbd8c;
  --label-aqua-dot: #0f7e5c;
  --label-magenta-bg: rgb(67 11 33 / 75%);
  --label-magenta-fg: #e87ba4;
  --label-magenta-dot: #ad3d66;
  --label-neutral-bg: rgb(255 255 255 / 8%);
  --label-neutral-fg: #c3c2b7;
  --chart-1: #9085e9;
  --chart-2: #d95926;
  --chart-3: #1a9e70;
  --chart-4: #c98500;
  --chart-5: #d55181;
  --chart-7: #3987e5;
  --chart-8: #e66767;
  --chart-grid: rgb(255 255 255 / 8%);
  --chart-axis: #383835;
  --chart-reference: #97958d;
  --tomrum-hand: #969590;
  --tomrum-hand-light: #4d5157;
  --tomrum-hand-fine: #303337;
  --key-face: #20201f;
  --key-lip: #0b0b0b;
  --key-ring: rgb(255 255 255 / 12%);
  --key-down: #1a1a19;
  --lit: inset 0 1px 0 rgb(255 255 255 / 12%), inset 0 0 0 var(--px) rgb(0 0 0 / 10%);
  --knob-shadow: 0 1px 1px rgb(0 0 0 / .30), 0 0 0 .5px rgb(0 0 0 / .20);
  --handle-shadow: 0 0 0 var(--px) rgb(0 0 0 / .40), 0 1px 2px rgb(0 0 0 / .40);
  --ring-raised: 0.1;
  --ring-raised-hover: 0.16;
  --ring-paper: 0.11;
  --ring-paper-hover: 0.17;
  --ring-mat: 0.11;
  --ring-mat-hover: 0.17;
  --ring-ground: 0.12;
  --ring-ground-hover: 0.18;
  --ring-well: 0.12;
  --ring-well-hover: 0.18;
  --ring-rgb: 255 255 255;
  --e1: 0 1px 1px rgb(0 0 0 / .30), 0 0 0 .5px rgb(0 0 0 / .20);
  --e2: 0 3px 8px rgb(0 0 0 / .125), 0 2px 5px rgb(0 0 0 / .125), 0 1px 1px rgb(0 0 0 / .125);
  --e3: 0 4px 40px rgb(0 0 0 / .10), 0 3px 20px rgb(0 0 0 / .125), 0 3px 12px rgb(0 0 0 / .125), 0 2px 8px rgb(0 0 0 / .125), 0 1px 1px rgb(0 0 0 / .125);
  --dock-shadow: 0 18px 44px -8px rgb(0 0 0 / .5), 0 4px 12px -2px rgb(0 0 0 / .3);
  --backdrop: lch(0 0 0 / 0.25);
  /* ── scales: colour for every chart (28 September) ── */
  --intensity-1: #5598e7;
  --intensity-1-lit: #6da7ec;
  --intensity-1-deep: #3987e5;
  --intensity-1-edge: #b7d3f6;
  --intensity-1-on: #0b0b0b;
  --intensity-2: #1a9e70;
  --intensity-2-lit: #1baf7a;
  --intensity-2-deep: #148e65;
  --intensity-2-edge: #7ad7b4;
  --intensity-2-on: #0b0b0b;
  --intensity-3: #c98500;
  --intensity-3-lit: #da9303;
  --intensity-3-deep: #b77701;
  --intensity-3-edge: #f9c868;
  --intensity-3-on: #0b0b0b;
  --intensity-4: #c25124;
  --intensity-4-lit: #d95926;
  --intensity-4-deep: #ae461c;
  --intensity-4-edge: #f09978;
  --intensity-4-on: #ffffff;
  --intensity-5: #a32c2c;
  --intensity-5-lit: #b93535;
  --intensity-5-deep: #8e2626;
  --intensity-5-edge: #e66767;
  --intensity-5-on: #ffffff;
  --intensity-6: #722340;
  --intensity-6-lit: #862a4c;
  --intensity-6-deep: #5e1c34;
  --intensity-6-edge: #c04873;
  --intensity-6-on: #ffffff;
  --ch-load: #3987e5;
  --ch-load-planned: #114281;
  --ch-capacity: #9085e9;
  --ch-pressure: #d55181;
  --ch-form: #c98500;
  --rim: rgb(255 255 255 / 12%);
  /* ── colour map: one meaning, one ramp colour (29 September) ── */
  --ch-power: #0da30e;
  --ch-hr: #e66767;
  --ch-speed: #3987e5;
  --ch-cadence: #9085e9;
  --ch-pace: #e46191;
  --ch-kjmin: #da9303;
  --ch-torque: #d95926;
  --ch-carb: #da9303;
  --ch-fructose: #eb6834;
  --ch-fluid: #5598e7;
  --ch-sodium: #1baf7a;
  --ch-power-estimated: #017301;
  --ch-power-area: #0f350d;
  --ch-hr-area: #511212;
  --ch-elevation: #52514e;
  --ch-temperature: #ec835a;
  --ch-glucose: #e46191;
  --ch-smo2: #1baf7a;
  --zone-1: #0d366b;
  --zone-2: #184f95;
  --zone-3: #256abf;
  --zone-4: #3987e5;
  --zone-5: #6da7ec;
  --zone-6: #9ec5f4;
  --chart-seq-1: #0d366b;
  --chart-seq-2: #184f95;
  --chart-seq-3: #256abf;
  --chart-seq-4: #3987e5;
  --chart-seq-5: #6da7ec;
  --chart-seq-6: #9ec5f4;
  --chart-seq-7: #cde2fb;
  --chart-div-1: #6da7ec;
  --chart-div-2: #3987e5;
  --chart-div-3: #184f95;
  --chart-div-4: #383835;
  --chart-div-5: #8e2626;
  --chart-div-6: #e34948;
  --chart-div-7: #ec7e7e;
  --status-good: #0da30e;
  --status-warning: #fab219;
  --status-serious: #ec835a;
  --status-critical: #d03b3b;
  --sport-ride: #5598e7;
  --sport-run: #ec835a;
  --sport-swim: #3cbd8c;
  --sport-strength: #9085e9;
  --sport-walk: #34b231;
  --sport-hike: #009300;
  --sport-row: #256abf;
  --sport-ski: #86b6ef;
  --sport-mobility: #ed93b4;
  --sport-other: #97958d;
  --body-hrv: #e87ba4;
  --body-sleep: #9085e9;
  --body-rhr: #ec7e7e;
  --body-weight: #86b6ef;
  --body-mood: #eda104;
  --body-soreness: #eb6834;
  --body-energy: #34b231;
  --body-stress: #e34948;
  --body-spo2: #6da7ec;
  --body-temperature: #f09978;
  --body-readiness: #3cbd8c;
  --body-menstrual: #d55181;
  --macro-carbohydrate: #eda104;
  --macro-protein: #e87ba4;
  --macro-fat: #f09978;
  --macro-fibre: #34b231;
  --macro-alcohol: #b0a7f2;
  --macro-water: #86b6ef;
  --sky-sun: #eda104;
  --sky-cloud-sun: #da9303;
  --sky-cloud: #a5a49a;
  --sky-rain: #5598e7;
  --sky-wind: #1baf7a;
  --sky-fog: #b4b3a8;
  --sky-snow: #86b6ef;
  --sky-storm: #8173e3;
  --session-planned: #7b7974;
  --session-progress: #eda104;
  --session-done: #0da30e;
  --session-missed: #e66767;
  --session-excused: #5598e7;
  --session-unplanned: #9085e9;
  --intent-recovery: #34b231;
  --intent-endurance: #5598e7;
  --intent-tempo: #eda104;
  --intent-threshold: #ec835a;
  --intent-adaptation: #eb6834;
  --intent-vo2max: #e66767;
  --intent-anaerobic: #d55181;
  --intent-test: #e87ba4;
  --intent-race: #8173e3;
  --intent-technique: #3cbd8c;
  --intent-train-low: #1a9e70;
  --al-1: #0da30e;
  --al-2: #eda104;
  --al-3: #d03b3b;
  --domain-fuel: #eda104;
  --domain-state: #9085e9;
  --domain-load: #5598e7;
  --domain-power: #0da30e;
  --domain-lab: #1baf7a;
  --domain-social: #ed93b4;
  --domain-gut: #f09978;
  --domain-adapt: #5acba0;
  --domain-durability: #eb6834;
  --domain-environment: #86b6ef;
  --domain-body: #f09595;
  --domain-codex: #97958d;
  --domain-energy: #da9303;
  --domain-plan: #256abf;
  --domain-race: #6250d6;
  --domain-composite: #d55181;
  --ch-lactate: #1a9e70;
  --ch-energy: #c98500;
  --ch-glycogen: #eda104;
  /* ── glass: the tab bar on the phone (6 October) ── */
  --glass: rgb(26 26 25 / 68%);
  --glass-solid: rgb(26 26 25 / 94%);
  --lift-dock: 0 0 0 1px rgb(255 255 255 / 12%), 0 4px 40px rgb(0 0 0 / .10), 0 3px 20px rgb(0 0 0 / .125), 0 2px 8px rgb(0 0 0 / .125), 0 1px 1px rgb(0 0 0 / .125);
  /* ── state: the pulse of work under way (6 October) ── */
  --accent-mark: #8173e3;
  /* ── material: glass on the navigation layer (round 33) ── */
  --material-saturate: 150%;
  --material-tint: rgb(26 26 25 / 84%);
  --material-clear: rgb(26 26 25 / 70%);
  --material-edge: inset 0 1px 0 rgb(255 255 255 / 10%), inset 0 0 0 1px rgb(255 255 255 / 4%), 0 0 0 1px rgb(255 255 255 / 12%);
  --material-hover: rgb(240 239 236 / 2.8%);
  --material-selected: rgb(240 239 236 / 5.6%);
  --material-selected-hover: rgb(240 239 236 / 7.9%);
  /* ── key: the docs key (16 October) ── */
  --key-docs-face: #1d1d1c;
  --key-docs-down: #151515;
  --new-mark: #6da7ec;
  /* ── chat: the look of a conversation between people (27 October) ── */
  --chat-own-line: rgb(0 0 0 / 20%);
  --chat-their: #201f1d;
  --chat-veil: rgb(0 0 0 / 50%);
  --chat-on-photo: rgb(0 0 0 / 56%);
  /* ── Trail: the text above the reading line fades (Dim) ── */
  --trail-dim-faint: .12;
}

/* ── planes: a container says which surface it is, and everything on it takes
      that surface's hover, selected and ring ── */
[data-plane="raised"] {
  --plane: var(--raised); --plane-hover: var(--raised-hover); --plane-selected: var(--raised-selected); --plane-selected-hover: var(--raised-selected-hover);
  --ring: var(--ring-raised); --ring-hover: var(--ring-raised-hover); --pill-rest: var(--raised);
}
[data-plane="paper"] {
  --plane: var(--paper); --plane-hover: var(--paper-hover); --plane-selected: var(--paper-selected); --plane-selected-hover: var(--paper-selected-hover);
  --ring: var(--ring-paper); --ring-hover: var(--ring-paper-hover); --pill-rest: var(--raised);
}
[data-plane="mat"] {
  --plane: var(--mat); --plane-hover: var(--mat-hover); --plane-selected: var(--mat-selected); --plane-selected-hover: var(--mat-selected-hover);
  --ring: var(--ring-mat); --ring-hover: var(--ring-mat-hover); --pill-rest: var(--raised);
}
[data-plane="ground"] {
  --plane: var(--ground); --plane-hover: var(--ground-hover); --plane-selected: var(--ground-selected); --plane-selected-hover: var(--ground-selected-hover);
  --ring: var(--ring-ground); --ring-hover: var(--ring-ground-hover); --pill-rest: var(--paper);
}
[data-plane="well"] {
  --plane: var(--well); --plane-hover: var(--well-hover); --plane-selected: var(--well-selected); --plane-selected-hover: var(--well-selected-hover);
  --ring: var(--ring-well); --ring-hover: var(--ring-well-hover); --pill-rest: var(--paper);
}
/* ── the app's size (RAMTT-633, 1 November 2026) ──
   Malte, 1 November: the app looked like a page of the library in size. The
   library keeps the recipe above. The app sets data-ui-size="app" on its root,
   and every part that reads a type, control or row token grows one step: body
   13 to 14, title 16 to 18, rows 4 px taller, controls 2 px taller. The phone's
   44 and 42 stay, and so do icons and spacing. Each name keeps the library
   step it stands for, so a part reads the same token in both. */
:root[data-ui-size="app"] {
  --fs-9: 10px;  --lh-9: 15px;
  --fs-11: 12px; --lh-11: 17px;
  --fs-12: 13px; --lh-12: 18px;
  --fs-13: 14px; --lh-13: 20px; --lh-13-long: 22px;
  --fs-14: 15px; --lh-14: 24px;
  --fs-16: 18px; --lh-16: 24px;
  --fs-18: 20px; --lh-18: 26px;
  --fs-20: 22px; --lh-20: 28px;
  --fs-24: 28px; --lh-24: 34px;
  --h-20: 22px; --h-24: 26px; --h-26: 28px; --h-28: 30px; --h-32: 34px; --h-36: 38px;
  --row-24: 28px; --row-28: 32px; --row-32: 36px; --row-36: 40px; --row-40: 44px; --row-44: 48px; --row-52: 56px; --row-60: 64px;
}
}
