Constrain the label element to the path while dragging, rather than using the shadow.
Rewrite the projection algorithm to work with proper math.