All controls and hotkeys work when the VideoPlayer is fullscreen
Controls are below video instead of inside of it
Controls have tooltips showing what they do and their hotkeys
Each control is a separate component that is used in both mobile and normal controls
Video Progress slider is above controls to save horizontal space
Controls will disappear when fullscreen if mouse leaves video player, or after 5 seconds of inactivity
Default port in vite.config.ts set to 3000 for simplicity.