pub fn viewport(width: f64, height: f64) -> Mat3
Screen-space transform: NDC [-1,1]² → pixel [0,w)×[0,h)