queueMicrotask fires before the click event settles, causing the textarea to blur immediately and trigger empty-text cleanup. requestAnimationFrame waits one paint frame — enough for the pointer event to fully resolve without the sluggishness of setTimeout(50).