Cairo Pattern Coordinate Spaces: Why Your Gradient Looks Wrong
Cairo's pattern system unifies painting via cairo_pattern_t, but gradient stops live in pattern space (0–1) while geometry uses user space. The pattern matrix maps user→pattern — scaling it up shrinks the gradient. Fix: invert the CTM into the pattern matrix so gradients track your layout.