From 68fa1efe87aa2e5841a70618f35dc4c10b5fb98f Mon Sep 17 00:00:00 2001 From: Yiannis Christodoulou Date: Mon, 22 Sep 2025 23:17:52 +0300 Subject: [PATCH] feat: Add Embed Info Overlay Component (for embed player only) --- frontend-tools/video-js/src/VideoJS.css | 108 +++ .../components/overlays/EmbedInfoOverlay.js | 251 ++++++ .../components/overlays/EndScreenOverlay.js | 2 +- .../components/video-player/VideoJSPlayer.jsx | 34 +- static/video_js/video-js.css | 1 - static/video_js/video-js.js | 804 ------------------ static/video_js/video-js.js.map | 1 - 7 files changed, 389 insertions(+), 812 deletions(-) create mode 100644 frontend-tools/video-js/src/components/overlays/EmbedInfoOverlay.js delete mode 100644 static/video_js/video-js.css delete mode 100644 static/video_js/video-js.js delete mode 100644 static/video_js/video-js.js.map diff --git a/frontend-tools/video-js/src/VideoJS.css b/frontend-tools/video-js/src/VideoJS.css index 7229bb5c..eecf155f 100644 --- a/frontend-tools/video-js/src/VideoJS.css +++ b/frontend-tools/video-js/src/VideoJS.css @@ -1654,3 +1654,111 @@ button.vjs-button > .vjs-icon-placeholder:before { font-size: 1.4em !important; } } + +/* Embed Info Overlay Styles */ +.vjs-embed-info-overlay { + position: absolute !important; + top: 10px !important; + left: 10px !important; + z-index: 1000 !important; + display: flex !important; + align-items: center !important; + gap: 10px !important; + background: rgba(0, 0, 0, 0.7) !important; + padding: 8px 12px !important; + border-radius: 8px !important; + backdrop-filter: blur(4px) !important; + border: 1px solid rgba(255, 255, 255, 0.1) !important; + max-width: calc(100% - 40px) !important; + box-sizing: border-box !important; + transition: opacity 0.3s ease-in-out !important; + font-family: Arial, sans-serif !important; +} + +.vjs-embed-info-overlay .embed-avatar-container { + flex-shrink: 0 !important; + width: 32px !important; + height: 32px !important; + border-radius: 50% !important; + overflow: hidden !important; + border: 1px solid rgba(255, 255, 255, 0.2) !important; +} + +.vjs-embed-info-overlay .embed-avatar-container a { + display: block !important; + width: 100% !important; + height: 100% !important; + text-decoration: none !important; +} + +.vjs-embed-info-overlay .embed-avatar-container img { + width: 100% !important; + height: 100% !important; + object-fit: cover !important; + display: block !important; +} + +.vjs-embed-info-overlay .embed-title-container { + flex: 1 !important; + min-width: 0 !important; + overflow: hidden !important; +} + +.vjs-embed-info-overlay .embed-title-container a, +.vjs-embed-info-overlay .embed-title-container span { + color: #fff !important; + text-decoration: none !important; + font-size: 14px !important; + font-weight: 500 !important; + line-height: 1.3 !important; + display: block !important; + white-space: nowrap !important; + overflow: hidden !important; + text-overflow: ellipsis !important; + transition: color 0.2s ease !important; +} + +.vjs-embed-info-overlay .embed-title-container a:hover { + color: #009931 !important; +} + +/* Responsive styles for smaller screens */ +@media (max-width: 768px) { + .vjs-embed-info-overlay { + top: 8px !important; + left: 8px !important; + padding: 6px 10px !important; + gap: 8px !important; + max-width: calc(100% - 32px) !important; + } + + .vjs-embed-info-overlay .embed-avatar-container { + width: 28px !important; + height: 28px !important; + } + + .vjs-embed-info-overlay .embed-title-container a, + .vjs-embed-info-overlay .embed-title-container span { + font-size: 13px !important; + } +} + +@media (max-width: 480px) { + .vjs-embed-info-overlay { + top: 6px !important; + left: 6px !important; + padding: 5px 8px !important; + gap: 6px !important; + max-width: calc(100% - 24px) !important; + } + + .vjs-embed-info-overlay .embed-avatar-container { + width: 24px !important; + height: 24px !important; + } + + .vjs-embed-info-overlay .embed-title-container a, + .vjs-embed-info-overlay .embed-title-container span { + font-size: 12px !important; + } +} diff --git a/frontend-tools/video-js/src/components/overlays/EmbedInfoOverlay.js b/frontend-tools/video-js/src/components/overlays/EmbedInfoOverlay.js new file mode 100644 index 00000000..d4f2f244 --- /dev/null +++ b/frontend-tools/video-js/src/components/overlays/EmbedInfoOverlay.js @@ -0,0 +1,251 @@ +// components/overlays/EmbedInfoOverlay.js +import videojs from 'video.js'; + +// Get the Component base class from Video.js +const Component = videojs.getComponent('Component'); + +class EmbedInfoOverlay extends Component { + constructor(player, options) { + super(player, options); + + this.authorName = options.authorName || 'Unknown'; + this.authorProfile = options.authorProfile || ''; + this.authorThumbnail = options.authorThumbnail || ''; + this.videoTitle = options.videoTitle || 'Video'; + this.videoUrl = options.videoUrl || ''; + + // Initialize after player is ready + this.player().ready(() => { + this.createOverlay(); + }); + } + + createEl() { + const el = document.createElement('div'); + el.className = 'vjs-embed-info-overlay'; + return el; + } + + createOverlay() { + const playerEl = this.player().el(); + const overlay = this.el(); + + // Set overlay styles for positioning at top left + overlay.style.cssText = ` + position: absolute; + top: 10px; + left: 10px; + z-index: 1000; + display: flex; + align-items: center; + gap: 10px; + background: rgba(0, 0, 0, 0.7); + padding: 8px 12px; + border-radius: 8px; + backdrop-filter: blur(4px); + border: 1px solid rgba(255, 255, 255, 0.1); + max-width: calc(100% - 40px); + box-sizing: border-box; + transition: opacity 0.3s ease-in-out; + `; + + // Create avatar container + if (this.authorThumbnail) { + const avatarContainer = document.createElement('div'); + avatarContainer.className = 'embed-avatar-container'; + avatarContainer.style.cssText = ` + flex-shrink: 0; + width: 32px; + height: 32px; + border-radius: 50%; + overflow: hidden; + border: 1px solid rgba(255, 255, 255, 0.2); + `; + + if (this.authorProfile) { + const avatarLink = document.createElement('a'); + avatarLink.href = this.authorProfile; + avatarLink.target = '_blank'; + avatarLink.rel = 'noopener noreferrer'; + avatarLink.title = this.authorName; + avatarLink.style.cssText = ` + display: block; + width: 100%; + height: 100%; + `; + + const avatarImg = document.createElement('img'); + avatarImg.src = this.authorThumbnail; + avatarImg.alt = this.authorName; + avatarImg.title = this.authorName; + avatarImg.style.cssText = ` + width: 100%; + height: 100%; + object-fit: cover; + display: block; + `; + + // Handle image load error + avatarImg.onerror = () => { + avatarImg.style.display = 'none'; + avatarContainer.style.display = 'none'; + }; + + avatarLink.appendChild(avatarImg); + avatarContainer.appendChild(avatarLink); + } else { + const avatarImg = document.createElement('img'); + avatarImg.src = this.authorThumbnail; + avatarImg.alt = this.authorName; + avatarImg.title = this.authorName; + avatarImg.style.cssText = ` + width: 100%; + height: 100%; + object-fit: cover; + display: block; + `; + + // Handle image load error + avatarImg.onerror = () => { + avatarImg.style.display = 'none'; + avatarContainer.style.display = 'none'; + }; + + avatarContainer.appendChild(avatarImg); + } + + overlay.appendChild(avatarContainer); + } + + // Create title container + const titleContainer = document.createElement('div'); + titleContainer.className = 'embed-title-container'; + titleContainer.style.cssText = ` + flex: 1; + min-width: 0; + overflow: hidden; + `; + + if (this.videoUrl) { + const titleLink = document.createElement('a'); + titleLink.href = this.videoUrl; + titleLink.target = '_blank'; + titleLink.rel = 'noopener noreferrer'; + titleLink.textContent = this.videoTitle; + titleLink.title = this.videoTitle; + titleLink.style.cssText = ` + color: #fff; + text-decoration: none; + font-size: 14px; + font-weight: 500; + line-height: 1.3; + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + transition: color 0.2s ease; + `; + + // Add hover effect + titleLink.addEventListener('mouseenter', () => { + titleLink.style.color = '#009931'; + }); + + titleLink.addEventListener('mouseleave', () => { + titleLink.style.color = '#fff'; + }); + + titleContainer.appendChild(titleLink); + } else { + const titleText = document.createElement('span'); + titleText.textContent = this.videoTitle; + titleText.title = this.videoTitle; + titleText.style.cssText = ` + color: #fff; + font-size: 14px; + font-weight: 500; + line-height: 1.3; + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + `; + + titleContainer.appendChild(titleText); + } + + overlay.appendChild(titleContainer); + + // Append overlay to player + playerEl.appendChild(overlay); + + // Hide overlay during user inactivity (like controls) + this.setupAutoHide(); + } + + setupAutoHide() { + const player = this.player(); + const overlay = this.el(); + + // Show/hide with controls + player.on('useractive', () => { + overlay.style.opacity = '1'; + }); + + player.on('userinactive', () => { + overlay.style.opacity = '0.7'; + }); + + // Always show when paused + player.on('pause', () => { + overlay.style.opacity = '1'; + }); + + // Hide during fullscreen controls fade + player.on('fullscreenchange', () => { + setTimeout(() => { + if (player.isFullscreen()) { + overlay.style.opacity = player.userActive() ? '1' : '0.7'; + } else { + overlay.style.opacity = '1'; + } + }, 100); + }); + } + + // Method to update overlay content if needed + updateContent(options) { + if (options.authorName) this.authorName = options.authorName; + if (options.authorProfile) this.authorProfile = options.authorProfile; + if (options.authorThumbnail) this.authorThumbnail = options.authorThumbnail; + if (options.videoTitle) this.videoTitle = options.videoTitle; + if (options.videoUrl) this.videoUrl = options.videoUrl; + + // Recreate overlay with new content + const overlay = this.el(); + overlay.innerHTML = ''; + this.createOverlay(); + } + + show() { + this.el().style.display = 'flex'; + } + + hide() { + this.el().style.display = 'none'; + } + + dispose() { + // Clean up any event listeners or references + const overlay = this.el(); + if (overlay && overlay.parentNode) { + overlay.parentNode.removeChild(overlay); + } + super.dispose(); + } +} + +// Register the component with Video.js +videojs.registerComponent('EmbedInfoOverlay', EmbedInfoOverlay); + +export default EmbedInfoOverlay; diff --git a/frontend-tools/video-js/src/components/overlays/EndScreenOverlay.js b/frontend-tools/video-js/src/components/overlays/EndScreenOverlay.js index 43be397b..a94d4b92 100644 --- a/frontend-tools/video-js/src/components/overlays/EndScreenOverlay.js +++ b/frontend-tools/video-js/src/components/overlays/EndScreenOverlay.js @@ -146,7 +146,7 @@ class EndScreenOverlay extends Component { // Generate a placeholder image using a service or create a data URL // For now, we'll use a simple colored placeholder based on the title const colors = [ - '#FF6B6B', + '#009931', '#4ECDC4', '#45B7D1', '#96CEB4', diff --git a/frontend-tools/video-js/src/components/video-player/VideoJSPlayer.jsx b/frontend-tools/video-js/src/components/video-player/VideoJSPlayer.jsx index 9c7fd4af..8c5f11cd 100644 --- a/frontend-tools/video-js/src/components/video-player/VideoJSPlayer.jsx +++ b/frontend-tools/video-js/src/components/video-player/VideoJSPlayer.jsx @@ -5,6 +5,7 @@ import 'video.js/dist/video-js.css'; // Import the separated components import EndScreenOverlay from '../overlays/EndScreenOverlay'; import AutoplayCountdownOverlay from '../overlays/AutoplayCountdownOverlay'; +import EmbedInfoOverlay from '../overlays/EmbedInfoOverlay'; import ChapterMarkers from '../markers/ChapterMarkers'; import SpritePreview from '../markers/SpritePreview'; import NextVideoButton from '../controls/NextVideoButton'; @@ -34,6 +35,11 @@ function VideoJSPlayer({ videoId = 'default-video' }) { : { data: { // COMMON + title: 'Modi tempora est quaerat numquam', + author_name: 'Markos Gogoulos', + author_profile: '/user/markos/', + author_thumbnail: '/media/userlogos/2024/10/02/markos.jpeg', + url: 'https://demo.mediacms.io/view?m=7dedcb56bde9463dbc0766768a99be0f', poster_url: 'https://demo.mediacms.io/media/original/thumbnails/user/markos/7dedcb56bde9463dbc0766768a99be0f_C8E5GFY.20250605_110647.mp4.jpg', chapter_data: [ @@ -1035,10 +1041,10 @@ function VideoJSPlayer({ videoId = 'default-video' }) { // AUDIO /*media_type: 'audio', - original_media_url: - 'https://videojs.mediacms.io/media/original/user/markos/174be7a1ecb04850a6927a0af2887ccc.SizzlaHardGround.mp3', - hls_info: {}, - encodings_info: {},*/ + original_media_url: + 'https://videojs.mediacms.io/media/original/user/markos/174be7a1ecb04850a6927a0af2887ccc.SizzlaHardGround.mp3', + hls_info: {}, + encodings_info: {},*/ }, // other @@ -1046,7 +1052,7 @@ function VideoJSPlayer({ videoId = 'default-video' }) { url: 'https://demo.mediacms.io/media/original/thumbnails/user/markos/fe4933d67b884d4da507dd60e77f7438.VID_20200909_141053.mp4sprites.jpg', frame: { width: 160, height: 90, seconds: 10 }, }, - siteUrl: '', + siteUrl: 'https://demo.mediacms.io', nextLink: 'https://demo.mediacms.io/view?m=YjGJafibO', urlAutoplay: true, urlMuted: false, @@ -1287,6 +1293,12 @@ function VideoJSPlayer({ videoId = 'default-video' }) { return { id: mediaData.data?.friendly_token || 'default-video', title: mediaData.data?.title || 'Video', + author_name: mediaData.data?.author_name || 'Unknown', + author_profile: mediaData.data?.author_profile ? mediaData.siteUrl + mediaData.data.author_profile : '', + author_thumbnail: mediaData.data?.author_thumbnail + ? mediaData.siteUrl + mediaData.data.author_thumbnail + : '', + url: mediaData.data?.url ? mediaData.siteUrl + mediaData.data.url : '', poster: mediaData.data?.poster_url ? mediaData.siteUrl + mediaData.data.poster_url : '', previewSprite: mediaData?.previewSprite || {}, related_media: mediaData.data?.related_media || [], @@ -2376,6 +2388,18 @@ function VideoJSPlayer({ videoId = 'default-video' }) { } // END: Add Chapters Overlay Component + // BEGIN: Add Embed Info Overlay Component (for embed player only) + if (isEmbedPlayer) { + customComponents.current.embedInfoOverlay = new EmbedInfoOverlay(playerRef.current, { + authorName: currentVideo.author_name, + authorProfile: currentVideo.author_profile, + authorThumbnail: currentVideo.author_thumbnail, + videoTitle: currentVideo.title, + videoUrl: currentVideo.url, + }); + } + // END: Add Embed Info Overlay Component + // BEGIN: Add Settings Menu Component customComponents.current.settingsMenu = new CustomSettingsMenu(playerRef.current, { userPreferences: userPreferences.current, diff --git a/static/video_js/video-js.css b/static/video_js/video-js.css deleted file mode 100644 index fe13097f..00000000 --- a/static/video_js/video-js.css +++ /dev/null @@ -1 +0,0 @@ -html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}.playlist-items a{text-decoration:none!important}.video-js video{outline:none!important}.video-js .vjs-poster{border-radius:12px!important}.video-js video{border-radius:12px!important}#page-embed .video-js-root-embed .video-js video{width:100vw!important;height:100vh!important;object-fit:cover!important;border-radius:0!important}#page-embed .video-js-root-embed .video-js .vjs-poster{border-radius:0!important;width:100vw!important;height:100vh!important;object-fit:cover!important}.video-js div.vjs-control-bar{background:transparent!important;background-color:transparent!important;background-image:none!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;padding:0 12px;height:48px}.video-js:after{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.6) 25%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.2) 75%,transparent 100%);pointer-events:none;opacity:0;transition:opacity .3s ease;z-index:2}.video-js.vjs-user-active:after,.video-js.vjs-paused:after,.video-js.vjs-ended:after{opacity:1}.video-js .vjs-control-bar{z-index:6!important}.video-js .vjs-progress-control.vjs-control{z-index:7!important}.video-js .vjs-control-bar .vjs-button .vjs-icon-placeholder:before{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.6)!important}.video-js .vjs-control-bar .vjs-time-control{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.6)!important;font-weight:500!important}.video-js .vjs-volume-control .vjs-volume-bar{background:rgba(255,255,255,.3)!important}.video-js .vjs-volume-control .vjs-volume-level{background:#ffffff!important}.video-container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px;box-sizing:border-box}#page-embed .video-js-root-embed .video-container{width:100vw;height:100vh;max-width:none;margin:0;padding:0;box-sizing:border-box;position:fixed;top:0;left:0;z-index:1000}.video-js.vjs-fluid{width:100%!important;max-width:100%!important}#page-embed .video-js-root-embed .video-js.vjs-fluid{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important}.vjs-next-video-control .vjs-icon-placeholder{width:1.2em;height:1.2em;display:flex;align-items:center;justify-content:center;margin:auto;display:none!important}.vjs-next-video-control .vjs-icon-placeholder svg{width:100%;height:100%;display:block}.vjs-end-screen-overlay{position:absolute;top:0;left:0;width:100%;background:rgba(0,0,0,.5);display:none;flex-direction:column;justify-content:center;align-items:center;height:calc(100% - 46px);box-sizing:border-box;padding:20px;gap:10px;z-index:4}.vjs-related-videos-title{color:#fff;font-size:24px;line-height:24px;padding:0;margin:0;text-align:center;font-weight:700;flex-shrink:0}.vjs-related-videos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;width:100%;max-width:100%;margin:0;box-sizing:border-box;justify-items:center;overflow:hidden;align-self:center;flex-shrink:0;height:calc(100% - 44px)}.vjs-related-video-item{position:relative;cursor:pointer;border-radius:5px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;background:#1a1a1a;border:1px solid #333;width:100%;max-width:100%;box-shadow:0 2px 8px #0000001a}.vjs-related-video-item:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000004d}.vjs-related-video-thumbnail{width:100%;height:100%;object-fit:cover;display:block;background:#1a1a1a;transition:transform .2s ease}.vjs-related-video-item:hover .vjs-related-video-thumbnail{transform:scale(1.02)}.vjs-related-video-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.9));color:#fff;padding:12px;opacity:0;transition:opacity .3s ease;display:flex;flex-direction:column;justify-content:flex-start;height:100%}.vjs-related-video-item:hover .vjs-related-video-overlay{opacity:1}.vjs-related-video-title{font-size:14px;font-weight:700;line-height:1.3;color:#fff;margin-bottom:4px}.vjs-related-video-meta{display:flex;flex-direction:row;gap:8px;align-items:center}.vjs-related-video-author{font-size:12px;color:#ccc}.vjs-related-video-views{font-size:12px;color:#aaa}.vjs-related-video-author:after{content:"•";margin-left:8px;color:#666}.vjs-related-video-duration{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.8);color:#fff;padding:2px 6px;font-size:11px;font-weight:700;border-radius:2px;opacity:0;transition:opacity .3s ease}.vjs-related-video-item:hover .vjs-related-video-duration{opacity:1}.video-js.vjs-ended .vjs-control-bar{opacity:1!important;pointer-events:auto!important}.video-js.vjs-ended .vjs-control-bar .vjs-control,.video-js.vjs-ended .vjs-control-bar button{opacity:1!important;pointer-events:auto!important;cursor:pointer!important}.video-js.vjs-ended .vjs-control-bar .vjs-control.vjs-volume-control{opacity:0!important}.video-js.vjs-ended .vjs-control-bar .vjs-volume-panel.vjs-hover .vjs-volume-control{opacity:1!important}.video-js.vjs-ended .vjs-play-control{opacity:1!important;pointer-events:auto!important;cursor:pointer!important}.video-js.vjs-ended .vjs-progress-control,.video-js.vjs-ended .vjs-volume-panel{opacity:1!important;pointer-events:auto!important}.vjs-chapter-markers-track{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.vjs-chapter-marker{position:absolute;top:0;width:2px;height:100%;background:rgba(255,255,255,.6);pointer-events:auto;cursor:pointer;transition:background .2s ease}.vjs-chapter-marker:hover{background:rgba(255,255,255,.9);width:3px}.vjs-chapter-marker-tooltip{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:rgba(0,0,0,.8);color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1001}.vjs-chapter-marker:hover .vjs-chapter-marker-tooltip{opacity:1}.vjs-chapter-floating-tooltip{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif!important;line-height:1.4!important;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.video-js .vjs-menu-button:not(.vjs-disabled) .vjs-menu{display:none!important}.video-js .vjs-menu-button:not(.vjs-disabled).vjs-lock-showing .vjs-menu,.video-js .vjs-menu-button:not(.vjs-disabled) .vjs-menu.vjs-lock-showing{display:block!important}.video-js .vjs-menu-button:hover .vjs-menu{display:none!important}.video-js .vjs-menu-button.vjs-lock-showing:hover .vjs-menu{display:block!important}.video-js .vjs-menu.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.video-js.chapters-open .vjs-menu,.video-js.chapters-open .vjs-menu.vjs-lock-showing,.video-js.chapters-open .vjs-hover-display,.video-js.chapters-open .vjs-time-tooltip,.video-js.chapters-open .vjs-progress-holder .vjs-mouse-display{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-volume-panel.vjs-hover{transition:ease-in-out .5s!important;width:auto!important}.video-js .vjs-captions-button,.video-js .vjs-subs-caps-button{display:none!important}.video-js .vjs-subtitles-button .vjs-menu,.video-js .vjs-subtitles-button .vjs-menu.vjs-lock-showing{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.video-js .vjs-text-track-display{position:absolute!important;bottom:6em!important;left:0!important;right:0!important;top:0!important;pointer-events:none!important;z-index:10!important}.video-js .vjs-text-track-cue{position:absolute!important;bottom:0!important;left:0!important;right:0!important;text-align:center!important;padding:0!important;background:transparent!important;border:none!important;font-size:1.2em!important;line-height:1.4!important;color:#fff!important;text-shadow:2px 2px 4px rgba(0,0,0,.8)!important;font-family:Arial,sans-serif!important;font-weight:600!important;white-space:pre-line!important;word-wrap:break-word!important;max-width:90%!important;margin:0 auto!important;z-index:11!important}.video-js .vjs-text-track-cue>div{background:rgba(0,0,0,.7)!important;padding:8px 12px!important;border-radius:4px!important;display:inline-block!important;margin:2px 0!important;max-width:100%!important;box-sizing:border-box!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:8em!important}.video-js.vjs-fullscreen .vjs-text-track-cue{font-size:1.4em!important;max-width:85%!important}.video-js.vjs-fullscreen .vjs-text-track-cue>div{padding:10px 16px!important;font-size:1em!important}.video-js .vjs-subtitles-button .vjs-menu.vjs-lock-showing .vjs-menu-content{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.video-js .vjs-chapters-button .vjs-menu,.video-js .vjs-chapters-button .vjs-menu.vjs-lock-showing,.video-js .vjs-chapters-button .vjs-menu.vjs-lock-showing .vjs-menu-content{display:none!important}.video-js .vjs-chapters-button .vjs-menu{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.video-js .vjs-subtitles-button{position:relative;cursor:pointer!important;pointer-events:auto!important}.video-js button.vjs-subtitles-button{cursor:pointer!important;pointer-events:auto!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important}.video-js button.vjs-subtitles-button:before{content:"";position:absolute;left:50%;transform:translate(-50%);bottom:6px;height:3px;background:#e1002d;border-radius:2px;width:0;padding:0;transition:none!important;animation:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important}.video-js .vjs-subs-active button.vjs-subtitles-button:before{width:24px;transition:none!important;animation:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important}.video-js button.vjs-subtitles-button{transition:none!important;animation:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important}.video-js .vjs-autoplay-toggle .vjs-hover-display,.video-js .vjs-autoplay-toggle .vjs-tooltip,.video-js .vjs-autoplay-toggle .vjs-tooltip-text{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.video-js .vjs-autoplay-toggle{position:relative}.video-js .vjs-autoplay-toggle:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:rgba(0,0,0,.9);color:#fff;padding:6px 10px;border-radius:4px;font-size:12px;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:1000;margin-bottom:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;box-shadow:0 2px 8px #0000004d;border:1px solid rgba(255,255,255,.1)}.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-autoplay-toggle:focus:after{opacity:1;visibility:visible}.video-js .vjs-settings-button{cursor:pointer!important;pointer-events:auto!important;position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;min-width:32px!important;height:32px!important;padding:0!important;margin:0 2px!important;border:none!important;background:transparent!important;color:inherit!important;font-size:inherit!important;line-height:inherit!important;text-align:center!important;vertical-align:middle!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.video-js .vjs-settings-button:hover{background-color:#ffffff1a!important}.video-js .vjs-settings-button:focus{outline:none!important}.video-js .vjs-settings-button .vjs-icon-cog{font-size:18px!important;width:18px!important;height:18px!important;display:flex!important;align-items:center!important;justify-content:center!important}.vjs-play-progress{background-color:#019932!important}.vjs-load-progress,.vjs-progress-holder{background:rgba(255,255,255,.5)!important}.video-js .vjs-progress-control{position:absolute!important;bottom:46px!important;left:0!important;right:0!important;width:100%!important;height:0!important;z-index:3!important;padding:0!important;margin:0 auto!important}.video-js .vjs-control-bar .vjs-progress-control{display:none!important}.video-js .vjs-progress-control.vjs-control{display:block!important}.video-js .vjs-control-bar .vjs-icon-placeholder,.video-js .vjs-control-bar .vjs-button .vjs-icon-placeholder,.video-js .vjs-control-bar [class*=vjs-icon-]{font-size:1.5em!important}.vjs-control-bar .custom-remaining-time .vjs-remaining-time-display{font-size:14px!important;font-weight:500;line-height:1;display:flex;align-items:center;justify-content:center;height:100%;color:#fff}.vjs-mouse-display{z-index:4!important}.vjs-slider-horizontal{top:-5px}.video-js .vjs-spacer-control{flex:1!important;min-width:1px!important;height:100%!important}.video-js .vjs-control-bar .vjs-control{flex:none!important}.video-js .vjs-autoplay-toggle{margin-right:10px!important}.video-js .vjs-picture-in-picture-control{margin-left:6px!important}.vjs-seek-indicator{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;z-index:9999!important;pointer-events:none!important;display:none!important;align-items:center!important;justify-content:center!important;opacity:0!important;visibility:hidden!important;transition:opacity .2s ease-in-out!important}.vjs-seek-indicator-content{background:transparent!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}.vjs-seek-indicator-icon{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;margin-bottom:4px!important}.seek-icon-container{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;animation:seekPulse .3s ease-out!important}.youtube-seek-container{display:flex!important;align-items:center!important;justify-content:center!important;animation:youtubeSeekPulse .3s ease-out!important}.youtube-seek-circle{width:80px!important;height:80px!important;border-radius:50%!important;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;background:rgba(0,0,0,.8)!important;backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:0!important;box-shadow:0 4px 20px #0000004d!important;border:1px solid rgba(255,255,255,.15)!important;box-sizing:border-box!important;overflow:hidden!important}.youtube-seek-icon{display:flex!important;align-items:center!important;justify-content:center!important;margin-bottom:4px!important}.youtube-seek-icon svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))!important}.youtube-seek-time{color:#fff!important;font-size:10px!important;font-weight:500!important;text-align:center!important;line-height:1.2!important;opacity:.9!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}@keyframes youtubeSeekPulse{0%{transform:scale(.7);opacity:.5}50%{transform:scale(1.05);opacity:.9}to{transform:scale(1);opacity:1}}.seek-seconds{color:#fff!important;font-size:16px!important;font-weight:700!important;text-shadow:0 2px 4px rgba(0,0,0,.7)!important;line-height:1!important}.vjs-seek-indicator-text{color:#fff!important;font-size:16px!important;font-weight:500!important;text-align:center!important;text-shadow:0 1px 2px rgba(0,0,0,.8)!important}button{cursor:pointer}.video-js{padding:0;height:100%!important;border-radius:12px;outline:none}.video-js:focus{box-shadow:0 0 0 3px #19993280;border-radius:12px}.video-js[tabindex]{outline:none}#page-embed .video-js-root-embed .video-js{width:100vw!important;height:100vh!important;border-radius:0;position:relative}#page-embed .video-js-root-embed{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;background:#000}.video-chapter{position:absolute;top:auto;bottom:60px;width:min(360px,calc(100% - 20px));border:1px solid rgba(255,255,255,.12);border-radius:12px;height:calc(100% - 80px);background:rgba(18,18,18,.96);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:hidden;box-shadow:0 12px 30px #00000073;right:10px}.chapter-head{padding:12px 8px 10px 16px;position:sticky;top:0;left:0;background:linear-gradient(180deg,rgba(28,28,28,.95),rgba(18,18,18,.95));border-bottom:1px solid rgba(255,255,255,.08);z-index:2}.playlist-title{display:flex;align-items:center;gap:10px}.chapter-title{width:auto;flex:1;min-width:0}.chapter-title h3{margin:0;padding:0}.chapter-title h3 a{color:#fff;font-size:18px;line-height:26px;font-weight:700;text-decoration:none;white-space:nowrap;text-overflow:ellipsis;height:28px;overflow:hidden;display:block}.chapter-title p{margin:4px 0 0;padding:0;color:#fff;font-size:12px;font-weight:400;line-height:15px}.chapter-title p a{color:#fff;font-size:12px;font-weight:400;line-height:15px;text-decoration:none}.chapter-close{width:40px;margin-left:auto;display:flex;align-items:center;justify-content:flex-end}.chapter-close button{background:transparent;color:#fff;border:0;width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px}.chapter-close button:hover{background:rgba(255,255,255,.1)}.settings-header{display:flex;align-items:center;justify-content:space-between;position:relative}.settings-close-btn{background:transparent;color:#fff;border:0;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:6px;cursor:pointer}.settings-close-btn:hover{background:rgba(255,255,255,.1)}.playlist-action-menu{display:none;justify-content:space-between;gap:10px}.playlist-action-menu button{background:transparent;border:0;width:40px;height:40px;padding:0;display:flex;justify-content:center;align-items:center;border-radius:100px}.playlist-action-menu button:hover{background:rgba(0,0,0,.1)}.start-action{display:flex}.chapter-body{height:calc(100% - 80px);overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;scroll-behavior:smooth}.chapter-body ul{margin:0;padding:0}.playlist-items a{padding:12px;display:flex;align-items:center;text-decoration:none;gap:12px;width:100%;box-sizing:border-box;color:#fff}.playlist-items a:hover{background:rgba(255,255,255,.06)}.playlist-items.selected a{background:rgba(255,255,255,.14)}.playlist-drag-handle{width:24px;display:flex;justify-content:center;color:#e0e0e0;font-size:12px}.thumbnail-meta{flex:1;min-width:0;padding:0}.thumbnail-meta h4{margin:0 2px 4px 0;font-size:14px;line-height:20px;font-weight:600;overflow:hidden;text-overflow:ellipsis;color:#fff;white-space:normal;max-height:40px;-webkit-line-clamp:2;line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical}.thumbnail-meta .meta-sub{display:flex;gap:8px;align-items:center}.thumbnail-meta .meta-sub .meta-dynamic{color:#bdbdbd;font-size:12px;line-height:18px}.thumbnail-action button{border:0;background:transparent;color:#fff;opacity:0}.playlist-items a:hover .thumbnail-action button{opacity:1}.chapter-body::-webkit-scrollbar{width:10px}.chapter-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:8px}.chapter-body::-webkit-scrollbar-track{background:transparent}@media (max-width: 767px){.chapter-body{-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}.chapter-body::-webkit-scrollbar{width:0px}}.video-js .vjs-control-bar .vjs-spacer-control{margin-left:auto}.video-js .vjs-control-bar .settings-item-svg{display:flex}.video-js .vjs-control-bar .settings-item-svg svg{width:auto!important;height:auto!important;transform:inherit!important}.video-js div.vjs-control{width:auto}.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:48px;height:48px;display:flex;align-items:center;justify-content:center}button.vjs-button>.vjs-icon-placeholder:before{line-height:48px;transition:ease-in-out .5s}.video-js .vjs-volume-panel div.vjs-volume-control{height:100%!important;display:flex;align-items:center;justify-content:center;margin:0;width:0;transition:ease-in-out .5s!important;opacity:0}.video-js .vjs-volume-panel div.vjs-volume-control .vjs-volume-bar{margin:0;top:0}.vjs-settings-button svg{transition:ease-in-out .3s}.vjs-settings-button.settings-clicked svg{transform:rotate(30deg)}.video-js span.vjs-control-text{position:absolute!important;bottom:125%;left:50%;transform:translate(-50%);background:rgba(0,0,0,.75);color:#fff;padding:6px 8px!important;border-radius:3px;font-size:13px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:1000;box-shadow:0 0 5px #0000004d;height:auto!important;width:auto!important;overflow:visible!important;clip:initial!important}.video-js button.vjs-button:hover span.vjs-control-text{opacity:1}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:none!important}.vjs-volume-panel{gap:5px}.video-js .vjs-play-progress.vjs-slider-bar+.vjs-time-tooltip{padding:0}.vjs-chapter-floating-tooltip{text-align:center;width:160px!important;max-width:100%!important;height:auto}.chapter-image-sprite{width:166px!important;max-width:100%!important;height:96px;margin:0 auto 10px;border-radius:6px;border:3px solid #fff}.vjs-chapter-floating-tooltip .chapter-title{font-size:16px;margin:0 0 10px;font-weight:700;word-break:break-all;line-height:20px}.vjs-chapter-floating-tooltip .position-info,.vjs-chapter-floating-tooltip .chapter-info{font-size:15px;display:inline-block;margin:0 0 2px;line-height:normal;vertical-align:top;line-height:20px}.vjs-sprite-preview-tooltip{text-align:center;width:172px!important;max-width:100%!important;height:auto}.vjs-sprite-preview-tooltip .sprite-image-preview{width:166px!important;max-width:100%!important;height:96px;margin:0 auto;border-radius:6px;border:3px solid #fff}@media (pointer: coarse){.video-js .vjs-volume-panel div.vjs-volume-control{width:auto;opacity:1}}@media (min-width: 1200px){.vjs-related-videos-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width: 1199px){.vjs-related-video-item:nth-child(n+10){display:none}}@media (max-width: 1139px){.vjs-related-video-item:nth-child(n+7){display:none}}@media (min-width: 1024px) and (max-width: 1199px){.vjs-related-videos-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1025px){.video-js .vjs-text-track-display{bottom:6em!important}.video-js .vjs-autoplay-toggle{margin-right:12px!important}.video-js .vjs-picture-in-picture-control{margin-left:12px!important}.video-js .vjs-text-track-cue{font-size:1.2em!important;max-width:90%!important}.video-js .vjs-text-track-cue>div{padding:8px 12px!important;font-size:1em!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:8em!important}}@media (min-width: 768px) and (max-width: 1024px){.video-js .vjs-text-track-display{bottom:7em!important}.video-js .vjs-text-track-cue{font-size:1.15em!important;max-width:88%!important}.video-js .vjs-text-track-cue>div{padding:7px 11px!important;font-size:.95em!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:9em!important}.vjs-related-videos-grid{grid-template-columns:repeat(3,1fr)}.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-play-control:hover:after,.video-js .vjs-mute-control:hover:after,.video-js .vjs-volume-panel:hover:after,.video-js .vjs-fullscreen-control:hover:after,.video-js .vjs-picture-in-picture-control:hover:after,.video-js .vjs-settings-control:hover:after,.video-js .vjs-chapters-control:hover:after,.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-next-video-control:hover:after,.video-js .vjs-remaining-time:hover:after{display:none!important;opacity:0!important;visibility:hidden!important}}@media (max-width: 1024px){body div.custom-settings-overlay{height:calc(100% - 40px);max-height:300px}}@media (max-width: 767px){.vjs-related-vdeo-item:nth-child(n+5){display:none}.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:32px;height:32px}button.vjs-button>.vjs-icon-placeholder:before{line-height:32px}.vjs-next-video-control svg{width:32px;height:32px}.video-js div.vjs-control{height:32px}.vjs-button>.vjs-icon-placeholder:before{font-size:1.4em!important}.video-js .vjs-subs-active button.vjs-subtitles-button:before{width:20px}.video-js button.vjs-subtitles-button:before{bottom:2px}.video-js div.vjs-control-bar{padding:0 2px}.video-js .vjs-autoplay-toggle{margin-right:6px!important}.video-js .vjs-picture-in-picture-control{margin-left:6px!important}.video-js .vjs-text-track-display{bottom:8em!important}.video-js .vjs-text-track-cue{font-size:1.1em!important;max-width:95%!important}.video-js .vjs-text-track-cue>div{padding:6px 10px!important;font-size:.9em!important;background:rgba(0,0,0,.8)!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:10em!important}.video-js.vjs-fullscreen .vjs-text-track-cue{font-size:1.3em!important;max-width:90%!important}.video-js.vjs-fullscreen .vjs-text-track-cue>div{padding:8px 12px!important;font-size:.95em!important}.video-js .vjs-subtitles-button button.vjs-button{min-width:32px!important;min-height:32px!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.chapter-body{height:calc(100% - 70px)}.subtitles-submenu,.quality-submenu,.speed-submenu{height:100%;overflow:auto}body div.custom-settings-overlay{bottom:40px}div.chapter-close button{width:30px;height:30px}.vjs-related-videos-grid{grid-template-columns:repeat(2,1fr)}.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-play-control:hover:after,.video-js .vjs-mute-control:hover:after,.video-js .vjs-volume-panel:hover:after,.video-js .vjs-fullscreen-control:hover:after,.video-js .vjs-picture-in-picture-control:hover:after,.video-js .vjs-settings-control:hover:after,.video-js .vjs-chapters-control:hover:after,.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-next-video-control:hover:after,.video-js .vjs-remaining-time:hover:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-autoplay-toggle.touch-active:after{opacity:1;visibility:visible}.video-js .vjs-autoplay-toggle:after{font-size:11px;padding:5px 8px;margin-bottom:6px}.video-container{padding:0 15px}.vjs-related-video-thumbnail{height:100%}.vjs-chapter-floating-tooltip{font-size:11px!important}.custom-chapters-overlay .video-chapter{right:10px;left:auto;width:100%;max-width:280px;height:calc(100% - 40px);max-height:calc(100% - 40px);overflow:hidden;bottom:40px}.video-js .vjs-settings-button{min-width:44px!important;height:44px!important;padding:0!important;margin:0 2px!important;display:flex!important;align-items:center!important;justify-content:center!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;cursor:pointer!important;z-index:1000!important;pointer-events:auto!important;position:relative!important}.video-js .vjs-settings-button .vjs-icon-cog{font-size:20px!important;width:20px!important;height:20px!important;display:flex!important;align-items:center!important;justify-content:center!important}.video-js .vjs-control-bar .vjs-button{touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important}.custom-settings-overlay .settings-item{padding:6px 16px;font-size:15px;touch-action:manipulation;line-height:18px}.custom-settings-overlay .settings-header{padding:10px 16px;font-size:18px;line-height:20px}.chapter-head{padding:10px 15px}.chapter-title h3 a{font-size:15px!important;line-height:20px!important;height:20px!important}.chapter-title p{font-size:11px!important;line-height:14px!important}.playlist-items a{padding:10px 16px!important;min-height:58px!important}.thumbnail-meta h4{font-size:13px!important;line-height:18px!important}.thumbnail-meta .meta-sub .meta-dynamic{font-size:11px!important;line-height:16px!important}}@media (max-width: 574px){.vjs-related-video-item:nth-child(n+3){display:none}}@media (max-width: 480px){.video-container{padding:0 10px}.video-js .vjs-control:hover:after,.video-js .vjs-control:focus:after,.video-js .vjs-control:active:after{display:none!important;opacity:0!important;visibility:hidden!important}.video-js .vjs-play-control:hover:after,.video-js .vjs-mute-control:hover:after,.video-js .vjs-volume-panel:hover:after,.video-js .vjs-fullscreen-control:hover:after,.video-js .vjs-picture-in-picture-control:hover:after,.video-js .vjs-settings-control:hover:after,.video-js .vjs-chapters-control:hover:after,.video-js .vjs-autoplay-toggle:hover:after,.video-js .vjs-next-video-control:hover:after,.video-js .vjs-remaining-time:hover:after{display:none!important;opacity:0!important;visibility:hidden!important}.vjs-related-video-thumbnail{height:100%}.video-js .vjs-settings-button .vjs-icon-cog{font-size:22px!important;width:22px!important;height:22px!important}}@media (max-width: 439px){.vjs-related-video-item:nth-child(n+2){display:none}.vjs-related-videos-grid{grid-template-columns:repeat(1,1fr)}}@media (max-width: 399px){.vjs-chapters-button button.vjs-button,.vjs-subtitles-button button.vjs-button,.video-js button.vjs-control{width:28px;height:28px}button.vjs-button>.vjs-icon-placeholder:before{line-height:28px}.vjs-next-video-control svg{width:28px;height:28px}.video-js div.vjs-control{height:28px}.video-js .vjs-autoplay-toggle{margin-right:4px!important}.video-js .vjs-picture-in-picture-control{margin-left:4px!important}.video-js .vjs-text-track-display{bottom:7em!important}.video-js .vjs-text-track-cue{font-size:1em!important;max-width:98%!important}.video-js .vjs-text-track-cue>div{padding:4px 8px!important;font-size:.85em!important;background:rgba(0,0,0,.85)!important}.video-js.vjs-fullscreen .vjs-text-track-display{bottom:9em!important}.video-js.vjs-fullscreen .vjs-text-track-cue{font-size:1.2em!important;max-width:95%!important}.video-js.vjs-fullscreen .vjs-text-track-cue>div{padding:6px 10px!important;font-size:.9em!important}.vjs-button>.vjs-icon-placeholder:before{font-size:1.4em!important}}.vjs-svg-icon{display:inline-block;background-repeat:no-repeat;background-position:center;fill:currentColor;height:1.8em;width:1.8em}.vjs-svg-icon:before{content:none!important}.vjs-svg-icon:hover,.vjs-control:focus .vjs-svg-icon{filter:drop-shadow(0 0 .25em #fff)}.vjs-modal-dialog .vjs-modal-dialog-content,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff");font-weight:400;font-style:normal}.vjs-icon-play,.video-js .vjs-play-control .vjs-icon-placeholder,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{content:""}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:""}.vjs-icon-pause,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pause:before,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-mute,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mute:before,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-low,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-low:before,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-mid,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mid:before,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before{content:""}.vjs-icon-volume-high,.video-js .vjs-mute-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-high:before,.video-js .vjs-mute-control .vjs-icon-placeholder:before{content:""}.vjs-icon-fullscreen-enter,.video-js .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-enter:before,.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before{content:""}.vjs-icon-fullscreen-exit,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-exit:before,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before{content:""}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:""}.vjs-icon-subtitles,.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-subtitles:before,.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before{content:""}.vjs-icon-captions,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-captions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-captions:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-captions-button .vjs-icon-placeholder:before{content:""}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:""}.vjs-icon-chapters,.video-js .vjs-chapters-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-chapters:before,.video-js .vjs-chapters-button .vjs-icon-placeholder:before{content:""}.vjs-icon-downloading{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-downloading:before{content:""}.vjs-icon-file-download{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download:before{content:""}.vjs-icon-file-download-done{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download-done:before{content:""}.vjs-icon-file-download-off{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-file-download-off:before{content:""}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:""}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:""}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:""}.vjs-icon-circle,.vjs-seek-to-live-control .vjs-icon-placeholder,.video-js .vjs-volume-level,.video-js .vjs-play-progress{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle:before,.vjs-seek-to-live-control .vjs-icon-placeholder:before,.video-js .vjs-volume-level:before,.video-js .vjs-play-progress:before{content:""}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:""}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:""}.vjs-icon-cancel,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cancel:before,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before{content:""}.vjs-icon-repeat{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-repeat:before{content:""}.vjs-icon-replay,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay:before,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before{content:""}.vjs-icon-replay-5,.video-js .vjs-skip-backward-5 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay-5:before,.video-js .vjs-skip-backward-5 .vjs-icon-placeholder:before{content:""}.vjs-icon-replay-10,.video-js .vjs-skip-backward-10 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay-10:before,.video-js .vjs-skip-backward-10 .vjs-icon-placeholder:before{content:""}.vjs-icon-replay-30,.video-js .vjs-skip-backward-30 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay-30:before,.video-js .vjs-skip-backward-30 .vjs-icon-placeholder:before{content:""}.vjs-icon-forward-5,.video-js .vjs-skip-forward-5 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-forward-5:before,.video-js .vjs-skip-forward-5 .vjs-icon-placeholder:before{content:""}.vjs-icon-forward-10,.video-js .vjs-skip-forward-10 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-forward-10:before,.video-js .vjs-skip-forward-10 .vjs-icon-placeholder:before{content:""}.vjs-icon-forward-30,.video-js .vjs-skip-forward-30 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-forward-30:before,.video-js .vjs-skip-forward-30 .vjs-icon-placeholder:before{content:""}.vjs-icon-audio,.video-js .vjs-audio-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio:before,.video-js .vjs-audio-button .vjs-icon-placeholder:before{content:""}.vjs-icon-next-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-next-item:before{content:""}.vjs-icon-previous-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-previous-item:before{content:""}.vjs-icon-shuffle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-shuffle:before{content:""}.vjs-icon-cast{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cast:before{content:""}.vjs-icon-picture-in-picture-enter,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-enter:before,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:""}.vjs-icon-picture-in-picture-exit,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-exit:before,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:""}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:""}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:""}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:""}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:""}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:""}.vjs-icon-audio-description,.video-js .vjs-descriptions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio-description:before,.video-js .vjs-descriptions-button .vjs-icon-placeholder:before{content:""}.video-js{display:inline-block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;word-break:initial}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js[tabindex="-1"]{outline:none}.video-js *,.video-js *:before,.video-js *:after{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin:0}.video-js.vjs-fluid,.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-9-16,.video-js.vjs-1-1{width:100%;max-width:100%}.video-js.vjs-fluid:not(.vjs-audio-only-mode),.video-js.vjs-16-9:not(.vjs-audio-only-mode),.video-js.vjs-4-3:not(.vjs-audio-only-mode),.video-js.vjs-9-16:not(.vjs-audio-only-mode),.video-js.vjs-1-1:not(.vjs-audio-only-mode){height:0}.video-js.vjs-16-9:not(.vjs-audio-only-mode){padding-top:56.25%}.video-js.vjs-4-3:not(.vjs-audio-only-mode){padding-top:75%}.video-js.vjs-9-16:not(.vjs-audio-only-mode){padding-top:177.7777777778%}.video-js.vjs-1-1:not(.vjs-audio-only-mode){padding-top:100%}.video-js.vjs-fill:not(.vjs-audio-only-mode){width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.video-js.vjs-audio-only-mode .vjs-tech{display:none}body.vjs-full-window,body.vjs-pip-window{padding:0;margin:0;height:100%}.vjs-full-window .video-js.vjs-fullscreen,body.vjs-pip-window .video-js{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.video-js.vjs-fullscreen:not(.vjs-ios-native-fs),body.vjs-pip-window .video-js{width:100%!important;height:100%!important;padding-top:0!important;display:block}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-pip-container .vjs-pip-text{position:absolute;bottom:10%;font-size:2em;background-color:#000000b3;padding:.5em;text-align:center;width:100%}.vjs-layout-tiny.vjs-pip-container .vjs-pip-text,.vjs-layout-x-small.vjs-pip-container .vjs-pip-text,.vjs-layout-small.vjs-pip-container .vjs-pip-text{bottom:0;font-size:1.4em}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.63332em;width:3em;display:block;position:absolute;top:50%;left:50%;padding:0;margin-top:-.81666em;margin-left:-1.5em;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2b333f;background-color:#2b333fb3;border-radius:.3em;transition:all .4s}.vjs-big-play-button .vjs-svg-icon{width:1em;height:1em;position:absolute;top:50%;left:50%;line-height:1;transform:translate(-50%,-50%)}.video-js:hover .vjs-big-play-button,.video-js .vjs-big-play-button:focus{border-color:#fff;background-color:#73859f;background-color:#73859f80;transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button,.vjs-error .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause:not(.vjs-seeking,.vjs-scrubbing,.vjs-error) .vjs-big-play-button{display:block}.video-js button{background:none;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.video-js.vjs-spatial-navigation-enabled .vjs-button:focus{outline:.0625em solid white;box-shadow:none}.vjs-control .vjs-button{width:100%;height:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:auto}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{display:flex;justify-content:center;list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover,.js-focus-visible .vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:#73859f80}.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover,.js-focus-visible .vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.vjs-menu li.vjs-selected .vjs-svg-icon,.vjs-menu li.vjs-selected:focus .vjs-svg-icon,.vjs-menu li.vjs-selected:hover .vjs-svg-icon,.js-focus-visible .vjs-menu li.vjs-selected:hover .vjs-svg-icon{fill:#000}.video-js .vjs-menu *:not(.vjs-selected):focus:not(:focus-visible),.js-focus-visible .vjs-menu *:not(.vjs-selected):focus:not(.focus-visible){background:none}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0em;margin-bottom:1.5em;border-top-color:#2b333fb3}.vjs-pip-window .vjs-menu-button-popup .vjs-menu{left:unset;right:1em}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:#2b333fb3;position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:5em}.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:10em}.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:14em}.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:25em}.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu,.vjs-menu-button-popup .vjs-menu.vjs-lock-showing{display:block}.video-js .vjs-menu-button-inline{transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline:hover,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline.vjs-slider-active{width:12em}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;transition:all .4s}.vjs-menu-button-inline:hover .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline.vjs-slider-active .vjs-menu{display:block;opacity:1}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2b333f;background-color:#2b333fb3}.video-js.vjs-spatial-navigation-enabled .vjs-control-bar{gap:1px}.video-js:not(.vjs-controls-disabled,.vjs-using-native-controls,.vjs-error) .vjs-control-bar.vjs-lock-showing{display:flex!important}.vjs-has-started .vjs-control-bar,.vjs-audio-only-mode .vjs-control-bar{display:flex;visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;pointer-events:none;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar,.vjs-error .vjs-control-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar,.vjs-audio-only-mode.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible;pointer-events:auto}.video-js .vjs-control{position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;flex:none}.video-js .vjs-control.vjs-visible-text{width:auto;padding-left:1em;padding-right:1em}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.vjs-button>.vjs-icon-placeholder{display:block}.vjs-button>.vjs-svg-icon{display:inline-block}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:0em 0em 1em white}.video-js *:not(.vjs-visible-text)>.vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{cursor:pointer;flex:auto;display:flex;align-items:center;min-width:4em;touch-action:none}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-liveui .vjs-progress-control{display:flex;align-items:center}.video-js .vjs-progress-holder{flex:auto;transition:all .2s;height:.3em}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-play-progress,.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:100%;margin:0;padding:0;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;position:absolute;right:-.5em;line-height:.35em;z-index:1}.vjs-svg-icons-enabled .vjs-play-progress:before{content:none!important}.vjs-play-progress .vjs-svg-icon{position:absolute;top:-.35em;right:-.4em;width:.9em;height:.9em;pointer-events:none;line-height:.15em;z-index:1}.video-js .vjs-load-progress{background:rgba(114.9141509434,132.7028301887,159.3858490566,.5)}.video-js .vjs-load-progress div{background:rgba(114.9141509434,132.7028301887,159.3858490566,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.video-js .vjs-progress-control:hover .vjs-mouse-display,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display,.video-js.vjs-touch-enabled:not(.vjs-scrubbing) .vjs-progress-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:#000c}.video-js .vjs-slider{position:relative;cursor:pointer;padding:0;margin:0 .45em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#73859f;background-color:#73859f80}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{text-shadow:0em 0em 1em white;box-shadow:0 0 1em #fff}.video-js.vjs-spatial-navigation-enabled .vjs-slider:focus{outline:.0625em solid white}.video-js .vjs-mute-control{cursor:pointer;flex:none}.video-js .vjs-volume-control{cursor:pointer;margin-right:1em;display:flex}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{visibility:visible;opacity:0;width:1px;height:1px;margin-left:-1px}.video-js .vjs-volume-panel{transition:width 1s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active{visibility:visible;opacity:1;position:relative;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal{width:5em;height:3em;margin-right:0}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical{left:-3.5em;transition:left 0s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active{width:10em;transition:width .1s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only{width:4em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;width:3em;left:-3000em;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel{display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em;z-index:1}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em;z-index:1}.vjs-svg-icons-enabled .vjs-volume-level:before{content:none}.vjs-volume-level .vjs-svg-icon{position:absolute;width:.9em;height:.9em;pointer-events:none;z-index:1}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{line-height:.35em;right:-.5em}.vjs-slider-horizontal .vjs-volume-level .vjs-svg-icon{right:-.3em;transform:translateY(-50%)}.vjs-slider-vertical .vjs-volume-level .vjs-svg-icon{top:-.55em;transform:translate(-50%)}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{width:3em;height:8em;bottom:8em;background-color:#2b333f;background-color:#2b333fb3}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.video-js .vjs-volume-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-volume-control:hover .vjs-volume-tooltip,.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip{display:block;font-size:1em;visibility:visible}.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip,.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip{left:1em;top:-12px}.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip{font-size:1em}.video-js .vjs-volume-control .vjs-mouse-display{display:none;position:absolute;width:100%;height:1px;background-color:#000;z-index:1}.video-js .vjs-volume-horizontal .vjs-mouse-display{width:1px;height:100%}.video-js .vjs-volume-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.vjs-mouse-display .vjs-volume-tooltip{color:#fff;background-color:#000;background-color:#000c}.vjs-poster{display:inline-block;vertical-align:middle;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-has-started .vjs-poster,.vjs-using-native-controls .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster,.vjs-has-started.vjs-audio-poster-mode .vjs-poster,.vjs-pip-container.vjs-has-started .vjs-poster{display:block}.vjs-poster img{width:100%;height:100%;object-fit:contain}.video-js .vjs-live-control{display:flex;align-items:flex-start;flex:auto;font-size:1em;line-height:3em}.video-js:not(.vjs-live) .vjs-live-control,.video-js.vjs-liveui .vjs-live-control{display:none}.video-js .vjs-seek-to-live-control{align-items:center;cursor:pointer;flex:none;display:inline-flex;height:100%;padding-left:.5em;padding-right:.5em;font-size:1em;line-height:3em;width:auto;min-width:4em}.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,.video-js:not(.vjs-live) .vjs-seek-to-live-control{display:none}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge{cursor:auto}.vjs-seek-to-live-control .vjs-icon-placeholder{margin-right:.5em;color:#888}.vjs-svg-icons-enabled .vjs-seek-to-live-control{line-height:0}.vjs-seek-to-live-control .vjs-svg-icon{width:1em;height:1em;pointer-events:none;fill:#888}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder{color:red}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-svg-icon{fill:red}.video-js .vjs-time-control{flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.vjs-live .vjs-time-control,.vjs-live .vjs-time-divider,.video-js .vjs-current-time,.video-js .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-normalise-time-controls:not(.vjs-live) .vjs-time-control{display:flex}.video-js .vjs-play-control{cursor:pointer}.video-js .vjs-play-control .vjs-icon-placeholder{flex:none}.vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.vjs-error .vjs-text-track-display{display:none}.video-js.vjs-controls-disabled .vjs-text-track-display,.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{transform:translateY(-3em)}.video-js.vjs-controls-disabled video::-webkit-media-text-track-display,.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{transform:translateY(-1.5em)}.video-js.vjs-force-center-align-cues .vjs-text-track-cue{text-align:center!important;width:80%!important}@supports not (inset: 10px){.video-js .vjs-text-track-display>div{top:0;right:0;bottom:0;left:0}}.video-js .vjs-picture-in-picture-control{cursor:pointer;flex:none}.video-js.vjs-audio-only-mode .vjs-picture-in-picture-control,.vjs-pip-window .vjs-picture-in-picture-control{display:none}.video-js .vjs-fullscreen-control{cursor:pointer;flex:none}.video-js.vjs-audio-only-mode .vjs-fullscreen-control,.vjs-pip-window .vjs-fullscreen-control{display:none}.vjs-playback-rate>.vjs-menu-button,.vjs-playback-rate .vjs-playback-rate-value{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-playback-rate .vjs-playback-rate-value{pointer-events:none;font-size:1.5em;line-height:2;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.85;text-align:left;border:.6em solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:5em;height:5em;border-radius:50%;visibility:hidden}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:flex;justify-content:center;align-items:center;animation:vjs-spinner-show 0s linear .3s forwards}.vjs-error .vjs-loading-spinner{display:none}.vjs-loading-spinner:before,.vjs-loading-spinner:after{content:"";position:absolute;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:before,.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after{animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;animation-delay:.44s}@keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{to{transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}.video-js.vjs-audio-only-mode .vjs-captions-button{display:none}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js.vjs-audio-only-mode .vjs-descriptions-button{display:none}.vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-svg-icon{width:1.5em;height:1.5em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:"";font-size:1.5em;line-height:inherit}.video-js.vjs-audio-only-mode .vjs-subs-caps-button{display:none}.video-js .vjs-audio-button+.vjs-menu .vjs-descriptions-menu-item .vjs-menu-item-text .vjs-icon-placeholder,.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-audio-button+.vjs-menu .vjs-descriptions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before,.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:" ";font-size:1.5em;line-height:inherit}.video-js.vjs-layout-small .vjs-current-time,.video-js.vjs-layout-small .vjs-time-divider,.video-js.vjs-layout-small .vjs-duration,.video-js.vjs-layout-small .vjs-remaining-time,.video-js.vjs-layout-small .vjs-playback-rate,.video-js.vjs-layout-small .vjs-volume-control,.video-js.vjs-layout-x-small .vjs-current-time,.video-js.vjs-layout-x-small .vjs-time-divider,.video-js.vjs-layout-x-small .vjs-duration,.video-js.vjs-layout-x-small .vjs-remaining-time,.video-js.vjs-layout-x-small .vjs-playback-rate,.video-js.vjs-layout-x-small .vjs-volume-control,.video-js.vjs-layout-tiny .vjs-current-time,.video-js.vjs-layout-tiny .vjs-time-divider,.video-js.vjs-layout-tiny .vjs-duration,.video-js.vjs-layout-tiny .vjs-remaining-time,.video-js.vjs-layout-tiny .vjs-playback-rate,.video-js.vjs-layout-tiny .vjs-volume-control{display:none}.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover{width:auto;width:initial}.video-js.vjs-layout-x-small .vjs-progress-control,.video-js.vjs-layout-tiny .vjs-progress-control{display:none}.video-js.vjs-layout-x-small .vjs-custom-control-spacer{flex:auto;display:block}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:#2b333fbf;color:#fff;height:70%}.vjs-spatial-navigation-enabled .vjs-modal-dialog.vjs-text-track-settings{height:80%}.vjs-error .vjs-text-track-settings{display:none}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-font,.vjs-text-track-settings .vjs-track-settings-controls{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display: grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:20px 24px 0}.vjs-track-settings-controls .vjs-default-button{margin-bottom:20px}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:1/-1}.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content{grid-template-columns:1fr}}.vjs-text-track-settings select{font-size:inherit}.vjs-track-setting>select{margin-right:1em;margin-bottom:.5em}.vjs-text-track-settings fieldset{margin:10px;border:none}.vjs-text-track-settings fieldset span{display:inline-block;padding:0 .6em .8em}.vjs-text-track-settings fieldset span>select{max-width:7.3em}.vjs-text-track-settings legend{color:#fff;font-weight:700;font-size:1.2em}.vjs-text-track-settings .vjs-label{margin:0 .5em .5em 0}.vjs-track-settings-controls button:focus,.vjs-track-settings-controls button:active{outline-style:solid;outline-width:medium;background-image:linear-gradient(0deg,#fff 88%,rgb(114.9141509434,132.7028301887,159.3858490566) 100%)}.vjs-track-settings-controls button:hover{color:#2b333fbf}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,rgb(114.9141509434,132.7028301887,159.3858490566) 100%);color:#2b333f;cursor:pointer;border-radius:2px}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}.vjs-title-bar{background:rgba(0,0,0,.9);background:linear-gradient(180deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.7) 60%,rgba(0,0,0,0) 100%);font-size:1.2em;line-height:1.5;transition:opacity .1s;padding:.666em 1.333em 4em;pointer-events:none;position:absolute;top:0;width:100%}.vjs-error .vjs-title-bar{display:none}.vjs-title-bar-title,.vjs-title-bar-description{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vjs-title-bar-title{font-weight:700;margin-bottom:.333em}.vjs-playing.vjs-user-inactive .vjs-title-bar{opacity:0;transition:opacity 1s}.video-js .vjs-skip-forward-5,.video-js .vjs-skip-forward-10,.video-js .vjs-skip-forward-30,.video-js .vjs-skip-backward-5,.video-js .vjs-skip-backward-10,.video-js .vjs-skip-backward-30{cursor:pointer}.video-js .vjs-transient-button{position:absolute;height:3em;display:flex;align-items:center;justify-content:center;background-color:#32323280;cursor:pointer;opacity:1;transition:opacity 1s}.video-js:not(.vjs-has-started) .vjs-transient-button{display:none}.video-js.not-hover .vjs-transient-button:not(.force-display),.video-js.vjs-user-inactive .vjs-transient-button:not(.force-display){opacity:0}.video-js .vjs-transient-button span{padding:0 .5em}.video-js .vjs-transient-button.vjs-left{left:1em}.video-js .vjs-transient-button.vjs-right{right:1em}.video-js .vjs-transient-button.vjs-top{top:1em}.video-js .vjs-transient-button.vjs-near-top{top:4em}.video-js .vjs-transient-button.vjs-bottom{bottom:4em}.video-js .vjs-transient-button:hover{background-color:#323232e6}@media print{.video-js>*:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{position:absolute;top:0;left:0;width:100%;height:100%;border:none;z-index:-1000}.js-focus-visible .video-js *:focus:not(.focus-visible){outline:none}.video-js *:focus:not(:focus-visible){outline:none}.vjs-autoplay-countdown-overlay{position:absolute;top:0;left:0;width:100%;height:calc(100% - 46px);background:rgba(0,0,0,.85);display:none;flex-direction:column;justify-content:center;align-items:center;z-index:100000;padding:20px;box-sizing:border-box;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .3s ease-in-out}.vjs-autoplay-countdown-overlay.autoplay-countdown-show{opacity:1}.autoplay-countdown-content{background:linear-gradient(135deg,rgba(0,0,0,.95),rgba(20,20,20,.9));border-radius:20px;padding:50px;max-width:480px;width:100%;text-align:center;box-shadow:0 20px 60px #0006,0 8px 32px #0003,inset 0 1px #ffffff1a;border:1px solid rgba(255,255,255,.15);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative;overflow:hidden}.autoplay-countdown-content:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent)}.autoplay-countdown-content:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,0,0,.05) 0%,transparent 70%);animation:backgroundPulse 4s ease-in-out infinite;pointer-events:none}@keyframes backgroundPulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}.autoplay-countdown-header{position:relative;z-index:2}.autoplay-countdown-header h3{color:#fff;font-size:26px;font-weight:400;margin:0 0 10px;line-height:1.3;text-shadow:0 2px 4px rgba(0,0,0,.3)}.autoplay-countdown-header h3 span{font-weight:700}.autoplay-countdown-video-info{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;position:relative;z-index:2;margin:0 0 50px}.next-video-thumbnail{flex-shrink:0;width:180px;height:101px;border-radius:12px;overflow:hidden;background:#333;position:relative;box-shadow:0 12px 32px #0006,0 4px 16px #0003;border:2px solid rgba(255,255,255,.1);transition:transform .3s ease,box-shadow .3s ease}.next-video-thumbnail:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 16px 40px #00000080,0 8px 24px #0000004d}.next-video-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.play-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.8);border-radius:50%;width:64px;height:64px;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .3s ease;box-shadow:0 8px 24px #00000080,0 4px 16px #0000004d;border:3px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.play-overlay:hover{background:rgba(0,0,0,.9);transform:translate(-50%,-50%) scale(1.1);box-shadow:0 12px 32px #0009,0 6px 20px #0006}.play-overlay svg{margin-left:4px;width:28px;height:28px}.next-video-details{flex-grow:1;min-width:0;text-align:center}.next-video-title{color:#999;font-size:18px;font-weight:500;margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-shadow:0 2px 4px rgba(0,0,0,.3);letter-spacing:.5px}.next-video-author{color:#bbb;font-size:16px;margin:0 0 8px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.next-video-duration{color:#999;font-size:14px;margin:0;line-height:1.2;font-weight:500}.autoplay-countdown-actions{display:flex;gap:24px;justify-content:center;align-items:center;position:relative;z-index:2;padding:0;margin-top:8px}button.autoplay-play-button,button.autoplay-cancel-button{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);min-width:140px;height:48px;position:relative;overflow:hidden;text-transform:uppercase;letter-spacing:.3px;line-height:1;white-space:nowrap;box-shadow:0 6px 20px #0000004d,inset 0 1px #ffffff1a;text-align:center}button.autoplay-play-button{background:linear-gradient(135deg,#ff0000,#e60000);color:#fff;border:1px solid rgba(255,255,255,.1)}.autoplay-play-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.autoplay-play-button:hover{background:linear-gradient(135deg,#ff1a1a,#cc0000);transform:translateY(-2px);box-shadow:0 8px 25px #f006,inset 0 1px #ffffff4d}.autoplay-play-button:hover:before{left:100%}.autoplay-play-button:active{transform:translateY(-1px);box-shadow:0 4px 15px #ff00004d,inset 0 1px #fff3}.autoplay-cancel-button{background:linear-gradient(135deg,#404040,#2a2a2a);color:#fff;border:1px solid rgba(255,255,255,.1);box-shadow:0 6px 20px #0000004d,inset 0 1px #ffffff1a}.autoplay-cancel-button:hover{background:linear-gradient(135deg,#505050,#3a3a3a);transform:translateY(-2px);box-shadow:0 8px 25px #0006,inset 0 1px #fff3}.autoplay-cancel-button:active{transform:translateY(-1px);box-shadow:0 4px 15px #0000004d,inset 0 1px #ffffff1a}.autoplay-play-button svg,.autoplay-cancel-button svg{width:18px;height:18px;flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));transition:transform .3s ease;position:relative;z-index:1;display:block;margin:0;padding:0;vertical-align:middle}.autoplay-play-button:hover svg{transform:scale(1.05);filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.autoplay-cancel-button svg{width:16px;height:16px}.autoplay-cancel-button:hover svg{transform:scale(1.05) rotate(90deg);filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.autoplay-play-button span,.autoplay-cancel-button span{display:inline-block;vertical-align:middle;line-height:1;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;position:relative;z-index:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin:0;padding:0;height:auto;align-self:center}.autoplay-play-button>*,.autoplay-cancel-button>*{vertical-align:middle;display:inline-block}.autoplay-play-button,.autoplay-cancel-button{align-items:center;justify-content:center}.autoplay-play-button svg,.autoplay-cancel-button svg{vertical-align:middle;display:inline-block}.vjs-autoplay-toggle .vjs-autoplay-icon svg{width:100%;height:100%;display:block}@media (max-width: 767px){.autoplay-countdown-video-info{margin-bottom:20px}.autoplay-countdown-content{padding:24px;max-width:400px}.autoplay-countdown-header h3{font-size:20px}.next-video-thumbnail{width:140px;height:78px}.play-overlay{width:48px;height:48px}.play-overlay svg{width:20px;height:20px}.next-video-title{font-size:18px}.next-video-author{font-size:14px}.autoplay-play-button,.autoplay-cancel-button{padding:12px 24px;font-size:14px;min-width:120px;height:44px;gap:6px;align-items:center;justify-content:center}.autoplay-play-button svg{width:16px;height:16px;vertical-align:middle}.autoplay-cancel-button svg{width:14px;height:14px;vertical-align:middle}}@media (max-width: 480px){.autoplay-countdown-content{padding:20px;max-width:350px}.autoplay-countdown-header h3{font-size:18px}.countdown-timer{font-size:24px;padding:10px 16px}.autoplay-countdown-video-info{gap:16px}.next-video-thumbnail{width:120px;height:68px}.play-overlay{width:40px;height:40px}.play-overlay svg{width:16px;height:16px}.next-video-title{font-size:16px}.next-video-author{font-size:13px}.autoplay-countdown-actions{gap:5px;padding:0}button.autoplay-play-button,button.autoplay-cancel-button{padding:10px 20px;width:120px;height:40px;min-width:120px}.autoplay-play-button,.autoplay-cancel-button{width:100%;min-width:100%;height:46px;gap:6px;padding:10px 20px;font-size:13px;align-items:center;justify-content:center}.autoplay-play-button svg{width:14px;height:14px;vertical-align:middle}.autoplay-cancel-button svg{width:12px;height:12px;vertical-align:middle}}.vjs-settings-button{width:3em;height:3em;display:flex;align-items:center;justify-content:center;padding:0;margin:0}.vjs-icon-cog1{font-size:30px!important;position:relative;top:-8px!important;display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1}.custom-settings-overlay{border:0;position:absolute;bottom:60px;right:20px;width:280px;height:350px;background:rgba(28,28,28,.95);color:#fff;border-radius:7px;box-shadow:0 4px 12px #00000080;display:none;z-index:1000;font-size:14px;overflow:auto}.settings-header{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-weight:700}.settings-item{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);transition:background .2s ease;gap:10px}.settings-item .settings-left span{display:flex}.custom-settings-overlay .settings-left span.vjs-icon-placeholder{transform:inherit!important}.settings-item:last-child{border-bottom:none}.settings-item:hover{background:rgba(255,255,255,.05)}.speed-submenu,.quality-submenu,.subtitles-submenu{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(28,28,28,.95);display:none;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}.subtitle-option{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s ease}.subtitle-option:hover{background:rgba(255,255,255,.05)}.subtitle-option.active{background:rgba(255,255,255,.1)}.submenu-header{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;cursor:pointer;position:sticky;top:0;background:rgba(28,28,28,.95);z-index:1}.submenu-header:hover{background:rgba(28,28,28,1)}.speed-option{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s ease}.speed-option:hover{background:rgba(255,255,255,.05)}.speed-option.active{background:rgba(255,255,255,.1)}.quality-option{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s ease}.quality-option:hover{background:rgba(255,255,255,.05)}.quality-option.active{background:rgba(255,255,255,.1)}.settings-left{display:inline-flex;align-items:center;gap:8px}.settings-right{display:inline-flex;align-items:center;text-align:right}sup.hd-badge{font-size:10px;line-height:1;margin-left:6px;background:#e53935;color:#fff;padding:1px 4px;border-radius:3px} diff --git a/static/video_js/video-js.js b/static/video_js/video-js.js deleted file mode 100644 index e993aba5..00000000 --- a/static/video_js/video-js.js +++ /dev/null @@ -1,804 +0,0 @@ -(function(){"use strict";var Mf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Xc(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}function w_(s){if(s.__esModule)return s;var e=s.default;if(typeof e=="function"){var i=function r(){return this instanceof r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};i.prototype=e.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(s).forEach(function(r){var o=Object.getOwnPropertyDescriptor(s,r);Object.defineProperty(i,r,o.get?o:{enumerable:!0,get:function(){return s[r]}})}),i}var A_={exports:{}},Wc={},D_={exports:{}},Qc={exports:{}};/** - * @license React - * react.development.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */Qc.exports;var k_;function OD(){return k_||(k_=1,function(s,e){(function(){function i(D,X){Object.defineProperty(u.prototype,D,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",X[0],X[1])}})}function r(D){return D===null||typeof D!="object"?null:(D=Ze&&D[Ze]||D["@@iterator"],typeof D=="function"?D:null)}function o(D,X){D=(D=D.constructor)&&(D.displayName||D.name)||"ReactClass";var ge=D+"."+X;pt[ge]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",X,D),pt[ge]=!0)}function u(D,X,ge){this.props=D,this.context=X,this.refs=Sn,this.updater=ge||At}function c(){}function f(D,X,ge){this.props=D,this.context=X,this.refs=Sn,this.updater=ge||At}function m(D){return""+D}function b(D){try{m(D);var X=!1}catch{X=!0}if(X){X=console;var ge=X.error,Ee=typeof Symbol=="function"&&Symbol.toStringTag&&D[Symbol.toStringTag]||D.constructor.name||"Object";return ge.call(X,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",Ee),m(D)}}function S(D){if(D==null)return null;if(typeof D=="function")return D.$$typeof===xn?null:D.displayName||D.name||null;if(typeof D=="string")return D;switch(D){case ee:return"Fragment";case ve:return"Profiler";case we:return"StrictMode";case at:return"Suspense";case Me:return"SuspenseList";case ft:return"Activity"}if(typeof D=="object")switch(typeof D.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),D.$$typeof){case Be:return"Portal";case Ue:return(D.displayName||"Context")+".Provider";case Re:return(D._context.displayName||"Context")+".Consumer";case ht:var X=D.render;return D=D.displayName,D||(D=X.displayName||X.name||"",D=D!==""?"ForwardRef("+D+")":"ForwardRef"),D;case ke:return X=D.displayName||null,X!==null?X:S(D.type)||"Memo";case ut:X=D._payload,D=D._init;try{return S(D(X))}catch{}}return null}function x(D){if(D===ee)return"<>";if(typeof D=="object"&&D!==null&&D.$$typeof===ut)return"<...>";try{var X=S(D);return X?"<"+X+">":"<...>"}catch{return"<...>"}}function w(){var D=_e.A;return D===null?null:D.getOwner()}function R(){return Error("react-stack-top-frame")}function L(D){if(Ei.call(D,"key")){var X=Object.getOwnPropertyDescriptor(D,"key").get;if(X&&X.isReactWarning)return!1}return D.key!==void 0}function A(D,X){function ge(){$t||($t=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",X))}ge.isReactWarning=!0,Object.defineProperty(D,"key",{get:ge,configurable:!0})}function q(){var D=S(this.type);return Hr[D]||(Hr[D]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),D=this.props.ref,D!==void 0?D:null}function U(D,X,ge,Ee,Pe,Je,Ge,ct){return ge=Je.ref,D={$$typeof:Oe,type:D,key:X,props:Je,_owner:Pe},(ge!==void 0?ge:null)!==null?Object.defineProperty(D,"ref",{enumerable:!1,get:q}):Object.defineProperty(D,"ref",{enumerable:!1,value:null}),D._store={},Object.defineProperty(D._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(D,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(D,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Ge}),Object.defineProperty(D,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ct}),Object.freeze&&(Object.freeze(D.props),Object.freeze(D)),D}function G(D,X){return X=U(D.type,X,void 0,void 0,D._owner,D.props,D._debugStack,D._debugTask),D._store&&(X._store.validated=D._store.validated),X}function $(D){return typeof D=="object"&&D!==null&&D.$$typeof===Oe}function W(D){var X={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(ge){return X[ge]})}function K(D,X){return typeof D=="object"&&D!==null&&D.key!=null?(b(D.key),W(""+D.key)):X.toString(36)}function le(){}function Y(D){switch(D.status){case"fulfilled":return D.value;case"rejected":throw D.reason;default:switch(typeof D.status=="string"?D.then(le,le):(D.status="pending",D.then(function(X){D.status==="pending"&&(D.status="fulfilled",D.value=X)},function(X){D.status==="pending"&&(D.status="rejected",D.reason=X)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function J(D,X,ge,Ee,Pe){var Je=typeof D;(Je==="undefined"||Je==="boolean")&&(D=null);var Ge=!1;if(D===null)Ge=!0;else switch(Je){case"bigint":case"string":case"number":Ge=!0;break;case"object":switch(D.$$typeof){case Oe:case Be:Ge=!0;break;case ut:return Ge=D._init,J(Ge(D._payload),X,ge,Ee,Pe)}}if(Ge){Ge=D,Pe=Pe(Ge);var ct=Ee===""?"."+K(Ge,0):Ee;return dt(Pe)?(ge="",ct!=null&&(ge=ct.replace(Ba,"$&/")+"/"),J(Pe,X,ge,"",function(si){return si})):Pe!=null&&($(Pe)&&(Pe.key!=null&&(Ge&&Ge.key===Pe.key||b(Pe.key)),ge=G(Pe,ge+(Pe.key==null||Ge&&Ge.key===Pe.key?"":(""+Pe.key).replace(Ba,"$&/")+"/")+ct),Ee!==""&&Ge!=null&&$(Ge)&&Ge.key==null&&Ge._store&&!Ge._store.validated&&(ge._store.validated=2),Pe=ge),X.push(Pe)),1}if(Ge=0,ct=Ee===""?".":Ee+":",dt(D))for(var Ye=0;Ye import('./MyComponent')) - -Did you accidentally put curly braces around the import?`,X),"default"in X||console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s - -Your code should look like: - const MyComponent = lazy(() => import('./MyComponent'))`,X),X.default;throw D._result}function he(){var D=_e.H;return D===null&&console.error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: -1. You might have mismatching versions of React and the renderer (such as React DOM) -2. You might be breaking the Rules of Hooks -3. You might have more than one copy of React in the same app -See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),D}function be(){}function ye(D){if(gt===null)try{var X=("require"+Math.random()).slice(0,7);gt=(s&&s[X]).call(s,"timers").setImmediate}catch{gt=function(Ee){Ua===!1&&(Ua=!0,typeof MessageChannel>"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var Pe=new MessageChannel;Pe.port1.onmessage=Ee,Pe.port2.postMessage(void 0)}}return gt(D)}function pe(D){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(Ye,si){Pe=!0,Ge.then(function(ws){if(He(X,ge),ge===0){try{Ce(Ee),ye(function(){return ce(ws,Ye,si)})}catch(Ud){_e.thrownErrors.push(Ud)}if(0<_e.thrownErrors.length){var Bd=pe(_e.thrownErrors);_e.thrownErrors.length=0,si(Bd)}}else Ye(ws)},function(ws){He(X,ge),0<_e.thrownErrors.length&&(ws=pe(_e.thrownErrors),_e.thrownErrors.length=0),si(ws)})}}}var ct=Je;if(He(X,ge),ge===0&&(Ce(Ee),Ee.length!==0&&ir(function(){Pe||Wi||(Wi=!0,console.error("A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)"))}),_e.actQueue=null),0<_e.thrownErrors.length)throw D=pe(_e.thrownErrors),_e.thrownErrors.length=0,D;return{then:function(Ye,si){Pe=!0,ge===0?(_e.actQueue=Ee,ye(function(){return ce(ct,Ye,si)})):Ye(ct)}}},e.cache=function(D){return function(){return D.apply(null,arguments)}},e.captureOwnerStack=function(){var D=_e.getCurrentStack;return D===null?null:D()},e.cloneElement=function(D,X,ge){if(D==null)throw Error("The argument must be a React element, but you passed "+D+".");var Ee=Vt({},D.props),Pe=D.key,Je=D._owner;if(X!=null){var Ge;e:{if(Ei.call(X,"ref")&&(Ge=Object.getOwnPropertyDescriptor(X,"ref").get)&&Ge.isReactWarning){Ge=!1;break e}Ge=X.ref!==void 0}Ge&&(Je=w()),L(X)&&(b(X.key),Pe=""+X.key);for(ct in X)!Ei.call(X,ct)||ct==="key"||ct==="__self"||ct==="__source"||ct==="ref"&&X.ref===void 0||(Ee[ct]=X[ct])}var ct=arguments.length-2;if(ct===1)Ee.children=ge;else if(1_e.recentlyCreatedOwnerStacks++;return U(D,Pe,void 0,void 0,w(),Ee,Ye?Error("react-stack-top-frame"):Pa,Ye?ci(x(D)):er)},e.createRef=function(){var D={current:null};return Object.seal(D),D},e.forwardRef=function(D){D!=null&&D.$$typeof===ke?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof D!="function"?console.error("forwardRef requires a render function but was given %s.",D===null?"null":typeof D):D.length!==0&&D.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",D.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),D!=null&&D.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var X={$$typeof:ht,render:D},ge;return Object.defineProperty(X,"displayName",{enumerable:!1,configurable:!0,get:function(){return ge},set:function(Ee){ge=Ee,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Ee}),D.displayName=Ee)}}),X},e.isValidElement=$,e.lazy=function(D){return{$$typeof:ut,_payload:{_status:-1,_result:D},_init:xe}},e.memo=function(D,X){D==null&&console.error("memo: The first argument must be a component. Instead received: %s",D===null?"null":typeof D),X={$$typeof:ke,type:D,compare:X===void 0?null:X};var ge;return Object.defineProperty(X,"displayName",{enumerable:!1,configurable:!0,get:function(){return ge},set:function(Ee){ge=Ee,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Ee}),D.displayName=Ee)}}),X},e.startTransition=function(D){var X=_e.T,ge={};_e.T=ge,ge._updatedFibers=new Set;try{var Ee=D(),Pe=_e.S;Pe!==null&&Pe(ge,Ee),typeof Ee=="object"&&Ee!==null&&typeof Ee.then=="function"&&Ee.then(be,zr)}catch(Je){zr(Je)}finally{X===null&&ge._updatedFibers&&(D=ge._updatedFibers.size,ge._updatedFibers.clear(),10";if(typeof ee=="object"&&ee!==null&&ee.$$typeof===J)return"<...>";try{var we=s(ee);return we?"<"+we+">":"<...>"}catch{return"<...>"}}function o(){var ee=he.A;return ee===null?null:ee.getOwner()}function u(){return Error("react-stack-top-frame")}function c(ee){if(be.call(ee,"key")){var we=Object.getOwnPropertyDescriptor(ee,"key").get;if(we&&we.isReactWarning)return!1}return ee.key!==void 0}function f(ee,we){function ve(){He||(He=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",we))}ve.isReactWarning=!0,Object.defineProperty(ee,"key",{get:ve,configurable:!0})}function m(){var ee=s(this.type);return ce[ee]||(ce[ee]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),ee=this.props.ref,ee!==void 0?ee:null}function b(ee,we,ve,Re,Ue,ht,at,Me){return ve=ht.ref,ee={$$typeof:R,type:ee,key:we,props:ht,_owner:Ue},(ve!==void 0?ve:null)!==null?Object.defineProperty(ee,"ref",{enumerable:!1,get:m}):Object.defineProperty(ee,"ref",{enumerable:!1,value:null}),ee._store={},Object.defineProperty(ee._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(ee,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(ee,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:at}),Object.defineProperty(ee,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Me}),Object.freeze&&(Object.freeze(ee.props),Object.freeze(ee)),ee}function S(ee,we,ve,Re,Ue,ht,at,Me){var ke=we.children;if(ke!==void 0)if(Re)if(ye(ke)){for(Re=0;Re -React keys must be passed directly to JSX without using spread: - let props = %s; - <%s key={someKey} {...props} />`,Re,ke,ut,ke),Be[ke+Re]=!0)}if(ke=null,ve!==void 0&&(i(ve),ke=""+ve),c(we)&&(i(we.key),ke=""+we.key),"key"in we){ve={};for(var ft in we)ft!=="key"&&(ve[ft]=we[ft])}else ve=we;return ke&&f(ve,typeof ee=="function"?ee.displayName||ee.name||"Unknown":ee),b(ee,ke,ht,Ue,o(),ve,at,Me)}function x(ee){typeof ee=="object"&&ee!==null&&ee.$$typeof===R&&ee._store&&(ee._store.validated=1)}var w=Ri,R=Symbol.for("react.transitional.element"),L=Symbol.for("react.portal"),A=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),U=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),$=Symbol.for("react.context"),W=Symbol.for("react.forward_ref"),K=Symbol.for("react.suspense"),le=Symbol.for("react.suspense_list"),Y=Symbol.for("react.memo"),J=Symbol.for("react.lazy"),te=Symbol.for("react.activity"),xe=Symbol.for("react.client.reference"),he=w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,be=Object.prototype.hasOwnProperty,ye=Array.isArray,pe=console.createTask?console.createTask:function(){return null};w={"react-stack-bottom-frame":function(ee){return ee()}};var He,ce={},Ce=w["react-stack-bottom-frame"].bind(w,u)(),Oe=pe(r(u)),Be={};Wc.Fragment=A,Wc.jsx=function(ee,we,ve,Re,Ue){var ht=1e4>he.recentlyCreatedOwnerStacks++;return S(ee,we,ve,!1,Re,Ue,ht?Error("react-stack-top-frame"):Ce,ht?pe(r(ee)):Oe)},Wc.jsxs=function(ee,we,ve,Re,Ue){var ht=1e4>he.recentlyCreatedOwnerStacks++;return S(ee,we,ve,!0,Re,Ue,ht?Error("react-stack-top-frame"):Ce,ht?pe(r(ee)):Oe)}}()),Wc}A_.exports=RD();var Fl=A_.exports,R_={exports:{}},Ng={exports:{}},Pg={};/** - * @license React - * scheduler.development.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var M_;function MD(){return M_||(M_=1,function(s){(function(){function e(){if(K=!1,te){var ce=s.unstable_now();be=ce;var Ce=!0;try{e:{$=!1,W&&(W=!1,Y(xe),xe=-1),G=!0;var Oe=U;try{t:{for(c(ce),q=r(R);q!==null&&!(q.expirationTime>ce&&m());){var Be=q.callback;if(typeof Be=="function"){q.callback=null,U=q.priorityLevel;var ee=Be(q.expirationTime<=ce);if(ce=s.unstable_now(),typeof ee=="function"){q.callback=ee,c(ce),Ce=!0;break t}q===r(R)&&o(R),c(ce)}else o(R);q=r(R)}if(q!==null)Ce=!0;else{var we=r(L);we!==null&&b(f,we.startTime-ce),Ce=!1}}break e}finally{q=null,U=Oe,G=!1}Ce=void 0}}finally{Ce?ye():te=!1}}}function i(ce,Ce){var Oe=ce.length;ce.push(Ce);e:for(;0>>1,ee=ce[Be];if(0>>1;Beu(Re,Oe))Ueu(ht,Re)?(ce[Be]=ht,ce[Ue]=Oe,Be=Ue):(ce[Be]=Re,ce[ve]=Oe,Be=ve);else if(Ueu(ht,Oe))ce[Be]=ht,ce[Ue]=Oe,Be=Ue;else break e}}return Ce}function u(ce,Ce){var Oe=ce.sortIndex-Ce.sortIndex;return Oe!==0?Oe:ce.id-Ce.id}function c(ce){for(var Ce=r(L);Ce!==null;){if(Ce.callback===null)o(L);else if(Ce.startTime<=ce)o(L),Ce.sortIndex=Ce.expirationTime,i(R,Ce);else break;Ce=r(L)}}function f(ce){if(W=!1,c(ce),!$)if(r(R)!==null)$=!0,te||(te=!0,ye());else{var Ce=r(L);Ce!==null&&b(f,Ce.startTime-ce)}}function m(){return K?!0:!(s.unstable_now()-bece||125Be?(ce.sortIndex=Oe,i(L,ce),r(R)===null&&ce===r(L)&&(W?(Y(xe),xe=-1):W=!0,b(f,Oe-Be))):(ce.sortIndex=ee,i(R,ce),$||G||($=!0,te||(te=!0,ye()))),ce},s.unstable_shouldYield=m,s.unstable_wrapCallback=function(ce){var Ce=U;return function(){var Oe=U;U=Ce;try{return ce.apply(this,arguments)}finally{U=Oe}}},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()}(Pg)),Pg}var L_;function LD(){return L_||(L_=1,Ng.exports=MD()),Ng.exports}var Bg={exports:{}},Vi={};/** - * @license React - * react-dom.development.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var I_;function ID(){return I_||(I_=1,function(){function s(){}function e(x){return""+x}function i(x,w,R){var L=3` tag.%s',R),typeof x=="string"&&typeof w=="object"&&w!==null&&typeof w.as=="string"){R=w.as;var L=r(R,w.crossOrigin);m.d.L(x,R,{crossOrigin:L,integrity:typeof w.integrity=="string"?w.integrity:void 0,nonce:typeof w.nonce=="string"?w.nonce:void 0,type:typeof w.type=="string"?w.type:void 0,fetchPriority:typeof w.fetchPriority=="string"?w.fetchPriority:void 0,referrerPolicy:typeof w.referrerPolicy=="string"?w.referrerPolicy:void 0,imageSrcSet:typeof w.imageSrcSet=="string"?w.imageSrcSet:void 0,imageSizes:typeof w.imageSizes=="string"?w.imageSizes:void 0,media:typeof w.media=="string"?w.media:void 0})}},Vi.preloadModule=function(x,w){var R="";typeof x=="string"&&x||(R+=" The `href` argument encountered was "+o(x)+"."),w!==void 0&&typeof w!="object"?R+=" The `options` argument encountered was "+o(w)+".":w&&"as"in w&&typeof w.as!="string"&&(R+=" The `as` option encountered was "+o(w.as)+"."),R&&console.error('ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `` tag.%s',R),typeof x=="string"&&(w?(R=r(w.as,w.crossOrigin),m.d.m(x,{as:typeof w.as=="string"&&w.as!=="script"?w.as:void 0,crossOrigin:R,integrity:typeof w.integrity=="string"?w.integrity:void 0})):m.d.m(x))},Vi.requestFormReset=function(x){m.d.r(x)},Vi.unstable_batchedUpdates=function(x,w){return x(w)},Vi.useFormState=function(x,w,R){return c().useFormState(x,w,R)},Vi.useFormStatus=function(){return c().useHostTransitionStatus()},Vi.version="19.1.0",typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Vi}var N_;function ND(){return N_||(N_=1,Bg.exports=ID()),Bg.exports}var Kc={};/** - * @license React - * react-dom-client.development.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var P_;function PD(){return P_||(P_=1,function(){function s(t,n){for(t=t.memoizedState;t!==null&&0=n.length)return l;var d=n[a],p=Fi(t)?t.slice():it({},t);return p[d]=e(t[d],n,a+1,l),p}function i(t,n,a){if(n.length!==a.length)console.warn("copyWithRename() expects paths of the same length");else{for(var l=0;lca?console.error("Unexpected pop."):(n!==db[ca]&&console.error("Unexpected Fiber popped."),t.current=cb[ca],cb[ca]=null,db[ca]=null,ca--)}function be(t,n,a){ca++,cb[ca]=t.current,db[ca]=a,t.current=n}function ye(t){return t===null&&console.error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."),t}function pe(t,n){be(oo,n,t),be(Vh,t,t),be(ao,null,t);var a=n.nodeType;switch(a){case 9:case 11:a=a===9?"#document":"#fragment",n=(n=n.documentElement)&&(n=n.namespaceURI)?wC(n):Sa;break;default:if(a=n.tagName,n=n.namespaceURI)n=wC(n),n=AC(n,a);else switch(a){case"svg":n=Gc;break;case"math":n=Dg;break;default:n=Sa}}a=a.toLowerCase(),a=Cn(null,a),a={context:n,ancestorInfo:a},he(ao,t),be(ao,a,t)}function He(t){he(ao,t),he(Vh,t),he(oo,t)}function ce(){return ye(ao.current)}function Ce(t){t.memoizedState!==null&&be(zm,t,t);var n=ye(ao.current),a=t.type,l=AC(n.context,a);a=Cn(n.ancestorInfo,a),l={context:l,ancestorInfo:a},n!==l&&(be(Vh,t,t),be(ao,l,t))}function Oe(t){Vh.current===t&&(he(ao,t),he(Vh,t)),zm.current===t&&(he(zm,t),kf._currentValue=ql)}function Be(t){return typeof Symbol=="function"&&Symbol.toStringTag&&t[Symbol.toStringTag]||t.constructor.name||"Object"}function ee(t){try{return we(t),!1}catch{return!0}}function we(t){return""+t}function ve(t,n){if(ee(t))return console.error("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",n,Be(t)),we(t)}function Re(t,n){if(ee(t))return console.error("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",n,Be(t)),we(t)}function Ue(t){if(ee(t))return console.error("Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.",Be(t)),we(t)}function ht(t){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")return!1;var n=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(n.isDisabled)return!0;if(!n.supportsFiber)return console.error("The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools"),!0;try{fc=n.inject(t),Ki=n}catch(a){console.error("React instrumentation encountered an error: %s.",a)}return!!n.checkDCE}function at(t){if(typeof dL=="function"&&hL(t),Ki&&typeof Ki.setStrictMode=="function")try{Ki.setStrictMode(fc,t)}catch(n){Er||(Er=!0,console.error("React instrumentation encountered an error: %s",n))}}function Me(t){Ae=t}function ke(){Ae!==null&&typeof Ae.markCommitStopped=="function"&&Ae.markCommitStopped()}function ut(t){Ae!==null&&typeof Ae.markComponentRenderStarted=="function"&&Ae.markComponentRenderStarted(t)}function ft(){Ae!==null&&typeof Ae.markComponentRenderStopped=="function"&&Ae.markComponentRenderStopped()}function Ze(t){Ae!==null&&typeof Ae.markRenderStarted=="function"&&Ae.markRenderStarted(t)}function pt(){Ae!==null&&typeof Ae.markRenderStopped=="function"&&Ae.markRenderStopped()}function At(t,n){Ae!==null&&typeof Ae.markStateUpdateScheduled=="function"&&Ae.markStateUpdateScheduled(t,n)}function Vt(t){return t>>>=0,t===0?32:31-(fL(t)/pL|0)|0}function Sn(t){if(t&1)return"SyncHydrationLane";if(t&2)return"Sync";if(t&4)return"InputContinuousHydration";if(t&8)return"InputContinuous";if(t&16)return"DefaultHydration";if(t&32)return"Default";if(t&128)return"TransitionHydration";if(t&4194048)return"Transition";if(t&62914560)return"Retry";if(t&67108864)return"SelectiveHydration";if(t&134217728)return"IdleHydration";if(t&268435456)return"Idle";if(t&536870912)return"Offscreen";if(t&1073741824)return"Deferred"}function kt(t){var n=t&42;if(n!==0)return n;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return console.error("Should have found matching lanes. This is a bug in React."),t}}function Ot(t,n,a){var l=t.pendingLanes;if(l===0)return 0;var d=0,p=t.suspendedLanes,T=t.pingedLanes;t=t.warmLanes;var C=l&134217727;return C!==0?(l=C&~p,l!==0?d=kt(l):(T&=C,T!==0?d=kt(T):a||(a=C&~t,a!==0&&(d=kt(a))))):(C=l&~p,C!==0?d=kt(C):T!==0?d=kt(T):a||(a=l&~t,a!==0&&(d=kt(a)))),d===0?0:n!==0&&n!==d&&!(n&p)&&(p=d&-d,a=n&-n,p>=a||p===32&&(a&4194048)!==0)?n:d}function dt(t,n){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&n)===0}function xn(t,n){switch(t){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return console.error("Should have found matching lanes. This is a bug in React."),-1}}function _e(){var t=Vm;return Vm<<=1,!(Vm&4194048)&&(Vm=256),t}function Ei(){var t=$m;return $m<<=1,!($m&62914560)&&($m=4194304),t}function ci(t){for(var n=[],a=0;31>a;a++)n.push(t);return n}function $t(t,n){t.pendingLanes|=n,n!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Ci(t,n,a,l,d,p){var T=t.pendingLanes;t.pendingLanes=a,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=a,t.entangledLanes&=a,t.errorRecoveryDisabledLanes&=a,t.shellSuspendCounter=0;var C=t.entanglements,O=t.expirationTimes,I=t.hiddenUpdates;for(a=T&~a;0Gh&&console.error("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}function En(t){if(vb===void 0)try{throw Error()}catch(a){var n=a.stack.trim().match(/\n( *(at )?)/);vb=n&&n[1]||"",cw=-1)":-1T||I[p]!==Z[T]){var re=` -`+I[p].replace(" at new "," at ");return t.displayName&&re.includes("")&&(re=re.replace("",t.displayName)),typeof t=="function"&&_b.set(t,re),re}while(1<=p&&0<=T);break}}}finally{bb=!1,se.H=l,Ud(),Error.prepareStackTrace=a}return I=(I=t?t.displayName||t.name:"")?En(I):"",typeof t=="function"&&_b.set(t,I),I}function Fd(t){var n=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,t=t.stack,Error.prepareStackTrace=n,t.startsWith(`Error: react-stack-top-frame -`)&&(t=t.slice(29)),n=t.indexOf(` -`),n!==-1&&(t=t.slice(n+1)),n=t.indexOf("react-stack-bottom-frame"),n!==-1&&(n=t.lastIndexOf(` -`,n)),n!==-1)t=t.slice(0,n);else return"";return t}function Hd(t){switch(t.tag){case 26:case 27:case 5:return En(t.type);case 16:return En("Lazy");case 13:return En("Suspense");case 19:return En("SuspenseList");case 0:case 15:return qd(t.type,!1);case 11:return qd(t.type.render,!1);case 1:return qd(t.type,!0);case 31:return En("Activity");default:return""}}function Fo(t){try{var n="";do{n+=Hd(t);var a=t._debugInfo;if(a)for(var l=a.length-1;0<=l;l--){var d=a[l];if(typeof d.name=="string"){var p=n,T=d.env,C=En(d.name+(T?" ["+T+"]":""));n=p+C}}t=t.return}while(t);return n}catch(O){return` -Error generating stack: `+O.message+` -`+O.stack}}function Li(t){return(t=t?t.displayName||t.name:"")?En(t):""}function Au(){if(Wn===null)return null;var t=Wn._debugOwner;return t!=null?J(t):null}function Hy(){if(Wn===null)return"";var t=Wn;try{var n="";switch(t.tag===6&&(t=t.return),t.tag){case 26:case 27:case 5:n+=En(t.type);break;case 13:n+=En("Suspense");break;case 19:n+=En("SuspenseList");break;case 31:n+=En("Activity");break;case 30:case 0:case 15:case 1:t._debugOwner||n!==""||(n+=Li(t.type));break;case 11:t._debugOwner||n!==""||(n+=Li(t.type.render))}for(;t;)if(typeof t.tag=="number"){var a=t;t=a._debugOwner;var l=a._debugStack;t&&l&&(typeof l!="string"&&(a._debugStack=l=Fd(l)),l!==""&&(n+=` -`+l))}else if(t.debugStack!=null){var d=t.debugStack;(t=t.owner)&&d&&(n+=` -`+Fd(d))}else break;var p=n}catch(T){p=` -Error generating stack: `+T.message+` -`+T.stack}return p}function Ne(t,n,a,l,d,p,T){var C=Wn;Fn(t);try{return t!==null&&t._debugTask?t._debugTask.run(n.bind(null,a,l,d,p,T)):n(a,l,d,p,T)}finally{Fn(C)}throw Error("runWithFiberInDEV should never be called in production. This is a bug in React.")}function Fn(t){se.getCurrentStack=t===null?null:Hy,wr=!1,Wn=t}function Ii(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return Ue(t),t;default:return""}}function Et(t){var n=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function jy(t){var n=Et(t)?"checked":"value",a=Object.getOwnPropertyDescriptor(t.constructor.prototype,n);Ue(t[n]);var l=""+t[n];if(!t.hasOwnProperty(n)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var d=a.get,p=a.set;return Object.defineProperty(t,n,{configurable:!0,get:function(){return d.call(this)},set:function(T){Ue(T),l=""+T,p.call(this,T)}}),Object.defineProperty(t,n,{enumerable:a.enumerable}),{getValue:function(){return l},setValue:function(T){Ue(T),l=""+T},stopTracking:function(){t._valueTracker=null,delete t[n]}}}}function Vr(t){t._valueTracker||(t._valueTracker=jy(t))}function Ho(t){if(!t)return!1;var n=t._valueTracker;if(!n)return!0;var a=n.getValue(),l="";return t&&(l=Et(t)?t.checked?"true":"false":t.value),t=l,t!==a?(n.setValue(t),!0):!1}function Du(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function di(t){return t.replace(bL,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function Nt(t,n){n.checked===void 0||n.defaultChecked===void 0||hw||(console.error("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",Au()||"A component",n.type),hw=!0),n.value===void 0||n.defaultValue===void 0||dw||(console.error("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",Au()||"A component",n.type),dw=!0)}function ku(t,n,a,l,d,p,T,C){t.name="",T!=null&&typeof T!="function"&&typeof T!="symbol"&&typeof T!="boolean"?(ve(T,"type"),t.type=T):t.removeAttribute("type"),n!=null?T==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+Ii(n)):t.value!==""+Ii(n)&&(t.value=""+Ii(n)):T!=="submit"&&T!=="reset"||t.removeAttribute("value"),n!=null?jd(t,T,Ii(n)):a!=null?jd(t,T,Ii(a)):l!=null&&t.removeAttribute("value"),d==null&&p!=null&&(t.defaultChecked=!!p),d!=null&&(t.checked=d&&typeof d!="function"&&typeof d!="symbol"),C!=null&&typeof C!="function"&&typeof C!="symbol"&&typeof C!="boolean"?(ve(C,"name"),t.name=""+Ii(C)):t.removeAttribute("name")}function jo(t,n,a,l,d,p,T,C){if(p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"&&(ve(p,"type"),t.type=p),n!=null||a!=null){if(!(p!=="submit"&&p!=="reset"||n!=null))return;a=a!=null?""+Ii(a):"",n=n!=null?""+Ii(n):a,C||n===t.value||(t.value=n),t.defaultValue=n}l=l??d,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=C?t.checked:!!l,t.defaultChecked=!!l,T!=null&&typeof T!="function"&&typeof T!="symbol"&&typeof T!="boolean"&&(ve(T,"name"),t.name=T)}function jd(t,n,a){n==="number"&&Du(t.ownerDocument)===t||t.defaultValue===""+a||(t.defaultValue=""+a)}function Fp(t,n){n.value==null&&(typeof n.children=="object"&&n.children!==null?sb.Children.forEach(n.children,function(a){a==null||typeof a=="string"||typeof a=="number"||typeof a=="bigint"||pw||(pw=!0,console.error("Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to