When CUDA fused kernels aren't available, the fused-pipeline primitive now uses JAX ops (jax_rotate, jax_scale, jax_shift_hue, etc.) instead of falling back to one-by-one CuPy/GPUFrame operations. Legacy GPUFrame path retained as last resort when JAX is also unavailable. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>