Constrained minimax optimization