Make tile results legible without relying on colour alone
Early player feedback on Bluesky flagged two problems with the board:
there was no explainer, so a first-time player couldn't tell whether a
coloured tile meant "right spot" or "right letter"; and the present
colour read as red, making the palette feel like the red/green pairing
that colour-blind players struggle with.
Address both, plus two consistency issues the rework surfaced:
- Onboarding: a persistent colour/symbol legend under the board, and
a "?" header button opening a "How to play" modal (native <dialog>,
bilingual, original copy) shown once on first visit. Wires up the
previously-unused howTo strings.
- Colour-blind mode: an opt-in footer toggle adds a per-tile symbol
(right spot / wrong spot / not in word) to the board, legend, and
modal. Off by default so the glyphs don't clutter the board for
players who don't need them; persisted in localStorage via a
cb-safe class on <html>. Per-tile aria labels already covered
screen readers and are unchanged.
- Present colour nudged from burnt amber #B45309 (reads red) to gold
#A16207, clearly distinct from teal and slate.
- Keyboard inversion: untried keys are a neutral grey, a ruled-out key
drops to a darker recessive tone. It was the opposite before -- in
dark mode an absent key turned lighter than an untried one.
- "Not in word" is one shared, theme-aware tone across the board tile,
keyboard key, and legend (light: slate #5B6776; dark: #232B35),
rather than slate on the board but dark on the keyboard.
Decisions recorded in DECISIONS.md (13, 13a, 13b, 14a).