{"id":595,"date":"2026-03-01T00:00:04","date_gmt":"2026-03-01T00:00:04","guid":{"rendered":"https:\/\/viewanonymous.com\/?page_id=595"},"modified":"2026-03-31T08:52:45","modified_gmt":"2026-03-31T08:52:45","slug":"private","status":"publish","type":"page","link":"https:\/\/viewanonymous.com\/tools\/youtube\/private\/","title":{"rendered":"Private YouTube Viewer &#8211; Access Public Video Details Safely"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; theme_builder_area=&#8221;post_content&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221;][et_pb_fullwidth_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; theme_builder_area=&#8221;post_content&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;]    <link rel=\"canonical\" href=\"\">\r\n  \r\n     \r\n      \r\n      <!-- Google Fonts - Premium Typography -->\r\n      <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n      <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\r\n      <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n      \r\n      <!-- Bootstrap CSS -->\r\n      <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\r\n      <!-- Boxicons -->\r\n      <link href=\"https:\/\/unpkg.com\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n      <!-- AOS Animation -->\r\n      <link href=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.css\" rel=\"stylesheet\">\r\n      <!-- Font Awesome CSS -->\r\n      <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/5.15.3\/css\/all.min.css\" rel=\"stylesheet\">\r\n  \r\n  \r\n  <style id=\"vvvebjs-styles\">\r\n      html{\r\n          overflow-x: hidden;\r\n      }\r\n      :root {\r\n              --va-purple: #8a6cfc;\r\n              --va-purple-hover: #7355e8;\r\n              --va-black: #000000;\r\n              --va-white: #ffffff;\r\n              --ytvv-primary-color: var(--va-purple);\r\n              --ytvv-secondary-color: #1a1a1a;\r\n              --ytvv-dark-color: var(--va-black);\r\n              --ytvv-light-color: var(--va-white);\r\n              --ytvv-gray-color: #f5f5f7;\r\n              --ytvv-primary-hover: var(--va-purple-hover);\r\n              --ytvv-secondary-hover: #333333;\r\n              --ytvv-section-padding: 100px 0;\r\n          }\r\n          \r\n\/*           body {\r\n              font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n              scroll-behavior: smooth;\r\n              overflow-x: hidden;\r\n              background-color: var(--ytvv-light-color);\r\n              color: var(--ytvv-dark-color);\r\n          }\r\n      h1, h2, h3, h4, h5, h6 {\r\n          font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;\r\n          font-weight: bold; \r\n      } *\/\r\n    \r\n      \/* YouTube-style Hero Section *\/\r\n      .ytvv-hero-section {\r\n              padding: var(--ytvv-section-padding);\r\n              text-align: center;\r\n              background-color: var(--ytvv-light-color);\r\n          }\r\n          \r\n          .ytvv-hero-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .ytvv-hero-section h1 {\r\n              font-size: 3.5rem;\r\n              font-weight: 700;\r\n              margin-bottom: 1.5rem;\r\n              color: var(--ytvv-primary-color);\r\n          }\r\n          \r\n          .ytvv-hero-section p {\r\n              font-size: 1.25rem;\r\n              max-width: 700px;\r\n              margin: 0 auto 2rem;\r\n              opacity: 0.9;\r\n              font-weight: 300;\r\n              color: #333;\r\n          }\r\n          \r\n          \/* Work Process Section with YouTube Colors *\/\r\n          .ytvv-work-process-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              position: relative;\r\n              overflow: hidden;\r\n          }\r\n          \r\n          .ytvv-work-process-section::before {\r\n              content: '';\r\n              position: absolute;\r\n              top: 0;\r\n              left: 0;\r\n              width: 100%;\r\n              height: 100%;\r\n              background: rgba(0,0,0,0.05);\r\n          }\r\n          \r\n          .ytvv-work-process-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .ytvv-process-step {\r\n              text-align: center;\r\n              padding: 30px 20px;\r\n              position: relative;\r\n              z-index: 1;\r\n              background: rgba(255,255,255,0.1);\r\n              backdrop-filter: blur(10px);\r\n              border-radius: 16px;\r\n              margin: 15px;\r\n              border: 1px solid rgba(255,255,255,0.2);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-process-step:hover {\r\n              transform: translateY(-10px);\r\n              background: rgba(255,255,255,0.15);\r\n              box-shadow: 0 15px 30px rgba(0,0,0,0.2);\r\n          }\r\n          \r\n          .ytvv-step-number {\r\n              width: 60px;\r\n              height: 60px;\r\n              background: white;\r\n              color: var(--ytvv-primary-color);\r\n              border-radius: 50%;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              font-weight: 700;\r\n              margin: 0 auto 20px;\r\n              font-size: 1.5rem;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          \/* Features Section *\/\r\n          .ytvv-features-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-feature-card {\r\n              padding: 40px 30px;\r\n              border-radius: 16px;\r\n              background: white;\r\n              box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);\r\n              margin-bottom: 30px;\r\n              transition: all 0.3s ease;\r\n              border: 1px solid rgba(0,0,0,0.05);\r\n              height: 100%;\r\n              position: relative;\r\n              overflow: hidden;\r\n          }\r\n          \r\n          .ytvv-feature-card::before {\r\n              content: '';\r\n              position: absolute;\r\n              top: 0;\r\n              left: 0;\r\n              width: 4px;\r\n              height: 100%;\r\n              background: var(--ytvv-primary-color);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-feature-card:hover {\r\n              transform: translateY(-10px);\r\n              box-shadow: 0 15px 40px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          .ytvv-feature-card:hover::before {\r\n              width: 100%;\r\n              opacity: 0.1;\r\n          }\r\n          \r\n          .ytvv-feature-icon {\r\n              width: 70px;\r\n              height: 70px;\r\n              border-radius: 20px;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              margin-bottom: 25px;\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              font-size: 1.8rem;\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-feature-card:hover .ytvv-feature-icon {\r\n              transform: rotate(15deg) scale(1.1);\r\n              background: var(--ytvv-primary-hover);\r\n          }\r\n          \r\n          \/* Why Choose Section *\/\r\n          .ytvv-why-choose-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: #f9f9f9;\r\n          }\r\n          \r\n          .ytvv-why-choose-image {\r\n              border-radius: 16px;\r\n              overflow: hidden;\r\n              box-shadow: 0 20px 40px rgba(0,0,0,0.1);\r\n              transform: perspective(1000px) rotateY(-5deg);\r\n              transition: all 0.5s ease;\r\n          }\r\n          \r\n          .ytvv-why-choose-image:hover {\r\n              transform: perspective(1000px) rotateY(0deg);\r\n          }\r\n          \r\n          .ytvv-benefit-item {\r\n              display: flex;\r\n              align-items: flex-start;\r\n              margin-bottom: 20px;\r\n              padding: 15px;\r\n              border-radius: 12px;\r\n              background: white;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.03);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-benefit-item:hover {\r\n              transform: translateX(10px);\r\n              box-shadow: 0 10px 25px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          .ytvv-benefit-icon {\r\n              width: 40px;\r\n              height: 40px;\r\n              border-radius: 12px;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              margin-right: 15px;\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              font-size: 1.2rem;\r\n              flex-shrink: 0;\r\n          }\r\n          \r\n          \/* FAQ Section *\/\r\n          .ytvv-faq-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-accordion-item {\r\n              border: none;\r\n              border-radius: 12px !important;\r\n              overflow: hidden;\r\n              margin-bottom: 15px;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.05);\r\n          }\r\n          \r\n          .ytvv-accordion-button {\r\n              font-weight: 600;\r\n              color: var(--ytvv-dark-color);\r\n              padding: 20px 25px;\r\n              background: white;\r\n              box-shadow: none;\r\n              border-radius: 12px 12px 0 0 !important;\r\n          }\r\n          \r\n          .ytvv-accordion-button:not(.collapsed) {\r\n              background: white;\r\n              color: var(--ytvv-primary-color);\r\n              box-shadow: none;\r\n          }\r\n          \r\n          .ytvv-accordion-button:focus {\r\n              box-shadow: none;\r\n              border-color: rgba(138, 108, 252, 0.35);\r\n          }\r\n          \r\n          .ytvv-accordion-button::after {\r\n              background-image: url(\"data:image\/svg+xml,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='%238a6cfc'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'\/%3e%3c\/svg%3e\");\r\n          }\r\n          \r\n          .ytvv-accordion-body {\r\n              padding: 25px;\r\n              color: #333;\r\n          }\r\n          \r\n          \/* Section Titles *\/\r\n          .ytvv-section-title {\r\n              font-weight: 700;\r\n              color: var(--ytvv-dark-color);\r\n              margin-bottom: 1.5rem;\r\n              position: relative;\r\n              display: inline-block;\r\n          }\r\n          \r\n          .ytvv-section-title::after {\r\n              content: '';\r\n              position: absolute;\r\n              bottom: -10px;\r\n              left: 0;\r\n              width: 60px;\r\n              height: 4px;\r\n              background: var(--ytvv-primary-color);\r\n              border-radius: 2px;\r\n          }\r\n          \r\n          .ytvv-light-title {\r\n              color: white;\r\n          }\r\n          \r\n          .ytvv-light-title::after {\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-section-subtitle {\r\n              color: #333;\r\n              max-width: 700px;\r\n              margin: 0 auto 3rem;\r\n              font-size: 1.1rem;\r\n          }\r\n          \r\n          .ytvv-light-subtitle {\r\n              color: rgba(255,255,255,0.8);\r\n          }\r\n          \r\n          \/* Responsive Design *\/\r\n          @media (max-width: 991px) {\r\n              :root {\r\n                  --ytvv-section-padding: 80px 0;\r\n              }\r\n              \r\n              .ytvv-hero-section h1 {\r\n                  font-size: 2.8rem;\r\n              }\r\n              \r\n              .ytvv-process-step::before {\r\n                  display: none;\r\n              }\r\n          }\r\n          \r\n          @media (max-width: 767px) {\r\n              :root {\r\n                  --ytvv-section-padding: 70px 0;\r\n              }\r\n              \r\n              .ytvv-hero-section {\r\n                  padding: 100px 0 60px;\r\n              }\r\n              \r\n              .ytvv-hero-section h1 {\r\n                  font-size: 2.2rem;\r\n              }\r\n              \r\n              .ytvv-hero-section p {\r\n                  font-size: 1rem;\r\n              }\r\n              \r\n              .ytvv-section-title {\r\n                  font-size: 1.8rem;\r\n              }\r\n          }\r\n          \r\n          \/* Animation *\/\r\n          @keyframes ytvv-float {\r\n              0% { transform: translateY(0px); }\r\n              50% { transform: translateY(-15px); }\r\n              100% { transform: translateY(0px); }\r\n          }\r\n          \r\n          .ytvv-floating-element {\r\n              animation: ytvv-float 6s ease-in-out infinite;\r\n          }\r\n          \r\n          \/* Custom Scrollbar *\/\r\n          ::-webkit-scrollbar {\r\n              width: 8px;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-track {\r\n              background: #f1f1f1;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-thumb {\r\n              background: var(--ytvv-primary-color);\r\n              border-radius: 10px;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-thumb:hover {\r\n              background: var(--ytvv-primary-hover);\r\n          }\r\n       \r\n  \r\n  <\/style>\r\n  <!-- tools -->\r\n  <style>\r\n      @import url('https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700;800;900&display=swap');\r\n  \r\n      * {\r\n          margin: 0;\r\n          padding: 0;\r\n          box-sizing: border-box;\r\n      }\r\n  \r\n      :root {\r\n          --primary-color: #8a6cfc;\r\n          --primary-light: #a78bfa;\r\n          --secondary-color: #7355e8;\r\n          --secondary-light: #b8a0fd;\r\n          --accent-color: #8a6cfc;\r\n          --accent-light: #c4b5fd;\r\n          --success-color: #8a6cfc;\r\n          --success-light: #a78bfa;\r\n          --warning-color: #7355e8;\r\n          --warning-light: #8a6cfc;\r\n          --danger-color: #DC2626;\r\n          --danger-light: #EF4444;\r\n          --bg-primary: #ffffff;\r\n          --bg-secondary: #fafafa;\r\n          --bg-tertiary: #f0f0f5;\r\n          --bg-card: #ffffff;\r\n          --glass-bg: rgba(138, 108, 252, 0.08);\r\n          --glass-border: rgba(138, 108, 252, 0.25);\r\n          --text-primary: #000000;\r\n          --text-secondary: #333333;\r\n          --text-muted: rgba(0, 0, 0, 0.5);\r\n          --text-accent: #8a6cfc;\r\n          --shadow-sm: 0 2px 8px rgba(138, 108, 252, 0.12);\r\n          --shadow-md: 0 4px 16px rgba(138, 108, 252, 0.14);\r\n          --shadow-lg: 0 8px 32px rgba(138, 108, 252, 0.16);\r\n          --shadow-xl: 0 16px 48px rgba(138, 108, 252, 0.12);\r\n          --border-radius: 16px;\r\n          --border-radius-lg: 24px;\r\n      }\r\n  \r\n      .custom-hero-tools-ytvv{\r\n          font-family: 'Outfit', sans-serif;\r\n          background: #ffffff;\r\n          padding: 80px 0;\r\n          line-height: 1.6;\r\n          color: var(--text-primary);\r\n          position: relative;\r\n          overflow-x: hidden;\r\n          margin-top: 0;\r\n          border-bottom: 1px solid rgba(138, 108, 252, 0.15);\r\n      }\r\n  \r\n      .custom-hero-tools-ytvv::before {\r\n          content: '';\r\n          position: fixed;\r\n          top: 0;\r\n          left: 0;\r\n          width: 100%;\r\n          height: 100%;\r\n          background:\r\n              radial-gradient(circle at 20% 20%, rgba(138, 108, 252, 0.08) 0%, transparent 50%),\r\n              radial-gradient(circle at 80% 80%, rgba(138, 108, 252, 0.06) 0%, transparent 50%),\r\n              radial-gradient(circle at 50% 50%, rgba(167, 139, 250, 0.05) 0%, transparent 50%);\r\n          pointer-events: none;\r\n          z-index: -1;\r\n      }\r\n  \r\n      .yvv-container {\r\n          max-width: 1400px;\r\n          margin: 0 auto;\r\n          padding: 20px;\r\n          position: relative;\r\n          z-index: 1;\r\n      }\r\n  \r\n      \/* Header Section *\/\r\n      .yvv-header {\r\n          text-align: center;\r\n          margin-bottom: 40px;\r\n          padding: 40px 0;\r\n          animation: fadeInDown 1s ease-out;\r\n      }\r\n  \r\n      .yvv-brand-logo {\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          gap: 25px;\r\n          margin-bottom: 25px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n    .yvv-brand-icon {\r\n      width: 80px;\r\n      height: 80px;\r\n      background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n      border-radius: var(--border-radius);\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      color: #ffffff;\r\n      font-size: 36px;\r\n      font-weight: 800;\r\n      box-shadow: var(--shadow-lg);\r\n      animation: float 4s ease-in-out infinite;\r\n      position: relative;\r\n  }\r\n  \r\n      .yvv-brand-icon::after {\r\n          content: '';\r\n          position: absolute;\r\n          inset: -2px;\r\n          background: linear-gradient(135deg, var(--primary-light), var(--accent-light));\r\n          border-radius: var(--border-radius);\r\n          z-index: -1;\r\n          opacity: 0.5;\r\n          animation: pulse 2s ease-in-out infinite;\r\n      }\r\n  \r\n  .yvv-brand-title {\r\n      font-size: clamp(2.25rem, 5vw, 3.5rem);\r\n      font-weight: 800;\r\n      color: #000000;\r\n      letter-spacing: -0.02em;\r\n      line-height: 1.15;\r\n      margin: 0;\r\n      -webkit-text-fill-color: unset;\r\n      background: none;\r\n      text-shadow: none;\r\n  }\r\n\r\n  .yvv-brand-title .va-cap {\r\n      color: #8a6cfc;\r\n      font-size: 1.12em;\r\n      font-weight: 900;\r\n  }\r\n  \r\n  .yvv-brand-subtitle {\r\n      color: #333333;\r\n      font-size: 20px;\r\n      font-weight: 500;\r\n      margin-bottom: 30px;\r\n      max-width: 700px;\r\n      margin-left: auto;\r\n      margin-right: auto;\r\n  }\r\n  \r\n      .yvv-feature-badges {\r\n          display: flex;\r\n          justify-content: center;\r\n          gap: 15px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n     .yvv-feature-badge {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      background: #fafafa;\r\n      backdrop-filter: blur(20px);\r\n      border: 1px solid var(--glass-border);\r\n      padding: 12px 24px;\r\n      border-radius: 50px;\r\n      color: #000000;\r\n      font-size: 14px;\r\n      font-weight: 600;\r\n      transition: all 0.3s ease;\r\n  }\r\n  \r\n      .yvv-feature-badge:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-md);\r\n          background: rgba(138, 108, 252, 0.08);\r\n      }\r\n  \r\n      .yvv-badge-icon {\r\n          width: 20px;\r\n          height: 20px;\r\n          background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n          border-radius: 50%;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 10px;\r\n          color: white;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      \/* Search Section *\/\r\n  .yvv-search-section {\r\n      background: #ffffff;\r\n      border: 1px solid rgba(138, 108, 252, 0.25);\r\n      padding: 40px;\r\n      border-radius: var(--border-radius-lg);\r\n      box-shadow: var(--shadow-xl);\r\n      margin-bottom: 40px;\r\n      animation: fadeInUp 1s ease-out 0.2s both;\r\n      position: relative;\r\n      overflow: hidden;\r\n  }\r\n  \r\n      .yvv-search-section::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 2px;\r\n          background: linear-gradient(90deg, var(--primary-color), var(--accent-color), var(--secondary-color));\r\n      }\r\n  \r\n      .yvv-search-form {\r\n          display: flex;\r\n          gap: 20px;\r\n          margin-bottom: 25px;\r\n          position: relative;\r\n      }\r\n  \r\n  .yvv-search-input {\r\n      flex: 1 !important;\r\n      padding: 20px 25px !important;\r\n      background: #ffffff !important;\r\n      border: 2px solid rgba(0, 0, 0, 0.12) !important;\r\n      border-radius: var(--border-radius) !important;\r\n      color: #000000 !important;\r\n      font-size: 16px !important;\r\n      font-weight: 500 !important;\r\n      transition: all 0.3s ease !important;\r\n      outline: none !important;\r\n      font-family: inherit !important;\r\n  }\r\n  \r\n      .yvv-search-input:focus {\r\n          border-color: #8a6cfc !important;\r\n          box-shadow: 0 0 0 4px rgba(138, 108, 252, 0.2) !important;\r\n          transform: translateY(-2px) !important;\r\n      }\r\n  \r\n      .yvv-search-input.error {\r\n          border-color: var(--danger-color) !important;\r\n          box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.1) !important;\r\n      }\r\n  \r\n      .yvv-search-input::placeholder {\r\n          color: var(--text-muted) !important;\r\n          font-weight: 400 !important;\r\n      }\r\n  \r\n  .yvv-search-btn {\r\n      padding: 20px 40px;\r\n      background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n      color: white;\r\n      border: none;\r\n      border-radius: var(--border-radius);\r\n      font-size: 16px;\r\n      font-weight: 700;\r\n      cursor: pointer;\r\n      transition: all 0.3s ease;\r\n      min-width: 200px;\r\n      position: relative;\r\n      overflow: hidden;\r\n      box-shadow: var(--shadow-md);\r\n      font-family: inherit;\r\n  }\r\n  \r\n      .yvv-search-btn:hover:not(:disabled) {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-lg);\r\n          background: linear-gradient(135deg, var(--primary-light), var(--accent-color));\r\n      }\r\n  \r\n      .yvv-search-btn:disabled {\r\n          opacity: 0.6;\r\n          cursor: not-allowed;\r\n          transform: none;\r\n      }\r\n  \r\n      .yvv-loading-indicator {\r\n          display: none;\r\n          text-align: center;\r\n          padding: 30px;\r\n          color: var(--text-secondary);\r\n      }\r\n  \r\n      .yvv-error-display {\r\n          background: rgba(220, 38, 38, 0.1);\r\n          border: 1px solid rgba(220, 38, 38, 0.3);\r\n          color: var(--danger-light);\r\n          padding: 20px 25px;\r\n          border-radius: var(--border-radius);\r\n          margin-top: 20px;\r\n          display: none;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      \/* Video Player Section - Full Interface *\/\r\n      .yvv-video-player-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          overflow: hidden;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInUp 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-video-header {\r\n          background: linear-gradient(135deg, var(--bg-tertiary), var(--bg-card));\r\n          padding: 25px 30px;\r\n          border-bottom: 1px solid rgba(138, 108, 252, 0.1);\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n      }\r\n  \r\n      .yvv-video-title {\r\n          color: var(--text-primary);\r\n          font-size: 24px;\r\n          font-weight: 700;\r\n          margin: 0;\r\n          flex: 1;\r\n          margin-right: 20px;\r\n      }\r\n  \r\n      .yvv-current-quality-badge {\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          color: white;\r\n          padding: 8px 16px;\r\n          border-radius: 20px;\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          margin-right: 15px;\r\n      }\r\n  \r\n      .yvv-close-viewer-btn {\r\n          background: var(--danger-color);\r\n          border: none;\r\n          border-radius: 50%;\r\n          width: 40px;\r\n          height: 40px;\r\n          color: white;\r\n          font-size: 18px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n      }\r\n  \r\n      .yvv-close-viewer-btn:hover {\r\n          background: var(--danger-light);\r\n          transform: scale(1.1);\r\n      }\r\n  \r\n      .yvv-video-container {\r\n          position: relative;\r\n          background: #000;\r\n          width: 100%;\r\n      }\r\n  \r\n      .yvv-main-video {\r\n          width: 100%;\r\n          height: 70vh;\r\n          max-height: 600px;\r\n          min-height: 400px;\r\n          background: #000;\r\n          border: none;\r\n          outline: none;\r\n          display: block;\r\n      }\r\n  \r\n      \/* Video Thumbnail Overlay *\/\r\n      .yvv-video-thumbnail-overlay {\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: 0;\r\n          background-size: cover;\r\n          background-position: center;\r\n          background-repeat: no-repeat;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n      }\r\n  \r\n      .yvv-video-thumbnail-overlay.hidden {\r\n          display: none;\r\n      }\r\n  \r\n      .yvv-thumbnail-play-btn {\r\n          width: 100px;\r\n          height: 100px;\r\n          background: rgba(0, 0, 0, 0.8);\r\n          border: 4px solid white;\r\n          border-radius: 50%;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          color: white;\r\n          font-size: 36px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          backdrop-filter: blur(10px);\r\n      }\r\n  \r\n      .yvv-thumbnail-play-btn:hover {\r\n          transform: scale(1.1);\r\n          background: rgba(0, 0, 0, 0.9);\r\n      }\r\n  \r\n      \/* Video Controls - Below Video *\/\r\n      .yvv-video-controls-section {\r\n          background: var(--bg-tertiary);\r\n          padding: 20px 30px;\r\n          border-top: 1px solid rgba(138, 108, 252, 0.1);\r\n      }\r\n  \r\n      .yvv-video-controls {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 20px;\r\n      }\r\n  \r\n      .yvv-control-btn {\r\n          width: 50px;\r\n          height: 50px;\r\n          background: linear-gradient(135deg, var(--primary-color), var(--primary-light));\r\n          border: none;\r\n          border-radius: 50%;\r\n          color: white;\r\n          font-size: 18px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-control-btn:hover {\r\n          transform: scale(1.1);\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-progress-section {\r\n          flex: 1;\r\n          margin: 0 20px;\r\n      }\r\n  \r\n      .yvv-progress-bar {\r\n          width: 100%;\r\n          height: 10px;\r\n          background: rgba(0, 0, 0, 0.1);\r\n          border-radius: 5px;\r\n          cursor: pointer;\r\n          position: relative;\r\n          overflow: hidden;\r\n          margin-bottom: 8px;\r\n      }\r\n  \r\n      .yvv-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          border-radius: 5px;\r\n          width: 0%;\r\n          transition: width 0.1s ease;\r\n          box-shadow: 0 2px 8px rgba(138, 108, 252, 0.35);\r\n      }\r\n  \r\n      .yvv-time-info {\r\n          color: var(--text-primary);\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-volume-section {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 10px;\r\n          min-width: 120px;\r\n      }\r\n  \r\n      .yvv-volume-icon {\r\n          color: var(--text-primary);\r\n          font-size: 18px;\r\n          width: 24px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-volume-control {\r\n          width: 80px;\r\n          height: 8px;\r\n          background: rgba(0, 0, 0, 0.1);\r\n          border-radius: 4px;\r\n          outline: none;\r\n          cursor: pointer;\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n      }\r\n  \r\n      .yvv-volume-control::-webkit-slider-thumb {\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--primary-color);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          box-shadow: 0 2px 6px rgba(138, 108, 252, 0.4);\r\n      }\r\n  \r\n      .yvv-volume-control::-moz-range-thumb {\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--primary-color);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          border: none;\r\n          box-shadow: 0 2px 6px rgba(138, 108, 252, 0.4);\r\n      }\r\n  \r\n      \/* Video Info Section *\/\r\n      .yvv-video-info-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          padding: 35px;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInLeft 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-video-metadata {\r\n          display: grid;\r\n          grid-template-columns: auto 1fr;\r\n          gap: 30px;\r\n          align-items: start;\r\n          margin-bottom: 30px;\r\n      }\r\n  \r\n      .yvv-video-thumbnail {\r\n          width: 160px;\r\n          height: 120px;\r\n          border-radius: var(--border-radius);\r\n          object-fit: cover;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-video-details {\r\n          display: flex;\r\n          flex-direction: column;\r\n          gap: 15px;\r\n      }\r\n  \r\n      .yvv-video-details h2 {\r\n          color: var(--text-primary);\r\n          font-size: 28px;\r\n          font-weight: 700;\r\n          line-height: 1.3;\r\n          margin: 0;\r\n      }\r\n  \r\n      .yvv-video-stats {\r\n          display: flex;\r\n          gap: 25px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n      .yvv-stat-item {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 10px;\r\n          color: var(--text-secondary);\r\n          font-size: 16px;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      .yvv-stat-icon {\r\n          width: 24px;\r\n          height: 24px;\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          border-radius: 8px;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 12px;\r\n          color: white;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      \/* Format Selection *\/\r\n      .yvv-format-selection {\r\n          background: rgba(138, 108, 252, 0.05);\r\n          border: 1px solid rgba(138, 108, 252, 0.1);\r\n          border-radius: var(--border-radius);\r\n          padding: 30px;\r\n      }\r\n  \r\n      .yvv-format-title {\r\n          color: var(--text-primary);\r\n          font-size: 22px;\r\n          font-weight: 700;\r\n          margin-bottom: 25px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-format-tabs {\r\n          display: flex;\r\n          gap: 10px;\r\n          margin-bottom: 25px;\r\n          justify-content: center;\r\n      }\r\n  \r\n      .yvv-format-tab {\r\n          padding: 12px 24px;\r\n          background: var(--bg-tertiary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: 50px;\r\n          color: var(--text-secondary);\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n      }\r\n  \r\n      .yvv-format-tab.active {\r\n          background: linear-gradient(135deg, var(--primary-color), var(--primary-light));\r\n          color: white;\r\n          border-color: var(--primary-light);\r\n      }\r\n  \r\n      .yvv-format-tab:hover:not(.active) {\r\n          background: var(--bg-card);\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-format-grid {\r\n          display: grid;\r\n          grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\r\n          gap: 20px;\r\n      }\r\n  \r\n      .yvv-format-option {\r\n          background: var(--bg-tertiary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius);\r\n          padding: 25px;\r\n          transition: all 0.3s ease;\r\n          position: relative;\r\n      }\r\n  \r\n      .yvv-format-option:hover {\r\n          transform: translateY(-5px);\r\n          box-shadow: var(--shadow-md);\r\n          border-color: var(--primary-light);\r\n      }\r\n  \r\n      .yvv-format-option.playing {\r\n          border-color: var(--success-color);\r\n          background: rgba(5, 150, 105, 0.1);\r\n          box-shadow: 0 0 20px rgba(5, 150, 105, 0.3);\r\n      }\r\n  \r\n      .yvv-format-option.playing::before {\r\n          content: '\u25b6 NOW PLAYING';\r\n          position: absolute;\r\n          top: -10px;\r\n          right: 15px;\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          color: white;\r\n          padding: 4px 12px;\r\n          border-radius: 12px;\r\n          font-size: 10px;\r\n          font-weight: 700;\r\n          letter-spacing: 0.5px;\r\n      }\r\n  \r\n      .yvv-format-header {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n          margin-bottom: 15px;\r\n      }\r\n  \r\n      .yvv-format-quality {\r\n          font-size: 20px;\r\n          font-weight: 700;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-format-type-badge {\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          color: white;\r\n          padding: 6px 16px;\r\n          border-radius: 20px;\r\n          font-size: 12px;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      .yvv-format-actions {\r\n          display: flex;\r\n          gap: 12px;\r\n      }\r\n  \r\n      .yvv-action-btn {\r\n          flex: 1;\r\n          padding: 14px;\r\n          border: none;\r\n          border-radius: 10px;\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          gap: 8px;\r\n          font-family: inherit;\r\n      }\r\n  \r\n      .yvv-stream-action {\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-stream-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-stream-action.playing {\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n      }\r\n  \r\n      .yvv-download-action {\r\n          background: linear-gradient(135deg, var(--warning-color), var(--warning-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-download-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-audio-action {\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-audio-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      \/* Audio Player Section *\/\r\n      .yvv-audio-player-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          padding: 35px;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInRight 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-audio-visualizer {\r\n          background: linear-gradient(135deg, rgba(138, 108, 252, 0.1), rgba(167, 139, 250, 0.12));\r\n          border: 1px solid rgba(138, 108, 252, 0.3);\r\n          border-radius: var(--border-radius);\r\n          padding: 30px;\r\n          margin-bottom: 25px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-visualizer-bars {\r\n          display: flex;\r\n          align-items: end;\r\n          justify-content: center;\r\n          gap: 6px;\r\n          height: 80px;\r\n          margin-bottom: 20px;\r\n      }\r\n  \r\n      .yvv-visualizer-bar {\r\n          width: 6px;\r\n          background: linear-gradient(to top, var(--accent-color), var(--accent-light), var(--secondary-light));\r\n          border-radius: 3px;\r\n          animation: audioWave 1.8s ease-in-out infinite;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(1) {\r\n          height: 30px;\r\n          animation-delay: 0s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(2) {\r\n          height: 50px;\r\n          animation-delay: 0.1s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(3) {\r\n          height: 35px;\r\n          animation-delay: 0.2s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(4) {\r\n          height: 60px;\r\n          animation-delay: 0.3s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(5) {\r\n          height: 45px;\r\n          animation-delay: 0.4s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(6) {\r\n          height: 70px;\r\n          animation-delay: 0.5s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(7) {\r\n          height: 40px;\r\n          animation-delay: 0.6s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(8) {\r\n          height: 55px;\r\n          animation-delay: 0.7s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(9) {\r\n          height: 35px;\r\n          animation-delay: 0.8s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(10) {\r\n          height: 65px;\r\n          animation-delay: 0.9s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(11) {\r\n          height: 45px;\r\n          animation-delay: 1.0s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(12) {\r\n          height: 30px;\r\n          animation-delay: 1.1s;\r\n      }\r\n  \r\n      @keyframes audioWave {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: scaleY(0.4);\r\n              opacity: 0.7;\r\n          }\r\n  \r\n          50% {\r\n              transform: scaleY(1);\r\n              opacity: 1;\r\n          }\r\n      }\r\n  \r\n      .yvv-audio-controls {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 20px;\r\n          background: rgba(138, 108, 252, 0.1);\r\n          border-radius: var(--border-radius);\r\n          padding: 20px 25px;\r\n      }\r\n  \r\n      .yvv-audio-play-btn {\r\n          width: 60px;\r\n          height: 60px;\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          border: none;\r\n          border-radius: 50%;\r\n          color: white;\r\n          font-size: 24px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-audio-play-btn:hover {\r\n          transform: scale(1.1);\r\n          box-shadow: var(--shadow-lg);\r\n      }\r\n  \r\n      .yvv-audio-progress {\r\n          flex: 1;\r\n          cursor: pointer;\r\n          padding: 15px 0;\r\n      }\r\n  \r\n      .yvv-audio-progress-track {\r\n          width: 100%;\r\n          height: 8px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 4px;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .yvv-audio-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          border-radius: 4px;\r\n          width: 0%;\r\n          transition: width 0.1s ease;\r\n      }\r\n  \r\n      .yvv-audio-time {\r\n          color: var(--text-primary);\r\n          font-size: 16px;\r\n          font-weight: 600;\r\n          min-width: 100px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-audio-volume {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 12px;\r\n          min-width: 120px;\r\n      }\r\n  \r\n      .yvv-audio-volume-icon {\r\n          color: var(--text-primary);\r\n          font-size: 20px;\r\n          width: 24px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider {\r\n          width: 80px;\r\n          height: 6px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 3px;\r\n          outline: none;\r\n          cursor: pointer;\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider::-webkit-slider-thumb {\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--accent-light);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider::-moz-range-thumb {\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--accent-light);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          border: none;\r\n      }\r\n  \r\n      \/* Download Progress *\/\r\n      .yvv-download-progress {\r\n          position: fixed;\r\n          bottom: 20px;\r\n          right: 20px;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius);\r\n          padding: 20px;\r\n          min-width: 320px;\r\n          box-shadow: var(--shadow-xl);\r\n          z-index: 1000;\r\n          display: none;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-download-progress.show {\r\n          display: block;\r\n          animation: slideInRight 0.4s ease-out;\r\n      }\r\n  \r\n      .yvv-progress-header {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n          margin-bottom: 15px;\r\n      }\r\n  \r\n      .yvv-progress-text {\r\n          font-weight: 600;\r\n          font-size: 14px;\r\n      }\r\n  \r\n      .yvv-cancel-btn {\r\n          background: rgba(220, 38, 38, 0.1);\r\n          border: 1px solid rgba(220, 38, 38, 0.3);\r\n          color: var(--danger-light);\r\n          padding: 6px 12px;\r\n          border-radius: 6px;\r\n          font-size: 12px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      .yvv-cancel-btn:hover {\r\n          background: rgba(220, 38, 38, 0.2);\r\n      }\r\n  \r\n      .yvv-progress-bar-container {\r\n          width: 100%;\r\n          height: 8px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 4px;\r\n          overflow: hidden;\r\n          margin-bottom: 10px;\r\n      }\r\n  \r\n      .yvv-progress-bar-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          border-radius: 4px;\r\n          width: 0%;\r\n          transition: width 0.3s ease;\r\n      }\r\n  \r\n      .yvv-progress-details {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          font-size: 12px;\r\n          color: var(--text-secondary);\r\n      }\r\n  \r\n      \/* Loading Animation *\/\r\n      .yvv-cyber-loading {\r\n          position: relative;\r\n          width: 100%;\r\n          max-width: 500px;\r\n          margin: 0 auto;\r\n          padding: 40px;\r\n          background: linear-gradient(135deg, rgba(138, 108, 252, 0.1), rgba(167, 139, 250, 0.12));\r\n          border: 1px solid rgba(138, 108, 252, 0.3);\r\n          border-radius: var(--border-radius-lg);\r\n      }\r\n  \r\n      .yvv-loading-grid {\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: 0;\r\n          background-image:\r\n              linear-gradient(rgba(138, 108, 252, 0.1) 1px, transparent 1px),\r\n              linear-gradient(90deg, rgba(138, 108, 252, 0.1) 1px, transparent 1px);\r\n          background-size: 25px 25px;\r\n          animation: gridShift 8s linear infinite;\r\n      }\r\n  \r\n      @keyframes gridShift {\r\n          0% {\r\n              transform: translate(0, 0);\r\n          }\r\n  \r\n          100% {\r\n              transform: translate(25px, 25px);\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-waves {\r\n          display: flex;\r\n          flex-direction: column;\r\n          gap: 12px;\r\n          margin-bottom: 25px;\r\n      }\r\n  \r\n      .yvv-loading-wave {\r\n          height: 4px;\r\n          background: linear-gradient(90deg, transparent, var(--primary-light), transparent);\r\n          border-radius: 2px;\r\n          animation: waveFlow 2.5s ease-in-out infinite;\r\n      }\r\n  \r\n      .yvv-loading-wave:nth-child(2) {\r\n          animation-delay: 0.5s;\r\n      }\r\n  \r\n      .yvv-loading-wave:nth-child(3) {\r\n          animation-delay: 1s;\r\n      }\r\n  \r\n      @keyframes waveFlow {\r\n  \r\n          0%,\r\n          100% {\r\n              opacity: 0.3;\r\n              transform: scaleX(0.3);\r\n          }\r\n  \r\n          50% {\r\n              opacity: 1;\r\n              transform: scaleX(1);\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-text {\r\n          text-align: center;\r\n          color: var(--text-primary);\r\n          font-size: 18px;\r\n          font-weight: 600;\r\n      }\r\n  \r\n      .yvv-loading-dots::after {\r\n          content: '';\r\n          animation: loadingDots 2.5s steps(4, end) infinite;\r\n      }\r\n  \r\n      @keyframes loadingDots {\r\n  \r\n          0%,\r\n          20% {\r\n              content: '';\r\n          }\r\n  \r\n          40% {\r\n              content: '.';\r\n          }\r\n  \r\n          60% {\r\n              content: '..';\r\n          }\r\n  \r\n          80%,\r\n          100% {\r\n              content: '...';\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-progress-bar {\r\n          width: 100%;\r\n          height: 6px;\r\n          background: rgba(0, 0, 0, 0.08);\r\n          border-radius: 3px;\r\n          overflow: hidden;\r\n          margin-top: 15px;\r\n      }\r\n  \r\n      .yvv-loading-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(90deg, var(--primary-light), var(--accent-light));\r\n          border-radius: 3px;\r\n          animation: progressFlow 3s ease-in-out infinite;\r\n      }\r\n  \r\n      @keyframes progressFlow {\r\n          0% {\r\n              width: 0%;\r\n          }\r\n  \r\n          50% {\r\n              width: 80%;\r\n          }\r\n  \r\n          100% {\r\n              width: 100%;\r\n          }\r\n      }\r\n  \r\n      \/* Animations *\/\r\n      @keyframes fadeInDown {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(-30px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes fadeInUp {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(30px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInUp {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInLeft {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateX(-50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateX(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInRight {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateX(50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateX(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes float {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: translateY(0px) scale(1);\r\n          }\r\n  \r\n          50% {\r\n              transform: translateY(-10px) scale(1.05);\r\n          }\r\n      }\r\n  \r\n      @keyframes pulse {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: scale(1);\r\n              opacity: 0.5;\r\n          }\r\n  \r\n          50% {\r\n              transform: scale(1.1);\r\n              opacity: 0.8;\r\n          }\r\n      }\r\n  \r\n      \/* Responsive Design *\/\r\n      @media (max-width: 768px) {\r\n          .yvv-container {\r\n              padding: 15px;\r\n          }\r\n  \r\n          .yvv-search-form {\r\n              flex-direction: column;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-search-btn {\r\n              min-width: 100%;\r\n          }\r\n  \r\n          .yvv-video-metadata {\r\n              grid-template-columns: 1fr;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-video-stats {\r\n              justify-content: center;\r\n          }\r\n  \r\n          .yvv-format-grid {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .yvv-format-actions {\r\n              flex-direction: column;\r\n          }\r\n  \r\n          .yvv-main-video {\r\n              height: 50vh;\r\n              min-height: 300px;\r\n          }\r\n  \r\n          .yvv-video-controls {\r\n              flex-wrap: wrap;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-progress-section {\r\n              order: 3;\r\n              width: 100%;\r\n              margin: 15px 0 0 0;\r\n          }\r\n  \r\n          .yvv-audio-controls {\r\n              flex-wrap: wrap;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-audio-progress {\r\n              order: 3;\r\n              width: 100%;\r\n          }\r\n  \r\n          .yvv-download-progress {\r\n              left: 15px;\r\n              right: 15px;\r\n              min-width: auto;\r\n          }\r\n      }\r\n  \r\n      @media (max-width: 480px) {\r\n          .yvv-container {\r\n              padding: 10px;\r\n          }\r\n  \r\n          .yvv-search-section,\r\n          .yvv-video-info-section,\r\n          .yvv-audio-player-section {\r\n              padding: 25px;\r\n          }\r\n  \r\n          .yvv-brand-logo {\r\n              flex-direction: column;\r\n              gap: 20px;\r\n          }\r\n  \r\n          .yvv-feature-badges {\r\n              flex-direction: column;\r\n              align-items: center;\r\n              gap: 10px;\r\n          }\r\n  \r\n          .yvv-feature-badge {\r\n              width: 100%;\r\n              max-width: 300px;\r\n              justify-content: center;\r\n          }\r\n  \r\n          .yvv-format-tabs {\r\n              flex-direction: column;\r\n              align-items: center;\r\n              gap: 8px;\r\n          }\r\n  \r\n          .yvv-format-tab {\r\n              width: 100%;\r\n              max-width: 200px;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-main-video {\r\n              height: 40vh;\r\n              min-height: 250px;\r\n          }\r\n  \r\n          .yvv-video-header {\r\n              flex-direction: column;\r\n              gap: 15px;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-current-quality-badge {\r\n              margin-right: 0;\r\n          }\r\n      }\r\n  <\/style>\r\n  \r\n  <body data-aos-easing=\"ease-in-out\" data-aos-duration=\"800\" data-aos-delay=\"0\" data-new-gr-c-s-check-loaded=\"14.1249.0\" data-gr-ext-installed=\"\" data-new-gr-c-s-loaded=\"14.1223.0\" class=\"\" style=\"\">\r\n  \r\n       <section class=\"custom-hero-tools-ytvv\">\r\n          <div class=\"container\">\r\n              <!-- Header Section -->\r\n          <div class=\"yvv-header\">\r\n              <div class=\"yvv-brand-logo\">\r\n                  <div class=\"yvv-brand-icon\">\ud83c\udfa5<\/div>\r\n                  <h1 class=\"yvv-brand-title\"><span class=\"va-cap\">P<\/span>rivate <span class=\"va-cap\">Y<\/span>outube <span class=\"va-cap\">V<\/span>iewer<\/h1>\r\n              <\/div>\r\n              <div class=\"yvv-brand-subtitle\">Experience YouTube videos with advanced streaming capabilities and premium\r\n                  audio quality<\/div>\r\n  \r\n              <div class=\"yvv-feature-badges\">\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>HD Streaming<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Audio Player<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Download Options<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Premium Experience<\/span>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Search Section -->\r\n          <div class=\"yvv-search-section\">\r\n              <div class=\"yvv-search-form\">\r\n                  <input type=\"text\" class=\"yvv-search-input\" placeholder=\"Enter YouTube URL to start viewing (e.g., https:\/\/www.youtube.com\/watch?v=dQw4w9WgXcQ)\" id=\"yvv-videoInput\">\r\n                  <button class=\"yvv-search-btn\" onclick=\"yvv_loadVideo()\" id=\"yvv-loadBtn\">\r\n                      <span id=\"yvv-loadBtnText\">\ud83c\udfa5 Load Video<\/span>\r\n                  <\/button>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-loading-indicator\" id=\"yvv-loadingIndicator\">\r\n                  <div class=\"yvv-cyber-loading\">\r\n                      <div class=\"yvv-loading-grid\"><\/div>\r\n                      <div class=\"yvv-loading-waves\">\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-loading-text\">\r\n                          <span class=\"yvv-loading-dots\">Loading video content<\/span>\r\n                          <div class=\"yvv-loading-progress-bar\">\r\n                              <div class=\"yvv-loading-progress-fill\"><\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-error-display\" id=\"yvv-errorDisplay\"><\/div>\r\n          <\/div>\r\n  \r\n          <!-- Video Player Section - Shows immediately after loading -->\r\n          <div class=\"yvv-video-player-section\" id=\"yvv-videoPlayerSection\">\r\n              <div class=\"yvv-video-header\">\r\n                  <h2 class=\"yvv-video-title\" id=\"yvv-playerVideoTitle\">Video Title<\/h2>\r\n                  <div class=\"yvv-current-quality-badge\" id=\"yvv-currentQualityBadge\">Ready to Play<\/div>\r\n                  <button class=\"yvv-close-viewer-btn\" onclick=\"yvv_closeVideoPlayer()\">\u00d7<\/button>\r\n              <\/div>\r\n              <div class=\"yvv-video-container\">\r\n                  <video class=\"yvv-main-video\" id=\"yvv-mainVideoPlayer\" controls=\"\">\r\n                      Your browser does not support the video tag.\r\n                  <\/video>\r\n                  <div class=\"yvv-video-thumbnail-overlay\" id=\"yvv-videoThumbnailOverlay\">\r\n                      <div class=\"yvv-thumbnail-play-btn\" onclick=\"yvv_playDefaultVideo()\">\u25b6<\/div>\r\n                  <\/div>\r\n              <\/div>\r\n              <div class=\"yvv-video-controls-section\">\r\n                  <div class=\"yvv-video-controls\">\r\n                      <button class=\"yvv-control-btn\" id=\"yvv-playPauseControl\" onclick=\"yvv_toggleVideoPlayback()\">\u25b6<\/button>\r\n                      <div class=\"yvv-progress-section\">\r\n                          <div class=\"yvv-progress-bar\" onclick=\"yvv_seekVideoTo(event)\">\r\n                              <div class=\"yvv-progress-fill\" id=\"yvv-videoProgressFill\"><\/div>\r\n                          <\/div>\r\n                          <div class=\"yvv-time-info\" id=\"yvv-videoTimeInfo\">0:00 \/ 0:00<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-volume-section\">\r\n                          <span class=\"yvv-volume-icon\" id=\"yvv-videoVolumeIcon\">\ud83d\udd0a<\/span>\r\n                          <input type=\"range\" class=\"yvv-volume-control\" id=\"yvv-videoVolumeControl\" min=\"0\" max=\"100\" value=\"50\" oninput=\"yvv_adjustVideoVolume(this.value)\">\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Video Info Section -->\r\n          <div class=\"yvv-video-info-section\" id=\"yvv-videoInfoSection\">\r\n              <div class=\"yvv-video-metadata\">\r\n                  <img decoding=\"async\" class=\"yvv-video-thumbnail\" id=\"yvv-videoThumbnail\" src=\"\/placeholder.svg\" alt=\"Video Thumbnail\">\r\n                  <div class=\"yvv-video-details\">\r\n                      <h2 id=\"yvv-videoDetailsTitle\">Video Title<\/h2>\r\n                      <div class=\"yvv-video-stats\">\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\u23f1<\/div>\r\n                              <span id=\"yvv-videoDurationStat\">Duration<\/span>\r\n                          <\/div>\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\ud83d\udc64<\/div>\r\n                              <span id=\"yvv-videoUploaderStat\">Channel<\/span>\r\n                          <\/div>\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\ud83c\udfac<\/div>\r\n                              <span>Premium Quality<\/span>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-format-selection\">\r\n                  <h3 class=\"yvv-format-title\">Available Formats & Downloads<\/h3>\r\n                  <div class=\"yvv-format-tabs\">\r\n                      <div class=\"yvv-format-tab active\" onclick=\"yvv_switchFormatTab('video')\">Video Formats<\/div>\r\n                      <div class=\"yvv-format-tab\" onclick=\"yvv_switchFormatTab('audio')\">Audio Only<\/div>\r\n                  <\/div>\r\n                  <div class=\"yvv-format-grid\" id=\"yvv-formatGrid\">\r\n                      <!-- Format options will be populated here -->\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Audio Player Section -->\r\n          <div class=\"yvv-audio-player-section\" id=\"yvv-audioPlayerSection\">\r\n              <div class=\"yvv-audio-visualizer\">\r\n                  <div class=\"yvv-visualizer-bars\">\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                  <\/div>\r\n                  <div class=\"yvv-audio-controls\">\r\n                      <button class=\"yvv-audio-play-btn\" id=\"yvv-audioPlayBtn\" onclick=\"yvv_toggleAudioPlayback()\">\u25b6<\/button>\r\n                      <div class=\"yvv-audio-progress\" onclick=\"yvv_seekAudioTo(event)\">\r\n                          <div class=\"yvv-audio-progress-track\">\r\n                              <div class=\"yvv-audio-progress-fill\" id=\"yvv-audioProgressFill\"><\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-audio-time\" id=\"yvv-audioTimeInfo\">0:00 \/ 0:00<\/div>\r\n                      <div class=\"yvv-audio-volume\">\r\n                          <span class=\"yvv-audio-volume-icon\" id=\"yvv-audioVolumeIcon\">\ud83d\udd0a<\/span>\r\n                          <input type=\"range\" class=\"yvv-audio-volume-slider\" id=\"yvv-audioVolumeSlider\" min=\"0\" max=\"100\" value=\"50\" oninput=\"yvv_adjustAudioVolume(this.value)\">\r\n                      <\/div>\r\n                  <\/div>\r\n                  <audio id=\"yvv-audioPlayer\" preload=\"none\" style=\"display: none;\"><\/audio>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  \r\n      <!-- Download Progress -->\r\n      <div class=\"yvv-download-progress\" id=\"yvv-downloadProgress\">\r\n          <div class=\"yvv-progress-header\">\r\n              <span class=\"yvv-progress-text\" id=\"yvv-progressText\">Downloading...<\/span>\r\n              <button class=\"yvv-cancel-btn\" onclick=\"yvv_cancelDownload()\">Cancel<\/button>\r\n          <\/div>\r\n          <div class=\"yvv-progress-bar-container\">\r\n              <div class=\"yvv-progress-bar-fill\" id=\"yvv-progressBarFill\"><\/div>\r\n          <\/div>\r\n          <div class=\"yvv-progress-details\">\r\n              <span id=\"yvv-progressPercent\">0%<\/span>\r\n              <span id=\"yvv-progressSize\">0 MB \/ 0 MB<\/span>\r\n          <\/div>\r\n      <\/div>\r\n          \r\n       <\/section>\r\n  \r\n  <!-- Work Process Section -->\r\n  <section class=\"ytvv-work-process-section\" id=\"how-it-works\">\r\n      <div class=\"container ytvv-work-process-content\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title ytvv-light-title\">How Our Private YouTube Viewer Works<\/h2>\r\n              <p class=\"ytvv-section-subtitle ytvv-light-subtitle\">Watch YouTube videos privately and securely in just 3 easy steps<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row\">\r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">1<\/div>\r\n                      <h4 class=\"text-white\">Enter Video URL<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Paste the YouTube video URL you want to watch privately and safely<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">2<\/div>\r\n                      <h4 class=\"text-white\">Process Securely<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Our private system fetches the video without connecting directly to YouTube<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">3<\/div>\r\n                      <h4 class=\"text-white\">Watch Privately<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Enjoy the video with full privacy \u2014 no view tracking, no data sharing<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- Features Section -->\r\n  <section class=\"ytvv-features-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title\">Key Features<\/h2>\r\n              <p class=\"ytvv-section-subtitle\">Our Private YouTube Viewer ensures your online privacy and smooth playback<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row\">\r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-lock\"><\/i>\r\n                      <\/div>\r\n                      <h4>Private & Secure<\/h4>\r\n                      <p>Watch YouTube videos without being tracked, logged, or identified<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-shield\"><\/i>\r\n                      <\/div>\r\n                      <h4>No Tracking<\/h4>\r\n                      <p>YouTube and advertisers can\u2019t trace or record your viewing activity<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-video\"><\/i>\r\n                      <\/div>\r\n                      <h4>High Quality Streaming<\/h4>\r\n                      <p>Stream videos in their original quality up to 4K without lag or compression<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-stopwatch\"><\/i>\r\n                      <\/div>\r\n                      <h4>Instant Access<\/h4>\r\n                      <p>Our optimized player delivers fast loading and smooth video playback<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-mobile\"><\/i>\r\n                      <\/div>\r\n                      <h4>Ad-Free Experience<\/h4>\r\n                      <p>Say goodbye to intrusive YouTube ads \u2014 enjoy uninterrupted viewing<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-devices\"><\/i>\r\n                      <\/div>\r\n                      <h4>All-Device Support<\/h4>\r\n                      <p>Use the Private YouTube Viewer on mobile, tablet, or desktop seamlessly<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- Why Choose Section -->\r\n  <section class=\"ytvv-why-choose-section\">\r\n      <div class=\"container\">\r\n          <div class=\"row align-items-center\">\r\n              <div class=\"col-lg-6 mb-5 mb-lg-0\" data-aos=\"fade-right\">\r\n                  <div class=\"ytvv-why-choose-image ytvv-floating-element\">\r\n                      <img decoding=\"async\" src=\"https:\/\/viewanonymous.com\/wp-content\/uploads\/2026\/03\/Private_Youtube_Viewer.webp\" alt=\"Private YouTube Viewer\" class=\"img-fluid rounded-3\">\r\n                  <\/div>\r\n              <\/div>\r\n              <div class=\"col-lg-6\" data-aos=\"fade-left\">\r\n                  <h2 class=\"ytvv-section-title mb-4\">Why Choose Our Private YouTube Viewer?<\/h2>\r\n                  <p class=\"mb-4\">Our Private YouTube Viewer is designed for complete anonymity and seamless streaming. Whether you want to research, relax, or explore videos securely, we keep your data private and your experience ad-free.<\/p>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">No Login Required<\/h5>\r\n                          <p class=\"mb-0\">Start watching instantly \u2014 no YouTube account or credentials needed<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Completely Private<\/h5>\r\n                          <p class=\"mb-0\">Your viewing data, cookies, and IP remain fully hidden and secure<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Fast & Reliable<\/h5>\r\n                          <p class=\"mb-0\">Instant video access with zero buffering or playback delays<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">No Ads or Distractions<\/h5>\r\n                          <p class=\"mb-0\">Watch content in peace without pop-ups or pre-roll ads<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- FAQ Section -->\r\n  <section class=\"ytvv-faq-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title\">Frequently Asked Questions<\/h2>\r\n              <p class=\"ytvv-section-subtitle\">Everything you need to know about our Private YouTube Viewer<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row justify-content-center\">\r\n              <div class=\"col-lg-8\">\r\n                  <div class=\"accordion\" id=\"ytvv-faqAccordion\">\r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading1\">\r\n                              <button class=\"ytvv-accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse1\" aria-expanded=\"true\" aria-controls=\"ytvv-collapse1\">\r\n                                  Is the Private YouTube Viewer legal to use?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse1\" class=\"accordion-collapse collapse show\" aria-labelledby=\"ytvv-heading1\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  Yes, it\u2019s 100% legal. Our Private YouTube Viewer only accesses publicly available content \u2014 we don\u2019t bypass YouTube restrictions or private videos.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading2\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse2\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse2\">\r\n                                  Can I watch private or unlisted videos?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse2\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading2\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No, our service respects YouTube\u2019s privacy settings. It can only display public videos available to everyone.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading3\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse3\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse3\">\r\n                                  Does my watch activity get recorded?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse3\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading3\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  Not at all. We don\u2019t log, track, or save your viewing data \u2014 it remains completely private and anonymous.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading4\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse4\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse4\">\r\n                                  Do I need to install anything to use it?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse4\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading4\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  Nope! The Private YouTube Viewer runs completely online. Just paste a link and start watching privately.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading5\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse5\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse5\">\r\n                                  Can I download videos using this tool?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse5\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading5\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No, our Private YouTube Viewer is strictly for viewing only. Downloading videos would violate YouTube\u2019s terms of service.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n    \r\n    <!-- Footer -->\r\n    \r\n  \r\n  <!-- Copyright Section -->\r\n  \r\n  \r\n  \r\n  \r\n   <!-- YouTub Video Viewer js -->\r\n    <script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n    <script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n   <script>\r\n      \/\/ Using your original API\r\n      const API_URL = 'https:\/\/tools.xrespond.com\/api\/youtube\/video\/downloader';\r\n      let currentVideoData = null;\r\n      let videoPlayer = null;\r\n      let audioPlayer = null;\r\n      let isVideoPlaying = false;\r\n      let isAudioPlaying = false;\r\n      let currentFormatTab = 'video';\r\n      let downloadController = null;\r\n      let currentPlayingFormat = null;\r\n      let defaultVideoFormat = null;\r\n  \r\n      function yvv_isValidYouTubeURL(url) {\r\n          const patterns = [\r\n              \/^https:\\\/\\\/(?:www\\.)?youtube\\.com\\\/watch\\?v=[\\w-]+\/,\r\n              \/^https:\\\/\\\/youtu\\.be\\\/[\\w-]+\/,\r\n              \/^https:\\\/\\\/(?:www\\.)?youtube\\.com\\\/shorts\\\/[\\w-]+\/\r\n          ];\r\n          return patterns.some(pattern => pattern.test(url));\r\n      }\r\n  \r\n      function yvv_showError(message) {\r\n          const errorDiv = document.getElementById('yvv-errorDisplay');\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n  \r\n          errorDiv.textContent = message;\r\n          errorDiv.style.display = 'block';\r\n          urlInput.classList.add('error');\r\n  \r\n          setTimeout(() => {\r\n              errorDiv.style.display = 'none';\r\n              urlInput.classList.remove('error');\r\n          }, 5000);\r\n      }\r\n  \r\n      function yvv_hideError() {\r\n          const errorDiv = document.getElementById('yvv-errorDisplay');\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n  \r\n          errorDiv.style.display = 'none';\r\n          urlInput.classList.remove('error');\r\n      }\r\n  \r\n      function yvv_showLoading() {\r\n          document.getElementById('yvv-loadingIndicator').style.display = 'block';\r\n          document.getElementById('yvv-loadBtn').disabled = true;\r\n          document.getElementById('yvv-loadBtnText').textContent = '\u23f3 Loading...';\r\n      }\r\n  \r\n      function yvv_hideLoading() {\r\n          document.getElementById('yvv-loadingIndicator').style.display = 'none';\r\n          document.getElementById('yvv-loadBtn').disabled = false;\r\n          document.getElementById('yvv-loadBtnText').textContent = '\ud83c\udfa5 Load Video';\r\n      }\r\n  \r\n      function yvv_formatFileSize(bytes) {\r\n          if (bytes === 0) return '0 Bytes';\r\n          const k = 1024;\r\n          const sizes = ['Bytes', 'KB', 'MB', 'GB'];\r\n          const i = Math.floor(Math.log(bytes) \/ Math.log(k));\r\n          return parseFloat((bytes \/ Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\r\n      }\r\n  \r\n      function yvv_showDownloadProgress(text, progress = 0, downloaded = 0, total = 0) {\r\n          const progressDiv = document.getElementById('yvv-downloadProgress');\r\n          const progressText = document.getElementById('yvv-progressText');\r\n          const progressFill = document.getElementById('yvv-progressBarFill');\r\n          const progressPercent = document.getElementById('yvv-progressPercent');\r\n          const progressSize = document.getElementById('yvv-progressSize');\r\n  \r\n          progressText.textContent = text;\r\n          progressFill.style.width = `${progress}%`;\r\n          progressPercent.textContent = `${Math.round(progress)}%`;\r\n          progressSize.textContent = `${yvv_formatFileSize(downloaded)} \/ ${yvv_formatFileSize(total)}`;\r\n          progressDiv.classList.add('show');\r\n      }\r\n  \r\n      function yvv_hideDownloadProgress() {\r\n          document.getElementById('yvv-downloadProgress').classList.remove('show');\r\n      }\r\n  \r\n      async function yvv_loadVideo() {\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n          const url = urlInput.value.trim();\r\n  \r\n          if (!url) {\r\n              yvv_showError('Please enter a YouTube URL');\r\n              return;\r\n          }\r\n  \r\n          if (!yvv_isValidYouTubeURL(url)) {\r\n              yvv_showError('Please enter a valid YouTube URL');\r\n              return;\r\n          }\r\n  \r\n          yvv_hideError();\r\n          yvv_showLoading();\r\n  \r\n          try {\r\n              const formData = new FormData();\r\n              formData.append('url', url);\r\n  \r\n              const response = await fetch(API_URL, {\r\n                  method: 'POST',\r\n                  body: formData\r\n              });\r\n  \r\n              if (!response.ok) {\r\n                  throw new Error(`HTTP error! status: ${response.status}`);\r\n              }\r\n  \r\n              const data = await response.json();\r\n  \r\n              if (!data.success) {\r\n                  throw new Error(data.message || 'Failed to load video data');\r\n              }\r\n  \r\n              currentVideoData = data.data.data;\r\n              yvv_displayVideoInfo(currentVideoData);\r\n  \r\n              \/\/ Show video player with thumbnail\r\n              yvv_setupVideoPlayerWithThumbnail();\r\n  \r\n          } catch (error) {\r\n              console.error('Error:', error);\r\n              yvv_showError('Failed to load video data. Please check the URL and try again.');\r\n          } finally {\r\n              yvv_hideLoading();\r\n          }\r\n      }\r\n  \r\n      function yvv_setupVideoPlayerWithThumbnail() {\r\n          const videoPlayerSection = document.getElementById('yvv-videoPlayerSection');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n          const playerTitle = document.getElementById('yvv-playerVideoTitle');\r\n          const qualityBadge = document.getElementById('yvv-currentQualityBadge');\r\n  \r\n          \/\/ Set thumbnail background\r\n          thumbnailOverlay.style.backgroundImage = `url(${currentVideoData.thumbnail})`;\r\n          thumbnailOverlay.classList.remove('hidden');\r\n  \r\n          \/\/ Set title\r\n          playerTitle.textContent = currentVideoData.title;\r\n          qualityBadge.textContent = 'Ready to Play';\r\n  \r\n          \/\/ Show video player section\r\n          videoPlayerSection.style.display = 'block';\r\n  \r\n          \/\/ Find default video format (prefer 720p or first available)\r\n          const videoFormats = currentVideoData.links.filter(link => link.type === 'video');\r\n          defaultVideoFormat = videoFormats.find(f => f.resolution.includes('720p')) || videoFormats[0];\r\n  \r\n          \/\/ Reset video player\r\n          const videoPlayer = document.getElementById('yvv-mainVideoPlayer');\r\n          videoPlayer.src = '';\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Hide audio player if open\r\n          document.getElementById('yvv-audioPlayerSection').style.display = 'none';\r\n      }\r\n  \r\n      function yvv_playDefaultVideo() {\r\n          if (defaultVideoFormat) {\r\n              yvv_streamVideoDirectly(defaultVideoFormat.download_url, defaultVideoFormat.resolution);\r\n              yvv_updateCurrentPlayingFormat(defaultVideoFormat.resolution, 'video');\r\n          }\r\n      }\r\n  \r\n      function yvv_displayVideoInfo(data) {\r\n          \/\/ Set video info\r\n          document.getElementById('yvv-videoDetailsTitle').textContent = data.title;\r\n          document.getElementById('yvv-videoDurationStat').textContent = data.duration;\r\n          document.getElementById('yvv-videoUploaderStat').textContent = data.uploader;\r\n          document.getElementById('yvv-videoThumbnail').src = data.thumbnail;\r\n  \r\n          \/\/ Display formats\r\n          yvv_displayFormats(data.links);\r\n  \r\n          document.getElementById('yvv-videoInfoSection').style.display = 'block';\r\n      }\r\n  \r\n      function yvv_streamVideoDirectly(url, resolution) {\r\n          const videoPlayer = document.getElementById('yvv-mainVideoPlayer');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n          const qualityBadge = document.getElementById('yvv-currentQualityBadge');\r\n  \r\n          \/\/ Hide thumbnail overlay\r\n          thumbnailOverlay.classList.add('hidden');\r\n  \r\n          \/\/ Set video source\r\n          videoPlayer.src = url;\r\n          videoPlayer.load();\r\n  \r\n          \/\/ Update quality badge\r\n          qualityBadge.textContent = resolution;\r\n  \r\n          \/\/ Reset controls\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Setup event listeners\r\n          yvv_setupVideoEventListeners();\r\n  \r\n          \/\/ Scroll to video player\r\n          document.getElementById('yvv-videoPlayerSection').scrollIntoView({\r\n              behavior: 'smooth',\r\n              block: 'start'\r\n          });\r\n      }\r\n  \r\n      function yvv_updateCurrentPlayingFormat(quality, type) {\r\n          \/\/ Remove previous playing indicators\r\n          document.querySelectorAll('.yvv-format-option').forEach(option => {\r\n              option.classList.remove('playing');\r\n          });\r\n          document.querySelectorAll('.yvv-stream-action').forEach(btn => {\r\n              btn.classList.remove('playing');\r\n              btn.innerHTML = btn.innerHTML.replace('\u23f8 Playing', '\u25b6 Stream').replace('\ud83c\udfb5 Playing', '\ud83c\udfb5 Stream Audio');\r\n          });\r\n  \r\n          \/\/ Set current playing format\r\n          currentPlayingFormat = { quality, type };\r\n  \r\n          \/\/ Update format cards to show which is playing\r\n          const formatCards = document.querySelectorAll('.yvv-format-option');\r\n          formatCards.forEach(card => {\r\n              const qualityElement = card.querySelector('.yvv-format-quality');\r\n              const streamBtn = card.querySelector('.yvv-stream-action, .yvv-audio-action');\r\n  \r\n              if (qualityElement && streamBtn) {\r\n                  const cardQuality = qualityElement.textContent;\r\n                  const isCurrentFormat = (type === 'video' && cardQuality === quality) ||\r\n                      (type === 'audio' && cardQuality === 'Audio Quality' && quality === 'Audio');\r\n  \r\n                  if (isCurrentFormat) {\r\n                      card.classList.add('playing');\r\n                      streamBtn.classList.add('playing');\r\n                      if (type === 'video') {\r\n                          streamBtn.innerHTML = '\u23f8 Playing';\r\n                      } else {\r\n                          streamBtn.innerHTML = '\ud83c\udfb5 Playing';\r\n                      }\r\n                  }\r\n              }\r\n          });\r\n      }\r\n  \r\n      function yvv_switchFormatTab(tab) {\r\n          currentFormatTab = tab;\r\n  \r\n          \/\/ Update tab appearance\r\n          document.querySelectorAll('.yvv-format-tab').forEach(t => t.classList.remove('active'));\r\n          event.target.classList.add('active');\r\n  \r\n          \/\/ Display formats for selected tab\r\n          if (currentVideoData) {\r\n              yvv_displayFormats(currentVideoData.links);\r\n          }\r\n      }\r\n  \r\n      function yvv_displayFormats(links) {\r\n          const formatGrid = document.getElementById('yvv-formatGrid');\r\n          formatGrid.innerHTML = '';\r\n  \r\n          let formats;\r\n          if (currentFormatTab === 'video') {\r\n              formats = links.filter(link => link.type === 'video');\r\n          } else {\r\n              formats = links.filter(link => link.type === 'audio');\r\n          }\r\n  \r\n          formats.forEach((format, index) => {\r\n              const formatCard = document.createElement('div');\r\n              formatCard.className = 'yvv-format-option';\r\n  \r\n              \/\/ Check if this format is currently playing\r\n              const isPlaying = currentPlayingFormat &&\r\n                  ((currentFormatTab === 'video' && currentPlayingFormat.quality === format.resolution && currentPlayingFormat.type === 'video') ||\r\n                      (currentFormatTab === 'audio' && currentPlayingFormat.type === 'audio'));\r\n  \r\n              if (isPlaying) {\r\n                  formatCard.classList.add('playing');\r\n              }\r\n  \r\n              if (currentFormatTab === 'video') {\r\n                  \/\/ Check if this is 360p to hide download button\r\n                  const is360p = format.resolution.includes('360p');\r\n  \r\n                  formatCard.innerHTML = `\r\n                      <div class=\"yvv-format-header\">\r\n                          <div class=\"yvv-format-quality\">${format.resolution}<\/div>\r\n                          <div class=\"yvv-format-type-badge\">MP4<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-format-actions\">\r\n                          <button class=\"yvv-action-btn yvv-stream-action ${isPlaying ? 'playing' : ''}\" onclick=\"yvv_streamVideo('${format.download_url}', '${format.resolution}')\">\r\n                              ${isPlaying ? '\u23f8 Playing' : '\u25b6 Stream'}\r\n                          <\/button>\r\n                          ${!is360p ? `<button class=\"yvv-action-btn yvv-download-action\" onclick=\"yvv_downloadFile('${format.download_url}', '${format.resolution}', 'video')\">\r\n                              \u2b07\ufe0f Download\r\n                          <\/button>` : ''}\r\n                      <\/div>\r\n                  `;\r\n              } else {\r\n                  formatCard.innerHTML = `\r\n                      <div class=\"yvv-format-header\">\r\n                          <div class=\"yvv-format-quality\">Audio Quality<\/div>\r\n                          <div class=\"yvv-format-type-badge\">MP3<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-format-actions\">\r\n                          <button class=\"yvv-action-btn yvv-audio-action ${isPlaying ? 'playing' : ''}\" onclick=\"yvv_streamAudio('${format.download_url}')\">\r\n                              ${isPlaying ? '\ud83c\udfb5 Playing' : '\ud83c\udfb5 Stream Audio'}\r\n                          <\/button>\r\n                          <button class=\"yvv-action-btn yvv-download-action\" onclick=\"yvv_downloadFile('${format.download_url}', 'Audio', 'audio')\">\r\n                              \u2b07\ufe0f Download\r\n                          <\/button>\r\n                      <\/div>\r\n                  `;\r\n              }\r\n  \r\n              formatGrid.appendChild(formatCard);\r\n          });\r\n      }\r\n  \r\n      function yvv_streamVideo(url, resolution) {\r\n          yvv_streamVideoDirectly(url, resolution);\r\n          yvv_updateCurrentPlayingFormat(resolution, 'video');\r\n      }\r\n  \r\n      function yvv_streamAudio(url) {\r\n          const audioPlayer = document.getElementById('yvv-audioPlayer');\r\n          const audioPlayerSection = document.getElementById('yvv-audioPlayerSection');\r\n  \r\n          \/\/ Set audio source\r\n          audioPlayer.src = url;\r\n          audioPlayer.load();\r\n  \r\n          \/\/ Show audio player section\r\n          audioPlayerSection.style.display = 'block';\r\n          audioPlayerSection.scrollIntoView({ behavior: 'smooth' });\r\n  \r\n          \/\/ Reset controls\r\n          isAudioPlaying = false;\r\n          document.getElementById('yvv-audioPlayBtn').textContent = '\u25b6';\r\n  \r\n          \/\/ Setup event listeners\r\n          yvv_setupAudioEventListeners();\r\n  \r\n          \/\/ Update playing format\r\n          yvv_updateCurrentPlayingFormat('Audio', 'audio');\r\n  \r\n          \/\/ Hide video player if open\r\n          document.getElementById('yvv-videoPlayerSection').style.display = 'none';\r\n      }\r\n  \r\n      async function yvv_downloadFile(url, quality, type) {\r\n          const downloadBtn = event.target;\r\n          const originalText = downloadBtn.innerHTML;\r\n  \r\n          downloadBtn.disabled = true;\r\n          downloadBtn.innerHTML = '\u23f3 Preparing...';\r\n  \r\n          \/\/ Create abort controller for cancellation\r\n          downloadController = new AbortController();\r\n  \r\n          try {\r\n              yvv_showDownloadProgress(`Starting ${quality} download...`, 0);\r\n  \r\n              const response = await fetch(url, {\r\n                  signal: downloadController.signal\r\n              });\r\n  \r\n              if (!response.ok) {\r\n                  throw new Error(`HTTP error! status: ${response.status}`);\r\n              }\r\n  \r\n              const totalSize = parseInt(response.headers.get('content-length') || '0');\r\n              const reader = response.body.getReader();\r\n              let receivedSize = 0;\r\n              const chunks = [];\r\n  \r\n              while (true) {\r\n                  const { done, value } = await reader.read();\r\n  \r\n                  if (done) break;\r\n  \r\n                  chunks.push(value);\r\n                  receivedSize += value.length;\r\n  \r\n                  const progress = totalSize ? (receivedSize \/ totalSize) * 100 : 0;\r\n                  yvv_showDownloadProgress(`Downloading ${quality}...`, progress, receivedSize, totalSize);\r\n              }\r\n  \r\n              yvv_showDownloadProgress('Processing download...', 95, receivedSize, totalSize);\r\n  \r\n              \/\/ Create blob and download\r\n              const mimeType = type === 'video' ? 'video\/mp4' : 'audio\/mpeg';\r\n              const extension = type === 'video' ? 'mp4' : 'mp3';\r\n              const blob = new Blob(chunks, { type: mimeType });\r\n              const downloadUrl = URL.createObjectURL(blob);\r\n  \r\n              \/\/ Create download link\r\n              const a = document.createElement('a');\r\n              a.href = downloadUrl;\r\n              a.download = `${currentVideoData.title.replace(\/[^a-zA-Z0-9\\s]\/g, '_').trim()}_${quality}.${extension}`;\r\n              a.style.display = 'none';\r\n              document.body.appendChild(a);\r\n              a.click();\r\n              document.body.removeChild(a);\r\n  \r\n              \/\/ Clean up URL\r\n              setTimeout(() => URL.revokeObjectURL(downloadUrl), 1000);\r\n  \r\n              yvv_showDownloadProgress('Download completed!', 100, receivedSize, totalSize);\r\n              setTimeout(yvv_hideDownloadProgress, 3000);\r\n  \r\n          } catch (error) {\r\n              if (error.name === 'AbortError') {\r\n                  yvv_showDownloadProgress('Download cancelled', 0);\r\n                  setTimeout(yvv_hideDownloadProgress, 2000);\r\n              } else {\r\n                  yvv_showError(`Download failed: ${error.message}`);\r\n                  yvv_hideDownloadProgress();\r\n              }\r\n          } finally {\r\n              downloadBtn.disabled = false;\r\n              downloadBtn.innerHTML = originalText;\r\n              downloadController = null;\r\n          }\r\n      }\r\n  \r\n      function yvv_cancelDownload() {\r\n          if (downloadController) {\r\n              downloadController.abort();\r\n              downloadController = null;\r\n          }\r\n      }\r\n  \r\n      function yvv_setupVideoEventListeners() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n  \r\n          \/\/ Remove existing event listeners\r\n          video.removeEventListener('timeupdate', yvv_updateVideoProgress);\r\n          video.removeEventListener('loadedmetadata', yvv_updateVideoProgress);\r\n          video.removeEventListener('ended', yvv_handleVideoEnded);\r\n  \r\n          \/\/ Add event listeners\r\n          video.addEventListener('timeupdate', yvv_updateVideoProgress);\r\n          video.addEventListener('loadedmetadata', yvv_updateVideoProgress);\r\n          video.addEventListener('ended', yvv_handleVideoEnded);\r\n  \r\n          \/\/ Initialize volume\r\n          const volumeSlider = document.getElementById('yvv-videoVolumeControl');\r\n          video.volume = volumeSlider.value \/ 100;\r\n      }\r\n  \r\n      function yvv_setupAudioEventListeners() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n  \r\n          \/\/ Remove existing event listeners\r\n          audio.removeEventListener('timeupdate', yvv_updateAudioProgress);\r\n          audio.removeEventListener('loadedmetadata', yvv_updateAudioProgress);\r\n          audio.removeEventListener('ended', yvv_handleAudioEnded);\r\n  \r\n          \/\/ Add event listeners\r\n          audio.addEventListener('timeupdate', yvv_updateAudioProgress);\r\n          audio.addEventListener('loadedmetadata', yvv_updateAudioProgress);\r\n          audio.addEventListener('ended', yvv_handleAudioEnded);\r\n  \r\n          \/\/ Initialize volume\r\n          const volumeSlider = document.getElementById('yvv-audioVolumeSlider');\r\n          audio.volume = volumeSlider.value \/ 100;\r\n      }\r\n  \r\n      function yvv_toggleVideoPlayback() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const btn = document.getElementById('yvv-playPauseControl');\r\n  \r\n          if (isVideoPlaying) {\r\n              video.pause();\r\n              btn.textContent = '\u25b6';\r\n              isVideoPlaying = false;\r\n          } else {\r\n              video.play().catch(error => {\r\n                  console.error('Video playback failed:', error);\r\n                  yvv_showError('Video streaming not available. Please try another format.');\r\n              });\r\n              btn.textContent = '\u23f8';\r\n              isVideoPlaying = true;\r\n          }\r\n      }\r\n  \r\n      function yvv_toggleAudioPlayback() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const btn = document.getElementById('yvv-audioPlayBtn');\r\n  \r\n          if (isAudioPlaying) {\r\n              audio.pause();\r\n              btn.textContent = '\u25b6';\r\n              isAudioPlaying = false;\r\n              yvv_stopVisualizerAnimation();\r\n          } else {\r\n              audio.play().catch(error => {\r\n                  console.error('Audio playback failed:', error);\r\n                  yvv_showError('Audio streaming not available. Please try another format.');\r\n              });\r\n              btn.textContent = '\u23f8';\r\n              isAudioPlaying = true;\r\n              yvv_startVisualizerAnimation();\r\n          }\r\n      }\r\n  \r\n      function yvv_adjustVideoVolume(value) {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const volumeIcon = document.getElementById('yvv-videoVolumeIcon');\r\n  \r\n          video.volume = value \/ 100;\r\n  \r\n          if (value == 0) {\r\n              volumeIcon.textContent = '\ud83d\udd07';\r\n          } else if (value < 30) {\r\n              volumeIcon.textContent = '\ud83d\udd08';\r\n          } else if (value < 70) {\r\n              volumeIcon.textContent = '\ud83d\udd09';\r\n          } else {\r\n              volumeIcon.textContent = '\ud83d\udd0a';\r\n          }\r\n      }\r\n  \r\n      function yvv_adjustAudioVolume(value) {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const volumeIcon = document.getElementById('yvv-audioVolumeIcon');\r\n  \r\n          audio.volume = value \/ 100;\r\n  \r\n          if (value == 0) {\r\n              volumeIcon.textContent = '\ud83d\udd07';\r\n          } else if (value < 30) {\r\n              volumeIcon.textContent = '\ud83d\udd08';\r\n          } else if (value < 70) {\r\n              volumeIcon.textContent = '\ud83d\udd09';\r\n          } else {\r\n              volumeIcon.textContent = '\ud83d\udd0a';\r\n          }\r\n      }\r\n  \r\n      function yvv_seekVideoTo(event) {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const progressBar = event.currentTarget;\r\n          const rect = progressBar.getBoundingClientRect();\r\n          const clickX = event.clientX - rect.left;\r\n          const percentage = clickX \/ rect.width;\r\n  \r\n          if (video.duration) {\r\n              video.currentTime = percentage * video.duration;\r\n          }\r\n      }\r\n  \r\n      function yvv_seekAudioTo(event) {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const progressBar = event.currentTarget;\r\n          const rect = progressBar.getBoundingClientRect();\r\n          const clickX = event.clientX - rect.left;\r\n          const percentage = clickX \/ rect.width;\r\n  \r\n          if (audio.duration) {\r\n              audio.currentTime = percentage * audio.duration;\r\n          }\r\n      }\r\n  \r\n      function yvv_updateVideoProgress() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const progressFill = document.getElementById('yvv-videoProgressFill');\r\n          const timeInfo = document.getElementById('yvv-videoTimeInfo');\r\n  \r\n          if (video.duration) {\r\n              const percentage = (video.currentTime \/ video.duration) * 100;\r\n              progressFill.style.width = percentage + '%';\r\n  \r\n              const currentTime = yvv_formatTime(video.currentTime);\r\n              const totalTime = yvv_formatTime(video.duration);\r\n              timeInfo.textContent = `${currentTime} \/ ${totalTime}`;\r\n          }\r\n      }\r\n  \r\n      function yvv_updateAudioProgress() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const progressFill = document.getElementById('yvv-audioProgressFill');\r\n          const timeInfo = document.getElementById('yvv-audioTimeInfo');\r\n  \r\n          if (audio.duration) {\r\n              const percentage = (audio.currentTime \/ audio.duration) * 100;\r\n              progressFill.style.width = percentage + '%';\r\n  \r\n              const currentTime = yvv_formatTime(audio.currentTime);\r\n              const totalTime = yvv_formatTime(audio.duration);\r\n              timeInfo.textContent = `${currentTime} \/ ${totalTime}`;\r\n          }\r\n      }\r\n  \r\n      function yvv_formatTime(seconds) {\r\n          const minutes = Math.floor(seconds \/ 60);\r\n          const remainingSeconds = Math.floor(seconds % 60);\r\n          return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;\r\n      }\r\n  \r\n      function yvv_handleVideoEnded() {\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-videoProgressFill').style.width = '0%';\r\n      }\r\n  \r\n      function yvv_handleAudioEnded() {\r\n          document.getElementById('yvv-audioPlayBtn').textContent = '\u25b6';\r\n          isAudioPlaying = false;\r\n          yvv_stopVisualizerAnimation();\r\n          document.getElementById('yvv-audioProgressFill').style.width = '0%';\r\n      }\r\n  \r\n      function yvv_closeVideoPlayer() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const videoPlayerSection = document.getElementById('yvv-videoPlayerSection');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n  \r\n          video.pause();\r\n          video.src = '';\r\n          videoPlayerSection.style.display = 'none';\r\n          thumbnailOverlay.classList.remove('hidden');\r\n          isVideoPlaying = false;\r\n          currentPlayingFormat = null;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Reset format indicators\r\n          document.querySelectorAll('.yvv-format-option').forEach(option => {\r\n              option.classList.remove('playing');\r\n          });\r\n          document.querySelectorAll('.yvv-stream-action').forEach(btn => {\r\n              btn.classList.remove('playing');\r\n              btn.innerHTML = btn.innerHTML.replace('\u23f8 Playing', '\u25b6 Stream');\r\n          });\r\n      }\r\n  \r\n      function yvv_startVisualizerAnimation() {\r\n          const bars = document.querySelectorAll('.yvv-visualizer-bar');\r\n          bars.forEach(bar => {\r\n              bar.style.animationPlayState = 'running';\r\n          });\r\n      }\r\n  \r\n      function yvv_stopVisualizerAnimation() {\r\n          const bars = document.querySelectorAll('.yvv-visualizer-bar');\r\n          bars.forEach(bar => {\r\n              bar.style.animationPlayState = 'paused';\r\n          });\r\n      }\r\n  \r\n      \/\/ Event listeners\r\n      document.getElementById('yvv-videoInput').addEventListener('keypress', function (e) {\r\n          if (e.key === 'Enter') {\r\n              yvv_loadVideo();\r\n          }\r\n      });\r\n  \r\n      document.getElementById('yvv-videoInput').addEventListener('input', function (e) {\r\n          const url = e.target.value.trim();\r\n          if (url && !yvv_isValidYouTubeURL(url)) {\r\n              e.target.classList.add('error');\r\n          } else {\r\n              e.target.classList.remove('error');\r\n              yvv_hideError();\r\n          }\r\n      });\r\n  \r\n      \/\/ Auto-focus on input\r\n      document.getElementById('yvv-videoInput').focus();\r\n  <\/script>\r\n  \r\n  \r\n  \r\n    <noscript>\r\n      <style type=\"text\/css\">\r\n        [data-aos] {\r\n          opacity: 1 !important;\r\n          transform: translate(0) scale(1) !important;\r\n        }\r\n      <\/style>\r\n    <\/noscript>\r\n\r\n    <!-- Bootstrap then AOS: AOS CSS hides [data-aos] until init runs \u2014 load library before AOS.init() -->\r\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\r\n    <script src=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.js\"><\/script>\r\n\r\n    <script>\r\n          if (typeof AOS !== 'undefined') {\r\n              AOS.init({\r\n                  duration: 800,\r\n                  easing: 'ease-in-out',\r\n                  once: true\r\n              });\r\n          } else {\r\n              document.querySelectorAll('[data-aos]').forEach(function (el) {\r\n                  el.removeAttribute('data-aos');\r\n              });\r\n          }\r\n\r\n          document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\r\n              anchor.addEventListener('click', function (e) {\r\n                  const id = this.getAttribute('href');\r\n                  if (!id || id === '#') return;\r\n                  const target = document.querySelector(id);\r\n                  if (target) {\r\n                      e.preventDefault();\r\n                      target.scrollIntoView({ behavior: 'smooth' });\r\n                  }\r\n              });\r\n          });\r\n    <\/script>\r\n  \r\n  \r\n  <grammarly-desktop-integration data-grammarly-shadow-root=\"true\"><\/grammarly-desktop-integration><grammarly-desktop-integration data-grammarly-shadow-root=\"true\"><\/grammarly-desktop-integration>\r\n  <script defer=\"\" src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\" integrity=\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\" data-cf-beacon=\"{\"version\":\"2024.11.0\",\"token\":\"786b797d7952407aac48ed2776a3a826\",\"r\":1,\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}\" crossorigin=\"anonymous\"><\/script>\r\n  <script defer=\"\" src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/v8c78df7c7c0f484497ecbca7046644da1771523124516\" integrity=\"sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==\" data-cf-beacon=\"{\"version\":\"2024.11.0\",\"token\":\"786b797d7952407aac48ed2776a3a826\",\"r\":1,\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}\" crossorigin=\"anonymous\"><\/script>\r\n [\/et_pb_fullwidth_code][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"    <link rel=\"canonical\" href=\"\">\r\n  \r\n     \r\n      \r\n      <!-- Google Fonts - Premium Typography -->\r\n      <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n      <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\r\n      <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n      \r\n      <!-- Bootstrap CSS -->\r\n      <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\r\n      <!-- Boxicons -->\r\n      <link href=\"https:\/\/unpkg.com\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n      <!-- AOS Animation -->\r\n      <link href=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.css\" rel=\"stylesheet\">\r\n      <!-- Font Awesome CSS -->\r\n      <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/5.15.3\/css\/all.min.css\" rel=\"stylesheet\">\r\n  \r\n  \r\n  <style id=\"vvvebjs-styles\">\r\n      html{\r\n          overflow-x: hidden;\r\n      }\r\n      :root {\r\n              --va-purple: #8a6cfc;\r\n              --va-purple-hover: #7355e8;\r\n              --va-black: #000000;\r\n              --va-white: #ffffff;\r\n              --ytvv-primary-color: var(--va-purple);\r\n              --ytvv-secondary-color: #1a1a1a;\r\n              --ytvv-dark-color: var(--va-black);\r\n              --ytvv-light-color: var(--va-white);\r\n              --ytvv-gray-color: #f5f5f7;\r\n              --ytvv-primary-hover: var(--va-purple-hover);\r\n              --ytvv-secondary-hover: #333333;\r\n              --ytvv-section-padding: 100px 0;\r\n          }\r\n          \r\n\/*           body {\r\n              font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n              scroll-behavior: smooth;\r\n              overflow-x: hidden;\r\n              background-color: var(--ytvv-light-color);\r\n              color: var(--ytvv-dark-color);\r\n          }\r\n      h1, h2, h3, h4, h5, h6 {\r\n          font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;\r\n          font-weight: bold; \r\n      } *\/\r\n    \r\n      \/* YouTube-style Hero Section *\/\r\n      .ytvv-hero-section {\r\n              padding: var(--ytvv-section-padding);\r\n              text-align: center;\r\n              background-color: var(--ytvv-light-color);\r\n          }\r\n          \r\n          .ytvv-hero-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .ytvv-hero-section h1 {\r\n              font-size: 3.5rem;\r\n              font-weight: 700;\r\n              margin-bottom: 1.5rem;\r\n              color: var(--ytvv-primary-color);\r\n          }\r\n          \r\n          .ytvv-hero-section p {\r\n              font-size: 1.25rem;\r\n              max-width: 700px;\r\n              margin: 0 auto 2rem;\r\n              opacity: 0.9;\r\n              font-weight: 300;\r\n              color: #333;\r\n          }\r\n          \r\n          \/* Work Process Section with YouTube Colors *\/\r\n          .ytvv-work-process-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              position: relative;\r\n              overflow: hidden;\r\n          }\r\n          \r\n          .ytvv-work-process-section::before {\r\n              content: '';\r\n              position: absolute;\r\n              top: 0;\r\n              left: 0;\r\n              width: 100%;\r\n              height: 100%;\r\n              background: rgba(0,0,0,0.05);\r\n          }\r\n          \r\n          .ytvv-work-process-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .ytvv-process-step {\r\n              text-align: center;\r\n              padding: 30px 20px;\r\n              position: relative;\r\n              z-index: 1;\r\n              background: rgba(255,255,255,0.1);\r\n              backdrop-filter: blur(10px);\r\n              border-radius: 16px;\r\n              margin: 15px;\r\n              border: 1px solid rgba(255,255,255,0.2);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-process-step:hover {\r\n              transform: translateY(-10px);\r\n              background: rgba(255,255,255,0.15);\r\n              box-shadow: 0 15px 30px rgba(0,0,0,0.2);\r\n          }\r\n          \r\n          .ytvv-step-number {\r\n              width: 60px;\r\n              height: 60px;\r\n              background: white;\r\n              color: var(--ytvv-primary-color);\r\n              border-radius: 50%;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              font-weight: 700;\r\n              margin: 0 auto 20px;\r\n              font-size: 1.5rem;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          \/* Features Section *\/\r\n          .ytvv-features-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-feature-card {\r\n              padding: 40px 30px;\r\n              border-radius: 16px;\r\n              background: white;\r\n              box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);\r\n              margin-bottom: 30px;\r\n              transition: all 0.3s ease;\r\n              border: 1px solid rgba(0,0,0,0.05);\r\n              height: 100%;\r\n              position: relative;\r\n              overflow: hidden;\r\n          }\r\n          \r\n          .ytvv-feature-card::before {\r\n              content: '';\r\n              position: absolute;\r\n              top: 0;\r\n              left: 0;\r\n              width: 4px;\r\n              height: 100%;\r\n              background: var(--ytvv-primary-color);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-feature-card:hover {\r\n              transform: translateY(-10px);\r\n              box-shadow: 0 15px 40px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          .ytvv-feature-card:hover::before {\r\n              width: 100%;\r\n              opacity: 0.1;\r\n          }\r\n          \r\n          .ytvv-feature-icon {\r\n              width: 70px;\r\n              height: 70px;\r\n              border-radius: 20px;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              margin-bottom: 25px;\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              font-size: 1.8rem;\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-feature-card:hover .ytvv-feature-icon {\r\n              transform: rotate(15deg) scale(1.1);\r\n              background: var(--ytvv-primary-hover);\r\n          }\r\n          \r\n          \/* Why Choose Section *\/\r\n          .ytvv-why-choose-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: #f9f9f9;\r\n          }\r\n          \r\n          .ytvv-why-choose-image {\r\n              border-radius: 16px;\r\n              overflow: hidden;\r\n              box-shadow: 0 20px 40px rgba(0,0,0,0.1);\r\n              transform: perspective(1000px) rotateY(-5deg);\r\n              transition: all 0.5s ease;\r\n          }\r\n          \r\n          .ytvv-why-choose-image:hover {\r\n              transform: perspective(1000px) rotateY(0deg);\r\n          }\r\n          \r\n          .ytvv-benefit-item {\r\n              display: flex;\r\n              align-items: flex-start;\r\n              margin-bottom: 20px;\r\n              padding: 15px;\r\n              border-radius: 12px;\r\n              background: white;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.03);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-benefit-item:hover {\r\n              transform: translateX(10px);\r\n              box-shadow: 0 10px 25px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          .ytvv-benefit-icon {\r\n              width: 40px;\r\n              height: 40px;\r\n              border-radius: 12px;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              margin-right: 15px;\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              font-size: 1.2rem;\r\n              flex-shrink: 0;\r\n          }\r\n          \r\n          \/* FAQ Section *\/\r\n          .ytvv-faq-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-accordion-item {\r\n              border: none;\r\n              border-radius: 12px !important;\r\n              overflow: hidden;\r\n              margin-bottom: 15px;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.05);\r\n          }\r\n          \r\n          .ytvv-accordion-button {\r\n              font-weight: 600;\r\n              color: var(--ytvv-dark-color);\r\n              padding: 20px 25px;\r\n              background: white;\r\n              box-shadow: none;\r\n              border-radius: 12px 12px 0 0 !important;\r\n          }\r\n          \r\n          .ytvv-accordion-button:not(.collapsed) {\r\n              background: white;\r\n              color: var(--ytvv-primary-color);\r\n              box-shadow: none;\r\n          }\r\n          \r\n          .ytvv-accordion-button:focus {\r\n              box-shadow: none;\r\n              border-color: rgba(138, 108, 252, 0.35);\r\n          }\r\n          \r\n          .ytvv-accordion-button::after {\r\n              background-image: url(\"data:image\/svg+xml,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='%238a6cfc'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'\/%3e%3c\/svg%3e\");\r\n          }\r\n          \r\n          .ytvv-accordion-body {\r\n              padding: 25px;\r\n              color: #333;\r\n          }\r\n          \r\n          \/* Section Titles *\/\r\n          .ytvv-section-title {\r\n              font-weight: 700;\r\n              color: var(--ytvv-dark-color);\r\n              margin-bottom: 1.5rem;\r\n              position: relative;\r\n              display: inline-block;\r\n          }\r\n          \r\n          .ytvv-section-title::after {\r\n              content: '';\r\n              position: absolute;\r\n              bottom: -10px;\r\n              left: 0;\r\n              width: 60px;\r\n              height: 4px;\r\n              background: var(--ytvv-primary-color);\r\n              border-radius: 2px;\r\n          }\r\n          \r\n          .ytvv-light-title {\r\n              color: white;\r\n          }\r\n          \r\n          .ytvv-light-title::after {\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-section-subtitle {\r\n              color: #333;\r\n              max-width: 700px;\r\n              margin: 0 auto 3rem;\r\n              font-size: 1.1rem;\r\n          }\r\n          \r\n          .ytvv-light-subtitle {\r\n              color: rgba(255,255,255,0.8);\r\n          }\r\n          \r\n          \/* Responsive Design *\/\r\n          @media (max-width: 991px) {\r\n              :root {\r\n                  --ytvv-section-padding: 80px 0;\r\n              }\r\n              \r\n              .ytvv-hero-section h1 {\r\n                  font-size: 2.8rem;\r\n              }\r\n              \r\n              .ytvv-process-step::before {\r\n                  display: none;\r\n              }\r\n          }\r\n          \r\n          @media (max-width: 767px) {\r\n              :root {\r\n                  --ytvv-section-padding: 70px 0;\r\n              }\r\n              \r\n              .ytvv-hero-section {\r\n                  padding: 100px 0 60px;\r\n              }\r\n              \r\n              .ytvv-hero-section h1 {\r\n                  font-size: 2.2rem;\r\n              }\r\n              \r\n              .ytvv-hero-section p {\r\n                  font-size: 1rem;\r\n              }\r\n              \r\n              .ytvv-section-title {\r\n                  font-size: 1.8rem;\r\n              }\r\n          }\r\n          \r\n          \/* Animation *\/\r\n          @keyframes ytvv-float {\r\n              0% { transform: translateY(0px); }\r\n              50% { transform: translateY(-15px); }\r\n              100% { transform: translateY(0px); }\r\n          }\r\n          \r\n          .ytvv-floating-element {\r\n              animation: ytvv-float 6s ease-in-out infinite;\r\n          }\r\n          \r\n          \/* Custom Scrollbar *\/\r\n          ::-webkit-scrollbar {\r\n              width: 8px;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-track {\r\n              background: #f1f1f1;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-thumb {\r\n              background: var(--ytvv-primary-color);\r\n              border-radius: 10px;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-thumb:hover {\r\n              background: var(--ytvv-primary-hover);\r\n          }\r\n       \r\n  \r\n  <\/style>\r\n  <!-- tools -->\r\n  <style>\r\n      @import url('https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700;800;900&display=swap');\r\n  \r\n      * {\r\n          margin: 0;\r\n          padding: 0;\r\n          box-sizing: border-box;\r\n      }\r\n  \r\n      :root {\r\n          --primary-color: #8a6cfc;\r\n          --primary-light: #a78bfa;\r\n          --secondary-color: #7355e8;\r\n          --secondary-light: #b8a0fd;\r\n          --accent-color: #8a6cfc;\r\n          --accent-light: #c4b5fd;\r\n          --success-color: #8a6cfc;\r\n          --success-light: #a78bfa;\r\n          --warning-color: #7355e8;\r\n          --warning-light: #8a6cfc;\r\n          --danger-color: #DC2626;\r\n          --danger-light: #EF4444;\r\n          --bg-primary: #ffffff;\r\n          --bg-secondary: #fafafa;\r\n          --bg-tertiary: #f0f0f5;\r\n          --bg-card: #ffffff;\r\n          --glass-bg: rgba(138, 108, 252, 0.08);\r\n          --glass-border: rgba(138, 108, 252, 0.25);\r\n          --text-primary: #000000;\r\n          --text-secondary: #333333;\r\n          --text-muted: rgba(0, 0, 0, 0.5);\r\n          --text-accent: #8a6cfc;\r\n          --shadow-sm: 0 2px 8px rgba(138, 108, 252, 0.12);\r\n          --shadow-md: 0 4px 16px rgba(138, 108, 252, 0.14);\r\n          --shadow-lg: 0 8px 32px rgba(138, 108, 252, 0.16);\r\n          --shadow-xl: 0 16px 48px rgba(138, 108, 252, 0.12);\r\n          --border-radius: 16px;\r\n          --border-radius-lg: 24px;\r\n      }\r\n  \r\n      .custom-hero-tools-ytvv{\r\n          font-family: 'Outfit', sans-serif;\r\n          background: #ffffff;\r\n          padding: 80px 0;\r\n          line-height: 1.6;\r\n          color: var(--text-primary);\r\n          position: relative;\r\n          overflow-x: hidden;\r\n          margin-top: 0;\r\n          border-bottom: 1px solid rgba(138, 108, 252, 0.15);\r\n      }\r\n  \r\n      .custom-hero-tools-ytvv::before {\r\n          content: '';\r\n          position: fixed;\r\n          top: 0;\r\n          left: 0;\r\n          width: 100%;\r\n          height: 100%;\r\n          background:\r\n              radial-gradient(circle at 20% 20%, rgba(138, 108, 252, 0.08) 0%, transparent 50%),\r\n              radial-gradient(circle at 80% 80%, rgba(138, 108, 252, 0.06) 0%, transparent 50%),\r\n              radial-gradient(circle at 50% 50%, rgba(167, 139, 250, 0.05) 0%, transparent 50%);\r\n          pointer-events: none;\r\n          z-index: -1;\r\n      }\r\n  \r\n      .yvv-container {\r\n          max-width: 1400px;\r\n          margin: 0 auto;\r\n          padding: 20px;\r\n          position: relative;\r\n          z-index: 1;\r\n      }\r\n  \r\n      \/* Header Section *\/\r\n      .yvv-header {\r\n          text-align: center;\r\n          margin-bottom: 40px;\r\n          padding: 40px 0;\r\n          animation: fadeInDown 1s ease-out;\r\n      }\r\n  \r\n      .yvv-brand-logo {\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          gap: 25px;\r\n          margin-bottom: 25px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n    .yvv-brand-icon {\r\n      width: 80px;\r\n      height: 80px;\r\n      background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n      border-radius: var(--border-radius);\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      color: #ffffff;\r\n      font-size: 36px;\r\n      font-weight: 800;\r\n      box-shadow: var(--shadow-lg);\r\n      animation: float 4s ease-in-out infinite;\r\n      position: relative;\r\n  }\r\n  \r\n      .yvv-brand-icon::after {\r\n          content: '';\r\n          position: absolute;\r\n          inset: -2px;\r\n          background: linear-gradient(135deg, var(--primary-light), var(--accent-light));\r\n          border-radius: var(--border-radius);\r\n          z-index: -1;\r\n          opacity: 0.5;\r\n          animation: pulse 2s ease-in-out infinite;\r\n      }\r\n  \r\n  .yvv-brand-title {\r\n      font-size: clamp(2.25rem, 5vw, 3.5rem);\r\n      font-weight: 800;\r\n      color: #000000;\r\n      letter-spacing: -0.02em;\r\n      line-height: 1.15;\r\n      margin: 0;\r\n      -webkit-text-fill-color: unset;\r\n      background: none;\r\n      text-shadow: none;\r\n  }\r\n\r\n  .yvv-brand-title .va-cap {\r\n      color: #8a6cfc;\r\n      font-size: 1.12em;\r\n      font-weight: 900;\r\n  }\r\n  \r\n  .yvv-brand-subtitle {\r\n      color: #333333;\r\n      font-size: 20px;\r\n      font-weight: 500;\r\n      margin-bottom: 30px;\r\n      max-width: 700px;\r\n      margin-left: auto;\r\n      margin-right: auto;\r\n  }\r\n  \r\n      .yvv-feature-badges {\r\n          display: flex;\r\n          justify-content: center;\r\n          gap: 15px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n     .yvv-feature-badge {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      background: #fafafa;\r\n      backdrop-filter: blur(20px);\r\n      border: 1px solid var(--glass-border);\r\n      padding: 12px 24px;\r\n      border-radius: 50px;\r\n      color: #000000;\r\n      font-size: 14px;\r\n      font-weight: 600;\r\n      transition: all 0.3s ease;\r\n  }\r\n  \r\n      .yvv-feature-badge:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-md);\r\n          background: rgba(138, 108, 252, 0.08);\r\n      }\r\n  \r\n      .yvv-badge-icon {\r\n          width: 20px;\r\n          height: 20px;\r\n          background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n          border-radius: 50%;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 10px;\r\n          color: white;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      \/* Search Section *\/\r\n  .yvv-search-section {\r\n      background: #ffffff;\r\n      border: 1px solid rgba(138, 108, 252, 0.25);\r\n      padding: 40px;\r\n      border-radius: var(--border-radius-lg);\r\n      box-shadow: var(--shadow-xl);\r\n      margin-bottom: 40px;\r\n      animation: fadeInUp 1s ease-out 0.2s both;\r\n      position: relative;\r\n      overflow: hidden;\r\n  }\r\n  \r\n      .yvv-search-section::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 2px;\r\n          background: linear-gradient(90deg, var(--primary-color), var(--accent-color), var(--secondary-color));\r\n      }\r\n  \r\n      .yvv-search-form {\r\n          display: flex;\r\n          gap: 20px;\r\n          margin-bottom: 25px;\r\n          position: relative;\r\n      }\r\n  \r\n  .yvv-search-input {\r\n      flex: 1 !important;\r\n      padding: 20px 25px !important;\r\n      background: #ffffff !important;\r\n      border: 2px solid rgba(0, 0, 0, 0.12) !important;\r\n      border-radius: var(--border-radius) !important;\r\n      color: #000000 !important;\r\n      font-size: 16px !important;\r\n      font-weight: 500 !important;\r\n      transition: all 0.3s ease !important;\r\n      outline: none !important;\r\n      font-family: inherit !important;\r\n  }\r\n  \r\n      .yvv-search-input:focus {\r\n          border-color: #8a6cfc !important;\r\n          box-shadow: 0 0 0 4px rgba(138, 108, 252, 0.2) !important;\r\n          transform: translateY(-2px) !important;\r\n      }\r\n  \r\n      .yvv-search-input.error {\r\n          border-color: var(--danger-color) !important;\r\n          box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.1) !important;\r\n      }\r\n  \r\n      .yvv-search-input::placeholder {\r\n          color: var(--text-muted) !important;\r\n          font-weight: 400 !important;\r\n      }\r\n  \r\n  .yvv-search-btn {\r\n      padding: 20px 40px;\r\n      background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n      color: white;\r\n      border: none;\r\n      border-radius: var(--border-radius);\r\n      font-size: 16px;\r\n      font-weight: 700;\r\n      cursor: pointer;\r\n      transition: all 0.3s ease;\r\n      min-width: 200px;\r\n      position: relative;\r\n      overflow: hidden;\r\n      box-shadow: var(--shadow-md);\r\n      font-family: inherit;\r\n  }\r\n  \r\n      .yvv-search-btn:hover:not(:disabled) {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-lg);\r\n          background: linear-gradient(135deg, var(--primary-light), var(--accent-color));\r\n      }\r\n  \r\n      .yvv-search-btn:disabled {\r\n          opacity: 0.6;\r\n          cursor: not-allowed;\r\n          transform: none;\r\n      }\r\n  \r\n      .yvv-loading-indicator {\r\n          display: none;\r\n          text-align: center;\r\n          padding: 30px;\r\n          color: var(--text-secondary);\r\n      }\r\n  \r\n      .yvv-error-display {\r\n          background: rgba(220, 38, 38, 0.1);\r\n          border: 1px solid rgba(220, 38, 38, 0.3);\r\n          color: var(--danger-light);\r\n          padding: 20px 25px;\r\n          border-radius: var(--border-radius);\r\n          margin-top: 20px;\r\n          display: none;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      \/* Video Player Section - Full Interface *\/\r\n      .yvv-video-player-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          overflow: hidden;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInUp 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-video-header {\r\n          background: linear-gradient(135deg, var(--bg-tertiary), var(--bg-card));\r\n          padding: 25px 30px;\r\n          border-bottom: 1px solid rgba(138, 108, 252, 0.1);\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n      }\r\n  \r\n      .yvv-video-title {\r\n          color: var(--text-primary);\r\n          font-size: 24px;\r\n          font-weight: 700;\r\n          margin: 0;\r\n          flex: 1;\r\n          margin-right: 20px;\r\n      }\r\n  \r\n      .yvv-current-quality-badge {\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          color: white;\r\n          padding: 8px 16px;\r\n          border-radius: 20px;\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          margin-right: 15px;\r\n      }\r\n  \r\n      .yvv-close-viewer-btn {\r\n          background: var(--danger-color);\r\n          border: none;\r\n          border-radius: 50%;\r\n          width: 40px;\r\n          height: 40px;\r\n          color: white;\r\n          font-size: 18px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n      }\r\n  \r\n      .yvv-close-viewer-btn:hover {\r\n          background: var(--danger-light);\r\n          transform: scale(1.1);\r\n      }\r\n  \r\n      .yvv-video-container {\r\n          position: relative;\r\n          background: #000;\r\n          width: 100%;\r\n      }\r\n  \r\n      .yvv-main-video {\r\n          width: 100%;\r\n          height: 70vh;\r\n          max-height: 600px;\r\n          min-height: 400px;\r\n          background: #000;\r\n          border: none;\r\n          outline: none;\r\n          display: block;\r\n      }\r\n  \r\n      \/* Video Thumbnail Overlay *\/\r\n      .yvv-video-thumbnail-overlay {\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: 0;\r\n          background-size: cover;\r\n          background-position: center;\r\n          background-repeat: no-repeat;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n      }\r\n  \r\n      .yvv-video-thumbnail-overlay.hidden {\r\n          display: none;\r\n      }\r\n  \r\n      .yvv-thumbnail-play-btn {\r\n          width: 100px;\r\n          height: 100px;\r\n          background: rgba(0, 0, 0, 0.8);\r\n          border: 4px solid white;\r\n          border-radius: 50%;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          color: white;\r\n          font-size: 36px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          backdrop-filter: blur(10px);\r\n      }\r\n  \r\n      .yvv-thumbnail-play-btn:hover {\r\n          transform: scale(1.1);\r\n          background: rgba(0, 0, 0, 0.9);\r\n      }\r\n  \r\n      \/* Video Controls - Below Video *\/\r\n      .yvv-video-controls-section {\r\n          background: var(--bg-tertiary);\r\n          padding: 20px 30px;\r\n          border-top: 1px solid rgba(138, 108, 252, 0.1);\r\n      }\r\n  \r\n      .yvv-video-controls {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 20px;\r\n      }\r\n  \r\n      .yvv-control-btn {\r\n          width: 50px;\r\n          height: 50px;\r\n          background: linear-gradient(135deg, var(--primary-color), var(--primary-light));\r\n          border: none;\r\n          border-radius: 50%;\r\n          color: white;\r\n          font-size: 18px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-control-btn:hover {\r\n          transform: scale(1.1);\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-progress-section {\r\n          flex: 1;\r\n          margin: 0 20px;\r\n      }\r\n  \r\n      .yvv-progress-bar {\r\n          width: 100%;\r\n          height: 10px;\r\n          background: rgba(0, 0, 0, 0.1);\r\n          border-radius: 5px;\r\n          cursor: pointer;\r\n          position: relative;\r\n          overflow: hidden;\r\n          margin-bottom: 8px;\r\n      }\r\n  \r\n      .yvv-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          border-radius: 5px;\r\n          width: 0%;\r\n          transition: width 0.1s ease;\r\n          box-shadow: 0 2px 8px rgba(138, 108, 252, 0.35);\r\n      }\r\n  \r\n      .yvv-time-info {\r\n          color: var(--text-primary);\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-volume-section {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 10px;\r\n          min-width: 120px;\r\n      }\r\n  \r\n      .yvv-volume-icon {\r\n          color: var(--text-primary);\r\n          font-size: 18px;\r\n          width: 24px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-volume-control {\r\n          width: 80px;\r\n          height: 8px;\r\n          background: rgba(0, 0, 0, 0.1);\r\n          border-radius: 4px;\r\n          outline: none;\r\n          cursor: pointer;\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n      }\r\n  \r\n      .yvv-volume-control::-webkit-slider-thumb {\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--primary-color);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          box-shadow: 0 2px 6px rgba(138, 108, 252, 0.4);\r\n      }\r\n  \r\n      .yvv-volume-control::-moz-range-thumb {\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--primary-color);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          border: none;\r\n          box-shadow: 0 2px 6px rgba(138, 108, 252, 0.4);\r\n      }\r\n  \r\n      \/* Video Info Section *\/\r\n      .yvv-video-info-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          padding: 35px;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInLeft 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-video-metadata {\r\n          display: grid;\r\n          grid-template-columns: auto 1fr;\r\n          gap: 30px;\r\n          align-items: start;\r\n          margin-bottom: 30px;\r\n      }\r\n  \r\n      .yvv-video-thumbnail {\r\n          width: 160px;\r\n          height: 120px;\r\n          border-radius: var(--border-radius);\r\n          object-fit: cover;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-video-details {\r\n          display: flex;\r\n          flex-direction: column;\r\n          gap: 15px;\r\n      }\r\n  \r\n      .yvv-video-details h2 {\r\n          color: var(--text-primary);\r\n          font-size: 28px;\r\n          font-weight: 700;\r\n          line-height: 1.3;\r\n          margin: 0;\r\n      }\r\n  \r\n      .yvv-video-stats {\r\n          display: flex;\r\n          gap: 25px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n      .yvv-stat-item {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 10px;\r\n          color: var(--text-secondary);\r\n          font-size: 16px;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      .yvv-stat-icon {\r\n          width: 24px;\r\n          height: 24px;\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          border-radius: 8px;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 12px;\r\n          color: white;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      \/* Format Selection *\/\r\n      .yvv-format-selection {\r\n          background: rgba(138, 108, 252, 0.05);\r\n          border: 1px solid rgba(138, 108, 252, 0.1);\r\n          border-radius: var(--border-radius);\r\n          padding: 30px;\r\n      }\r\n  \r\n      .yvv-format-title {\r\n          color: var(--text-primary);\r\n          font-size: 22px;\r\n          font-weight: 700;\r\n          margin-bottom: 25px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-format-tabs {\r\n          display: flex;\r\n          gap: 10px;\r\n          margin-bottom: 25px;\r\n          justify-content: center;\r\n      }\r\n  \r\n      .yvv-format-tab {\r\n          padding: 12px 24px;\r\n          background: var(--bg-tertiary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: 50px;\r\n          color: var(--text-secondary);\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n      }\r\n  \r\n      .yvv-format-tab.active {\r\n          background: linear-gradient(135deg, var(--primary-color), var(--primary-light));\r\n          color: white;\r\n          border-color: var(--primary-light);\r\n      }\r\n  \r\n      .yvv-format-tab:hover:not(.active) {\r\n          background: var(--bg-card);\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-format-grid {\r\n          display: grid;\r\n          grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\r\n          gap: 20px;\r\n      }\r\n  \r\n      .yvv-format-option {\r\n          background: var(--bg-tertiary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius);\r\n          padding: 25px;\r\n          transition: all 0.3s ease;\r\n          position: relative;\r\n      }\r\n  \r\n      .yvv-format-option:hover {\r\n          transform: translateY(-5px);\r\n          box-shadow: var(--shadow-md);\r\n          border-color: var(--primary-light);\r\n      }\r\n  \r\n      .yvv-format-option.playing {\r\n          border-color: var(--success-color);\r\n          background: rgba(5, 150, 105, 0.1);\r\n          box-shadow: 0 0 20px rgba(5, 150, 105, 0.3);\r\n      }\r\n  \r\n      .yvv-format-option.playing::before {\r\n          content: '\u25b6 NOW PLAYING';\r\n          position: absolute;\r\n          top: -10px;\r\n          right: 15px;\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          color: white;\r\n          padding: 4px 12px;\r\n          border-radius: 12px;\r\n          font-size: 10px;\r\n          font-weight: 700;\r\n          letter-spacing: 0.5px;\r\n      }\r\n  \r\n      .yvv-format-header {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n          margin-bottom: 15px;\r\n      }\r\n  \r\n      .yvv-format-quality {\r\n          font-size: 20px;\r\n          font-weight: 700;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-format-type-badge {\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          color: white;\r\n          padding: 6px 16px;\r\n          border-radius: 20px;\r\n          font-size: 12px;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      .yvv-format-actions {\r\n          display: flex;\r\n          gap: 12px;\r\n      }\r\n  \r\n      .yvv-action-btn {\r\n          flex: 1;\r\n          padding: 14px;\r\n          border: none;\r\n          border-radius: 10px;\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          gap: 8px;\r\n          font-family: inherit;\r\n      }\r\n  \r\n      .yvv-stream-action {\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-stream-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-stream-action.playing {\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n      }\r\n  \r\n      .yvv-download-action {\r\n          background: linear-gradient(135deg, var(--warning-color), var(--warning-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-download-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-audio-action {\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-audio-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      \/* Audio Player Section *\/\r\n      .yvv-audio-player-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          padding: 35px;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInRight 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-audio-visualizer {\r\n          background: linear-gradient(135deg, rgba(138, 108, 252, 0.1), rgba(167, 139, 250, 0.12));\r\n          border: 1px solid rgba(138, 108, 252, 0.3);\r\n          border-radius: var(--border-radius);\r\n          padding: 30px;\r\n          margin-bottom: 25px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-visualizer-bars {\r\n          display: flex;\r\n          align-items: end;\r\n          justify-content: center;\r\n          gap: 6px;\r\n          height: 80px;\r\n          margin-bottom: 20px;\r\n      }\r\n  \r\n      .yvv-visualizer-bar {\r\n          width: 6px;\r\n          background: linear-gradient(to top, var(--accent-color), var(--accent-light), var(--secondary-light));\r\n          border-radius: 3px;\r\n          animation: audioWave 1.8s ease-in-out infinite;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(1) {\r\n          height: 30px;\r\n          animation-delay: 0s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(2) {\r\n          height: 50px;\r\n          animation-delay: 0.1s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(3) {\r\n          height: 35px;\r\n          animation-delay: 0.2s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(4) {\r\n          height: 60px;\r\n          animation-delay: 0.3s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(5) {\r\n          height: 45px;\r\n          animation-delay: 0.4s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(6) {\r\n          height: 70px;\r\n          animation-delay: 0.5s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(7) {\r\n          height: 40px;\r\n          animation-delay: 0.6s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(8) {\r\n          height: 55px;\r\n          animation-delay: 0.7s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(9) {\r\n          height: 35px;\r\n          animation-delay: 0.8s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(10) {\r\n          height: 65px;\r\n          animation-delay: 0.9s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(11) {\r\n          height: 45px;\r\n          animation-delay: 1.0s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(12) {\r\n          height: 30px;\r\n          animation-delay: 1.1s;\r\n      }\r\n  \r\n      @keyframes audioWave {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: scaleY(0.4);\r\n              opacity: 0.7;\r\n          }\r\n  \r\n          50% {\r\n              transform: scaleY(1);\r\n              opacity: 1;\r\n          }\r\n      }\r\n  \r\n      .yvv-audio-controls {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 20px;\r\n          background: rgba(138, 108, 252, 0.1);\r\n          border-radius: var(--border-radius);\r\n          padding: 20px 25px;\r\n      }\r\n  \r\n      .yvv-audio-play-btn {\r\n          width: 60px;\r\n          height: 60px;\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          border: none;\r\n          border-radius: 50%;\r\n          color: white;\r\n          font-size: 24px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-audio-play-btn:hover {\r\n          transform: scale(1.1);\r\n          box-shadow: var(--shadow-lg);\r\n      }\r\n  \r\n      .yvv-audio-progress {\r\n          flex: 1;\r\n          cursor: pointer;\r\n          padding: 15px 0;\r\n      }\r\n  \r\n      .yvv-audio-progress-track {\r\n          width: 100%;\r\n          height: 8px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 4px;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .yvv-audio-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          border-radius: 4px;\r\n          width: 0%;\r\n          transition: width 0.1s ease;\r\n      }\r\n  \r\n      .yvv-audio-time {\r\n          color: var(--text-primary);\r\n          font-size: 16px;\r\n          font-weight: 600;\r\n          min-width: 100px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-audio-volume {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 12px;\r\n          min-width: 120px;\r\n      }\r\n  \r\n      .yvv-audio-volume-icon {\r\n          color: var(--text-primary);\r\n          font-size: 20px;\r\n          width: 24px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider {\r\n          width: 80px;\r\n          height: 6px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 3px;\r\n          outline: none;\r\n          cursor: pointer;\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider::-webkit-slider-thumb {\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--accent-light);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider::-moz-range-thumb {\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--accent-light);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          border: none;\r\n      }\r\n  \r\n      \/* Download Progress *\/\r\n      .yvv-download-progress {\r\n          position: fixed;\r\n          bottom: 20px;\r\n          right: 20px;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius);\r\n          padding: 20px;\r\n          min-width: 320px;\r\n          box-shadow: var(--shadow-xl);\r\n          z-index: 1000;\r\n          display: none;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-download-progress.show {\r\n          display: block;\r\n          animation: slideInRight 0.4s ease-out;\r\n      }\r\n  \r\n      .yvv-progress-header {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n          margin-bottom: 15px;\r\n      }\r\n  \r\n      .yvv-progress-text {\r\n          font-weight: 600;\r\n          font-size: 14px;\r\n      }\r\n  \r\n      .yvv-cancel-btn {\r\n          background: rgba(220, 38, 38, 0.1);\r\n          border: 1px solid rgba(220, 38, 38, 0.3);\r\n          color: var(--danger-light);\r\n          padding: 6px 12px;\r\n          border-radius: 6px;\r\n          font-size: 12px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      .yvv-cancel-btn:hover {\r\n          background: rgba(220, 38, 38, 0.2);\r\n      }\r\n  \r\n      .yvv-progress-bar-container {\r\n          width: 100%;\r\n          height: 8px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 4px;\r\n          overflow: hidden;\r\n          margin-bottom: 10px;\r\n      }\r\n  \r\n      .yvv-progress-bar-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          border-radius: 4px;\r\n          width: 0%;\r\n          transition: width 0.3s ease;\r\n      }\r\n  \r\n      .yvv-progress-details {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          font-size: 12px;\r\n          color: var(--text-secondary);\r\n      }\r\n  \r\n      \/* Loading Animation *\/\r\n      .yvv-cyber-loading {\r\n          position: relative;\r\n          width: 100%;\r\n          max-width: 500px;\r\n          margin: 0 auto;\r\n          padding: 40px;\r\n          background: linear-gradient(135deg, rgba(138, 108, 252, 0.1), rgba(167, 139, 250, 0.12));\r\n          border: 1px solid rgba(138, 108, 252, 0.3);\r\n          border-radius: var(--border-radius-lg);\r\n      }\r\n  \r\n      .yvv-loading-grid {\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: 0;\r\n          background-image:\r\n              linear-gradient(rgba(138, 108, 252, 0.1) 1px, transparent 1px),\r\n              linear-gradient(90deg, rgba(138, 108, 252, 0.1) 1px, transparent 1px);\r\n          background-size: 25px 25px;\r\n          animation: gridShift 8s linear infinite;\r\n      }\r\n  \r\n      @keyframes gridShift {\r\n          0% {\r\n              transform: translate(0, 0);\r\n          }\r\n  \r\n          100% {\r\n              transform: translate(25px, 25px);\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-waves {\r\n          display: flex;\r\n          flex-direction: column;\r\n          gap: 12px;\r\n          margin-bottom: 25px;\r\n      }\r\n  \r\n      .yvv-loading-wave {\r\n          height: 4px;\r\n          background: linear-gradient(90deg, transparent, var(--primary-light), transparent);\r\n          border-radius: 2px;\r\n          animation: waveFlow 2.5s ease-in-out infinite;\r\n      }\r\n  \r\n      .yvv-loading-wave:nth-child(2) {\r\n          animation-delay: 0.5s;\r\n      }\r\n  \r\n      .yvv-loading-wave:nth-child(3) {\r\n          animation-delay: 1s;\r\n      }\r\n  \r\n      @keyframes waveFlow {\r\n  \r\n          0%,\r\n          100% {\r\n              opacity: 0.3;\r\n              transform: scaleX(0.3);\r\n          }\r\n  \r\n          50% {\r\n              opacity: 1;\r\n              transform: scaleX(1);\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-text {\r\n          text-align: center;\r\n          color: var(--text-primary);\r\n          font-size: 18px;\r\n          font-weight: 600;\r\n      }\r\n  \r\n      .yvv-loading-dots::after {\r\n          content: '';\r\n          animation: loadingDots 2.5s steps(4, end) infinite;\r\n      }\r\n  \r\n      @keyframes loadingDots {\r\n  \r\n          0%,\r\n          20% {\r\n              content: '';\r\n          }\r\n  \r\n          40% {\r\n              content: '.';\r\n          }\r\n  \r\n          60% {\r\n              content: '..';\r\n          }\r\n  \r\n          80%,\r\n          100% {\r\n              content: '...';\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-progress-bar {\r\n          width: 100%;\r\n          height: 6px;\r\n          background: rgba(0, 0, 0, 0.08);\r\n          border-radius: 3px;\r\n          overflow: hidden;\r\n          margin-top: 15px;\r\n      }\r\n  \r\n      .yvv-loading-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(90deg, var(--primary-light), var(--accent-light));\r\n          border-radius: 3px;\r\n          animation: progressFlow 3s ease-in-out infinite;\r\n      }\r\n  \r\n      @keyframes progressFlow {\r\n          0% {\r\n              width: 0%;\r\n          }\r\n  \r\n          50% {\r\n              width: 80%;\r\n          }\r\n  \r\n          100% {\r\n              width: 100%;\r\n          }\r\n      }\r\n  \r\n      \/* Animations *\/\r\n      @keyframes fadeInDown {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(-30px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes fadeInUp {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(30px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInUp {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInLeft {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateX(-50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateX(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInRight {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateX(50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateX(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes float {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: translateY(0px) scale(1);\r\n          }\r\n  \r\n          50% {\r\n              transform: translateY(-10px) scale(1.05);\r\n          }\r\n      }\r\n  \r\n      @keyframes pulse {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: scale(1);\r\n              opacity: 0.5;\r\n          }\r\n  \r\n          50% {\r\n              transform: scale(1.1);\r\n              opacity: 0.8;\r\n          }\r\n      }\r\n  \r\n      \/* Responsive Design *\/\r\n      @media (max-width: 768px) {\r\n          .yvv-container {\r\n              padding: 15px;\r\n          }\r\n  \r\n          .yvv-search-form {\r\n              flex-direction: column;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-search-btn {\r\n              min-width: 100%;\r\n          }\r\n  \r\n          .yvv-video-metadata {\r\n              grid-template-columns: 1fr;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-video-stats {\r\n              justify-content: center;\r\n          }\r\n  \r\n          .yvv-format-grid {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .yvv-format-actions {\r\n              flex-direction: column;\r\n          }\r\n  \r\n          .yvv-main-video {\r\n              height: 50vh;\r\n              min-height: 300px;\r\n          }\r\n  \r\n          .yvv-video-controls {\r\n              flex-wrap: wrap;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-progress-section {\r\n              order: 3;\r\n              width: 100%;\r\n              margin: 15px 0 0 0;\r\n          }\r\n  \r\n          .yvv-audio-controls {\r\n              flex-wrap: wrap;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-audio-progress {\r\n              order: 3;\r\n              width: 100%;\r\n          }\r\n  \r\n          .yvv-download-progress {\r\n              left: 15px;\r\n              right: 15px;\r\n              min-width: auto;\r\n          }\r\n      }\r\n  \r\n      @media (max-width: 480px) {\r\n          .yvv-container {\r\n              padding: 10px;\r\n          }\r\n  \r\n          .yvv-search-section,\r\n          .yvv-video-info-section,\r\n          .yvv-audio-player-section {\r\n              padding: 25px;\r\n          }\r\n  \r\n          .yvv-brand-logo {\r\n              flex-direction: column;\r\n              gap: 20px;\r\n          }\r\n  \r\n          .yvv-feature-badges {\r\n              flex-direction: column;\r\n              align-items: center;\r\n              gap: 10px;\r\n          }\r\n  \r\n          .yvv-feature-badge {\r\n              width: 100%;\r\n              max-width: 300px;\r\n              justify-content: center;\r\n          }\r\n  \r\n          .yvv-format-tabs {\r\n              flex-direction: column;\r\n              align-items: center;\r\n              gap: 8px;\r\n          }\r\n  \r\n          .yvv-format-tab {\r\n              width: 100%;\r\n              max-width: 200px;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-main-video {\r\n              height: 40vh;\r\n              min-height: 250px;\r\n          }\r\n  \r\n          .yvv-video-header {\r\n              flex-direction: column;\r\n              gap: 15px;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-current-quality-badge {\r\n              margin-right: 0;\r\n          }\r\n      }\r\n  <\/style>\r\n  \r\n  <body data-aos-easing=\"ease-in-out\" data-aos-duration=\"800\" data-aos-delay=\"0\" data-new-gr-c-s-check-loaded=\"14.1249.0\" data-gr-ext-installed=\"\" data-new-gr-c-s-loaded=\"14.1223.0\" class=\"\" style=\"\">\r\n  \r\n       <section class=\"custom-hero-tools-ytvv\">\r\n          <div class=\"container\">\r\n              <!-- Header Section -->\r\n          <div class=\"yvv-header\">\r\n              <div class=\"yvv-brand-logo\">\r\n                  <div class=\"yvv-brand-icon\">\ud83c\udfa5<\/div>\r\n                  <h1 class=\"yvv-brand-title\"><span class=\"va-cap\">P<\/span>rivate <span class=\"va-cap\">Y<\/span>outube <span class=\"va-cap\">V<\/span>iewer<\/h1>\r\n              <\/div>\r\n              <div class=\"yvv-brand-subtitle\">Experience YouTube videos with advanced streaming capabilities and premium\r\n                  audio quality<\/div>\r\n  \r\n              <div class=\"yvv-feature-badges\">\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>HD Streaming<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Audio Player<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Download Options<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Premium Experience<\/span>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Search Section -->\r\n          <div class=\"yvv-search-section\">\r\n              <div class=\"yvv-search-form\">\r\n                  <input type=\"text\" class=\"yvv-search-input\" placeholder=\"Enter YouTube URL to start viewing (e.g., https:\/\/www.youtube.com\/watch?v=dQw4w9WgXcQ)\" id=\"yvv-videoInput\">\r\n                  <button class=\"yvv-search-btn\" onclick=\"yvv_loadVideo()\" id=\"yvv-loadBtn\">\r\n                      <span id=\"yvv-loadBtnText\">\ud83c\udfa5 Load Video<\/span>\r\n                  <\/button>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-loading-indicator\" id=\"yvv-loadingIndicator\">\r\n                  <div class=\"yvv-cyber-loading\">\r\n                      <div class=\"yvv-loading-grid\"><\/div>\r\n                      <div class=\"yvv-loading-waves\">\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-loading-text\">\r\n                          <span class=\"yvv-loading-dots\">Loading video content<\/span>\r\n                          <div class=\"yvv-loading-progress-bar\">\r\n                              <div class=\"yvv-loading-progress-fill\"><\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-error-display\" id=\"yvv-errorDisplay\"><\/div>\r\n          <\/div>\r\n  \r\n          <!-- Video Player Section - Shows immediately after loading -->\r\n          <div class=\"yvv-video-player-section\" id=\"yvv-videoPlayerSection\">\r\n              <div class=\"yvv-video-header\">\r\n                  <h2 class=\"yvv-video-title\" id=\"yvv-playerVideoTitle\">Video Title<\/h2>\r\n                  <div class=\"yvv-current-quality-badge\" id=\"yvv-currentQualityBadge\">Ready to Play<\/div>\r\n                  <button class=\"yvv-close-viewer-btn\" onclick=\"yvv_closeVideoPlayer()\">\u00d7<\/button>\r\n              <\/div>\r\n              <div class=\"yvv-video-container\">\r\n                  <video class=\"yvv-main-video\" id=\"yvv-mainVideoPlayer\" controls=\"\">\r\n                      Your browser does not support the video tag.\r\n                  <\/video>\r\n                  <div class=\"yvv-video-thumbnail-overlay\" id=\"yvv-videoThumbnailOverlay\">\r\n                      <div class=\"yvv-thumbnail-play-btn\" onclick=\"yvv_playDefaultVideo()\">\u25b6<\/div>\r\n                  <\/div>\r\n              <\/div>\r\n              <div class=\"yvv-video-controls-section\">\r\n                  <div class=\"yvv-video-controls\">\r\n                      <button class=\"yvv-control-btn\" id=\"yvv-playPauseControl\" onclick=\"yvv_toggleVideoPlayback()\">\u25b6<\/button>\r\n                      <div class=\"yvv-progress-section\">\r\n                          <div class=\"yvv-progress-bar\" onclick=\"yvv_seekVideoTo(event)\">\r\n                              <div class=\"yvv-progress-fill\" id=\"yvv-videoProgressFill\"><\/div>\r\n                          <\/div>\r\n                          <div class=\"yvv-time-info\" id=\"yvv-videoTimeInfo\">0:00 \/ 0:00<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-volume-section\">\r\n                          <span class=\"yvv-volume-icon\" id=\"yvv-videoVolumeIcon\">\ud83d\udd0a<\/span>\r\n                          <input type=\"range\" class=\"yvv-volume-control\" id=\"yvv-videoVolumeControl\" min=\"0\" max=\"100\" value=\"50\" oninput=\"yvv_adjustVideoVolume(this.value)\">\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Video Info Section -->\r\n          <div class=\"yvv-video-info-section\" id=\"yvv-videoInfoSection\">\r\n              <div class=\"yvv-video-metadata\">\r\n                  <img decoding=\"async\" class=\"yvv-video-thumbnail\" id=\"yvv-videoThumbnail\" src=\"\/placeholder.svg\" alt=\"Video Thumbnail\">\r\n                  <div class=\"yvv-video-details\">\r\n                      <h2 id=\"yvv-videoDetailsTitle\">Video Title<\/h2>\r\n                      <div class=\"yvv-video-stats\">\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\u23f1<\/div>\r\n                              <span id=\"yvv-videoDurationStat\">Duration<\/span>\r\n                          <\/div>\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\ud83d\udc64<\/div>\r\n                              <span id=\"yvv-videoUploaderStat\">Channel<\/span>\r\n                          <\/div>\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\ud83c\udfac<\/div>\r\n                              <span>Premium Quality<\/span>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-format-selection\">\r\n                  <h3 class=\"yvv-format-title\">Available Formats & Downloads<\/h3>\r\n                  <div class=\"yvv-format-tabs\">\r\n                      <div class=\"yvv-format-tab active\" onclick=\"yvv_switchFormatTab('video')\">Video Formats<\/div>\r\n                      <div class=\"yvv-format-tab\" onclick=\"yvv_switchFormatTab('audio')\">Audio Only<\/div>\r\n                  <\/div>\r\n                  <div class=\"yvv-format-grid\" id=\"yvv-formatGrid\">\r\n                      <!-- Format options will be populated here -->\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Audio Player Section -->\r\n          <div class=\"yvv-audio-player-section\" id=\"yvv-audioPlayerSection\">\r\n              <div class=\"yvv-audio-visualizer\">\r\n                  <div class=\"yvv-visualizer-bars\">\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                  <\/div>\r\n                  <div class=\"yvv-audio-controls\">\r\n                      <button class=\"yvv-audio-play-btn\" id=\"yvv-audioPlayBtn\" onclick=\"yvv_toggleAudioPlayback()\">\u25b6<\/button>\r\n                      <div class=\"yvv-audio-progress\" onclick=\"yvv_seekAudioTo(event)\">\r\n                          <div class=\"yvv-audio-progress-track\">\r\n                              <div class=\"yvv-audio-progress-fill\" id=\"yvv-audioProgressFill\"><\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-audio-time\" id=\"yvv-audioTimeInfo\">0:00 \/ 0:00<\/div>\r\n                      <div class=\"yvv-audio-volume\">\r\n                          <span class=\"yvv-audio-volume-icon\" id=\"yvv-audioVolumeIcon\">\ud83d\udd0a<\/span>\r\n                          <input type=\"range\" class=\"yvv-audio-volume-slider\" id=\"yvv-audioVolumeSlider\" min=\"0\" max=\"100\" value=\"50\" oninput=\"yvv_adjustAudioVolume(this.value)\">\r\n                      <\/div>\r\n                  <\/div>\r\n                  <audio id=\"yvv-audioPlayer\" preload=\"none\" style=\"display: none;\"><\/audio>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  \r\n      <!-- Download Progress -->\r\n      <div class=\"yvv-download-progress\" id=\"yvv-downloadProgress\">\r\n          <div class=\"yvv-progress-header\">\r\n              <span class=\"yvv-progress-text\" id=\"yvv-progressText\">Downloading...<\/span>\r\n              <button class=\"yvv-cancel-btn\" onclick=\"yvv_cancelDownload()\">Cancel<\/button>\r\n          <\/div>\r\n          <div class=\"yvv-progress-bar-container\">\r\n              <div class=\"yvv-progress-bar-fill\" id=\"yvv-progressBarFill\"><\/div>\r\n          <\/div>\r\n          <div class=\"yvv-progress-details\">\r\n              <span id=\"yvv-progressPercent\">0%<\/span>\r\n              <span id=\"yvv-progressSize\">0 MB \/ 0 MB<\/span>\r\n          <\/div>\r\n      <\/div>\r\n          \r\n       <\/section>\r\n  \r\n  <!-- Work Process Section -->\r\n  <section class=\"ytvv-work-process-section\" id=\"how-it-works\">\r\n      <div class=\"container ytvv-work-process-content\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title ytvv-light-title\">How Our Private YouTube Viewer Works<\/h2>\r\n              <p class=\"ytvv-section-subtitle ytvv-light-subtitle\">Watch YouTube videos privately and securely in just 3 easy steps<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row\">\r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">1<\/div>\r\n                      <h4 class=\"text-white\">Enter Video URL<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Paste the YouTube video URL you want to watch privately and safely<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">2<\/div>\r\n                      <h4 class=\"text-white\">Process Securely<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Our private system fetches the video without connecting directly to YouTube<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">3<\/div>\r\n                      <h4 class=\"text-white\">Watch Privately<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Enjoy the video with full privacy \u2014 no view tracking, no data sharing<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- Features Section -->\r\n  <section class=\"ytvv-features-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title\">Key Features<\/h2>\r\n              <p class=\"ytvv-section-subtitle\">Our Private YouTube Viewer ensures your online privacy and smooth playback<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row\">\r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-lock\"><\/i>\r\n                      <\/div>\r\n                      <h4>Private & Secure<\/h4>\r\n                      <p>Watch YouTube videos without being tracked, logged, or identified<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-shield\"><\/i>\r\n                      <\/div>\r\n                      <h4>No Tracking<\/h4>\r\n                      <p>YouTube and advertisers can\u2019t trace or record your viewing activity<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-video\"><\/i>\r\n                      <\/div>\r\n                      <h4>High Quality Streaming<\/h4>\r\n                      <p>Stream videos in their original quality up to 4K without lag or compression<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-stopwatch\"><\/i>\r\n                      <\/div>\r\n                      <h4>Instant Access<\/h4>\r\n                      <p>Our optimized player delivers fast loading and smooth video playback<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-mobile\"><\/i>\r\n                      <\/div>\r\n                      <h4>Ad-Free Experience<\/h4>\r\n                      <p>Say goodbye to intrusive YouTube ads \u2014 enjoy uninterrupted viewing<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-devices\"><\/i>\r\n                      <\/div>\r\n                      <h4>All-Device Support<\/h4>\r\n                      <p>Use the Private YouTube Viewer on mobile, tablet, or desktop seamlessly<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- Why Choose Section -->\r\n  <section class=\"ytvv-why-choose-section\">\r\n      <div class=\"container\">\r\n          <div class=\"row align-items-center\">\r\n              <div class=\"col-lg-6 mb-5 mb-lg-0\" data-aos=\"fade-right\">\r\n                  <div class=\"ytvv-why-choose-image ytvv-floating-element\">\r\n                      <img decoding=\"async\" src=\"https:\/\/viewanonymous.com\/wp-content\/uploads\/2026\/03\/Private_Youtube_Viewer.webp\" alt=\"Private YouTube Viewer\" class=\"img-fluid rounded-3\">\r\n                  <\/div>\r\n              <\/div>\r\n              <div class=\"col-lg-6\" data-aos=\"fade-left\">\r\n                  <h2 class=\"ytvv-section-title mb-4\">Why Choose Our Private YouTube Viewer?<\/h2>\r\n                  <p class=\"mb-4\">Our Private YouTube Viewer is designed for complete anonymity and seamless streaming. Whether you want to research, relax, or explore videos securely, we keep your data private and your experience ad-free.<\/p>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">No Login Required<\/h5>\r\n                          <p class=\"mb-0\">Start watching instantly \u2014 no YouTube account or credentials needed<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Completely Private<\/h5>\r\n                          <p class=\"mb-0\">Your viewing data, cookies, and IP remain fully hidden and secure<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Fast & Reliable<\/h5>\r\n                          <p class=\"mb-0\">Instant video access with zero buffering or playback delays<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">No Ads or Distractions<\/h5>\r\n                          <p class=\"mb-0\">Watch content in peace without pop-ups or pre-roll ads<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- FAQ Section -->\r\n  <section class=\"ytvv-faq-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title\">Frequently Asked Questions<\/h2>\r\n              <p class=\"ytvv-section-subtitle\">Everything you need to know about our Private YouTube Viewer<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row justify-content-center\">\r\n              <div class=\"col-lg-8\">\r\n                  <div class=\"accordion\" id=\"ytvv-faqAccordion\">\r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading1\">\r\n                              <button class=\"ytvv-accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse1\" aria-expanded=\"true\" aria-controls=\"ytvv-collapse1\">\r\n                                  Is the Private YouTube Viewer legal to use?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse1\" class=\"accordion-collapse collapse show\" aria-labelledby=\"ytvv-heading1\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  Yes, it\u2019s 100% legal. Our Private YouTube Viewer only accesses publicly available content \u2014 we don\u2019t bypass YouTube restrictions or private videos.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading2\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse2\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse2\">\r\n                                  Can I watch private or unlisted videos?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse2\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading2\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No, our service respects YouTube\u2019s privacy settings. It can only display public videos available to everyone.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading3\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse3\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse3\">\r\n                                  Does my watch activity get recorded?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse3\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading3\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  Not at all. We don\u2019t log, track, or save your viewing data \u2014 it remains completely private and anonymous.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading4\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse4\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse4\">\r\n                                  Do I need to install anything to use it?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse4\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading4\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  Nope! The Private YouTube Viewer runs completely online. Just paste a link and start watching privately.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading5\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse5\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse5\">\r\n                                  Can I download videos using this tool?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse5\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading5\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No, our Private YouTube Viewer is strictly for viewing only. Downloading videos would violate YouTube\u2019s terms of service.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n    \r\n    <!-- Footer -->\r\n    \r\n  \r\n  <!-- Copyright Section -->\r\n  \r\n  \r\n  \r\n  \r\n   <!-- YouTub Video Viewer js -->\r\n    <script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n    <script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n   <script>\r\n      \/\/ Using your original API\r\n      const API_URL = 'https:\/\/tools.xrespond.com\/api\/youtube\/video\/downloader';\r\n      let currentVideoData = null;\r\n      let videoPlayer = null;\r\n      let audioPlayer = null;\r\n      let isVideoPlaying = false;\r\n      let isAudioPlaying = false;\r\n      let currentFormatTab = 'video';\r\n      let downloadController = null;\r\n      let currentPlayingFormat = null;\r\n      let defaultVideoFormat = null;\r\n  \r\n      function yvv_isValidYouTubeURL(url) {\r\n          const patterns = [\r\n              \/^https:\\\/\\\/(?:www\\.)?youtube\\.com\\\/watch\\?v=[\\w-]+\/,\r\n              \/^https:\\\/\\\/youtu\\.be\\\/[\\w-]+\/,\r\n              \/^https:\\\/\\\/(?:www\\.)?youtube\\.com\\\/shorts\\\/[\\w-]+\/\r\n          ];\r\n          return patterns.some(pattern => pattern.test(url));\r\n      }\r\n  \r\n      function yvv_showError(message) {\r\n          const errorDiv = document.getElementById('yvv-errorDisplay');\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n  \r\n          errorDiv.textContent = message;\r\n          errorDiv.style.display = 'block';\r\n          urlInput.classList.add('error');\r\n  \r\n          setTimeout(() => {\r\n              errorDiv.style.display = 'none';\r\n              urlInput.classList.remove('error');\r\n          }, 5000);\r\n      }\r\n  \r\n      function yvv_hideError() {\r\n          const errorDiv = document.getElementById('yvv-errorDisplay');\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n  \r\n          errorDiv.style.display = 'none';\r\n          urlInput.classList.remove('error');\r\n      }\r\n  \r\n      function yvv_showLoading() {\r\n          document.getElementById('yvv-loadingIndicator').style.display = 'block';\r\n          document.getElementById('yvv-loadBtn').disabled = true;\r\n          document.getElementById('yvv-loadBtnText').textContent = '\u23f3 Loading...';\r\n      }\r\n  \r\n      function yvv_hideLoading() {\r\n          document.getElementById('yvv-loadingIndicator').style.display = 'none';\r\n          document.getElementById('yvv-loadBtn').disabled = false;\r\n          document.getElementById('yvv-loadBtnText').textContent = '\ud83c\udfa5 Load Video';\r\n      }\r\n  \r\n      function yvv_formatFileSize(bytes) {\r\n          if (bytes === 0) return '0 Bytes';\r\n          const k = 1024;\r\n          const sizes = ['Bytes', 'KB', 'MB', 'GB'];\r\n          const i = Math.floor(Math.log(bytes) \/ Math.log(k));\r\n          return parseFloat((bytes \/ Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\r\n      }\r\n  \r\n      function yvv_showDownloadProgress(text, progress = 0, downloaded = 0, total = 0) {\r\n          const progressDiv = document.getElementById('yvv-downloadProgress');\r\n          const progressText = document.getElementById('yvv-progressText');\r\n          const progressFill = document.getElementById('yvv-progressBarFill');\r\n          const progressPercent = document.getElementById('yvv-progressPercent');\r\n          const progressSize = document.getElementById('yvv-progressSize');\r\n  \r\n          progressText.textContent = text;\r\n          progressFill.style.width = `${progress}%`;\r\n          progressPercent.textContent = `${Math.round(progress)}%`;\r\n          progressSize.textContent = `${yvv_formatFileSize(downloaded)} \/ ${yvv_formatFileSize(total)}`;\r\n          progressDiv.classList.add('show');\r\n      }\r\n  \r\n      function yvv_hideDownloadProgress() {\r\n          document.getElementById('yvv-downloadProgress').classList.remove('show');\r\n      }\r\n  \r\n      async function yvv_loadVideo() {\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n          const url = urlInput.value.trim();\r\n  \r\n          if (!url) {\r\n              yvv_showError('Please enter a YouTube URL');\r\n              return;\r\n          }\r\n  \r\n          if (!yvv_isValidYouTubeURL(url)) {\r\n              yvv_showError('Please enter a valid YouTube URL');\r\n              return;\r\n          }\r\n  \r\n          yvv_hideError();\r\n          yvv_showLoading();\r\n  \r\n          try {\r\n              const formData = new FormData();\r\n              formData.append('url', url);\r\n  \r\n              const response = await fetch(API_URL, {\r\n                  method: 'POST',\r\n                  body: formData\r\n              });\r\n  \r\n              if (!response.ok) {\r\n                  throw new Error(`HTTP error! status: ${response.status}`);\r\n              }\r\n  \r\n              const data = await response.json();\r\n  \r\n              if (!data.success) {\r\n                  throw new Error(data.message || 'Failed to load video data');\r\n              }\r\n  \r\n              currentVideoData = data.data.data;\r\n              yvv_displayVideoInfo(currentVideoData);\r\n  \r\n              \/\/ Show video player with thumbnail\r\n              yvv_setupVideoPlayerWithThumbnail();\r\n  \r\n          } catch (error) {\r\n              console.error('Error:', error);\r\n              yvv_showError('Failed to load video data. Please check the URL and try again.');\r\n          } finally {\r\n              yvv_hideLoading();\r\n          }\r\n      }\r\n  \r\n      function yvv_setupVideoPlayerWithThumbnail() {\r\n          const videoPlayerSection = document.getElementById('yvv-videoPlayerSection');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n          const playerTitle = document.getElementById('yvv-playerVideoTitle');\r\n          const qualityBadge = document.getElementById('yvv-currentQualityBadge');\r\n  \r\n          \/\/ Set thumbnail background\r\n          thumbnailOverlay.style.backgroundImage = `url(${currentVideoData.thumbnail})`;\r\n          thumbnailOverlay.classList.remove('hidden');\r\n  \r\n          \/\/ Set title\r\n          playerTitle.textContent = currentVideoData.title;\r\n          qualityBadge.textContent = 'Ready to Play';\r\n  \r\n          \/\/ Show video player section\r\n          videoPlayerSection.style.display = 'block';\r\n  \r\n          \/\/ Find default video format (prefer 720p or first available)\r\n          const videoFormats = currentVideoData.links.filter(link => link.type === 'video');\r\n          defaultVideoFormat = videoFormats.find(f => f.resolution.includes('720p')) || videoFormats[0];\r\n  \r\n          \/\/ Reset video player\r\n          const videoPlayer = document.getElementById('yvv-mainVideoPlayer');\r\n          videoPlayer.src = '';\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Hide audio player if open\r\n          document.getElementById('yvv-audioPlayerSection').style.display = 'none';\r\n      }\r\n  \r\n      function yvv_playDefaultVideo() {\r\n          if (defaultVideoFormat) {\r\n              yvv_streamVideoDirectly(defaultVideoFormat.download_url, defaultVideoFormat.resolution);\r\n              yvv_updateCurrentPlayingFormat(defaultVideoFormat.resolution, 'video');\r\n          }\r\n      }\r\n  \r\n      function yvv_displayVideoInfo(data) {\r\n          \/\/ Set video info\r\n          document.getElementById('yvv-videoDetailsTitle').textContent = data.title;\r\n          document.getElementById('yvv-videoDurationStat').textContent = data.duration;\r\n          document.getElementById('yvv-videoUploaderStat').textContent = data.uploader;\r\n          document.getElementById('yvv-videoThumbnail').src = data.thumbnail;\r\n  \r\n          \/\/ Display formats\r\n          yvv_displayFormats(data.links);\r\n  \r\n          document.getElementById('yvv-videoInfoSection').style.display = 'block';\r\n      }\r\n  \r\n      function yvv_streamVideoDirectly(url, resolution) {\r\n          const videoPlayer = document.getElementById('yvv-mainVideoPlayer');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n          const qualityBadge = document.getElementById('yvv-currentQualityBadge');\r\n  \r\n          \/\/ Hide thumbnail overlay\r\n          thumbnailOverlay.classList.add('hidden');\r\n  \r\n          \/\/ Set video source\r\n          videoPlayer.src = url;\r\n          videoPlayer.load();\r\n  \r\n          \/\/ Update quality badge\r\n          qualityBadge.textContent = resolution;\r\n  \r\n          \/\/ Reset controls\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Setup event listeners\r\n          yvv_setupVideoEventListeners();\r\n  \r\n          \/\/ Scroll to video player\r\n          document.getElementById('yvv-videoPlayerSection').scrollIntoView({\r\n              behavior: 'smooth',\r\n              block: 'start'\r\n          });\r\n      }\r\n  \r\n      function yvv_updateCurrentPlayingFormat(quality, type) {\r\n          \/\/ Remove previous playing indicators\r\n          document.querySelectorAll('.yvv-format-option').forEach(option => {\r\n              option.classList.remove('playing');\r\n          });\r\n          document.querySelectorAll('.yvv-stream-action').forEach(btn => {\r\n              btn.classList.remove('playing');\r\n              btn.innerHTML = btn.innerHTML.replace('\u23f8 Playing', '\u25b6 Stream').replace('\ud83c\udfb5 Playing', '\ud83c\udfb5 Stream Audio');\r\n          });\r\n  \r\n          \/\/ Set current playing format\r\n          currentPlayingFormat = { quality, type };\r\n  \r\n          \/\/ Update format cards to show which is playing\r\n          const formatCards = document.querySelectorAll('.yvv-format-option');\r\n          formatCards.forEach(card => {\r\n              const qualityElement = card.querySelector('.yvv-format-quality');\r\n              const streamBtn = card.querySelector('.yvv-stream-action, .yvv-audio-action');\r\n  \r\n              if (qualityElement && streamBtn) {\r\n                  const cardQuality = qualityElement.textContent;\r\n                  const isCurrentFormat = (type === 'video' && cardQuality === quality) ||\r\n                      (type === 'audio' && cardQuality === 'Audio Quality' && quality === 'Audio');\r\n  \r\n                  if (isCurrentFormat) {\r\n                      card.classList.add('playing');\r\n                      streamBtn.classList.add('playing');\r\n                      if (type === 'video') {\r\n                          streamBtn.innerHTML = '\u23f8 Playing';\r\n                      } else {\r\n                          streamBtn.innerHTML = '\ud83c\udfb5 Playing';\r\n                      }\r\n                  }\r\n              }\r\n          });\r\n      }\r\n  \r\n      function yvv_switchFormatTab(tab) {\r\n          currentFormatTab = tab;\r\n  \r\n          \/\/ Update tab appearance\r\n          document.querySelectorAll('.yvv-format-tab').forEach(t => t.classList.remove('active'));\r\n          event.target.classList.add('active');\r\n  \r\n          \/\/ Display formats for selected tab\r\n          if (currentVideoData) {\r\n              yvv_displayFormats(currentVideoData.links);\r\n          }\r\n      }\r\n  \r\n      function yvv_displayFormats(links) {\r\n          const formatGrid = document.getElementById('yvv-formatGrid');\r\n          formatGrid.innerHTML = '';\r\n  \r\n          let formats;\r\n          if (currentFormatTab === 'video') {\r\n              formats = links.filter(link => link.type === 'video');\r\n          } else {\r\n              formats = links.filter(link => link.type === 'audio');\r\n          }\r\n  \r\n          formats.forEach((format, index) => {\r\n              const formatCard = document.createElement('div');\r\n              formatCard.className = 'yvv-format-option';\r\n  \r\n              \/\/ Check if this format is currently playing\r\n              const isPlaying = currentPlayingFormat &&\r\n                  ((currentFormatTab === 'video' && currentPlayingFormat.quality === format.resolution && currentPlayingFormat.type === 'video') ||\r\n                      (currentFormatTab === 'audio' && currentPlayingFormat.type === 'audio'));\r\n  \r\n              if (isPlaying) {\r\n                  formatCard.classList.add('playing');\r\n              }\r\n  \r\n              if (currentFormatTab === 'video') {\r\n                  \/\/ Check if this is 360p to hide download button\r\n                  const is360p = format.resolution.includes('360p');\r\n  \r\n                  formatCard.innerHTML = `\r\n                      <div class=\"yvv-format-header\">\r\n                          <div class=\"yvv-format-quality\">${format.resolution}<\/div>\r\n                          <div class=\"yvv-format-type-badge\">MP4<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-format-actions\">\r\n                          <button class=\"yvv-action-btn yvv-stream-action ${isPlaying ? 'playing' : ''}\" onclick=\"yvv_streamVideo('${format.download_url}', '${format.resolution}')\">\r\n                              ${isPlaying ? '\u23f8 Playing' : '\u25b6 Stream'}\r\n                          <\/button>\r\n                          ${!is360p ? `<button class=\"yvv-action-btn yvv-download-action\" onclick=\"yvv_downloadFile('${format.download_url}', '${format.resolution}', 'video')\">\r\n                              \u2b07\ufe0f Download\r\n                          <\/button>` : ''}\r\n                      <\/div>\r\n                  `;\r\n              } else {\r\n                  formatCard.innerHTML = `\r\n                      <div class=\"yvv-format-header\">\r\n                          <div class=\"yvv-format-quality\">Audio Quality<\/div>\r\n                          <div class=\"yvv-format-type-badge\">MP3<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-format-actions\">\r\n                          <button class=\"yvv-action-btn yvv-audio-action ${isPlaying ? 'playing' : ''}\" onclick=\"yvv_streamAudio('${format.download_url}')\">\r\n                              ${isPlaying ? '\ud83c\udfb5 Playing' : '\ud83c\udfb5 Stream Audio'}\r\n                          <\/button>\r\n                          <button class=\"yvv-action-btn yvv-download-action\" onclick=\"yvv_downloadFile('${format.download_url}', 'Audio', 'audio')\">\r\n                              \u2b07\ufe0f Download\r\n                          <\/button>\r\n                      <\/div>\r\n                  `;\r\n              }\r\n  \r\n              formatGrid.appendChild(formatCard);\r\n          });\r\n      }\r\n  \r\n      function yvv_streamVideo(url, resolution) {\r\n          yvv_streamVideoDirectly(url, resolution);\r\n          yvv_updateCurrentPlayingFormat(resolution, 'video');\r\n      }\r\n  \r\n      function yvv_streamAudio(url) {\r\n          const audioPlayer = document.getElementById('yvv-audioPlayer');\r\n          const audioPlayerSection = document.getElementById('yvv-audioPlayerSection');\r\n  \r\n          \/\/ Set audio source\r\n          audioPlayer.src = url;\r\n          audioPlayer.load();\r\n  \r\n          \/\/ Show audio player section\r\n          audioPlayerSection.style.display = 'block';\r\n          audioPlayerSection.scrollIntoView({ behavior: 'smooth' });\r\n  \r\n          \/\/ Reset controls\r\n          isAudioPlaying = false;\r\n          document.getElementById('yvv-audioPlayBtn').textContent = '\u25b6';\r\n  \r\n          \/\/ Setup event listeners\r\n          yvv_setupAudioEventListeners();\r\n  \r\n          \/\/ Update playing format\r\n          yvv_updateCurrentPlayingFormat('Audio', 'audio');\r\n  \r\n          \/\/ Hide video player if open\r\n          document.getElementById('yvv-videoPlayerSection').style.display = 'none';\r\n      }\r\n  \r\n      async function yvv_downloadFile(url, quality, type) {\r\n          const downloadBtn = event.target;\r\n          const originalText = downloadBtn.innerHTML;\r\n  \r\n          downloadBtn.disabled = true;\r\n          downloadBtn.innerHTML = '\u23f3 Preparing...';\r\n  \r\n          \/\/ Create abort controller for cancellation\r\n          downloadController = new AbortController();\r\n  \r\n          try {\r\n              yvv_showDownloadProgress(`Starting ${quality} download...`, 0);\r\n  \r\n              const response = await fetch(url, {\r\n                  signal: downloadController.signal\r\n              });\r\n  \r\n              if (!response.ok) {\r\n                  throw new Error(`HTTP error! status: ${response.status}`);\r\n              }\r\n  \r\n              const totalSize = parseInt(response.headers.get('content-length') || '0');\r\n              const reader = response.body.getReader();\r\n              let receivedSize = 0;\r\n              const chunks = [];\r\n  \r\n              while (true) {\r\n                  const { done, value } = await reader.read();\r\n  \r\n                  if (done) break;\r\n  \r\n                  chunks.push(value);\r\n                  receivedSize += value.length;\r\n  \r\n                  const progress = totalSize ? (receivedSize \/ totalSize) * 100 : 0;\r\n                  yvv_showDownloadProgress(`Downloading ${quality}...`, progress, receivedSize, totalSize);\r\n              }\r\n  \r\n              yvv_showDownloadProgress('Processing download...', 95, receivedSize, totalSize);\r\n  \r\n              \/\/ Create blob and download\r\n              const mimeType = type === 'video' ? 'video\/mp4' : 'audio\/mpeg';\r\n              const extension = type === 'video' ? 'mp4' : 'mp3';\r\n              const blob = new Blob(chunks, { type: mimeType });\r\n              const downloadUrl = URL.createObjectURL(blob);\r\n  \r\n              \/\/ Create download link\r\n              const a = document.createElement('a');\r\n              a.href = downloadUrl;\r\n              a.download = `${currentVideoData.title.replace(\/[^a-zA-Z0-9\\s]\/g, '_').trim()}_${quality}.${extension}`;\r\n              a.style.display = 'none';\r\n              document.body.appendChild(a);\r\n              a.click();\r\n              document.body.removeChild(a);\r\n  \r\n              \/\/ Clean up URL\r\n              setTimeout(() => URL.revokeObjectURL(downloadUrl), 1000);\r\n  \r\n              yvv_showDownloadProgress('Download completed!', 100, receivedSize, totalSize);\r\n              setTimeout(yvv_hideDownloadProgress, 3000);\r\n  \r\n          } catch (error) {\r\n              if (error.name === 'AbortError') {\r\n                  yvv_showDownloadProgress('Download cancelled', 0);\r\n                  setTimeout(yvv_hideDownloadProgress, 2000);\r\n              } else {\r\n                  yvv_showError(`Download failed: ${error.message}`);\r\n                  yvv_hideDownloadProgress();\r\n              }\r\n          } finally {\r\n              downloadBtn.disabled = false;\r\n              downloadBtn.innerHTML = originalText;\r\n              downloadController = null;\r\n          }\r\n      }\r\n  \r\n      function yvv_cancelDownload() {\r\n          if (downloadController) {\r\n              downloadController.abort();\r\n              downloadController = null;\r\n          }\r\n      }\r\n  \r\n      function yvv_setupVideoEventListeners() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n  \r\n          \/\/ Remove existing event listeners\r\n          video.removeEventListener('timeupdate', yvv_updateVideoProgress);\r\n          video.removeEventListener('loadedmetadata', yvv_updateVideoProgress);\r\n          video.removeEventListener('ended', yvv_handleVideoEnded);\r\n  \r\n          \/\/ Add event listeners\r\n          video.addEventListener('timeupdate', yvv_updateVideoProgress);\r\n          video.addEventListener('loadedmetadata', yvv_updateVideoProgress);\r\n          video.addEventListener('ended', yvv_handleVideoEnded);\r\n  \r\n          \/\/ Initialize volume\r\n          const volumeSlider = document.getElementById('yvv-videoVolumeControl');\r\n          video.volume = volumeSlider.value \/ 100;\r\n      }\r\n  \r\n      function yvv_setupAudioEventListeners() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n  \r\n          \/\/ Remove existing event listeners\r\n          audio.removeEventListener('timeupdate', yvv_updateAudioProgress);\r\n          audio.removeEventListener('loadedmetadata', yvv_updateAudioProgress);\r\n          audio.removeEventListener('ended', yvv_handleAudioEnded);\r\n  \r\n          \/\/ Add event listeners\r\n          audio.addEventListener('timeupdate', yvv_updateAudioProgress);\r\n          audio.addEventListener('loadedmetadata', yvv_updateAudioProgress);\r\n          audio.addEventListener('ended', yvv_handleAudioEnded);\r\n  \r\n          \/\/ Initialize volume\r\n          const volumeSlider = document.getElementById('yvv-audioVolumeSlider');\r\n          audio.volume = volumeSlider.value \/ 100;\r\n      }\r\n  \r\n      function yvv_toggleVideoPlayback() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const btn = document.getElementById('yvv-playPauseControl');\r\n  \r\n          if (isVideoPlaying) {\r\n              video.pause();\r\n              btn.textContent = '\u25b6';\r\n              isVideoPlaying = false;\r\n          } else {\r\n              video.play().catch(error => {\r\n                  console.error('Video playback failed:', error);\r\n                  yvv_showError('Video streaming not available. Please try another format.');\r\n              });\r\n              btn.textContent = '\u23f8';\r\n              isVideoPlaying = true;\r\n          }\r\n      }\r\n  \r\n      function yvv_toggleAudioPlayback() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const btn = document.getElementById('yvv-audioPlayBtn');\r\n  \r\n          if (isAudioPlaying) {\r\n              audio.pause();\r\n              btn.textContent = '\u25b6';\r\n              isAudioPlaying = false;\r\n              yvv_stopVisualizerAnimation();\r\n          } else {\r\n              audio.play().catch(error => {\r\n                  console.error('Audio playback failed:', error);\r\n                  yvv_showError('Audio streaming not available. Please try another format.');\r\n              });\r\n              btn.textContent = '\u23f8';\r\n              isAudioPlaying = true;\r\n              yvv_startVisualizerAnimation();\r\n          }\r\n      }\r\n  \r\n      function yvv_adjustVideoVolume(value) {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const volumeIcon = document.getElementById('yvv-videoVolumeIcon');\r\n  \r\n          video.volume = value \/ 100;\r\n  \r\n          if (value == 0) {\r\n              volumeIcon.textContent = '\ud83d\udd07';\r\n          } else if (value < 30) {\r\n              volumeIcon.textContent = '\ud83d\udd08';\r\n          } else if (value < 70) {\r\n              volumeIcon.textContent = '\ud83d\udd09';\r\n          } else {\r\n              volumeIcon.textContent = '\ud83d\udd0a';\r\n          }\r\n      }\r\n  \r\n      function yvv_adjustAudioVolume(value) {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const volumeIcon = document.getElementById('yvv-audioVolumeIcon');\r\n  \r\n          audio.volume = value \/ 100;\r\n  \r\n          if (value == 0) {\r\n              volumeIcon.textContent = '\ud83d\udd07';\r\n          } else if (value < 30) {\r\n              volumeIcon.textContent = '\ud83d\udd08';\r\n          } else if (value < 70) {\r\n              volumeIcon.textContent = '\ud83d\udd09';\r\n          } else {\r\n              volumeIcon.textContent = '\ud83d\udd0a';\r\n          }\r\n      }\r\n  \r\n      function yvv_seekVideoTo(event) {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const progressBar = event.currentTarget;\r\n          const rect = progressBar.getBoundingClientRect();\r\n          const clickX = event.clientX - rect.left;\r\n          const percentage = clickX \/ rect.width;\r\n  \r\n          if (video.duration) {\r\n              video.currentTime = percentage * video.duration;\r\n          }\r\n      }\r\n  \r\n      function yvv_seekAudioTo(event) {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const progressBar = event.currentTarget;\r\n          const rect = progressBar.getBoundingClientRect();\r\n          const clickX = event.clientX - rect.left;\r\n          const percentage = clickX \/ rect.width;\r\n  \r\n          if (audio.duration) {\r\n              audio.currentTime = percentage * audio.duration;\r\n          }\r\n      }\r\n  \r\n      function yvv_updateVideoProgress() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const progressFill = document.getElementById('yvv-videoProgressFill');\r\n          const timeInfo = document.getElementById('yvv-videoTimeInfo');\r\n  \r\n          if (video.duration) {\r\n              const percentage = (video.currentTime \/ video.duration) * 100;\r\n              progressFill.style.width = percentage + '%';\r\n  \r\n              const currentTime = yvv_formatTime(video.currentTime);\r\n              const totalTime = yvv_formatTime(video.duration);\r\n              timeInfo.textContent = `${currentTime} \/ ${totalTime}`;\r\n          }\r\n      }\r\n  \r\n      function yvv_updateAudioProgress() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const progressFill = document.getElementById('yvv-audioProgressFill');\r\n          const timeInfo = document.getElementById('yvv-audioTimeInfo');\r\n  \r\n          if (audio.duration) {\r\n              const percentage = (audio.currentTime \/ audio.duration) * 100;\r\n              progressFill.style.width = percentage + '%';\r\n  \r\n              const currentTime = yvv_formatTime(audio.currentTime);\r\n              const totalTime = yvv_formatTime(audio.duration);\r\n              timeInfo.textContent = `${currentTime} \/ ${totalTime}`;\r\n          }\r\n      }\r\n  \r\n      function yvv_formatTime(seconds) {\r\n          const minutes = Math.floor(seconds \/ 60);\r\n          const remainingSeconds = Math.floor(seconds % 60);\r\n          return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;\r\n      }\r\n  \r\n      function yvv_handleVideoEnded() {\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-videoProgressFill').style.width = '0%';\r\n      }\r\n  \r\n      function yvv_handleAudioEnded() {\r\n          document.getElementById('yvv-audioPlayBtn').textContent = '\u25b6';\r\n          isAudioPlaying = false;\r\n          yvv_stopVisualizerAnimation();\r\n          document.getElementById('yvv-audioProgressFill').style.width = '0%';\r\n      }\r\n  \r\n      function yvv_closeVideoPlayer() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const videoPlayerSection = document.getElementById('yvv-videoPlayerSection');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n  \r\n          video.pause();\r\n          video.src = '';\r\n          videoPlayerSection.style.display = 'none';\r\n          thumbnailOverlay.classList.remove('hidden');\r\n          isVideoPlaying = false;\r\n          currentPlayingFormat = null;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Reset format indicators\r\n          document.querySelectorAll('.yvv-format-option').forEach(option => {\r\n              option.classList.remove('playing');\r\n          });\r\n          document.querySelectorAll('.yvv-stream-action').forEach(btn => {\r\n              btn.classList.remove('playing');\r\n              btn.innerHTML = btn.innerHTML.replace('\u23f8 Playing', '\u25b6 Stream');\r\n          });\r\n      }\r\n  \r\n      function yvv_startVisualizerAnimation() {\r\n          const bars = document.querySelectorAll('.yvv-visualizer-bar');\r\n          bars.forEach(bar => {\r\n              bar.style.animationPlayState = 'running';\r\n          });\r\n      }\r\n  \r\n      function yvv_stopVisualizerAnimation() {\r\n          const bars = document.querySelectorAll('.yvv-visualizer-bar');\r\n          bars.forEach(bar => {\r\n              bar.style.animationPlayState = 'paused';\r\n          });\r\n      }\r\n  \r\n      \/\/ Event listeners\r\n      document.getElementById('yvv-videoInput').addEventListener('keypress', function (e) {\r\n          if (e.key === 'Enter') {\r\n              yvv_loadVideo();\r\n          }\r\n      });\r\n  \r\n      document.getElementById('yvv-videoInput').addEventListener('input', function (e) {\r\n          const url = e.target.value.trim();\r\n          if (url && !yvv_isValidYouTubeURL(url)) {\r\n              e.target.classList.add('error');\r\n          } else {\r\n              e.target.classList.remove('error');\r\n              yvv_hideError();\r\n          }\r\n      });\r\n  \r\n      \/\/ Auto-focus on input\r\n      document.getElementById('yvv-videoInput').focus();\r\n  <\/script>\r\n  \r\n  \r\n  \r\n    <noscript>\r\n      <style type=\"text\/css\">\r\n        [data-aos] {\r\n          opacity: 1 !important;\r\n          transform: translate(0) scale(1) !important;\r\n        }\r\n      <\/style>\r\n    <\/noscript>\r\n\r\n    <!-- Bootstrap then AOS: AOS CSS hides [data-aos] until init runs \u2014 load library before AOS.init() -->\r\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\r\n    <script src=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.js\"><\/script>\r\n\r\n    <script>\r\n          if (typeof AOS !== 'undefined') {\r\n              AOS.init({\r\n                  duration: 800,\r\n                  easing: 'ease-in-out',\r\n                  once: true\r\n              });\r\n          } else {\r\n              document.querySelectorAll('[data-aos]').forEach(function (el) {\r\n                  el.removeAttribute('data-aos');\r\n              });\r\n          }\r\n\r\n          document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\r\n              anchor.addEventListener('click', function (e) {\r\n                  const id = this.getAttribute('href');\r\n                  if (!id || id === '#') return;\r\n                  const target = document.querySelector(id);\r\n                  if (target) {\r\n                      e.preventDefault();\r\n                      target.scrollIntoView({ behavior: 'smooth' });\r\n                  }\r\n              });\r\n          });\r\n    <\/script>\r\n  \r\n  \r\n  <grammarly-desktop-integration data-grammarly-shadow-root=\"true\"><\/grammarly-desktop-integration><grammarly-desktop-integration data-grammarly-shadow-root=\"true\"><\/grammarly-desktop-integration>\r\n  <script defer=\"\" src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\" integrity=\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\" data-cf-beacon=\"{\"version\":\"2024.11.0\",\"token\":\"786b797d7952407aac48ed2776a3a826\",\"r\":1,\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}\" crossorigin=\"anonymous\"><\/script>\r\n  <script defer=\"\" src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/v8c78df7c7c0f484497ecbca7046644da1771523124516\" integrity=\"sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==\" data-cf-beacon=\"{\"version\":\"2024.11.0\",\"token\":\"786b797d7952407aac48ed2776a3a826\",\"r\":1,\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}\" crossorigin=\"anonymous\"><\/script>\r\n \n","protected":false},"author":1,"featured_media":0,"parent":243,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-595","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/comments?post=595"}],"version-history":[{"count":5,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/595\/revisions"}],"predecessor-version":[{"id":676,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/595\/revisions\/676"}],"up":[{"embeddable":true,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/243"}],"wp:attachment":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/media?parent=595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}