- ParagraphReflow.toText re-appended the previous line on a plain line
break (the line was already in the output), duplicating text across the
spread. Only the join is now written, and a glued hyphen removes the
hyphen that had already been emitted. Drops the now-unused join().
- CaptionFilter: the gapBelow branches were Int/Double and inferred
Comparable<*>; widen to Double.
- PageNumberDetector: tighten folio geometry and margin isolation.
Add the 83-test JVM/Robolectric suite that locks these down.