The .yt::after gradient overlay was sitting on top of the inserted iframe and stealing every click — clicks on the YouTube player controls bubbled to the .yt facade, which still matched [data-yt] and re-ran open(), replacing the iframe and restarting playback from 0. - Add pointer-events:none on .yt::after so it never blocks player clicks - On play, swap .yt to a .yt--playing state that hides the overlay, play button, and title overlay - Remove the data-yt/role/tabindex attrs after init so any leftover clicks on the facade no longer match the open() delegate - Add controls=1 explicitly and broaden the allow list (clipboard-write, web-share) for the embedded player
16 KiB
16 KiB