Events propagate qua 3 phase: capturing (từ window xuống target), target, bubbling (từ target lên window).
- Mặc định addEventListener ở bubbling phase (useCapture = false).
- Capturing ít dùng nhưng xử lý trước bubbling. stopPropagation() dừng propagation, stopImmediatePropagation() dừng cả handlers cùng element.