The canvas built its peniko gradients premultiplied (peniko's default), while Gradient::sample, the PDF export (shading plus SMask) and SVG viewers blend colour and opacity separately: a transparent white stop into black drew grey 127 halfway instead of 191. Opaque gradients are unchanged.