/* Base styles for the controller wrapper (the shadow host) */ .vsc-controller { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; pointer-events: none !important; z-index: 2147483646 !important; white-space: normal; overflow: visible !important; } /* Use minimal z-index for non-YouTube sites to avoid overlapping modals */ .vsc-controller.vsc-non-youtube { z-index: 1 !important; } .vsc-nosource { display: none !important; } .vsc-hidden { display: none !important; } /* YouTube auto-hide feature: fade controller with YouTube's controls */ /* When the wrapper has ytp-autohide class, hide it (unless vsc-hidden overrides) */ .vsc-controller.ytp-autohide:not(.vsc-hidden), .vsc-controller.vsc-idle-hidden:not(.vsc-hidden) { visibility: hidden; transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); opacity: 0; } /* Show it temporarily when it has vsc-show class */ .vsc-controller.ytp-autohide.vsc-show:not(.vsc-hidden), .vsc-controller.vsc-idle-hidden.vsc-show:not(.vsc-hidden), .vsc-controller.vsc-forced-show:not(.vsc-hidden) { visibility: visible !important; opacity: 1 !important; } /* Original overrides removed to avoid interference with the new anchoring system. The .vsc-controller wrapper now fills the player container exactly, allowing #controller (inside shadow root) to anchor correctly to all 8 positions. */ /* disable Vimeo video overlay */ div.video-wrapper + div.target { height: 0; } /* Fix black overlay on Kickstarter */ div.video-player.has_played.vertically_center:before, div.legacy-video-player.has_played.vertically_center:before { content: none !important; } /* Fix black overlay on openai.com */ .Shared-Video-player > .vsc-controller { height: 0; }