This branch is the first to call fbm3 with runtime-variable octave counts (previously only compile-time constants 3u/4u). The spec's WebGPU safety mitigation (fixed upper bound + early break) was applied to ridged_fbm but missed on fbm3. Ports the same pattern so older WebGPU drivers don't miscompile the dynamic loop bound.