edd03f9716
Six token-gap markers were closed by pointing the value at a palette token that does not match it. Their own comments said so -- "between --blue and --accent", "lighter than --muted on dark bg", "no token matches" -- and were removed along with the values: #5b7098 -> var(--accent) #7c78a8, blue-grey to purple #9eb0bb -> var(--muted) #697b89, light-on-dark to dark-on-light #b8c8d2 -> var(--line) #d8dee2 #c9d5dc -> var(--line) #d8dee2 #eceaf5 -> var(--paper) #f5f4f1, violet-tinted to warm #f0eef8 -> var(--paper) #f5f4f1 All six are text or surfaces on --ink and --accent, where the light-background palette is the wrong family: --muted is illegible on --ink. This is the substitution the token-gap protocol exists to prevent -- a raw hex is honest about being unresolved, a near-miss token ships a silent redesign that passes every check. Adds six exact on-dark tokens and points the six declarations at them. design-system-keeper owns tokens.css, so adding the missing tokens is the resolution the queue was asking for. Also makes the four overlay tokens exact. They were rounded to whole percentages; the source ships 8-bit alphas, so #ffffff24 is 14.1176%, not 14%. The names stay rounded, the values do not. Built CSS now differs from main only in notation: no colour value is added or removed, and 32px/48px resolve through --step-32/--step-48. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>