Palette: replace the bright/tacky colors with the muted, colorblind-friendly
seaborn "deep" scheme (mid-tone, reads on light and dark); apply a matching
matplotlib color cycle.
Plot fixes (from a rendered-PNG inspection pass):
- shared viz/plots.py: convergence() cycles line styles so coincident series
stay visible + takes target_label; br_heatmap() gains player-named axes and a
patch legend for the tint encoding.
- normal_form: restore the silently-dropped mixed-NE crossing marker
(envelope test now evaluated at the interpolated crossing); sweep_pure fans
out coincident NE-indicator lines.
- zero_sum: consistent player colors across plot_mixed panels; value-labeled
convergence reference; RdBu_r value surface; legends off the curves.
- correlated: payoff-region title no longer collides (relation moved to legend
title); coincident pure-cell labels merged.
- stochastic: padded trajectory y-range + zorder; coolwarm Q-heatmap; Cesaro
accent; non-absorbing security_game so trajectories are dynamic.
- bayesian: revenue curve drawn as a step (no spurious connectors); annotations
anchored to data.
- theme: terminal_light fill for extensive-form trees; higher dominated-cell
contrast in dark mode.
92 tests pass, pyflakes clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>