:root{
  /* chassis ramp — moulded abs + anodized aluminium, slightly warm */
  --ch-000:#faf9f6;
  --ch-100:#f0eee9;
  --ch-200:#dedbd3;
  --ch-300:#bfbcb3;
  --ch-400:#918f88;
  --ch-500:#5e5d58;
  --ch-600:#3b3b38;
  --ch-700:#262626;
  --ch-800:#171717;
  --ch-900:#0f0f0f;

  /* anodized aluminium — cooler, "milled" surfaces only */
  --alu-lo:#8d9094;
  --alu-hi:#c6c9cc;

  /* screen ramp — what lives behind glass */
  --scr-void:#0a0b0b;
  --scr-dim:#151717;
  --scr-rule:#2b2e2e;

  /* encoder colours — four, always these four, always this order */
  --enc-1:#1f5fd0;
  --enc-2:#37a340;
  --enc-3:#f4f3ef;
  --enc-4:#f07d12;

  /* signal colours — meaning is fixed, never decorative */
  --sig-rec:#d92f22;
  --sig-arm:#f07d12;
  --sig-ok:#37a340;
  --sig-link:#1f5fd0;

  /* screen chroma — behind glass only, brighter than any enclosure */
  --px-teal:#00d3b8;
  --px-mag:#ff3d8b;
  --px-yel:#ffd400;
  --px-blue:#3d7bff;

  /* semantic aliases */
  --surface-app:var(--ch-200);
  --surface-part:var(--ch-100);
  --surface-well:var(--ch-200);
  --surface-control:var(--ch-000);
  --surface-part-dk:var(--ch-700);
  --surface-screen:var(--scr-void);
  --hairline:var(--ch-300);
  --hairline-dk:var(--ch-900);
  --text-body:var(--ch-800);
  --text-ui:var(--ch-700);
  --text-quiet:var(--ch-500);
  --text-silk:var(--ch-500);
  --text-silk-dk:var(--ch-400);
  --text-ballast:var(--ch-400);
  --text-screen:#e6e9e9;
  --focus-ring:var(--sig-link);
}
