25c1f79fc1
The border flood-fill on a full-res 2256x4000 (9M px) photo was too slow in JS and the async mask pass timed out into the catch branch (overlay stayed null, 'Mask settled' never rendered). Downscale to <=1200px for the fill, then nearest-neighbor upsample the slab bitset back to full size so minAreaRect/slabBounds stay in source-pixel coordinates.