The shared FRAME_SCALE has to stay under 0.5 so the corners animation can fit two frames side by side, but nothing else is on screen while the drag animation runs, so it can afford a roomier frame. frameSize() now takes the scale as an argument; drag passes DRAG_FRAME_SCALE and the min/max resize multipliers apply on top of it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tg15tLAuT6NrCE1ZxKVgDB