Loading
When a click (or other event) fires on an element and then travels upward through its parent elements too.
After an event fires at the target element, it propagates up through all ancestor elements — each ancestor's listeners for that event type also fire. This enables event delegation: one listener on the parent handles events from all its children.
Part of the W3C DOM Events specification. Bubbling follows the ancestor chain to the document root. `event.stopPropagation()` halts the chain. Not all events bubble (e.g., `focus`, `blur` — use `focusin`/`focusout` instead). Custom events default to non-bubbling; pass `{bubbles: true}` to CustomEvent.