Custom controls overlay native <video>. No external library. Uses pointer events to sync playback state with buttons.