{"id":685,"date":"2026-03-08T00:00:11","date_gmt":"2026-03-08T00:00:11","guid":{"rendered":"https:\/\/viewanonymous.com\/?page_id=685"},"modified":"2026-03-31T09:09:38","modified_gmt":"2026-03-31T09:09:38","slug":"link","status":"publish","type":"page","link":"https:\/\/viewanonymous.com\/tools\/youtube\/link\/","title":{"rendered":"YouTube Link Viewer \u2013 Open &amp; Watch Videos Instantly"},"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  <\/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-primary);\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  <\/head><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\">Y<\/span>outube <span class=\"va-cap\">L<\/span>ink <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 YouTube Link Viewer Works<\/h2>\r\n              <p class=\"ytvv-section-subtitle ytvv-light-subtitle\">View any YouTube link securely and anonymously 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 YouTube Link<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Paste the YouTube link you want to view without signing in or being tracked<\/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 the Link<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Our secure system fetches the video data safely without contacting YouTube servers directly<\/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\">View Anonymously<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Watch or preview the content without leaving any trace or affecting view counts<\/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 YouTube Link Viewer offers complete privacy and seamless viewing<\/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-user\"><\/i>\r\n                      <\/div>\r\n                      <h4>Anonymous Viewing<\/h4>\r\n                      <p>Open YouTube links without revealing your identity or being tracked by YouTube analytics<\/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>Privacy Protection<\/h4>\r\n                      <p>Your viewing sessions remain private \u2014 no cookies, tracking, or watch history<\/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-link\"><\/i>\r\n                      <\/div>\r\n                      <h4>Universal Link Support<\/h4>\r\n                      <p>View any YouTube link, including public and unlisted videos, without login<\/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>Open YouTube links instantly with no buffering or delays<\/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-megaphone\"><\/i>\r\n                      <\/div>\r\n                      <h4>Ad-Free Interface<\/h4>\r\n                      <p>Enjoy videos with zero ads or interruptions for a cleaner experience<\/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>Cross-Device Support<\/h4>\r\n                      <p>Use YouTube Link Viewer on desktop, tablet, or mobile 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\/Youtube_Link_Viewer.webp\" alt=\"YouTube Link 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 YouTube Link Viewer?<\/h2>\r\n                  <p class=\"mb-4\">Our YouTube Link Viewer is designed for users who value privacy and simplicity. Whether you\u2019re checking a video link, previewing content, or avoiding YouTube\u2019s tracking system, our tool makes it effortless and secure.<\/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 Sign-In Needed<\/h5>\r\n                          <p class=\"mb-0\">Paste any YouTube link \u2014 no account or credentials required<\/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\">100% Private<\/h5>\r\n                          <p class=\"mb-0\">Your viewing data stays completely private and untracked<\/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\">Works for All Links<\/h5>\r\n                          <p class=\"mb-0\">Supports any public or unlisted YouTube video link<\/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 & Secure<\/h5>\r\n                          <p class=\"mb-0\">Enjoy instant, secure access to YouTube videos without restrictions<\/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\">Find answers to common questions about our YouTube Link 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 it safe to use the YouTube Link Viewer?\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 completely safe. Our YouTube Link Viewer doesn\u2019t store or share any user data. All connections are encrypted to maintain your privacy.\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 view private YouTube videos with this tool?\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 tool respects YouTube\u2019s privacy and copyright rules. You can only view public or unlisted links that are accessible 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                                  Will this affect YouTube\u2019s algorithm or video stats?\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                                  No, when you use our viewer, your watch activity doesn\u2019t count toward view stats, likes, or recommendations on YouTube.\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 log in or install anything?\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                                  No login, signup, or software installation is required. Just enter a valid YouTube link and view it instantly.\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, YouTube Link Viewer is for viewing only. Downloading videos from YouTube without authorization violates their 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    <!-- AOS: load unpkg aos.js BEFORE AOS.init. ..\/js\/aos.js is missing here\u2014do not re-add or [data-aos] stays hidden. -->\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    <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  <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  <\/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-primary);\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  <\/head><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\">Y<\/span>outube <span class=\"va-cap\">L<\/span>ink <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 YouTube Link Viewer Works<\/h2>\r\n              <p class=\"ytvv-section-subtitle ytvv-light-subtitle\">View any YouTube link securely and anonymously 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 YouTube Link<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Paste the YouTube link you want to view without signing in or being tracked<\/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 the Link<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Our secure system fetches the video data safely without contacting YouTube servers directly<\/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\">View Anonymously<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Watch or preview the content without leaving any trace or affecting view counts<\/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 YouTube Link Viewer offers complete privacy and seamless viewing<\/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-user\"><\/i>\r\n                      <\/div>\r\n                      <h4>Anonymous Viewing<\/h4>\r\n                      <p>Open YouTube links without revealing your identity or being tracked by YouTube analytics<\/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>Privacy Protection<\/h4>\r\n                      <p>Your viewing sessions remain private \u2014 no cookies, tracking, or watch history<\/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-link\"><\/i>\r\n                      <\/div>\r\n                      <h4>Universal Link Support<\/h4>\r\n                      <p>View any YouTube link, including public and unlisted videos, without login<\/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>Open YouTube links instantly with no buffering or delays<\/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-megaphone\"><\/i>\r\n                      <\/div>\r\n                      <h4>Ad-Free Interface<\/h4>\r\n                      <p>Enjoy videos with zero ads or interruptions for a cleaner experience<\/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>Cross-Device Support<\/h4>\r\n                      <p>Use YouTube Link Viewer on desktop, tablet, or mobile 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\/Youtube_Link_Viewer.webp\" alt=\"YouTube Link 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 YouTube Link Viewer?<\/h2>\r\n                  <p class=\"mb-4\">Our YouTube Link Viewer is designed for users who value privacy and simplicity. Whether you\u2019re checking a video link, previewing content, or avoiding YouTube\u2019s tracking system, our tool makes it effortless and secure.<\/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 Sign-In Needed<\/h5>\r\n                          <p class=\"mb-0\">Paste any YouTube link \u2014 no account or credentials required<\/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\">100% Private<\/h5>\r\n                          <p class=\"mb-0\">Your viewing data stays completely private and untracked<\/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\">Works for All Links<\/h5>\r\n                          <p class=\"mb-0\">Supports any public or unlisted YouTube video link<\/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 & Secure<\/h5>\r\n                          <p class=\"mb-0\">Enjoy instant, secure access to YouTube videos without restrictions<\/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\">Find answers to common questions about our YouTube Link 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 it safe to use the YouTube Link Viewer?\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 completely safe. Our YouTube Link Viewer doesn\u2019t store or share any user data. All connections are encrypted to maintain your privacy.\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 view private YouTube videos with this tool?\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 tool respects YouTube\u2019s privacy and copyright rules. You can only view public or unlisted links that are accessible 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                                  Will this affect YouTube\u2019s algorithm or video stats?\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                                  No, when you use our viewer, your watch activity doesn\u2019t count toward view stats, likes, or recommendations on YouTube.\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 log in or install anything?\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                                  No login, signup, or software installation is required. Just enter a valid YouTube link and view it instantly.\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, YouTube Link Viewer is for viewing only. Downloading videos from YouTube without authorization violates their 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    <!-- AOS: load unpkg aos.js BEFORE AOS.init. ..\/js\/aos.js is missing here\u2014do not re-add or [data-aos] stays hidden. -->\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    <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  <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-685","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/685","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=685"}],"version-history":[{"count":4,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/685\/revisions"}],"predecessor-version":[{"id":815,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/685\/revisions\/815"}],"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=685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}