Wash hover and pressed with an opaque interaction tint master
Replace color.overlay.hover and color.overlay.pressed with a single color.overlay.tint: an opaque ink, black in light mode and white in dark. Strength moves to the call site, because color-mix cannot composite a translucent colour onto a fill and return an opaque result. Add styles/overlay-wash.ts as the one home for the technique. Consumers set background-color and border-color instead of an inset box-shadow, so the existing feedback transition animates the wash, and a wash over a transparent rest fill stays translucent for ghost controls. Restore the Checkbox border cue and adopt the higher control strengths. A selected box's hover went from 1.09% to 5.43% lightness change, with the border back at 9.7%, so the wash is no longer its only state cue. validateContrast now composites the tint directly against a table of the real first-party pairs, rather than parsing its own emitted color-mix string: 88 hard and 12 advisory checks per mode.