20f4fd7095
The light lavender theme carried its color in decoration -- four colored background blobs, a conic-gradient brand mark, gradient-clipped wordmark, a four-color animated button, a spinning conic empty mark, and a five-color spectrum rail. All of that competed with the only color on screen that carries meaning: which source a story came from. - One indigo-slate ink ramp (bg / surface / line / ink) carries every neutral surface; the only saturated hues are the three sources, used strictly as signals -- filter pill, card spine, source chip, timestamp, feed health. - Rule for every filled state: bright fill, deep ink type. Source tokens kept in sync between :root and View::sourceColor(). - Signature "signal bars": a CSS brand mark of three ascending bars in the source hues, and the header rail re-cut into three wire segments that double as the palette legend. The empty state reuses the mark, unlit and static. - Bootstrap switched to data-bs-theme="dark" with matching form controls, alerts, and focus rings; --ink-faint recalibrated so small text clears WCAG 4.5:1 on every surface. Reduced-motion behavior unchanged. - README documents the two rules next to View::sourceColor().