When clicking Give Up multiple times quickly, the previous animation's requestAnimationFrame calls would continue running, causing the highlight to show on the wrong region (the new one) while the zoom was still calculated for the old region. Now properly cancels: - Previous requestAnimationFrame callbacks - Pending setTimeout callbacks - Sets isCancelled flag to stop animation loop This prevents the "Swaziland shown at Cape Verde's location" bug. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>