fix: multi-line blank highlights use per-line rects instead of one union box
blank_boxes is now Vec<Vec<[f32; 4]>> where each inner vec has one merged
rect per rendered text line. cluster_into_lines groups glyphs by y-center
proximity (60% line-height threshold) so blanks wrapping across lines get
correct per-line highlight rectangles in the editor overlay.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>