The left-edge drag kept the rect width instead of anchoring the opposite edge, so shrinking from the left silently dragged the right edge along and the recomputed text grew words at the far end (found by the Android device test of the app leg). Same fix for the top edge / bottom pin. The end-edge branches were already correct.