{"id":242,"date":"2026-03-08T00:00:39","date_gmt":"2026-03-08T00:00:39","guid":{"rendered":"https:\/\/viewanonymous.com\/?page_id=242"},"modified":"2026-03-31T05:33:05","modified_gmt":"2026-03-31T05:33:05","slug":"link","status":"publish","type":"page","link":"https:\/\/viewanonymous.com\/tools\/reddit\/link\/","title":{"rendered":"Reddit Link Viewer &#8211; Browse Reddit URLs Anonymously"},"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      <!-- 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      \r\n  \r\n  <style id=\"vvvebjs-styles\">\r\n      html{\r\n          overflow-x: hidden;\r\n      }\r\n  \r\n      :root {\r\n              --rduv-primary-color: #8A66FF;\r\n              --rduv-secondary-color: #6A4FE0;\r\n              --rduv-dark-color: #000000;\r\n              --rduv-light-color: #FFFFFF;\r\n              --rduv-gray-color: #F5F3FF;\r\n              --rduv-muted-on-light: #555555;\r\n              --rduv-primary-hover: #7758F0;\r\n              --rduv-secondary-hover: #9B85FF;\r\n              --rduv-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(--rduv-light-color);\r\n              color: var(--rduv-dark-color);\r\n          }\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     \r\n      \/* Reddit-style Hero Section *\/\r\n      .rduv-hero-section {\r\n              padding: var(--rduv-section-padding);\r\n              text-align: center;\r\n              background-color: var(--rduv-light-color);\r\n  \r\n          }\r\n          \r\n          .rduv-hero-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .rduv-hero-section h1 {\r\n              font-size: 3.5rem;\r\n              font-weight: 700;\r\n              margin-bottom: 1.5rem;\r\n              color: var(--rduv-dark-color);\r\n              -webkit-text-fill-color: var(--rduv-dark-color);\r\n              background: none;\r\n              -webkit-background-clip: unset;\r\n              background-clip: unset;\r\n          }\r\n\r\n          .rduv-hero-section h1 .va-accent {\r\n              color: var(--rduv-primary-color);\r\n              -webkit-text-fill-color: var(--rduv-primary-color);\r\n          }\r\n          \r\n          .rduv-hero-section p {\r\n              font-size: 1.25rem;\r\n              max-width: 700px;\r\n              margin: 0 auto 2rem;\r\n              font-weight: 400;\r\n              color: var(--rduv-muted-on-light);\r\n          }\r\n          \r\n          \/* Work Process \u2014 white \/ lavender content (logo-style) *\/\r\n          .rduv-work-process-section {\r\n              padding: var(--rduv-section-padding);\r\n              background: linear-gradient(180deg, #faf9ff 0%, #F5F3FF 45%, #f0ecff 100%);\r\n              color: var(--rduv-dark-color);\r\n              position: relative;\r\n              overflow: hidden;\r\n              border-top: 1px solid rgba(138, 102, 255, 0.12);\r\n              border-bottom: 1px solid rgba(138, 102, 255, 0.1);\r\n          }\r\n          \r\n          .rduv-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: radial-gradient(ellipse 85% 55% at 50% 0%, rgba(138, 102, 255, 0.09) 0%, transparent 58%);\r\n              pointer-events: none;\r\n          }\r\n\r\n          .rduv-work-process-section .rduv-light-title {\r\n              color: var(--rduv-dark-color);\r\n          }\r\n\r\n          .rduv-work-process-section .rduv-light-title::after {\r\n              background: linear-gradient(to right, var(--rduv-primary-color), var(--rduv-secondary-color));\r\n          }\r\n\r\n          .rduv-work-process-section .rduv-light-subtitle {\r\n              color: var(--rduv-muted-on-light);\r\n          }\r\n\r\n          .rduv-work-process-section .rduv-process-step {\r\n              background: #ffffff;\r\n              border: 1px solid rgba(138, 102, 255, 0.2);\r\n              box-shadow: 0 10px 28px rgba(138, 102, 255, 0.08);\r\n          }\r\n\r\n          .rduv-work-process-section .rduv-process-step:hover {\r\n              transform: translateY(-10px);\r\n              background: #ffffff;\r\n              box-shadow: 0 16px 36px rgba(138, 102, 255, 0.14);\r\n          }\r\n\r\n          .rduv-work-process-section h4.text-white {\r\n              color: var(--rduv-dark-color) !important;\r\n          }\r\n          \r\n          .rduv-work-process-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .rduv-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          .rduv-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          .rduv-step-number {\r\n              width: 60px;\r\n              height: 60px;\r\n              background: white;\r\n              background: linear-gradient(45deg, var(--rduv-primary-color), var(--rduv-secondary-color));\r\n              color: white;\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          .rduv-features-section {\r\n              padding: var(--rduv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .rduv-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          .rduv-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: linear-gradient(to bottom, var(--rduv-primary-color), var(--rduv-secondary-color));\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .rduv-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          .rduv-feature-card:hover::before {\r\n              width: 100%;\r\n              opacity: 0.1;\r\n          }\r\n          \r\n          .rduv-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: linear-gradient(45deg, var(--rduv-primary-color), var(--rduv-secondary-color));\r\n              color: white;\r\n              font-size: 1.8rem;\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .rduv-feature-card:hover .rduv-feature-icon {\r\n              transform: rotate(15deg) scale(1.1);\r\n              background: linear-gradient(45deg, var(--rduv-primary-hover), var(--rduv-secondary-hover));\r\n          }\r\n          \r\n          \/* Why Choose Section *\/\r\n          .rduv-why-choose-section {\r\n              padding: var(--rduv-section-padding);\r\n              background: #F8F9FA;\r\n          }\r\n          \r\n          .rduv-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          .rduv-why-choose-image:hover {\r\n              transform: perspective(1000px) rotateY(0deg);\r\n          }\r\n          \r\n          .rduv-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          .rduv-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          .rduv-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: linear-gradient(45deg, var(--rduv-primary-color), var(--rduv-secondary-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          .rduv-faq-section {\r\n              padding: var(--rduv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .rduv-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          .rduv-accordion-button {\r\n              font-weight: 600;\r\n              font-size: 1.05rem;\r\n              line-height: 1.45;\r\n              color: var(--rduv-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          .rduv-accordion-button:not(.collapsed) {\r\n              background: white;\r\n              color: var(--rduv-primary-color);\r\n              box-shadow: none;\r\n          }\r\n          \r\n          .rduv-accordion-button:focus {\r\n              box-shadow: none;\r\n              border-color: rgba(138, 102, 255, 0.35);\r\n          }\r\n          \r\n          .rduv-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='%238A66FF'%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          .rduv-accordion-body {\r\n              padding: 22px 25px 26px;\r\n              color: #3a3a3a;\r\n              font-size: 1.02rem;\r\n              line-height: 1.7;\r\n              font-weight: 400;\r\n          }\r\n          \r\n          \/* Section Titles *\/\r\n          .rduv-section-title {\r\n              font-weight: 700;\r\n              color: var(--rduv-dark-color);\r\n              margin-bottom: 1.5rem;\r\n              position: relative;\r\n              display: inline-block;\r\n              letter-spacing: -0.02em;\r\n              line-height: 1.2;\r\n          }\r\n          \r\n          .rduv-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: linear-gradient(to right, var(--rduv-primary-color), var(--rduv-secondary-color));\r\n              border-radius: 2px;\r\n          }\r\n          \r\n          .rduv-light-title {\r\n              color: white;\r\n          }\r\n          \r\n          .rduv-light-title::after {\r\n              background: white;\r\n          }\r\n          \r\n          .rduv-section-subtitle {\r\n              color: #4a4a4a;\r\n              max-width: 640px;\r\n              margin: 0 auto 3rem;\r\n              font-size: 1.125rem;\r\n              font-weight: 500;\r\n              line-height: 1.65;\r\n          }\r\n\r\n          .rduv-section-title + .rduv-section-subtitle {\r\n              margin-top: -0.5rem;\r\n          }\r\n\r\n          .text-center .rduv-section-title::after {\r\n              left: 50%;\r\n              transform: translateX(-50%);\r\n          }\r\n\r\n          .rduv-feature-card h4 {\r\n              color: var(--rduv-dark-color);\r\n              font-weight: 700;\r\n              margin-bottom: 0.65rem;\r\n              font-size: 1.2rem;\r\n          }\r\n\r\n          .rduv-feature-card p {\r\n              color: #444444;\r\n              line-height: 1.65;\r\n              margin-bottom: 0;\r\n              font-size: 1rem;\r\n          }\r\n\r\n          .rduv-why-choose-section .rduv-lead {\r\n              color: #444444;\r\n              font-size: 1.08rem;\r\n              line-height: 1.7;\r\n              font-weight: 400;\r\n          }\r\n\r\n          .rduv-benefit-item h5 {\r\n              color: var(--rduv-dark-color);\r\n              font-weight: 700;\r\n          }\r\n\r\n          .rduv-benefit-item p {\r\n              color: #555555;\r\n              line-height: 1.6;\r\n              font-size: 0.98rem;\r\n          }\r\n          \r\n          .rduv-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                  --rduv-section-padding: 80px 0;\r\n              }\r\n              \r\n              .rduv-hero-section h1 {\r\n                  font-size: 2.8rem;\r\n              }\r\n              \r\n              .rduv-process-step::before {\r\n                  display: none;\r\n              }\r\n          }\r\n          \r\n          @media (max-width: 767px) {\r\n              :root {\r\n                  --rduv-section-padding: 70px 0;\r\n              }\r\n              \r\n              .rduv-hero-section {\r\n                  padding: 100px 0 60px;\r\n              }\r\n              \r\n              .rduv-hero-section h1 {\r\n                  font-size: 2.2rem;\r\n              }\r\n              \r\n              .rduv-hero-section p {\r\n                  font-size: 1rem;\r\n              }\r\n              \r\n              .rduv-section-title {\r\n                  font-size: 1.8rem;\r\n              }\r\n          }\r\n          \r\n          \/* Animation *\/\r\n          @keyframes rduv-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          .rduv-floating-element {\r\n              animation: rduv-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: linear-gradient(var(--rduv-primary-color), var(--rduv-secondary-color));\r\n              border-radius: 10px;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-thumb:hover {\r\n              background: linear-gradient(var(--rduv-primary-hover), var(--rduv-secondary-hover));\r\n          }\r\n        \r\n  \r\n  <\/style>\r\n  <!-- tools -->\r\n  <style>\r\n  \r\n      :root {\r\n          --primary-color: #8A66FF;\r\n          --primary-light: #A385FF;\r\n          --primary-dark: #6A4FE0;\r\n          --secondary-color: #6A4FE0;\r\n          --secondary-light: #8A66FF;\r\n          --secondary-dark: #5238c4;\r\n          --accent-color: #8A66FF;\r\n          --accent-light: #A385FF;\r\n          --accent-dark: #6A4FE0;\r\n          --warning-color: #D4A017;\r\n          --warning-light: #E8B84A;\r\n          --danger-color: #EF4444;\r\n          --danger-light: #F87171;\r\n          --success-color: #22C55E;\r\n          --success-light: #4ADE80;\r\n          --bg-primary: #111016;\r\n          --bg-secondary: #18181f;\r\n          --bg-tertiary: #22222c;\r\n          --bg-card: #1c1c24;\r\n          --glass-bg: rgba(138, 102, 255, 0.08);\r\n          --glass-border: rgba(138, 102, 255, 0.22);\r\n          --text-primary: #FFFFFF;\r\n          --text-secondary: #CCCCCC;\r\n          --text-muted: #999999;\r\n          --text-accent: #8A66FF;\r\n          --shadow-sm: 0 2px 8px rgba(138, 102, 255, 0.12);\r\n          --shadow-md: 0 4px 16px rgba(138, 102, 255, 0.16);\r\n          --shadow-lg: 0 8px 32px rgba(138, 102, 255, 0.2);\r\n          --shadow-xl: 0 16px 48px rgba(138, 102, 255, 0.22);\r\n          --gradient-primary: linear-gradient(135deg, #8A66FF, #6A4FE0);\r\n          --gradient-secondary: linear-gradient(135deg, #2c2c36, #8A66FF);\r\n          --gradient-accent: linear-gradient(135deg, #8A66FF, #A385FF);\r\n      }\r\n  \r\n      .rduv-hero-tools-section {\r\n          font-family: 'Inter', 'Space Grotesk', sans-serif;\r\n          background-color: #111016;\r\n          background-image:\r\n              radial-gradient(circle at 22% 18%, rgba(138, 102, 255, 0.18) 0%, transparent 46%),\r\n              radial-gradient(circle at 88% 82%, rgba(106, 79, 224, 0.12) 0%, transparent 44%),\r\n              linear-gradient(168deg, #16141f 0%, #111016 50%, #14121c 100%);\r\n          padding: 80px 0;\r\n          line-height: 1.6;\r\n          color: var(--text-primary);\r\n          overflow-x: hidden;\r\n\/*           margin-top: 3rem; *\/\r\n          border-bottom: 1px solid rgba(138, 102, 255, 0.22);\r\n      }\r\n  \r\n      .custom-rduv-container {\r\n          max-width: 1400px;\r\n          margin: 0 auto;\r\n          padding: 20px;\r\n          position: relative;\r\n      }\r\n  \r\n      .header {\r\n          text-align: center;\r\n          margin-bottom: 40px;\r\n          padding: 40px 0;\r\n          animation: slideInDown 1s ease-out;\r\n      }\r\n  \r\n      .logo {\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          gap: 20px;\r\n          margin-bottom: 25px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n      .logo-icon {\r\n          width: 80px;\r\n          height: 80px;\r\n          background: var(--gradient-primary);\r\n          border-radius: 20px;\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          font-weight: 800;\r\n          box-shadow: var(--shadow-lg);\r\n          animation: float 3s ease-in-out infinite;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .logo-icon::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: -50%;\r\n          left: -50%;\r\n          width: 200%;\r\n          height: 200%;\r\n          background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);\r\n          transform: rotate(45deg);\r\n          animation: shine 3s infinite;\r\n      }\r\n  \r\n      .reddit-badge {\r\n          background: var(--gradient-secondary);\r\n          color: white;\r\n          padding: 8px 16px;\r\n          border-radius: 25px;\r\n          font-size: 14px;\r\n          font-weight: 700;\r\n          box-shadow: var(--shadow-md);\r\n          animation: pulse 2s infinite;\r\n      }\r\n  \r\n   .logo-text {\r\n      font-size: clamp(2.5rem, 6vw, 4rem);\r\n      font-weight: 900;\r\n      color: #FFFFFF;\r\n      -webkit-text-fill-color: #FFFFFF;\r\n      background: none;\r\n      -webkit-background-clip: unset;\r\n      background-clip: unset;\r\n      letter-spacing: -1px;\r\n  }\r\n\r\n  .logo-text .va-accent {\r\n      color: #8A66FF;\r\n      -webkit-text-fill-color: #8A66FF;\r\n  }\r\n  \r\n      .subtitle {\r\n          color: var(--text-secondary);\r\n          font-size: 18px;\r\n          font-weight: 600;\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      .features-grid {\r\n          display: grid;\r\n          grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n          gap: 20px;\r\n          margin-bottom: 40px;\r\n      }\r\n  \r\n     .feature-card {\r\n      background: var(--bg-card);\r\n      border: 1px solid var(--glass-border);\r\n      padding: 15px;\r\n      border-radius: 16px;\r\n      text-align: center;\r\n      transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n      position: relative;\r\n      overflow: hidden;\r\n  }\r\n  \r\n      .feature-card::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: -100%;\r\n          width: 100%;\r\n          height: 100%;\r\n          background: linear-gradient(90deg, transparent, rgba(138, 102, 255, 0.12), transparent);\r\n          transition: left 0.5s;\r\n      }\r\n  \r\n      .feature-card:hover::before {\r\n          left: 100%;\r\n      }\r\n  \r\n      .feature-card:hover {\r\n          transform: translateY(-5px);\r\n          box-shadow: var(--shadow-lg);\r\n          border-color: var(--primary-color);\r\n      }\r\n  \r\n      .feature-icon {\r\n          width: 40px;\r\n          height: 40px;\r\n          background: var(--gradient-primary);\r\n          border-radius: 50%;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          margin: 0 auto 10px;\r\n          font-size: 20px;\r\n          color: white;\r\n      }\r\n  \r\n      .feature-title {\r\n          font-weight: 700;\r\n          color: var(--text-primary);\r\n          margin-bottom: 8px;\r\n          font-size: 14px;\r\n      }\r\n  \r\n     .search-container {\r\n      background: var(--bg-secondary);\r\n      border: 1px solid var(--glass-border);\r\n      padding: 30px;\r\n      border-radius: 24px;\r\n      box-shadow: var(--shadow-xl);\r\n      margin-bottom: 40px;\r\n      animation: slideInUp 1s ease-out 0.2s both;\r\n      position: relative;\r\n      overflow: hidden;\r\n  }\r\n  \r\n      .search-container::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 4px;\r\n          background: var(--gradient-primary);\r\n      }\r\n  \r\n      .search-form {\r\n          display: flex;\r\n          gap: 15px;\r\n          margin-bottom: 20px;\r\n          position: relative;\r\n      }\r\n  \r\n    .search-input {\r\n      flex: 1 !important;\r\n      padding: 15px 20px !important;\r\n      border: 2px solid rgba(138, 102, 255, 0.28) !important;\r\n      border-radius: 16px !important;\r\n      font-size: 14px !important;\r\n      font-weight: 500 !important;\r\n      background: #1A1A22 !important;\r\n      transition: all 0.3s ease !important;\r\n      outline: none !important;\r\n      color: var(--text-primary) !important;\r\n      font-family: inherit !important;\r\n  }\r\n  \r\n      .search-input:focus {\r\n          border-color: var(--primary-color);\r\n          box-shadow: 0 0 0 4px rgba(138, 102, 255, 0.18);\r\n          transform: translateY(-2px);\r\n      }\r\n  \r\n      .search-input::placeholder {\r\n          color: var(--text-muted);\r\n          font-weight: 400;\r\n      }\r\n  \r\n      .search-btn {\r\n          padding: 15px 30px;\r\n          background: var(--gradient-primary);\r\n          color: white;\r\n          border: none;\r\n          border-radius: 16px;\r\n          font-size: 14px;\r\n          font-weight: 700;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          min-width: 150px;\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      .search-btn::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: -100%;\r\n          width: 100%;\r\n          height: 100%;\r\n          background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n          transition: left 0.5s;\r\n      }\r\n  \r\n      .search-btn:hover::before {\r\n          left: 100%;\r\n      }\r\n  \r\n      .search-btn:hover:not(:disabled) {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-lg);\r\n      }\r\n  \r\n      .search-btn:disabled {\r\n          opacity: 0.6;\r\n          cursor: not-allowed;\r\n          transform: none;\r\n      }\r\n  \r\n      .user-info {\r\n          background: var(--bg-secondary);\r\n          border: 1px solid var(--glass-border);\r\n          padding: 30px;\r\n          border-radius: 24px;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          display: none;\r\n          animation: slideInDown 0.8s ease-out;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .user-info::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 4px;\r\n          background: var(--gradient-secondary);\r\n      }\r\n  \r\n      .user-header {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 25px;\r\n          margin-bottom: 25px;\r\n      }\r\n  \r\n      .user-avatar {\r\n          width: 80px;\r\n          height: 80px;\r\n          border-radius: 50%;\r\n          background: var(--gradient-primary);\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 2.5rem;\r\n          color: white;\r\n          font-weight: 900;\r\n          box-shadow: var(--shadow-lg);\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .user-avatar::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: -50%;\r\n          left: -50%;\r\n          width: 200%;\r\n          height: 200%;\r\n          background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);\r\n          transform: rotate(45deg);\r\n          animation: shine 4s infinite;\r\n      }\r\n  \r\n      .user-details h2 {\r\n          font-size: 2rem;\r\n          color: var(--text-primary);\r\n          margin-bottom: 8px;\r\n          font-weight: 900;\r\n      }\r\n  \r\n      .user-description {\r\n          color: var(--text-secondary);\r\n          font-size: 16px;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      .user-stats {\r\n          display: grid;\r\n          grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\r\n          gap: 20px;\r\n          margin-top: 25px;\r\n      }\r\n  \r\n      .stat-card {\r\n          background: var(--bg-card);\r\n          border: 1px solid var(--glass-border);\r\n          padding: 20px;\r\n          border-radius: 20px;\r\n          text-align: center;\r\n          transition: all 0.3s ease;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .stat-card::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 3px;\r\n          background: var(--gradient-accent);\r\n      }\r\n  \r\n      .stat-card:hover {\r\n          transform: translateY(-5px);\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .stat-number {\r\n          font-size: 1.8rem;\r\n          font-weight: 900;\r\n          color: var(--primary-color);\r\n          margin-bottom: 6px;\r\n      }\r\n  \r\n      .stat-label {\r\n          font-size: 0.9rem;\r\n          color: var(--text-secondary);\r\n          font-weight: 600;\r\n      }\r\n  \r\n      .posts-section {\r\n          display: none;\r\n      }\r\n  \r\n      .section-title {\r\n          color: var(--text-primary);\r\n          font-size: 2rem;\r\n          font-weight: 900;\r\n          margin-bottom: 30px;\r\n          text-align: center;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid var(--glass-border);\r\n          padding: 20px;\r\n          border-radius: 20px;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .section-title::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 4px;\r\n          background: var(--gradient-accent);\r\n      }\r\n  \r\n      .posts-grid {\r\n          display: grid;\r\n          grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));\r\n          gap: 25px;\r\n      }\r\n  \r\n      .post-card {\r\n          background: var(--bg-secondary);\r\n          border: 1px solid var(--glass-border);\r\n          border-radius: 20px;\r\n          padding: 20px;\r\n          box-shadow: var(--shadow-xl);\r\n          transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n          position: relative;\r\n          overflow: hidden;\r\n          animation: slideUp 0.6s ease forwards;\r\n          display: flex;\r\n          flex-direction: column;\r\n          height: 100%;\r\n      }\r\n  \r\n      .post-card::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 4px;\r\n          background: var(--gradient-primary);\r\n          border-radius: 20px 20px 0 0;\r\n      }\r\n  \r\n      .post-card:hover {\r\n          transform: translateY(-10px);\r\n          box-shadow: 0 20px 40px rgba(138, 102, 255, 0.18);\r\n          border-color: var(--primary-color);\r\n      }\r\n  \r\n      .post-header {\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: space-between;\r\n          margin-bottom: 15px;\r\n          padding-bottom: 15px;\r\n          border-bottom: 2px solid var(--bg-tertiary);\r\n      }\r\n  \r\n      .subreddit-info {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 10px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n      .subreddit-badge {\r\n          background: var(--gradient-primary);\r\n          color: white;\r\n          padding: 6px 12px;\r\n          border-radius: 20px;\r\n          font-size: 0.8rem;\r\n          font-weight: 700;\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .post-type {\r\n          background: var(--gradient-secondary);\r\n          color: white;\r\n          padding: 4px 10px;\r\n          border-radius: 15px;\r\n          font-size: 0.7rem;\r\n          font-weight: 600;\r\n          text-transform: capitalize;\r\n      }\r\n  \r\n      .post-meta {\r\n          font-size: 0.8rem;\r\n          color: var(--text-muted);\r\n          font-weight: 500;\r\n          text-align: right;\r\n      }\r\n  \r\n      .post-badges {\r\n          display: flex;\r\n          flex-wrap: wrap;\r\n          gap: 8px;\r\n          margin-bottom: 15px;\r\n      }\r\n  \r\n      .badge {\r\n          padding: 4px 10px;\r\n          border-radius: 12px;\r\n          font-size: 0.7rem;\r\n          font-weight: 600;\r\n          color: white;\r\n          text-transform: uppercase;\r\n          letter-spacing: 0.5px;\r\n      }\r\n  \r\n      .badge.admin { background: var(--gradient-accent); }\r\n      .badge.stickied { background: var(--gradient-secondary); }\r\n      .badge.archived { background: linear-gradient(135deg, #6B7280, #4B5563); }\r\n      .badge.locked { background: var(--gradient-accent); }\r\n      .badge.nsfw { background: linear-gradient(135deg, #7C3AED, #5B21B6); }\r\n  \r\n      .post-title {\r\n          font-size: 1.4rem;\r\n          font-weight: 700;\r\n          margin-bottom: 15px;\r\n          color: var(--text-primary);\r\n          line-height: 1.4;\r\n      }\r\n  \r\n      .post-content {\r\n          margin-bottom: 20px;\r\n          flex-grow: 1;\r\n      }\r\n  \r\n      .post-text {\r\n          color: var(--text-secondary);\r\n          line-height: 1.6;\r\n          margin-bottom: 15px;\r\n          font-weight: 400;\r\n          font-size: 14px;\r\n      }\r\n  \r\n      .media-container {\r\n          margin: 15px 0;\r\n          border-radius: 16px;\r\n          overflow: hidden;\r\n          position: relative;\r\n          box-shadow: var(--shadow-md);\r\n          background: #000;\r\n      }\r\n  \r\n      .image-preview {\r\n          width: 100%;\r\n          max-height: 300px;\r\n          object-fit: cover;\r\n          cursor: pointer;\r\n          transition: transform 0.3s ease;\r\n      }\r\n  \r\n      .image-preview:hover {\r\n          transform: scale(1.02);\r\n      }\r\n  \r\n      .video-container {\r\n          position: relative;\r\n          width: 100%;\r\n          background: #000;\r\n          border-radius: 16px;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .video-player {\r\n          width: 100%;\r\n          height: 250px;\r\n          border-radius: 16px;\r\n      }\r\n  \r\n      .media-controls {\r\n          display: flex;\r\n          gap: 10px;\r\n          margin-top: 15px;\r\n          flex-wrap: wrap;\r\n          align-items: center;\r\n      }\r\n  \r\n      .control-btn {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 8px;\r\n          padding: 10px 18px;\r\n          border: none;\r\n          border-radius: 12px;\r\n          cursor: pointer;\r\n          font-size: 0.9rem;\r\n          font-weight: 600;\r\n          transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n          font-family: inherit;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .control-btn::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: -100%;\r\n          width: 100%;\r\n          height: 100%;\r\n          background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n          transition: left 0.5s;\r\n      }\r\n  \r\n      .control-btn:hover::before {\r\n          left: 100%;\r\n      }\r\n  \r\n      .stream-audio-btn {\r\n          background: var(--gradient-secondary);\r\n          color: white;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .stream-audio-btn:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-lg);\r\n      }\r\n  \r\n      .stream-audio-btn:disabled {\r\n          opacity: 0.6;\r\n          cursor: not-allowed;\r\n          transform: none;\r\n      }\r\n  \r\n      .stream-audio-btn.loading {\r\n          background: linear-gradient(135deg, #6B7280, #4B5563);\r\n      }\r\n  \r\n      .download-btn {\r\n          background: var(--gradient-accent);\r\n          color: white;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .download-btn:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-lg);\r\n      }\r\n  \r\n      .download-btn:disabled {\r\n          opacity: 0.6;\r\n          cursor: not-allowed;\r\n          transform: none;\r\n      }\r\n  \r\n      .download-btn.downloading {\r\n          background: var(--gradient-primary);\r\n      }\r\n  \r\n      .external-link {\r\n          display: inline-flex;\r\n          align-items: center;\r\n          gap: 8px;\r\n          background: var(--gradient-primary);\r\n          color: white;\r\n          padding: 10px 18px;\r\n          border-radius: 12px;\r\n          text-decoration: none;\r\n          margin-top: 15px;\r\n          transition: all 0.3s ease;\r\n          font-weight: 600;\r\n          box-shadow: var(--shadow-sm);\r\n          font-size: 0.9rem;\r\n      }\r\n  \r\n      .external-link:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .post-stats {\r\n          display: grid;\r\n          grid-template-columns: repeat(2, 1fr);\r\n          gap: 10px;\r\n          margin-top: auto;\r\n          padding-top: 15px;\r\n          border-top: 2px solid var(--bg-tertiary);\r\n      }\r\n  \r\n      .stat-item {\r\n          display: flex;\r\n          flex-direction: column;\r\n          align-items: center;\r\n          gap: 6px;\r\n          padding: 12px;\r\n          background: var(--bg-card);\r\n          border: 1px solid var(--glass-border);\r\n          border-radius: 15px;\r\n          text-align: center;\r\n          transition: all 0.3s ease;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .stat-item::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: var(--gradient-accent);\r\n      }\r\n  \r\n      .stat-item:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .stat-value {\r\n          font-weight: 900;\r\n          font-size: 1.2rem;\r\n      }\r\n  \r\n      .stat-label {\r\n          font-size: 0.8rem;\r\n          color: var(--text-muted);\r\n          font-weight: 600;\r\n          text-transform: capitalize;\r\n      }\r\n  \r\n      .upvotes .stat-value { color: var(--primary-color); }\r\n      .comments .stat-value { color: var(--secondary-color); }\r\n  \r\n      .loading {\r\n          text-align: center;\r\n          padding: 40px;\r\n          color: var(--text-primary);\r\n          font-size: 1.1rem;\r\n          display: none;\r\n      }\r\n  \r\n      .spinner {\r\n          border: 4px solid var(--bg-tertiary);\r\n          border-top: 4px solid var(--primary-color);\r\n          border-radius: 50%;\r\n          width: 50px;\r\n          height: 50px;\r\n          animation: spin 1s linear infinite;\r\n          margin: 20px auto;\r\n      }\r\n  \r\n      .error-message {\r\n          background: rgba(239, 68, 68, 0.1);\r\n          border: 1px solid rgba(239, 68, 68, 0.2);\r\n          color: var(--danger-color);\r\n          padding: 20px;\r\n          border-radius: 16px;\r\n          text-align: center;\r\n          margin: 20px 0;\r\n          font-weight: 600;\r\n          display: none;\r\n          font-size: 14px;\r\n      }\r\n  \r\n      .modal {\r\n          display: none;\r\n          position: fixed;\r\n          z-index: 1000;\r\n          left: 0;\r\n          top: 0;\r\n          width: 100%;\r\n          height: 100%;\r\n          background-color: rgba(0, 0, 0, 0.95);\r\n          animation: fadeIn 0.3s ease;\r\n      }\r\n  \r\n      .modal-content {\r\n          position: absolute;\r\n          top: 50%;\r\n          left: 50%;\r\n          transform: translate(-50%, -50%);\r\n          max-width: 90%;\r\n          max-height: 90%;\r\n      }\r\n  \r\n      .modal img {\r\n          width: 100%;\r\n          height: auto;\r\n          border-radius: 20px;\r\n      }\r\n  \r\n      .close {\r\n          position: absolute;\r\n          top: 20px;\r\n          right: 40px;\r\n          color: #f1f1f1;\r\n          font-size: 45px;\r\n          font-weight: bold;\r\n          cursor: pointer;\r\n          z-index: 1001;\r\n      }\r\n  \r\n      .close:hover {\r\n          color: var(--primary-color);\r\n      }\r\n  \r\n      \/* Download Progress *\/\r\n      .download-progress {\r\n          position: fixed;\r\n          bottom: 25px;\r\n          right: 25px;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid var(--glass-border);\r\n          border-radius: 20px;\r\n          padding: 25px;\r\n          min-width: 350px;\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      .download-progress.show {\r\n          display: block;\r\n          animation: slideInRight 0.4s ease-out;\r\n      }\r\n  \r\n      .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      .progress-text {\r\n          font-weight: 700;\r\n          font-size: 14px;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .cancel-btn {\r\n          background: rgba(239, 68, 68, 0.1);\r\n          border: 1px solid rgba(239, 68, 68, 0.2);\r\n          color: var(--danger-color);\r\n          padding: 8px 16px;\r\n          border-radius: 8px;\r\n          font-size: 12px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          font-weight: 600;\r\n      }\r\n  \r\n      .cancel-btn:hover {\r\n          background: rgba(239, 68, 68, 0.15);\r\n      }\r\n  \r\n      .progress-bar-container {\r\n          width: 100%;\r\n          height: 12px;\r\n          background: var(--bg-tertiary);\r\n          border-radius: 6px;\r\n          overflow: hidden;\r\n          margin-bottom: 12px;\r\n          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);\r\n      }\r\n  \r\n      .progress-bar-fill {\r\n          height: 100%;\r\n          background: var(--gradient-primary);\r\n          border-radius: 6px;\r\n          width: 0%;\r\n          transition: width 0.3s ease;\r\n          box-shadow: 0 2px 8px rgba(138, 102, 255, 0.45);\r\n      }\r\n  \r\n      .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          font-weight: 500;\r\n      }\r\n  \r\n      .expand-btn {\r\n          background: var(--gradient-primary);\r\n          color: white;\r\n          border: none;\r\n          padding: 8px 16px;\r\n          border-radius: 12px;\r\n          cursor: pointer;\r\n          font-size: 0.8rem;\r\n          font-weight: 600;\r\n          margin-top: 10px;\r\n          transition: all 0.3s ease;\r\n          font-family: inherit;\r\n      }\r\n  \r\n      .expand-btn:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .video-play-overlay {\r\n          position: absolute;\r\n          top: 50%;\r\n          left: 50%;\r\n          transform: translate(-50%, -50%);\r\n          background: rgba(0, 0, 0, 0.7);\r\n          border: none;\r\n          border-radius: 50%;\r\n          width: 50px;\r\n          height: 50px;\r\n          color: white;\r\n          font-size: 20px;\r\n          cursor: pointer;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          transition: all 0.3s ease;\r\n          z-index: 5;\r\n      }\r\n  \r\n      .video-play-overlay:hover {\r\n          background: rgba(0, 0, 0, 0.9);\r\n          transform: translate(-50%, -50%) scale(1.1);\r\n      }\r\n  \r\n      .video-play-overlay.hidden {\r\n          display: none;\r\n      }\r\n  \r\n      .new-search-btn {\r\n          background: var(--gradient-accent) !important;\r\n          min-width: 130px;\r\n      }\r\n  \r\n      @keyframes float {\r\n          0%, 100% { transform: translateY(0px) scale(1); }\r\n          50% { transform: translateY(-10px) scale(1.02); }\r\n      }\r\n  \r\n      @keyframes shine {\r\n          0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }\r\n          100% { transform: translateX(100%) translateY(100%) rotate(45deg); }\r\n      }\r\n  \r\n      @keyframes slideInDown {\r\n          from { opacity: 0; transform: translateY(-30px); }\r\n          to { opacity: 1; transform: translateY(0); }\r\n      }\r\n  \r\n      @keyframes slideInUp {\r\n          from { opacity: 0; transform: translateY(30px); }\r\n          to { opacity: 1; transform: translateY(0); }\r\n      }\r\n  \r\n      @keyframes slideInRight {\r\n          from { opacity: 0; transform: translateX(100%); }\r\n          to { opacity: 1; transform: translateX(0); }\r\n      }\r\n  \r\n      @keyframes slideUp {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(40px);\r\n          }\r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes spin {\r\n          0% { transform: rotate(0deg); }\r\n          100% { transform: rotate(360deg); }\r\n      }\r\n  \r\n      @keyframes pulse {\r\n          0%, 100% { transform: scale(1); }\r\n          50% { transform: scale(1.05); }\r\n      }\r\n  \r\n      @keyframes fadeIn {\r\n          from { opacity: 0; }\r\n          to { opacity: 1; }\r\n      }\r\n  \r\n      \/* Video Loading Overlay *\/\r\n      .video-loading-overlay {\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: 0;\r\n          background: rgba(0, 0, 0, 0.8);\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          flex-direction: column;\r\n          color: white;\r\n          font-weight: 600;\r\n          z-index: 10;\r\n      }\r\n  \r\n      .video-loading-spinner {\r\n          width: 30px;\r\n          height: 30px;\r\n          border: 3px solid rgba(255, 255, 255, 0.3);\r\n          border-top: 3px solid white;\r\n          border-radius: 50%;\r\n          animation: spin 1s linear infinite;\r\n          margin-bottom: 10px;\r\n      }\r\n  \r\n      @media (max-width: 1200px) {\r\n          .posts-grid {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .features-grid {\r\n              grid-template-columns: repeat(2, 1fr);\r\n          }\r\n      }\r\n  \r\n      @media (max-width: 768px) {\r\n          .features-grid {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .user-stats {\r\n              grid-template-columns: repeat(2, 1fr);\r\n          }\r\n  \r\n          .post-stats {\r\n              grid-template-columns: repeat(2, 1fr);\r\n              gap: 8px;\r\n          }\r\n  \r\n          .media-controls {\r\n              flex-direction: column;\r\n          }\r\n  \r\n          .control-btn {\r\n              width: 100%;\r\n              justify-content: center;\r\n          }\r\n  \r\n          .search-form {\r\n              flex-direction: column;\r\n          }\r\n      }\r\n  \r\n      @media (max-width: 480px) {\r\n          .post-stats {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .user-stats {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .custom-rduv-container {\r\n              padding: 15px;\r\n          }\r\n  \r\n          .search-container,\r\n          .user-info,\r\n          .post-card {\r\n              padding: 20px;\r\n          }\r\n  \r\n          .posts-grid {\r\n              grid-template-columns: 1fr;\r\n          }\r\n      }\r\n  <\/style>\r\n  <body data-aos-easing=\"ease-in-out\" data-aos-duration=\"800\" data-aos-delay=\"0\" data-new-gr-c-s-check-loaded=\"14.1249.0\" data-gr-ext-installed=\"\" data-new-gr-c-s-loaded=\"14.1223.0\" class=\"\" style=\"\">\r\n      <nav class=\"navigation-1 clearfix\" data-v-save-global=\"blank.html,.navigation-1\">\r\n          \r\n        <\/nav>\r\n      <!-- Hero tools -->\r\n      <section class=\"rduv-hero-tools-section\">\r\n          <div class=\"container\">\r\n              <div class=\"custom-rduv-container\">\r\n                  <div class=\"header\">\r\n                      <div class=\"logo\">\r\n                          <div class=\"logo-icon\">\ud83d\ude80<\/div>\r\n          \r\n                          <div><h1 class=\"logo-text\">Reddit Link <span class=\"va-accent\">Viewer<\/span><\/h1><\/div>\r\n                      <\/div>\r\n                      <div class=\"subtitle\">Open Reddit posts and threads in a clean viewer\u2014no sign-in, built for quick, private reading.<\/div>\r\n                      <div class=\"features-grid\">\r\n                          <div class=\"feature-card\">\r\n                              <div class=\"feature-icon\">\ud83c\udfa8<\/div>\r\n                              <div class=\"feature-title\">Premium Design<\/div>\r\n                          <\/div>\r\n                          <div class=\"feature-card\">\r\n                              <div class=\"feature-icon\">\ud83d\udd0a<\/div>\r\n                              <div class=\"feature-title\">Audio Support<\/div>\r\n                          <\/div>\r\n                          <div class=\"feature-card\">\r\n                              <div class=\"feature-icon\">\ud83d\udce5<\/div>\r\n                              <div class=\"feature-title\">Smart Downloads<\/div>\r\n                          <\/div>\r\n                          <div class=\"feature-card\">\r\n                              <div class=\"feature-icon\">\ud83d\udcca<\/div>\r\n                              <div class=\"feature-title\">Rich Analytics<\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n          \r\n                  <div class=\"search-container\">\r\n                      <form class=\"search-form\" id=\"searchForm\">\r\n                          <input type=\"text\" class=\"search-input\" id=\"usernameInput\" placeholder=\"Enter Reddit username (e.g., kn0thing, spez, gallowboob)\" required=\"\">\r\n                          <button type=\"submit\" class=\"search-btn\" id=\"searchBtn\">\r\n                              <span id=\"searchText\">\ud83d\udd0d Explore User<\/span>\r\n                              <div class=\"spinner\" id=\"searchSpinner\" style=\"display: none; width: 20px; height: 20px; margin: 0;\"><\/div>\r\n                          <\/button>\r\n                          <button type=\"button\" class=\"search-btn new-search-btn\" id=\"newSearchBtn\" onclick=\"redditExplorer.newSearch()\">\r\n                              \ud83d\udd04 New Search\r\n                          <\/button>\r\n                      <\/form>\r\n          \r\n                      <div class=\"loading\" id=\"loading\">\r\n                          <div class=\"spinner\"><\/div>\r\n                          <p>Analyzing user data and posts...<\/p>\r\n                      <\/div>\r\n          \r\n                      <div class=\"error-message\" id=\"errorMessage\"><\/div>\r\n                  <\/div>\r\n          \r\n                  <div class=\"user-info\" id=\"userInfo\">\r\n                      <div class=\"user-header\">\r\n                          <div class=\"user-avatar\" id=\"userAvatar\">U<\/div>\r\n                          <div class=\"user-details\">\r\n                              <h2 id=\"userName\">Username<\/h2>\r\n                              <p class=\"user-description\" id=\"userDescription\">Reddit User Profile<\/p>\r\n                          <\/div>\r\n                      <\/div>\r\n                      <div class=\"user-stats\" id=\"userStats\">\r\n                          <!-- Stats will be populated dynamically -->\r\n                      <\/div>\r\n                  <\/div>\r\n          \r\n                  <div class=\"posts-section\" id=\"postsSection\">\r\n                      <h2 class=\"section-title\" id=\"sectionTitle\">Recent Posts & Activity<\/h2>\r\n                      <div id=\"postsContainer\" class=\"posts-grid\"><\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          \r\n              <!-- Modal for image preview -->\r\n              <div id=\"imageModal\" class=\"modal\">\r\n                  <span class=\"close\">\u00d7<\/span>\r\n                  <div class=\"modal-content\">\r\n                      <img decoding=\"async\" id=\"modalImage\" src=\"\/placeholder.svg\" alt=\"Full size image\">\r\n                  <\/div>\r\n              <\/div>\r\n          \r\n              <!-- Download Progress -->\r\n              <div class=\"download-progress\" id=\"downloadProgress\">\r\n                  <div class=\"progress-header\">\r\n                      <span class=\"progress-text\" id=\"progressText\">Downloading...<\/span>\r\n                      <button class=\"cancel-btn\" onclick=\"cancelDownload()\">Cancel<\/button>\r\n                  <\/div>\r\n                  <div class=\"progress-bar-container\">\r\n                      <div class=\"progress-bar-fill\" id=\"progressBarFill\"><\/div>\r\n                  <\/div>\r\n                  <div class=\"progress-details\">\r\n                      <span id=\"progressPercent\">0%<\/span>\r\n                      <span id=\"progressSize\">0 MB \/ 0 MB<\/span>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n          <\/div>\r\n      <\/section>\r\n  \r\n  <!-- Work Process Section -->\r\n  <section class=\"rduv-work-process-section\" id=\"how-it-works\">\r\n      <div class=\"container rduv-work-process-content\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"rduv-section-title rduv-light-title\">How it works<\/h2>\r\n              <p class=\"rduv-section-subtitle rduv-light-subtitle\">Paste a public Reddit URL below. We load the thread in your browser so you can read without logging into Reddit.<\/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=\"rduv-process-step\">\r\n                      <div class=\"rduv-step-number\">1<\/div>\r\n                      <h4 class=\"text-white\">Paste the link<\/h4>\r\n                      <p class=\"rduv-light-subtitle\">Copy a post, comment, or profile URL from Reddit and drop it into the field.<\/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=\"rduv-process-step\">\r\n                      <div class=\"rduv-step-number\">2<\/div>\r\n                      <h4 class=\"text-white\">Fetch content<\/h4>\r\n                      <p class=\"rduv-light-subtitle\">We request publicly available data for that URL and prepare it for viewing here.<\/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=\"rduv-process-step\">\r\n                      <div class=\"rduv-step-number\">3<\/div>\r\n                      <h4 class=\"text-white\">Browse privately<\/h4>\r\n                      <p class=\"rduv-light-subtitle\">Read posts, media, and context in one place\u2014no Reddit account required.<\/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=\"rduv-features-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"rduv-section-title\">What you get<\/h2>\r\n              <p class=\"rduv-section-subtitle\">Everything is built around simple, low-friction reading\u2014fewer tabs, less tracking noise, and a layout that stays out of your way.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-link\"><\/i>\r\n                      <\/div>\r\n                      <h4>Stay off the radar<\/h4>\r\n                      <p>Use the viewer without signing into Reddit or tying views to your profile.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-shield\"><\/i>\r\n                      <\/div>\r\n                      <h4>Less surface for tracking<\/h4>\r\n                      <p>Skip the full Reddit app experience when you only need to read a single thread.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-detail\"><\/i>\r\n                      <\/div>\r\n                      <h4>Thread in one view<\/h4>\r\n                      <p>See the post body, media, and discussion together when the content is public.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-search-alt\"><\/i>\r\n                      <\/div>\r\n                      <h4>Quick lookup<\/h4>\r\n                      <p>Jump to a user or post from the search box without hunting through the main site.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-time\"><\/i>\r\n                      <\/div>\r\n                      <h4>Browser-first<\/h4>\r\n                      <p>Runs entirely in your browser session\u2014nothing to install, nothing to configure.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-devices\"><\/i>\r\n                      <\/div>\r\n                      <h4>Any screen<\/h4>\r\n                      <p>Responsive layout that works on desktop, tablet, and phone browsers.<\/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=\"rduv-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=\"rduv-why-choose-image rduv-floating-element\">\r\n                      <img decoding=\"async\" src=\"https:\/\/viewanonymous.com\/wp-content\/uploads\/2026\/03\/Reddit_Link_Viewer.webp\" alt=\"Reddit 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=\"rduv-section-title mb-4\">Why use this viewer?<\/h2>\r\n                  <p class=\"mb-4 rduv-lead\">When you only need to read a thread, opening the full Reddit experience can be overkill. This viewer keeps the focus on the content\u2014public posts and comments\u2014while you stay logged out of Reddit in this tab.<\/p>\r\n                  \r\n                  <div class=\"rduv-benefit-item\">\r\n                      <div class=\"rduv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">No Reddit login<\/h5>\r\n                          <p class=\"mb-0\">Paste a URL or search a username\u2014no password or signup on our side.<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"rduv-benefit-item\">\r\n                      <div class=\"rduv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Cleaner layout<\/h5>\r\n                          <p class=\"mb-0\">Fewer distractions than the default feed and promo surfaces.<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"rduv-benefit-item\">\r\n                      <div class=\"rduv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Fast to load<\/h5>\r\n                          <p class=\"mb-0\">Results are tuned for reading, not endless scrolling.<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"rduv-benefit-item\">\r\n                      <div class=\"rduv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Privacy-minded<\/h5>\r\n                          <p class=\"mb-0\">We don\u2019t ask for your Reddit credentials; use a private window for extra peace of mind.<\/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=\"rduv-faq-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"rduv-section-title\">FAQ<\/h2>\r\n              <p class=\"rduv-section-subtitle\">Straight answers about what this viewer can and can\u2019t do.<\/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=\"rduv-faqAccordion\">\r\n                      <div class=\"rduv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                          <h3 class=\"accordion-header\" id=\"rduv-heading1\">\r\n                              <button class=\"rduv-accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#rduv-collapse1\" aria-expanded=\"true\" aria-controls=\"rduv-collapse1\">\r\n                                  Is using this viewer allowed?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"rduv-collapse1\" class=\"accordion-collapse collapse show\" aria-labelledby=\"rduv-heading1\" data-bs-parent=\"#rduv-faqAccordion\">\r\n                              <div class=\"rduv-accordion-body\">\r\n                                  Yes. The viewer is meant for the same public pages you could open in a normal browser. It does not break passwords, paywalls, or Reddit\u2019s private areas\u2014and you should always respect copyright and site terms when sharing or saving content.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"rduv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                          <h3 class=\"accordion-header\" id=\"rduv-heading2\">\r\n                              <button class=\"rduv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#rduv-collapse2\" aria-expanded=\"false\" aria-controls=\"rduv-collapse2\">\r\n                                  Can I open private or deleted posts?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"rduv-collapse2\" class=\"accordion-collapse collapse\" aria-labelledby=\"rduv-heading2\" data-bs-parent=\"#rduv-faqAccordion\">\r\n                              <div class=\"rduv-accordion-body\">\r\n                                  No. If a subreddit, post, or profile is private, removed, or deleted, Reddit\u2019s API and our viewer can only show what is still publicly reachable\u2014often nothing at all for deleted threads.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"rduv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                          <h3 class=\"accordion-header\" id=\"rduv-heading3\">\r\n                              <button class=\"rduv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#rduv-collapse3\" aria-expanded=\"false\" aria-controls=\"rduv-collapse3\">\r\n                                  Does Reddit see that I used this site?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"rduv-collapse3\" class=\"accordion-collapse collapse\" aria-labelledby=\"rduv-heading3\" data-bs-parent=\"#rduv-faqAccordion\">\r\n                              <div class=\"rduv-accordion-body\">\r\n                                  Our servers may request public data on your behalf, so Reddit could log those requests like any other traffic. You are not logged in as your Reddit account here, but \u201ccompletely invisible\u201d browsing on the modern web is not something we guarantee\u2014use a VPN or private window if you need stronger separation.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"rduv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                          <h3 class=\"accordion-header\" id=\"rduv-heading4\">\r\n                              <button class=\"rduv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#rduv-collapse4\" aria-expanded=\"false\" aria-controls=\"rduv-collapse4\">\r\n                                  Do I need an app or extension?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"rduv-collapse4\" class=\"accordion-collapse collapse\" aria-labelledby=\"rduv-heading4\" data-bs-parent=\"#rduv-faqAccordion\">\r\n                              <div class=\"rduv-accordion-body\">\r\n                                  No. Everything runs in the browser: open the page, paste a Reddit URL or username, and go. There\u2019s nothing to install on your phone or desktop for basic viewing.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"rduv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                          <h3 class=\"accordion-header\" id=\"rduv-heading5\">\r\n                              <button class=\"rduv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#rduv-collapse5\" aria-expanded=\"false\" aria-controls=\"rduv-collapse5\">\r\n                                  What about removed or moderator-deleted comments?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"rduv-collapse5\" class=\"accordion-collapse collapse\" aria-labelledby=\"rduv-heading5\" data-bs-parent=\"#rduv-faqAccordion\">\r\n                              <div class=\"rduv-accordion-body\">\r\n                                  If Reddit no longer serves that text, we can\u2019t magically restore it. For historical snapshots you would need a third-party archive, and availability varies by post age and moderation.\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    <!-- Footer -->\r\n    \r\n  \r\n  <!-- Copyright Section -->\r\n  \r\n  \r\n  \r\n  \r\n   <!-- Reddit User 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      class RedditUserExplorerPro {\r\n          constructor() {\r\n              this.currentUser = null;\r\n              this.posts = [];\r\n              this.downloadController = null;\r\n              this.apiEndpoint = 'https:\/\/tools.xrespond.com\/api\/reddit\/users';\r\n              this.init();\r\n          }\r\n  \r\n          init() {\r\n              this.bindEvents();\r\n              this.setupModal();\r\n          }\r\n  \r\n          bindEvents() {\r\n              const searchForm = document.getElementById('searchForm');\r\n              const usernameInput = document.getElementById('usernameInput');\r\n  \r\n              searchForm.addEventListener('submit', (e) => {\r\n                  e.preventDefault();\r\n                  const username = usernameInput.value.trim();\r\n                  if (username) {\r\n                      this.searchUser(username);\r\n                  }\r\n              });\r\n  \r\n              usernameInput.addEventListener('keypress', (e) => {\r\n                  if (e.key === 'Enter') {\r\n                      e.preventDefault();\r\n                      searchForm.dispatchEvent(new Event('submit'));\r\n                  }\r\n              });\r\n          }\r\n  \r\n          async searchUser(username) {\r\n              this.showLoading(true);\r\n              this.clearError();\r\n  \r\n              try {\r\n                  console.log(`\ud83d\udd0d Searching for user: ${username}`);\r\n                  const userData = await this.fetchUserData(username);\r\n  \r\n                  if (userData && userData.data && userData.data.body && userData.data.body.length > 0) {\r\n                      this.currentUser = username;\r\n                      this.posts = userData.data.body;\r\n                      this.displayUserInfo(username, userData.data);\r\n                      this.displayPosts(userData.data.body);\r\n                      this.showPostsSection(true);\r\n                      console.log(`\u2705 Success! Found ${userData.data.body.length} posts for ${username}`);\r\n                  } else {\r\n                      this.showError(`No posts found for user \"${username}\". The user might not exist, have no posts, or their profile might be private.`);\r\n                      this.showPostsSection(false);\r\n                  }\r\n              } catch (error) {\r\n                  console.error('\u274c Error details:', error);\r\n                  this.showError(`Failed to fetch posts for \"${username}\". Error: ${error.message}`);\r\n                  this.showPostsSection(false);\r\n              } finally {\r\n                  this.showLoading(false);\r\n              }\r\n          }\r\n  \r\n          async fetchUserData(username) {\r\n              try {\r\n                  const response = await fetch(this.apiEndpoint, {\r\n                      method: 'POST',\r\n                      headers: {\r\n                          'Content-Type': 'application\/x-www-form-urlencoded',\r\n                      },\r\n                      body: `username=${encodeURIComponent(username)}`\r\n                  });\r\n  \r\n                  if (!response.ok) {\r\n                      throw new Error(`API request failed: ${response.status} ${response.statusText}`);\r\n                  }\r\n  \r\n                  const data = await response.json();\r\n  \r\n                  if (data.status !== 'success') {\r\n                      throw new Error('API returned unsuccessful status');\r\n                  }\r\n  \r\n                  return data;\r\n              } catch (error) {\r\n                  console.error('API Error:', error);\r\n                  throw error;\r\n              }\r\n          }\r\n  \r\n          displayUserInfo(username, userData) {\r\n              const userInfo = document.getElementById('userInfo');\r\n              const userAvatar = document.getElementById('userAvatar');\r\n              const userName = document.getElementById('userName');\r\n              const userDescription = document.getElementById('userDescription');\r\n              const userStats = document.getElementById('userStats');\r\n  \r\n              userAvatar.textContent = username.charAt(0).toUpperCase();\r\n              userName.textContent = `u\/${username}`;\r\n              userDescription.textContent = `Reddit User \u2022 ${userData.body.length} posts analyzed`;\r\n  \r\n              \/\/ Calculate comprehensive stats from the posts\r\n              const posts = userData.body.filter(item => item.title); \/\/ Filter actual posts\r\n              const comments = userData.body.filter(item => item.body && !item.title); \/\/ Filter comments\r\n  \r\n              const totalUpvotes = userData.body.reduce((sum, item) => sum + (item.ups || 0), 0);\r\n              const totalComments = posts.reduce((sum, post) => sum + (post.num_comments || 0), 0);\r\n              const totalAwards = userData.body.reduce((sum, item) => sum + (item.total_awards_received || 0), 0);\r\n              const avgUpvoteRatio = posts.length > 0 ?\r\n                  posts.reduce((sum, post) => sum + (post.upvote_ratio || 0), 0) \/ posts.length : 0;\r\n  \r\n              userStats.innerHTML = `\r\n                  <div class=\"stat-card\">\r\n                      <div class=\"stat-number\">${this.formatNumber(totalUpvotes)}<\/div>\r\n                      <div class=\"stat-label\">Total Upvotes<\/div>\r\n                  <\/div>\r\n                  <div class=\"stat-card\">\r\n                      <div class=\"stat-number\">${posts.length}<\/div>\r\n                      <div class=\"stat-label\">Posts Created<\/div>\r\n                  <\/div>\r\n                  <div class=\"stat-card\">\r\n                      <div class=\"stat-number\">${comments.length}<\/div>\r\n                      <div class=\"stat-label\">Comments Made<\/div>\r\n                  <\/div>\r\n                  <div class=\"stat-card\">\r\n                      <div class=\"stat-number\">${totalAwards}<\/div>\r\n                      <div class=\"stat-label\">Awards Received<\/div>\r\n                  <\/div>\r\n                  <div class=\"stat-card\">\r\n                      <div class=\"stat-number\">${Math.round(avgUpvoteRatio * 100)}%<\/div>\r\n                      <div class=\"stat-label\">Avg. Upvote Ratio<\/div>\r\n                  <\/div>\r\n              `;\r\n  \r\n              userInfo.style.display = 'block';\r\n          }\r\n  \r\n          displayPosts(posts) {\r\n              const container = document.getElementById('postsContainer');\r\n              const sectionTitle = document.getElementById('sectionTitle');\r\n  \r\n              sectionTitle.textContent = `${posts.length} Posts & Comments from u\/${this.currentUser}`;\r\n              container.innerHTML = '';\r\n  \r\n              posts.forEach((post, index) => {\r\n                  const postCard = this.createPostCard(post);\r\n                  postCard.style.animationDelay = `${index * 0.1}s`;\r\n                  container.appendChild(postCard);\r\n              });\r\n          }\r\n  \r\n          createPostCard(post) {\r\n              const card = document.createElement('div');\r\n              card.className = 'post-card';\r\n  \r\n              \/\/ Determine if this is a post or comment\r\n              const isPost = !!post.title;\r\n              const isComment = !!post.body && !post.title;\r\n              const isVideo = post.is_video || (post.secure_media && post.secure_media.reddit_video);\r\n              const hasImage = post.preview && post.preview.images && post.preview.images.length > 0;\r\n              const isExternalLink = isPost && post.url && !post.url.includes('reddit.com') && !isVideo && !hasImage;\r\n  \r\n              let mediaContent = '';\r\n              let postType = isComment ? 'Comment' : isPost ? 'Post' : 'Activity';\r\n  \r\n              if (isVideo && post.secure_media && post.secure_media.reddit_video) {\r\n                  postType = 'Video';\r\n                  const video = post.secure_media.reddit_video;\r\n                  const videoUrl = video.fallback_url;\r\n                  const redditPostUrl = `https:\/\/www.reddit.com${post.permalink}`;\r\n  \r\n                  mediaContent = `\r\n                      <div class=\"media-container\">\r\n                          <div class=\"video-container\">\r\n                              <video class=\"video-player\" controls preload=\"metadata\" id=\"video-${post.id}\" onclick=\"redditExplorer.toggleVideoPlayPause('${post.id}')\">\r\n                                  <source src=\"${videoUrl}\" type=\"video\/mp4\">\r\n                                  Your browser does not support the video tag.\r\n                              <\/video>\r\n                              <button class=\"video-play-overlay\" id=\"play-overlay-${post.id}\" onclick=\"redditExplorer.toggleVideoPlayPause('${post.id}')\">\u25b6<\/button>\r\n                          <\/div>\r\n                          <div class=\"media-controls\">\r\n                              ${video.has_audio ? `\r\n                                  <button class=\"control-btn stream-audio-btn\" onclick=\"redditExplorer.streamWithAudio(event, '${redditPostUrl}', '${post.id}')\">\r\n                                      \ud83d\udd0a Stream with Audio\r\n                                  <\/button>\r\n                              ` : ''}\r\n                              <button class=\"control-btn download-btn\" onclick=\"redditExplorer.downloadVideoWithAudio(event, '${redditPostUrl}', '${this.sanitizeFilename(post.title || 'video')}.mp4', '${post.id}')\">\r\n                                  \ud83d\udce5 Download Video\r\n                              <\/button>\r\n                          <\/div>\r\n                      <\/div>\r\n                  `;\r\n              } else if (hasImage) {\r\n                  postType = 'Image';\r\n                  const image = post.preview.images[0];\r\n                  const imageUrl = image.source.url.replace(\/&\/g, '&');\r\n                  mediaContent = `\r\n                      <div class=\"media-container\">\r\n                          <img decoding=\"async\" src=\"${imageUrl}\" alt=\"${post.title || 'Image'}\" class=\"image-preview\" onclick=\"redditExplorer.openImageModal('${imageUrl}')\">\r\n                          <div class=\"media-controls\">\r\n                              <button class=\"control-btn download-btn\" onclick=\"redditExplorer.downloadImageBase64WithButtonSpinner(event, this, '${imageUrl}', '${this.sanitizeFilename(post.title || 'image')}.jpg')\">\r\n                                  <span class=\"btn-text\">\ud83d\udce5 Download Image<\/span>\r\n                                  <span class=\"btn-spinner\" style=\"display:none; margin-left:8px;\">\r\n                                      <span class=\"spinner\" style=\"width:18px;height:18px;border:3px solid #eee;border-top:3px solid #8A66FF;border-radius:50%;display:inline-block;vertical-align:middle;animation:spin 1s linear infinite;\"><\/span>\r\n                                  <\/span>\r\n                              <\/button>\r\n                          <\/div>\r\n                      <\/div>\r\n                  `;\r\n              } else if (isExternalLink) {\r\n                  postType = 'Link';\r\n              }\r\n  \r\n              let externalLinkContent = '';\r\n              if (isExternalLink && post.url) {\r\n                  externalLinkContent = `\r\n                      <a href=\"${post.url}\" target=\"_blank\" class=\"external-link\">\r\n                          \ud83d\udd17 Visit ${post.domain || 'External Link'}\r\n                      <\/a>\r\n                  `;\r\n              }\r\n  \r\n              \/\/ Enhanced post badges\r\n              let badges = '';\r\n              if (post.distinguished === 'admin') badges += '<span class=\"badge admin\">\ud83d\udc51 Admin<\/span>';\r\n              if (post.distinguished === 'moderator') badges += '<span class=\"badge admin\">\ud83d\udee1\ufe0f Mod<\/span>';\r\n              if (post.stickied) badges += '<span class=\"badge stickied\">\ud83d\udccc Stickied<\/span>';\r\n              if (post.archived) badges += '<span class=\"badge archived\">\ud83d\uddc3\ufe0f Archived<\/span>';\r\n              if (post.locked) badges += '<span class=\"badge locked\">\ud83d\udd12 Locked<\/span>';\r\n              if (post.over_18) badges += '<span class=\"badge nsfw\">\ud83d\udd1e NSFW<\/span>';\r\n  \r\n              \/\/ Content handling for both posts and comments - FIXED VERSION\r\n              let contentText = '';\r\n              if (isComment && post.body) {\r\n                  const isLongText = post.body.length > 300;\r\n                  const truncatedText = isLongText ? this.truncateText(post.body, 300) : post.body;\r\n                  contentText = `\r\n                      <div class=\"post-text\" id=\"text-${post.id}\">${truncatedText}<\/div>\r\n                      ${isLongText ? `\r\n                          <button class=\"expand-btn\" data-post-id=\"${post.id}\" data-full-text=\"${this.escapeHtml(post.body)}\" onclick=\"redditExplorer.toggleText(this)\">\r\n                              Show More\r\n                          <\/button>\r\n                      ` : ''}\r\n                  `;\r\n              } else if (isPost && post.selftext) {\r\n                  const isLongText = post.selftext.length > 300;\r\n                  const truncatedText = isLongText ? this.truncateText(post.selftext, 300) : post.selftext;\r\n                  contentText = `\r\n                      <div class=\"post-text\" id=\"text-${post.id}\">${truncatedText}<\/div>\r\n                      ${isLongText ? `\r\n                          <button class=\"expand-btn\" data-post-id=\"${post.id}\" data-full-text=\"${this.escapeHtml(post.selftext)}\" onclick=\"redditExplorer.toggleText(this)\">\r\n                              Show More\r\n                          <\/button>\r\n                      ` : ''}\r\n                  `;\r\n              }\r\n  \r\n              \/\/ Title handling\r\n              const title = post.title || (isComment ? `Comment in: ${post.link_title || 'Discussion'}` : 'Reddit Activity');\r\n  \r\n              card.innerHTML = `\r\n                  <div class=\"post-header\">\r\n                      <div class=\"subreddit-info\">\r\n                          <div class=\"subreddit-badge\">${post.subreddit_name_prefixed || 'r\/unknown'}<\/div>\r\n                          <div class=\"post-type\">${postType}<\/div>\r\n                      <\/div>\r\n                      <div class=\"post-meta\">\r\n                          ${this.formatDate(post.created_utc)}\r\n                          ${post.edited ? ` \u2022 Edited` : ''}\r\n                      <\/div>\r\n                  <\/div>\r\n  \r\n                  ${badges ? `<div class=\"post-badges\">${badges}<\/div>` : ''}\r\n  \r\n                  <h2 class=\"post-title\">${title}<\/h2>\r\n  \r\n                  <div class=\"post-content\">\r\n                      ${contentText}\r\n                      ${mediaContent}\r\n                      ${externalLinkContent}\r\n                  <\/div>\r\n  \r\n                  <div class=\"post-stats\">\r\n                      <div class=\"stat-item upvotes\">\r\n                          <div class=\"stat-value\">${this.formatNumber(post.ups || 0)}<\/div>\r\n                          <div class=\"stat-label\">Upvotes<\/div>\r\n                      <\/div>\r\n                      <div class=\"stat-item comments\">\r\n                          <div class=\"stat-value\">${this.formatNumber(post.num_comments || 0)}<\/div>\r\n                          <div class=\"stat-label\">Comments<\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              `;\r\n  \r\n              return card;\r\n          }\r\n  \r\n          \/\/ FIXED toggleText function\r\n          toggleText(button) {\r\n              const postId = button.getAttribute('data-post-id');\r\n              const fullText = button.getAttribute('data-full-text');\r\n              const textElement = document.getElementById(`text-${postId}`);\r\n  \r\n              if (button.textContent.trim() === 'Show More') {\r\n                  textElement.innerHTML = fullText;\r\n                  button.textContent = 'Show Less';\r\n              } else {\r\n                  textElement.innerHTML = this.truncateText(fullText, 300);\r\n                  button.textContent = 'Show More';\r\n              }\r\n          }\r\n  \r\n          \/\/ Helper function to escape HTML\r\n          escapeHtml(text) {\r\n              const div = document.createElement('div');\r\n              div.textContent = text;\r\n              return div.innerHTML;\r\n          }\r\n  \r\n          \/\/ Video control functions\r\n          playVideo(postId) {\r\n              const video = document.getElementById(`video-${postId}`);\r\n              const overlay = document.getElementById(`play-overlay-${postId}`);\r\n  \r\n              if (video.paused) {\r\n                  video.play();\r\n                  overlay.innerHTML = '\u23f8\ufe0f';\r\n                  overlay.style.display = 'flex';\r\n              } else {\r\n                  video.pause();\r\n                  overlay.innerHTML = '\u25b6';\r\n                  overlay.style.display = 'flex';\r\n              }\r\n  \r\n              \/\/ Update overlay when video ends\r\n              video.addEventListener('ended', () => {\r\n                  overlay.innerHTML = '\u25b6';\r\n                  overlay.style.display = 'flex';\r\n              });\r\n          }\r\n  \r\n          toggleVideoPlayPause(postId) {\r\n              const video = document.getElementById(`video-${postId}`);\r\n              const overlay = document.getElementById(`play-overlay-${postId}`);\r\n  \r\n              if (video.paused) {\r\n                  video.play();\r\n                  overlay.innerHTML = '\u23f8\ufe0f';\r\n                  overlay.style.display = 'flex';\r\n              } else {\r\n                  video.pause();\r\n                  overlay.innerHTML = '\u25b6';\r\n                  overlay.style.display = 'flex';\r\n              }\r\n          }\r\n  \r\n          async streamWithAudio(event, redditUrl, postId) {\r\n              const button = event.target;\r\n              const originalText = button.innerHTML;\r\n              const videoContainer = document.querySelector(`#video-${postId}`).parentElement;\r\n  \r\n              \/\/ Show loading overlay\r\n              const loadingOverlay = document.createElement('div');\r\n              loadingOverlay.className = 'video-loading-overlay';\r\n              loadingOverlay.innerHTML = `\r\n                  <div class=\"video-loading-spinner\"><\/div>\r\n                  <div>Loading audio-enabled video...<\/div>\r\n              `;\r\n              videoContainer.appendChild(loadingOverlay);\r\n  \r\n              button.disabled = true;\r\n              button.classList.add('loading');\r\n              button.innerHTML = '\u23f3 Loading Audio...';\r\n  \r\n              try {\r\n                  console.log('Fetching audio-enabled video for:', redditUrl);\r\n  \r\n                  const response = await fetch('https:\/\/tools.xrespond.com\/api\/reddit\/video\/downloader', {\r\n                      method: 'POST',\r\n                      headers: {\r\n                          'Content-Type': 'application\/x-www-form-urlencoded',\r\n                      },\r\n                      body: `url=${encodeURIComponent(redditUrl)}`\r\n                  });\r\n  \r\n                  if (!response.ok) {\r\n                      throw new Error(`API request failed: ${response.status}`);\r\n                  }\r\n  \r\n                  const data = await response.json();\r\n  \r\n                  if (data.success && data.data && data.data.data && data.data.data.links && data.data.data.links.length > 0) {\r\n                      const downloadUrl = data.data.data.links[0].download_url;\r\n  \r\n                      const videoElement = document.getElementById(`video-${postId}`);\r\n                      if (videoElement) {\r\n                          videoElement.src = downloadUrl;\r\n                          videoElement.load();\r\n  \r\n                          button.innerHTML = '\ud83d\udd0a Audio Loaded!';\r\n                          button.style.background = 'var(--gradient-accent)';\r\n  \r\n                          setTimeout(() => {\r\n                              button.innerHTML = '\ud83d\udd0a Stream with Audio';\r\n                              button.style.background = '';\r\n                              button.disabled = false;\r\n                              button.classList.remove('loading');\r\n                          }, 2000);\r\n                      }\r\n                  } else {\r\n                      throw new Error('Invalid API response format');\r\n                  }\r\n              } catch (error) {\r\n                  console.error('Error fetching audio video:', error);\r\n                  button.innerHTML = '\u274c Audio Failed';\r\n                  button.style.background = 'var(--gradient-accent)';\r\n  \r\n                  setTimeout(() => {\r\n                      button.innerHTML = originalText;\r\n                      button.style.background = '';\r\n                      button.disabled = false;\r\n                      button.classList.remove('loading');\r\n                  }, 3000);\r\n              } finally {\r\n                  \/\/ Remove loading overlay\r\n                  if (loadingOverlay && loadingOverlay.parentElement) {\r\n                      loadingOverlay.parentElement.removeChild(loadingOverlay);\r\n                  }\r\n              }\r\n          }\r\n  \r\n          async downloadVideoWithAudio(event, redditUrl, filename, postId) {\r\n              const button = event.target;\r\n              const originalText = button.innerHTML;\r\n              button.disabled = true;\r\n              button.classList.add('downloading');\r\n              button.innerHTML = '\u23f3 Preparing...';\r\n  \r\n              this.downloadController = new AbortController();\r\n  \r\n              try {\r\n                  this.showDownloadProgress('Fetching audio-enabled video...', 0);\r\n  \r\n                  const response = await fetch('https:\/\/tools.xrespond.com\/api\/reddit\/video\/downloader', {\r\n                      method: 'POST',\r\n                      headers: {\r\n                          'Content-Type': 'application\/x-www-form-urlencoded',\r\n                      },\r\n                      body: `url=${encodeURIComponent(redditUrl)}`,\r\n                      signal: this.downloadController.signal\r\n                  });\r\n  \r\n                  if (!response.ok) {\r\n                      throw new Error(`API request failed: ${response.status}`);\r\n                  }\r\n  \r\n                  const data = await response.json();\r\n  \r\n                  if (data.success && data.data && data.data.data && data.data.data.links && data.data.data.links.length > 0) {\r\n                      const downloadUrl = data.data.data.links[0].download_url;\r\n  \r\n                      this.showDownloadProgress('Starting video download...', 10);\r\n  \r\n                      const videoResponse = await fetch(downloadUrl, {\r\n                          signal: this.downloadController.signal\r\n                      });\r\n  \r\n                      if (!videoResponse.ok) {\r\n                          throw new Error(`Download failed: ${videoResponse.status}`);\r\n                      }\r\n  \r\n                      const totalSize = parseInt(videoResponse.headers.get('content-length') || '0');\r\n                      const reader = videoResponse.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                          if (done) break;\r\n  \r\n                          chunks.push(value);\r\n                          receivedSize += value.length;\r\n  \r\n                          const progress = totalSize ? 10 + (receivedSize \/ totalSize) * 80 : 50;\r\n                          this.showDownloadProgress('Downloading video with audio...', progress, receivedSize, totalSize);\r\n                      }\r\n  \r\n                      this.showDownloadProgress('Processing download...', 95, receivedSize, totalSize);\r\n  \r\n                      const blob = new Blob(chunks, { type: 'video\/mp4' });\r\n                      const downloadBlobUrl = URL.createObjectURL(blob);\r\n  \r\n                      const a = document.createElement('a');\r\n                      a.href = downloadBlobUrl;\r\n                      a.download = filename;\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                      setTimeout(() => URL.revokeObjectURL(downloadBlobUrl), 1000);\r\n  \r\n                      this.showDownloadProgress('Download completed!', 100, receivedSize, totalSize);\r\n                      setTimeout(() => this.hideDownloadProgress(), 3000);\r\n                  } else {\r\n                      throw new Error('Invalid API response format');\r\n                  }\r\n              } catch (error) {\r\n                  if (error.name === 'AbortError') {\r\n                      this.showDownloadProgress('Download cancelled', 0);\r\n                      setTimeout(() => this.hideDownloadProgress(), 2000);\r\n                  } else {\r\n                      console.error('Download error:', error);\r\n                      this.showError(`Download failed: ${error.message}`);\r\n                      this.hideDownloadProgress();\r\n                  }\r\n              } finally {\r\n                  button.disabled = false;\r\n                  button.classList.remove('downloading');\r\n                  button.innerHTML = originalText;\r\n                  this.downloadController = null;\r\n              }\r\n          }\r\n  \r\n          async downloadImageBase64WithButtonSpinner(event, btn, imageUrl, filename) {\r\n              event.preventDefault();\r\n              const textSpan = btn.querySelector('.btn-text');\r\n              const spinnerSpan = btn.querySelector('.btn-spinner');\r\n              btn.disabled = true;\r\n              textSpan.style.display = 'none';\r\n              spinnerSpan.style.display = 'inline-block';\r\n              try {\r\n                  const proxyUrl = `https:\/\/tools.xrespond.com\/api\/reddit\/proxy-media-base64?url=${encodeURIComponent(imageUrl)}`;\r\n                  const response = await fetch(proxyUrl);\r\n                  if (!response.ok) throw new Error('Failed to fetch image');\r\n                  const data = await response.json();\r\n                  const base64data = `data:${data.contentType};base64,${data.base64}`;\r\n                  const a = document.createElement('a');\r\n                  a.href = base64data;\r\n                  a.download = filename;\r\n                  document.body.appendChild(a);\r\n                  a.click();\r\n                  document.body.removeChild(a);\r\n                  await new Promise(res => setTimeout(res, 1200)); \/\/ Show spinner briefly\r\n              } catch (error) {\r\n                  this.showError('Could not download image. Please try again later.');\r\n              } finally {\r\n                  btn.disabled = false;\r\n                  textSpan.style.display = '';\r\n                  spinnerSpan.style.display = 'none';\r\n              }\r\n          }\r\n  \r\n          showDownloadProgress(text, progress = 0, downloaded = 0, total = 0) {\r\n              const progressDiv = document.getElementById('downloadProgress');\r\n              const progressText = document.getElementById('progressText');\r\n              const progressFill = document.getElementById('progressBarFill');\r\n              const progressPercent = document.getElementById('progressPercent');\r\n              const progressSize = document.getElementById('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 = `${this.formatFileSize(downloaded)} \/ ${this.formatFileSize(total)}`;\r\n  \r\n              progressDiv.classList.add('show');\r\n          }\r\n  \r\n          hideDownloadProgress() {\r\n              document.getElementById('downloadProgress').classList.remove('show');\r\n          }\r\n  \r\n          cancelDownload() {\r\n              if (this.downloadController) {\r\n                  this.downloadController.abort();\r\n                  this.downloadController = null;\r\n              }\r\n          }\r\n  \r\n          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          newSearch() {\r\n              document.getElementById('usernameInput').value = '';\r\n              document.getElementById('userInfo').style.display = 'none';\r\n              document.getElementById('postsSection').style.display = 'none';\r\n              this.clearError();\r\n              document.getElementById('usernameInput').focus();\r\n          }\r\n  \r\n          setupModal() {\r\n              const modal = document.getElementById('imageModal');\r\n              const closeBtn = document.querySelector('.close');\r\n  \r\n              closeBtn.onclick = () => {\r\n                  modal.style.display = 'none';\r\n              }\r\n  \r\n              window.onclick = (event) => {\r\n                  if (event.target === modal) {\r\n                      modal.style.display = 'none';\r\n                  }\r\n              }\r\n          }\r\n  \r\n          openImageModal(imageUrl) {\r\n              const modal = document.getElementById('imageModal');\r\n              const modalImg = document.getElementById('modalImage');\r\n              modal.style.display = 'block';\r\n              modalImg.src = imageUrl;\r\n          }\r\n  \r\n          showLoading(show) {\r\n              const searchBtn = document.getElementById('searchBtn');\r\n              const searchText = document.getElementById('searchText');\r\n              const searchSpinner = document.getElementById('searchSpinner');\r\n              const loading = document.getElementById('loading');\r\n  \r\n              if (show) {\r\n                  searchBtn.disabled = true;\r\n                  searchText.style.display = 'none';\r\n                  searchSpinner.style.display = 'block';\r\n                  loading.style.display = 'block';\r\n              } else {\r\n                  searchBtn.disabled = false;\r\n                  searchText.style.display = 'block';\r\n                  searchSpinner.style.display = 'none';\r\n                  loading.style.display = 'none';\r\n              }\r\n          }\r\n  \r\n          showPostsSection(show) {\r\n              const postsSection = document.getElementById('postsSection');\r\n              postsSection.style.display = show ? 'block' : 'none';\r\n          }\r\n  \r\n          showError(message) {\r\n              const errorContainer = document.getElementById('errorMessage');\r\n              errorContainer.textContent = message;\r\n              errorContainer.style.display = 'block';\r\n              setTimeout(() => {\r\n                  errorContainer.style.display = 'none';\r\n              }, 8000);\r\n          }\r\n  \r\n          clearError() {\r\n              document.getElementById('errorMessage').style.display = 'none';\r\n          }\r\n  \r\n          formatNumber(num) {\r\n              if (num >= 1000000) {\r\n                  return (num \/ 1000000).toFixed(1) + 'M';\r\n              } else if (num >= 1000) {\r\n                  return (num \/ 1000).toFixed(1) + 'K';\r\n              }\r\n              return num.toString();\r\n          }\r\n  \r\n          formatDate(timestamp) {\r\n              return new Date(timestamp * 1000).toLocaleDateString('en-US', {\r\n                  year: 'numeric',\r\n                  month: 'short',\r\n                  day: 'numeric'\r\n              });\r\n          }\r\n  \r\n          formatDuration(seconds) {\r\n              const mins = Math.floor(seconds \/ 60);\r\n              const secs = seconds % 60;\r\n              return `${mins}:${secs.toString().padStart(2, '0')}`;\r\n          }\r\n  \r\n          truncateText(text, maxLength) {\r\n              if (text.length <= maxLength) return text;\r\n              return text.substring(0, maxLength) + '...';\r\n          }\r\n  \r\n          sanitizeFilename(filename) {\r\n              return filename.replace(\/[^a-z0-9]\/gi, '_').toLowerCase();\r\n          }\r\n      }\r\n  \r\n      \/\/ Global function for cancel download\r\n      function cancelDownload() {\r\n          redditExplorer.cancelDownload();\r\n      }\r\n  \r\n      \/\/ Initialize the app\r\n      const redditExplorer = new RedditUserExplorerPro();\r\n  <\/script>\r\n    <!-- Vvveb Common Js -->\r\n    <script id=\"popper-js\" src=\"..\/js\/popper.min.js\"><\/script>\r\n    <!-- Vvveb Ajax Common Js -->\r\n    <script id=\"app-js\" src=\"..\/js\/app.js\"><\/script>\r\n  \r\n    <!-- Animation -->\r\n  \r\n    <link rel=\"stylesheet\" href=\"..\/js\/aos.css\">\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=\"..\/js\/aos.js\"><\/script>\r\n    <script src=\"..\/js\/theme.js\"><\/script>\r\n    \r\n        <!-- Scripts -->\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  \r\n    <script>\r\n          \/\/ Initialize AOS animation\r\n          AOS.init({\r\n              duration: 800,\r\n              easing: 'ease-in-out',\r\n              once: true\r\n          });\r\n          \r\n          \/\/ Smooth scrolling for anchor links\r\n          document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\r\n              anchor.addEventListener('click', function (e) {\r\n                  e.preventDefault();\r\n                  document.querySelector(this.getAttribute('href')).scrollIntoView({\r\n                      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      <!-- 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      \r\n  \r\n  <style id=\"vvvebjs-styles\">\r\n      html{\r\n          overflow-x: hidden;\r\n      }\r\n  \r\n      :root {\r\n              --rduv-primary-color: #8A66FF;\r\n              --rduv-secondary-color: #6A4FE0;\r\n              --rduv-dark-color: #000000;\r\n              --rduv-light-color: #FFFFFF;\r\n              --rduv-gray-color: #F5F3FF;\r\n              --rduv-muted-on-light: #555555;\r\n              --rduv-primary-hover: #7758F0;\r\n              --rduv-secondary-hover: #9B85FF;\r\n              --rduv-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(--rduv-light-color);\r\n              color: var(--rduv-dark-color);\r\n          }\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     \r\n      \/* Reddit-style Hero Section *\/\r\n      .rduv-hero-section {\r\n              padding: var(--rduv-section-padding);\r\n              text-align: center;\r\n              background-color: var(--rduv-light-color);\r\n  \r\n          }\r\n          \r\n          .rduv-hero-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .rduv-hero-section h1 {\r\n              font-size: 3.5rem;\r\n              font-weight: 700;\r\n              margin-bottom: 1.5rem;\r\n              color: var(--rduv-dark-color);\r\n              -webkit-text-fill-color: var(--rduv-dark-color);\r\n              background: none;\r\n              -webkit-background-clip: unset;\r\n              background-clip: unset;\r\n          }\r\n\r\n          .rduv-hero-section h1 .va-accent {\r\n              color: var(--rduv-primary-color);\r\n              -webkit-text-fill-color: var(--rduv-primary-color);\r\n          }\r\n          \r\n          .rduv-hero-section p {\r\n              font-size: 1.25rem;\r\n              max-width: 700px;\r\n              margin: 0 auto 2rem;\r\n              font-weight: 400;\r\n              color: var(--rduv-muted-on-light);\r\n          }\r\n          \r\n          \/* Work Process \u2014 white \/ lavender content (logo-style) *\/\r\n          .rduv-work-process-section {\r\n              padding: var(--rduv-section-padding);\r\n              background: linear-gradient(180deg, #faf9ff 0%, #F5F3FF 45%, #f0ecff 100%);\r\n              color: var(--rduv-dark-color);\r\n              position: relative;\r\n              overflow: hidden;\r\n              border-top: 1px solid rgba(138, 102, 255, 0.12);\r\n              border-bottom: 1px solid rgba(138, 102, 255, 0.1);\r\n          }\r\n          \r\n          .rduv-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: radial-gradient(ellipse 85% 55% at 50% 0%, rgba(138, 102, 255, 0.09) 0%, transparent 58%);\r\n              pointer-events: none;\r\n          }\r\n\r\n          .rduv-work-process-section .rduv-light-title {\r\n              color: var(--rduv-dark-color);\r\n          }\r\n\r\n          .rduv-work-process-section .rduv-light-title::after {\r\n              background: linear-gradient(to right, var(--rduv-primary-color), var(--rduv-secondary-color));\r\n          }\r\n\r\n          .rduv-work-process-section .rduv-light-subtitle {\r\n              color: var(--rduv-muted-on-light);\r\n          }\r\n\r\n          .rduv-work-process-section .rduv-process-step {\r\n              background: #ffffff;\r\n              border: 1px solid rgba(138, 102, 255, 0.2);\r\n              box-shadow: 0 10px 28px rgba(138, 102, 255, 0.08);\r\n          }\r\n\r\n          .rduv-work-process-section .rduv-process-step:hover {\r\n              transform: translateY(-10px);\r\n              background: #ffffff;\r\n              box-shadow: 0 16px 36px rgba(138, 102, 255, 0.14);\r\n          }\r\n\r\n          .rduv-work-process-section h4.text-white {\r\n              color: var(--rduv-dark-color) !important;\r\n          }\r\n          \r\n          .rduv-work-process-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .rduv-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          .rduv-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          .rduv-step-number {\r\n              width: 60px;\r\n              height: 60px;\r\n              background: white;\r\n              background: linear-gradient(45deg, var(--rduv-primary-color), var(--rduv-secondary-color));\r\n              color: white;\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          .rduv-features-section {\r\n              padding: var(--rduv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .rduv-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          .rduv-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: linear-gradient(to bottom, var(--rduv-primary-color), var(--rduv-secondary-color));\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .rduv-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          .rduv-feature-card:hover::before {\r\n              width: 100%;\r\n              opacity: 0.1;\r\n          }\r\n          \r\n          .rduv-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: linear-gradient(45deg, var(--rduv-primary-color), var(--rduv-secondary-color));\r\n              color: white;\r\n              font-size: 1.8rem;\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .rduv-feature-card:hover .rduv-feature-icon {\r\n              transform: rotate(15deg) scale(1.1);\r\n              background: linear-gradient(45deg, var(--rduv-primary-hover), var(--rduv-secondary-hover));\r\n          }\r\n          \r\n          \/* Why Choose Section *\/\r\n          .rduv-why-choose-section {\r\n              padding: var(--rduv-section-padding);\r\n              background: #F8F9FA;\r\n          }\r\n          \r\n          .rduv-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          .rduv-why-choose-image:hover {\r\n              transform: perspective(1000px) rotateY(0deg);\r\n          }\r\n          \r\n          .rduv-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          .rduv-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          .rduv-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: linear-gradient(45deg, var(--rduv-primary-color), var(--rduv-secondary-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          .rduv-faq-section {\r\n              padding: var(--rduv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .rduv-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          .rduv-accordion-button {\r\n              font-weight: 600;\r\n              font-size: 1.05rem;\r\n              line-height: 1.45;\r\n              color: var(--rduv-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          .rduv-accordion-button:not(.collapsed) {\r\n              background: white;\r\n              color: var(--rduv-primary-color);\r\n              box-shadow: none;\r\n          }\r\n          \r\n          .rduv-accordion-button:focus {\r\n              box-shadow: none;\r\n              border-color: rgba(138, 102, 255, 0.35);\r\n          }\r\n          \r\n          .rduv-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='%238A66FF'%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          .rduv-accordion-body {\r\n              padding: 22px 25px 26px;\r\n              color: #3a3a3a;\r\n              font-size: 1.02rem;\r\n              line-height: 1.7;\r\n              font-weight: 400;\r\n          }\r\n          \r\n          \/* Section Titles *\/\r\n          .rduv-section-title {\r\n              font-weight: 700;\r\n              color: var(--rduv-dark-color);\r\n              margin-bottom: 1.5rem;\r\n              position: relative;\r\n              display: inline-block;\r\n              letter-spacing: -0.02em;\r\n              line-height: 1.2;\r\n          }\r\n          \r\n          .rduv-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: linear-gradient(to right, var(--rduv-primary-color), var(--rduv-secondary-color));\r\n              border-radius: 2px;\r\n          }\r\n          \r\n          .rduv-light-title {\r\n              color: white;\r\n          }\r\n          \r\n          .rduv-light-title::after {\r\n              background: white;\r\n          }\r\n          \r\n          .rduv-section-subtitle {\r\n              color: #4a4a4a;\r\n              max-width: 640px;\r\n              margin: 0 auto 3rem;\r\n              font-size: 1.125rem;\r\n              font-weight: 500;\r\n              line-height: 1.65;\r\n          }\r\n\r\n          .rduv-section-title + .rduv-section-subtitle {\r\n              margin-top: -0.5rem;\r\n          }\r\n\r\n          .text-center .rduv-section-title::after {\r\n              left: 50%;\r\n              transform: translateX(-50%);\r\n          }\r\n\r\n          .rduv-feature-card h4 {\r\n              color: var(--rduv-dark-color);\r\n              font-weight: 700;\r\n              margin-bottom: 0.65rem;\r\n              font-size: 1.2rem;\r\n          }\r\n\r\n          .rduv-feature-card p {\r\n              color: #444444;\r\n              line-height: 1.65;\r\n              margin-bottom: 0;\r\n              font-size: 1rem;\r\n          }\r\n\r\n          .rduv-why-choose-section .rduv-lead {\r\n              color: #444444;\r\n              font-size: 1.08rem;\r\n              line-height: 1.7;\r\n              font-weight: 400;\r\n          }\r\n\r\n          .rduv-benefit-item h5 {\r\n              color: var(--rduv-dark-color);\r\n              font-weight: 700;\r\n          }\r\n\r\n          .rduv-benefit-item p {\r\n              color: #555555;\r\n              line-height: 1.6;\r\n              font-size: 0.98rem;\r\n          }\r\n          \r\n          .rduv-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                  --rduv-section-padding: 80px 0;\r\n              }\r\n              \r\n              .rduv-hero-section h1 {\r\n                  font-size: 2.8rem;\r\n              }\r\n              \r\n              .rduv-process-step::before {\r\n                  display: none;\r\n              }\r\n          }\r\n          \r\n          @media (max-width: 767px) {\r\n              :root {\r\n                  --rduv-section-padding: 70px 0;\r\n              }\r\n              \r\n              .rduv-hero-section {\r\n                  padding: 100px 0 60px;\r\n              }\r\n              \r\n              .rduv-hero-section h1 {\r\n                  font-size: 2.2rem;\r\n              }\r\n              \r\n              .rduv-hero-section p {\r\n                  font-size: 1rem;\r\n              }\r\n              \r\n              .rduv-section-title {\r\n                  font-size: 1.8rem;\r\n              }\r\n          }\r\n          \r\n          \/* Animation *\/\r\n          @keyframes rduv-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          .rduv-floating-element {\r\n              animation: rduv-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: linear-gradient(var(--rduv-primary-color), var(--rduv-secondary-color));\r\n              border-radius: 10px;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-thumb:hover {\r\n              background: linear-gradient(var(--rduv-primary-hover), var(--rduv-secondary-hover));\r\n          }\r\n        \r\n  \r\n  <\/style>\r\n  <!-- tools -->\r\n  <style>\r\n  \r\n      :root {\r\n          --primary-color: #8A66FF;\r\n          --primary-light: #A385FF;\r\n          --primary-dark: #6A4FE0;\r\n          --secondary-color: #6A4FE0;\r\n          --secondary-light: #8A66FF;\r\n          --secondary-dark: #5238c4;\r\n          --accent-color: #8A66FF;\r\n          --accent-light: #A385FF;\r\n          --accent-dark: #6A4FE0;\r\n          --warning-color: #D4A017;\r\n          --warning-light: #E8B84A;\r\n          --danger-color: #EF4444;\r\n          --danger-light: #F87171;\r\n          --success-color: #22C55E;\r\n          --success-light: #4ADE80;\r\n          --bg-primary: #111016;\r\n          --bg-secondary: #18181f;\r\n          --bg-tertiary: #22222c;\r\n          --bg-card: #1c1c24;\r\n          --glass-bg: rgba(138, 102, 255, 0.08);\r\n          --glass-border: rgba(138, 102, 255, 0.22);\r\n          --text-primary: #FFFFFF;\r\n          --text-secondary: #CCCCCC;\r\n          --text-muted: #999999;\r\n          --text-accent: #8A66FF;\r\n          --shadow-sm: 0 2px 8px rgba(138, 102, 255, 0.12);\r\n          --shadow-md: 0 4px 16px rgba(138, 102, 255, 0.16);\r\n          --shadow-lg: 0 8px 32px rgba(138, 102, 255, 0.2);\r\n          --shadow-xl: 0 16px 48px rgba(138, 102, 255, 0.22);\r\n          --gradient-primary: linear-gradient(135deg, #8A66FF, #6A4FE0);\r\n          --gradient-secondary: linear-gradient(135deg, #2c2c36, #8A66FF);\r\n          --gradient-accent: linear-gradient(135deg, #8A66FF, #A385FF);\r\n      }\r\n  \r\n      .rduv-hero-tools-section {\r\n          font-family: 'Inter', 'Space Grotesk', sans-serif;\r\n          background-color: #111016;\r\n          background-image:\r\n              radial-gradient(circle at 22% 18%, rgba(138, 102, 255, 0.18) 0%, transparent 46%),\r\n              radial-gradient(circle at 88% 82%, rgba(106, 79, 224, 0.12) 0%, transparent 44%),\r\n              linear-gradient(168deg, #16141f 0%, #111016 50%, #14121c 100%);\r\n          padding: 80px 0;\r\n          line-height: 1.6;\r\n          color: var(--text-primary);\r\n          overflow-x: hidden;\r\n\/*           margin-top: 3rem; *\/\r\n          border-bottom: 1px solid rgba(138, 102, 255, 0.22);\r\n      }\r\n  \r\n      .custom-rduv-container {\r\n          max-width: 1400px;\r\n          margin: 0 auto;\r\n          padding: 20px;\r\n          position: relative;\r\n      }\r\n  \r\n      .header {\r\n          text-align: center;\r\n          margin-bottom: 40px;\r\n          padding: 40px 0;\r\n          animation: slideInDown 1s ease-out;\r\n      }\r\n  \r\n      .logo {\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          gap: 20px;\r\n          margin-bottom: 25px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n      .logo-icon {\r\n          width: 80px;\r\n          height: 80px;\r\n          background: var(--gradient-primary);\r\n          border-radius: 20px;\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          font-weight: 800;\r\n          box-shadow: var(--shadow-lg);\r\n          animation: float 3s ease-in-out infinite;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .logo-icon::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: -50%;\r\n          left: -50%;\r\n          width: 200%;\r\n          height: 200%;\r\n          background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);\r\n          transform: rotate(45deg);\r\n          animation: shine 3s infinite;\r\n      }\r\n  \r\n      .reddit-badge {\r\n          background: var(--gradient-secondary);\r\n          color: white;\r\n          padding: 8px 16px;\r\n          border-radius: 25px;\r\n          font-size: 14px;\r\n          font-weight: 700;\r\n          box-shadow: var(--shadow-md);\r\n          animation: pulse 2s infinite;\r\n      }\r\n  \r\n   .logo-text {\r\n      font-size: clamp(2.5rem, 6vw, 4rem);\r\n      font-weight: 900;\r\n      color: #FFFFFF;\r\n      -webkit-text-fill-color: #FFFFFF;\r\n      background: none;\r\n      -webkit-background-clip: unset;\r\n      background-clip: unset;\r\n      letter-spacing: -1px;\r\n  }\r\n\r\n  .logo-text .va-accent {\r\n      color: #8A66FF;\r\n      -webkit-text-fill-color: #8A66FF;\r\n  }\r\n  \r\n      .subtitle {\r\n          color: var(--text-secondary);\r\n          font-size: 18px;\r\n          font-weight: 600;\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      .features-grid {\r\n          display: grid;\r\n          grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n          gap: 20px;\r\n          margin-bottom: 40px;\r\n      }\r\n  \r\n     .feature-card {\r\n      background: var(--bg-card);\r\n      border: 1px solid var(--glass-border);\r\n      padding: 15px;\r\n      border-radius: 16px;\r\n      text-align: center;\r\n      transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n      position: relative;\r\n      overflow: hidden;\r\n  }\r\n  \r\n      .feature-card::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: -100%;\r\n          width: 100%;\r\n          height: 100%;\r\n          background: linear-gradient(90deg, transparent, rgba(138, 102, 255, 0.12), transparent);\r\n          transition: left 0.5s;\r\n      }\r\n  \r\n      .feature-card:hover::before {\r\n          left: 100%;\r\n      }\r\n  \r\n      .feature-card:hover {\r\n          transform: translateY(-5px);\r\n          box-shadow: var(--shadow-lg);\r\n          border-color: var(--primary-color);\r\n      }\r\n  \r\n      .feature-icon {\r\n          width: 40px;\r\n          height: 40px;\r\n          background: var(--gradient-primary);\r\n          border-radius: 50%;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          margin: 0 auto 10px;\r\n          font-size: 20px;\r\n          color: white;\r\n      }\r\n  \r\n      .feature-title {\r\n          font-weight: 700;\r\n          color: var(--text-primary);\r\n          margin-bottom: 8px;\r\n          font-size: 14px;\r\n      }\r\n  \r\n     .search-container {\r\n      background: var(--bg-secondary);\r\n      border: 1px solid var(--glass-border);\r\n      padding: 30px;\r\n      border-radius: 24px;\r\n      box-shadow: var(--shadow-xl);\r\n      margin-bottom: 40px;\r\n      animation: slideInUp 1s ease-out 0.2s both;\r\n      position: relative;\r\n      overflow: hidden;\r\n  }\r\n  \r\n      .search-container::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 4px;\r\n          background: var(--gradient-primary);\r\n      }\r\n  \r\n      .search-form {\r\n          display: flex;\r\n          gap: 15px;\r\n          margin-bottom: 20px;\r\n          position: relative;\r\n      }\r\n  \r\n    .search-input {\r\n      flex: 1 !important;\r\n      padding: 15px 20px !important;\r\n      border: 2px solid rgba(138, 102, 255, 0.28) !important;\r\n      border-radius: 16px !important;\r\n      font-size: 14px !important;\r\n      font-weight: 500 !important;\r\n      background: #1A1A22 !important;\r\n      transition: all 0.3s ease !important;\r\n      outline: none !important;\r\n      color: var(--text-primary) !important;\r\n      font-family: inherit !important;\r\n  }\r\n  \r\n      .search-input:focus {\r\n          border-color: var(--primary-color);\r\n          box-shadow: 0 0 0 4px rgba(138, 102, 255, 0.18);\r\n          transform: translateY(-2px);\r\n      }\r\n  \r\n      .search-input::placeholder {\r\n          color: var(--text-muted);\r\n          font-weight: 400;\r\n      }\r\n  \r\n      .search-btn {\r\n          padding: 15px 30px;\r\n          background: var(--gradient-primary);\r\n          color: white;\r\n          border: none;\r\n          border-radius: 16px;\r\n          font-size: 14px;\r\n          font-weight: 700;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          min-width: 150px;\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      .search-btn::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: -100%;\r\n          width: 100%;\r\n          height: 100%;\r\n          background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n          transition: left 0.5s;\r\n      }\r\n  \r\n      .search-btn:hover::before {\r\n          left: 100%;\r\n      }\r\n  \r\n      .search-btn:hover:not(:disabled) {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-lg);\r\n      }\r\n  \r\n      .search-btn:disabled {\r\n          opacity: 0.6;\r\n          cursor: not-allowed;\r\n          transform: none;\r\n      }\r\n  \r\n      .user-info {\r\n          background: var(--bg-secondary);\r\n          border: 1px solid var(--glass-border);\r\n          padding: 30px;\r\n          border-radius: 24px;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          display: none;\r\n          animation: slideInDown 0.8s ease-out;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .user-info::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 4px;\r\n          background: var(--gradient-secondary);\r\n      }\r\n  \r\n      .user-header {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 25px;\r\n          margin-bottom: 25px;\r\n      }\r\n  \r\n      .user-avatar {\r\n          width: 80px;\r\n          height: 80px;\r\n          border-radius: 50%;\r\n          background: var(--gradient-primary);\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 2.5rem;\r\n          color: white;\r\n          font-weight: 900;\r\n          box-shadow: var(--shadow-lg);\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .user-avatar::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: -50%;\r\n          left: -50%;\r\n          width: 200%;\r\n          height: 200%;\r\n          background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);\r\n          transform: rotate(45deg);\r\n          animation: shine 4s infinite;\r\n      }\r\n  \r\n      .user-details h2 {\r\n          font-size: 2rem;\r\n          color: var(--text-primary);\r\n          margin-bottom: 8px;\r\n          font-weight: 900;\r\n      }\r\n  \r\n      .user-description {\r\n          color: var(--text-secondary);\r\n          font-size: 16px;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      .user-stats {\r\n          display: grid;\r\n          grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\r\n          gap: 20px;\r\n          margin-top: 25px;\r\n      }\r\n  \r\n      .stat-card {\r\n          background: var(--bg-card);\r\n          border: 1px solid var(--glass-border);\r\n          padding: 20px;\r\n          border-radius: 20px;\r\n          text-align: center;\r\n          transition: all 0.3s ease;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .stat-card::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 3px;\r\n          background: var(--gradient-accent);\r\n      }\r\n  \r\n      .stat-card:hover {\r\n          transform: translateY(-5px);\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .stat-number {\r\n          font-size: 1.8rem;\r\n          font-weight: 900;\r\n          color: var(--primary-color);\r\n          margin-bottom: 6px;\r\n      }\r\n  \r\n      .stat-label {\r\n          font-size: 0.9rem;\r\n          color: var(--text-secondary);\r\n          font-weight: 600;\r\n      }\r\n  \r\n      .posts-section {\r\n          display: none;\r\n      }\r\n  \r\n      .section-title {\r\n          color: var(--text-primary);\r\n          font-size: 2rem;\r\n          font-weight: 900;\r\n          margin-bottom: 30px;\r\n          text-align: center;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid var(--glass-border);\r\n          padding: 20px;\r\n          border-radius: 20px;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .section-title::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 4px;\r\n          background: var(--gradient-accent);\r\n      }\r\n  \r\n      .posts-grid {\r\n          display: grid;\r\n          grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));\r\n          gap: 25px;\r\n      }\r\n  \r\n      .post-card {\r\n          background: var(--bg-secondary);\r\n          border: 1px solid var(--glass-border);\r\n          border-radius: 20px;\r\n          padding: 20px;\r\n          box-shadow: var(--shadow-xl);\r\n          transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n          position: relative;\r\n          overflow: hidden;\r\n          animation: slideUp 0.6s ease forwards;\r\n          display: flex;\r\n          flex-direction: column;\r\n          height: 100%;\r\n      }\r\n  \r\n      .post-card::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 4px;\r\n          background: var(--gradient-primary);\r\n          border-radius: 20px 20px 0 0;\r\n      }\r\n  \r\n      .post-card:hover {\r\n          transform: translateY(-10px);\r\n          box-shadow: 0 20px 40px rgba(138, 102, 255, 0.18);\r\n          border-color: var(--primary-color);\r\n      }\r\n  \r\n      .post-header {\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: space-between;\r\n          margin-bottom: 15px;\r\n          padding-bottom: 15px;\r\n          border-bottom: 2px solid var(--bg-tertiary);\r\n      }\r\n  \r\n      .subreddit-info {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 10px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n      .subreddit-badge {\r\n          background: var(--gradient-primary);\r\n          color: white;\r\n          padding: 6px 12px;\r\n          border-radius: 20px;\r\n          font-size: 0.8rem;\r\n          font-weight: 700;\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .post-type {\r\n          background: var(--gradient-secondary);\r\n          color: white;\r\n          padding: 4px 10px;\r\n          border-radius: 15px;\r\n          font-size: 0.7rem;\r\n          font-weight: 600;\r\n          text-transform: capitalize;\r\n      }\r\n  \r\n      .post-meta {\r\n          font-size: 0.8rem;\r\n          color: var(--text-muted);\r\n          font-weight: 500;\r\n          text-align: right;\r\n      }\r\n  \r\n      .post-badges {\r\n          display: flex;\r\n          flex-wrap: wrap;\r\n          gap: 8px;\r\n          margin-bottom: 15px;\r\n      }\r\n  \r\n      .badge {\r\n          padding: 4px 10px;\r\n          border-radius: 12px;\r\n          font-size: 0.7rem;\r\n          font-weight: 600;\r\n          color: white;\r\n          text-transform: uppercase;\r\n          letter-spacing: 0.5px;\r\n      }\r\n  \r\n      .badge.admin { background: var(--gradient-accent); }\r\n      .badge.stickied { background: var(--gradient-secondary); }\r\n      .badge.archived { background: linear-gradient(135deg, #6B7280, #4B5563); }\r\n      .badge.locked { background: var(--gradient-accent); }\r\n      .badge.nsfw { background: linear-gradient(135deg, #7C3AED, #5B21B6); }\r\n  \r\n      .post-title {\r\n          font-size: 1.4rem;\r\n          font-weight: 700;\r\n          margin-bottom: 15px;\r\n          color: var(--text-primary);\r\n          line-height: 1.4;\r\n      }\r\n  \r\n      .post-content {\r\n          margin-bottom: 20px;\r\n          flex-grow: 1;\r\n      }\r\n  \r\n      .post-text {\r\n          color: var(--text-secondary);\r\n          line-height: 1.6;\r\n          margin-bottom: 15px;\r\n          font-weight: 400;\r\n          font-size: 14px;\r\n      }\r\n  \r\n      .media-container {\r\n          margin: 15px 0;\r\n          border-radius: 16px;\r\n          overflow: hidden;\r\n          position: relative;\r\n          box-shadow: var(--shadow-md);\r\n          background: #000;\r\n      }\r\n  \r\n      .image-preview {\r\n          width: 100%;\r\n          max-height: 300px;\r\n          object-fit: cover;\r\n          cursor: pointer;\r\n          transition: transform 0.3s ease;\r\n      }\r\n  \r\n      .image-preview:hover {\r\n          transform: scale(1.02);\r\n      }\r\n  \r\n      .video-container {\r\n          position: relative;\r\n          width: 100%;\r\n          background: #000;\r\n          border-radius: 16px;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .video-player {\r\n          width: 100%;\r\n          height: 250px;\r\n          border-radius: 16px;\r\n      }\r\n  \r\n      .media-controls {\r\n          display: flex;\r\n          gap: 10px;\r\n          margin-top: 15px;\r\n          flex-wrap: wrap;\r\n          align-items: center;\r\n      }\r\n  \r\n      .control-btn {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 8px;\r\n          padding: 10px 18px;\r\n          border: none;\r\n          border-radius: 12px;\r\n          cursor: pointer;\r\n          font-size: 0.9rem;\r\n          font-weight: 600;\r\n          transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n          font-family: inherit;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .control-btn::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: -100%;\r\n          width: 100%;\r\n          height: 100%;\r\n          background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n          transition: left 0.5s;\r\n      }\r\n  \r\n      .control-btn:hover::before {\r\n          left: 100%;\r\n      }\r\n  \r\n      .stream-audio-btn {\r\n          background: var(--gradient-secondary);\r\n          color: white;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .stream-audio-btn:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-lg);\r\n      }\r\n  \r\n      .stream-audio-btn:disabled {\r\n          opacity: 0.6;\r\n          cursor: not-allowed;\r\n          transform: none;\r\n      }\r\n  \r\n      .stream-audio-btn.loading {\r\n          background: linear-gradient(135deg, #6B7280, #4B5563);\r\n      }\r\n  \r\n      .download-btn {\r\n          background: var(--gradient-accent);\r\n          color: white;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .download-btn:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-lg);\r\n      }\r\n  \r\n      .download-btn:disabled {\r\n          opacity: 0.6;\r\n          cursor: not-allowed;\r\n          transform: none;\r\n      }\r\n  \r\n      .download-btn.downloading {\r\n          background: var(--gradient-primary);\r\n      }\r\n  \r\n      .external-link {\r\n          display: inline-flex;\r\n          align-items: center;\r\n          gap: 8px;\r\n          background: var(--gradient-primary);\r\n          color: white;\r\n          padding: 10px 18px;\r\n          border-radius: 12px;\r\n          text-decoration: none;\r\n          margin-top: 15px;\r\n          transition: all 0.3s ease;\r\n          font-weight: 600;\r\n          box-shadow: var(--shadow-sm);\r\n          font-size: 0.9rem;\r\n      }\r\n  \r\n      .external-link:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .post-stats {\r\n          display: grid;\r\n          grid-template-columns: repeat(2, 1fr);\r\n          gap: 10px;\r\n          margin-top: auto;\r\n          padding-top: 15px;\r\n          border-top: 2px solid var(--bg-tertiary);\r\n      }\r\n  \r\n      .stat-item {\r\n          display: flex;\r\n          flex-direction: column;\r\n          align-items: center;\r\n          gap: 6px;\r\n          padding: 12px;\r\n          background: var(--bg-card);\r\n          border: 1px solid var(--glass-border);\r\n          border-radius: 15px;\r\n          text-align: center;\r\n          transition: all 0.3s ease;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .stat-item::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: var(--gradient-accent);\r\n      }\r\n  \r\n      .stat-item:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .stat-value {\r\n          font-weight: 900;\r\n          font-size: 1.2rem;\r\n      }\r\n  \r\n      .stat-label {\r\n          font-size: 0.8rem;\r\n          color: var(--text-muted);\r\n          font-weight: 600;\r\n          text-transform: capitalize;\r\n      }\r\n  \r\n      .upvotes .stat-value { color: var(--primary-color); }\r\n      .comments .stat-value { color: var(--secondary-color); }\r\n  \r\n      .loading {\r\n          text-align: center;\r\n          padding: 40px;\r\n          color: var(--text-primary);\r\n          font-size: 1.1rem;\r\n          display: none;\r\n      }\r\n  \r\n      .spinner {\r\n          border: 4px solid var(--bg-tertiary);\r\n          border-top: 4px solid var(--primary-color);\r\n          border-radius: 50%;\r\n          width: 50px;\r\n          height: 50px;\r\n          animation: spin 1s linear infinite;\r\n          margin: 20px auto;\r\n      }\r\n  \r\n      .error-message {\r\n          background: rgba(239, 68, 68, 0.1);\r\n          border: 1px solid rgba(239, 68, 68, 0.2);\r\n          color: var(--danger-color);\r\n          padding: 20px;\r\n          border-radius: 16px;\r\n          text-align: center;\r\n          margin: 20px 0;\r\n          font-weight: 600;\r\n          display: none;\r\n          font-size: 14px;\r\n      }\r\n  \r\n      .modal {\r\n          display: none;\r\n          position: fixed;\r\n          z-index: 1000;\r\n          left: 0;\r\n          top: 0;\r\n          width: 100%;\r\n          height: 100%;\r\n          background-color: rgba(0, 0, 0, 0.95);\r\n          animation: fadeIn 0.3s ease;\r\n      }\r\n  \r\n      .modal-content {\r\n          position: absolute;\r\n          top: 50%;\r\n          left: 50%;\r\n          transform: translate(-50%, -50%);\r\n          max-width: 90%;\r\n          max-height: 90%;\r\n      }\r\n  \r\n      .modal img {\r\n          width: 100%;\r\n          height: auto;\r\n          border-radius: 20px;\r\n      }\r\n  \r\n      .close {\r\n          position: absolute;\r\n          top: 20px;\r\n          right: 40px;\r\n          color: #f1f1f1;\r\n          font-size: 45px;\r\n          font-weight: bold;\r\n          cursor: pointer;\r\n          z-index: 1001;\r\n      }\r\n  \r\n      .close:hover {\r\n          color: var(--primary-color);\r\n      }\r\n  \r\n      \/* Download Progress *\/\r\n      .download-progress {\r\n          position: fixed;\r\n          bottom: 25px;\r\n          right: 25px;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid var(--glass-border);\r\n          border-radius: 20px;\r\n          padding: 25px;\r\n          min-width: 350px;\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      .download-progress.show {\r\n          display: block;\r\n          animation: slideInRight 0.4s ease-out;\r\n      }\r\n  \r\n      .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      .progress-text {\r\n          font-weight: 700;\r\n          font-size: 14px;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .cancel-btn {\r\n          background: rgba(239, 68, 68, 0.1);\r\n          border: 1px solid rgba(239, 68, 68, 0.2);\r\n          color: var(--danger-color);\r\n          padding: 8px 16px;\r\n          border-radius: 8px;\r\n          font-size: 12px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          font-weight: 600;\r\n      }\r\n  \r\n      .cancel-btn:hover {\r\n          background: rgba(239, 68, 68, 0.15);\r\n      }\r\n  \r\n      .progress-bar-container {\r\n          width: 100%;\r\n          height: 12px;\r\n          background: var(--bg-tertiary);\r\n          border-radius: 6px;\r\n          overflow: hidden;\r\n          margin-bottom: 12px;\r\n          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);\r\n      }\r\n  \r\n      .progress-bar-fill {\r\n          height: 100%;\r\n          background: var(--gradient-primary);\r\n          border-radius: 6px;\r\n          width: 0%;\r\n          transition: width 0.3s ease;\r\n          box-shadow: 0 2px 8px rgba(138, 102, 255, 0.45);\r\n      }\r\n  \r\n      .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          font-weight: 500;\r\n      }\r\n  \r\n      .expand-btn {\r\n          background: var(--gradient-primary);\r\n          color: white;\r\n          border: none;\r\n          padding: 8px 16px;\r\n          border-radius: 12px;\r\n          cursor: pointer;\r\n          font-size: 0.8rem;\r\n          font-weight: 600;\r\n          margin-top: 10px;\r\n          transition: all 0.3s ease;\r\n          font-family: inherit;\r\n      }\r\n  \r\n      .expand-btn:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .video-play-overlay {\r\n          position: absolute;\r\n          top: 50%;\r\n          left: 50%;\r\n          transform: translate(-50%, -50%);\r\n          background: rgba(0, 0, 0, 0.7);\r\n          border: none;\r\n          border-radius: 50%;\r\n          width: 50px;\r\n          height: 50px;\r\n          color: white;\r\n          font-size: 20px;\r\n          cursor: pointer;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          transition: all 0.3s ease;\r\n          z-index: 5;\r\n      }\r\n  \r\n      .video-play-overlay:hover {\r\n          background: rgba(0, 0, 0, 0.9);\r\n          transform: translate(-50%, -50%) scale(1.1);\r\n      }\r\n  \r\n      .video-play-overlay.hidden {\r\n          display: none;\r\n      }\r\n  \r\n      .new-search-btn {\r\n          background: var(--gradient-accent) !important;\r\n          min-width: 130px;\r\n      }\r\n  \r\n      @keyframes float {\r\n          0%, 100% { transform: translateY(0px) scale(1); }\r\n          50% { transform: translateY(-10px) scale(1.02); }\r\n      }\r\n  \r\n      @keyframes shine {\r\n          0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }\r\n          100% { transform: translateX(100%) translateY(100%) rotate(45deg); }\r\n      }\r\n  \r\n      @keyframes slideInDown {\r\n          from { opacity: 0; transform: translateY(-30px); }\r\n          to { opacity: 1; transform: translateY(0); }\r\n      }\r\n  \r\n      @keyframes slideInUp {\r\n          from { opacity: 0; transform: translateY(30px); }\r\n          to { opacity: 1; transform: translateY(0); }\r\n      }\r\n  \r\n      @keyframes slideInRight {\r\n          from { opacity: 0; transform: translateX(100%); }\r\n          to { opacity: 1; transform: translateX(0); }\r\n      }\r\n  \r\n      @keyframes slideUp {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(40px);\r\n          }\r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes spin {\r\n          0% { transform: rotate(0deg); }\r\n          100% { transform: rotate(360deg); }\r\n      }\r\n  \r\n      @keyframes pulse {\r\n          0%, 100% { transform: scale(1); }\r\n          50% { transform: scale(1.05); }\r\n      }\r\n  \r\n      @keyframes fadeIn {\r\n          from { opacity: 0; }\r\n          to { opacity: 1; }\r\n      }\r\n  \r\n      \/* Video Loading Overlay *\/\r\n      .video-loading-overlay {\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: 0;\r\n          background: rgba(0, 0, 0, 0.8);\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          flex-direction: column;\r\n          color: white;\r\n          font-weight: 600;\r\n          z-index: 10;\r\n      }\r\n  \r\n      .video-loading-spinner {\r\n          width: 30px;\r\n          height: 30px;\r\n          border: 3px solid rgba(255, 255, 255, 0.3);\r\n          border-top: 3px solid white;\r\n          border-radius: 50%;\r\n          animation: spin 1s linear infinite;\r\n          margin-bottom: 10px;\r\n      }\r\n  \r\n      @media (max-width: 1200px) {\r\n          .posts-grid {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .features-grid {\r\n              grid-template-columns: repeat(2, 1fr);\r\n          }\r\n      }\r\n  \r\n      @media (max-width: 768px) {\r\n          .features-grid {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .user-stats {\r\n              grid-template-columns: repeat(2, 1fr);\r\n          }\r\n  \r\n          .post-stats {\r\n              grid-template-columns: repeat(2, 1fr);\r\n              gap: 8px;\r\n          }\r\n  \r\n          .media-controls {\r\n              flex-direction: column;\r\n          }\r\n  \r\n          .control-btn {\r\n              width: 100%;\r\n              justify-content: center;\r\n          }\r\n  \r\n          .search-form {\r\n              flex-direction: column;\r\n          }\r\n      }\r\n  \r\n      @media (max-width: 480px) {\r\n          .post-stats {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .user-stats {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .custom-rduv-container {\r\n              padding: 15px;\r\n          }\r\n  \r\n          .search-container,\r\n          .user-info,\r\n          .post-card {\r\n              padding: 20px;\r\n          }\r\n  \r\n          .posts-grid {\r\n              grid-template-columns: 1fr;\r\n          }\r\n      }\r\n  <\/style>\r\n  <body data-aos-easing=\"ease-in-out\" data-aos-duration=\"800\" data-aos-delay=\"0\" data-new-gr-c-s-check-loaded=\"14.1249.0\" data-gr-ext-installed=\"\" data-new-gr-c-s-loaded=\"14.1223.0\" class=\"\" style=\"\">\r\n      <nav class=\"navigation-1 clearfix\" data-v-save-global=\"blank.html,.navigation-1\">\r\n          \r\n        <\/nav>\r\n      <!-- Hero tools -->\r\n      <section class=\"rduv-hero-tools-section\">\r\n          <div class=\"container\">\r\n              <div class=\"custom-rduv-container\">\r\n                  <div class=\"header\">\r\n                      <div class=\"logo\">\r\n                          <div class=\"logo-icon\">\ud83d\ude80<\/div>\r\n          \r\n                          <div><h1 class=\"logo-text\">Reddit Link <span class=\"va-accent\">Viewer<\/span><\/h1><\/div>\r\n                      <\/div>\r\n                      <div class=\"subtitle\">Open Reddit posts and threads in a clean viewer\u2014no sign-in, built for quick, private reading.<\/div>\r\n                      <div class=\"features-grid\">\r\n                          <div class=\"feature-card\">\r\n                              <div class=\"feature-icon\">\ud83c\udfa8<\/div>\r\n                              <div class=\"feature-title\">Premium Design<\/div>\r\n                          <\/div>\r\n                          <div class=\"feature-card\">\r\n                              <div class=\"feature-icon\">\ud83d\udd0a<\/div>\r\n                              <div class=\"feature-title\">Audio Support<\/div>\r\n                          <\/div>\r\n                          <div class=\"feature-card\">\r\n                              <div class=\"feature-icon\">\ud83d\udce5<\/div>\r\n                              <div class=\"feature-title\">Smart Downloads<\/div>\r\n                          <\/div>\r\n                          <div class=\"feature-card\">\r\n                              <div class=\"feature-icon\">\ud83d\udcca<\/div>\r\n                              <div class=\"feature-title\">Rich Analytics<\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n          \r\n                  <div class=\"search-container\">\r\n                      <form class=\"search-form\" id=\"searchForm\">\r\n                          <input type=\"text\" class=\"search-input\" id=\"usernameInput\" placeholder=\"Enter Reddit username (e.g., kn0thing, spez, gallowboob)\" required=\"\">\r\n                          <button type=\"submit\" class=\"search-btn\" id=\"searchBtn\">\r\n                              <span id=\"searchText\">\ud83d\udd0d Explore User<\/span>\r\n                              <div class=\"spinner\" id=\"searchSpinner\" style=\"display: none; width: 20px; height: 20px; margin: 0;\"><\/div>\r\n                          <\/button>\r\n                          <button type=\"button\" class=\"search-btn new-search-btn\" id=\"newSearchBtn\" onclick=\"redditExplorer.newSearch()\">\r\n                              \ud83d\udd04 New Search\r\n                          <\/button>\r\n                      <\/form>\r\n          \r\n                      <div class=\"loading\" id=\"loading\">\r\n                          <div class=\"spinner\"><\/div>\r\n                          <p>Analyzing user data and posts...<\/p>\r\n                      <\/div>\r\n          \r\n                      <div class=\"error-message\" id=\"errorMessage\"><\/div>\r\n                  <\/div>\r\n          \r\n                  <div class=\"user-info\" id=\"userInfo\">\r\n                      <div class=\"user-header\">\r\n                          <div class=\"user-avatar\" id=\"userAvatar\">U<\/div>\r\n                          <div class=\"user-details\">\r\n                              <h2 id=\"userName\">Username<\/h2>\r\n                              <p class=\"user-description\" id=\"userDescription\">Reddit User Profile<\/p>\r\n                          <\/div>\r\n                      <\/div>\r\n                      <div class=\"user-stats\" id=\"userStats\">\r\n                          <!-- Stats will be populated dynamically -->\r\n                      <\/div>\r\n                  <\/div>\r\n          \r\n                  <div class=\"posts-section\" id=\"postsSection\">\r\n                      <h2 class=\"section-title\" id=\"sectionTitle\">Recent Posts & Activity<\/h2>\r\n                      <div id=\"postsContainer\" class=\"posts-grid\"><\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          \r\n              <!-- Modal for image preview -->\r\n              <div id=\"imageModal\" class=\"modal\">\r\n                  <span class=\"close\">\u00d7<\/span>\r\n                  <div class=\"modal-content\">\r\n                      <img decoding=\"async\" id=\"modalImage\" src=\"\/placeholder.svg\" alt=\"Full size image\">\r\n                  <\/div>\r\n              <\/div>\r\n          \r\n              <!-- Download Progress -->\r\n              <div class=\"download-progress\" id=\"downloadProgress\">\r\n                  <div class=\"progress-header\">\r\n                      <span class=\"progress-text\" id=\"progressText\">Downloading...<\/span>\r\n                      <button class=\"cancel-btn\" onclick=\"cancelDownload()\">Cancel<\/button>\r\n                  <\/div>\r\n                  <div class=\"progress-bar-container\">\r\n                      <div class=\"progress-bar-fill\" id=\"progressBarFill\"><\/div>\r\n                  <\/div>\r\n                  <div class=\"progress-details\">\r\n                      <span id=\"progressPercent\">0%<\/span>\r\n                      <span id=\"progressSize\">0 MB \/ 0 MB<\/span>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n          <\/div>\r\n      <\/section>\r\n  \r\n  <!-- Work Process Section -->\r\n  <section class=\"rduv-work-process-section\" id=\"how-it-works\">\r\n      <div class=\"container rduv-work-process-content\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"rduv-section-title rduv-light-title\">How it works<\/h2>\r\n              <p class=\"rduv-section-subtitle rduv-light-subtitle\">Paste a public Reddit URL below. We load the thread in your browser so you can read without logging into Reddit.<\/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=\"rduv-process-step\">\r\n                      <div class=\"rduv-step-number\">1<\/div>\r\n                      <h4 class=\"text-white\">Paste the link<\/h4>\r\n                      <p class=\"rduv-light-subtitle\">Copy a post, comment, or profile URL from Reddit and drop it into the field.<\/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=\"rduv-process-step\">\r\n                      <div class=\"rduv-step-number\">2<\/div>\r\n                      <h4 class=\"text-white\">Fetch content<\/h4>\r\n                      <p class=\"rduv-light-subtitle\">We request publicly available data for that URL and prepare it for viewing here.<\/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=\"rduv-process-step\">\r\n                      <div class=\"rduv-step-number\">3<\/div>\r\n                      <h4 class=\"text-white\">Browse privately<\/h4>\r\n                      <p class=\"rduv-light-subtitle\">Read posts, media, and context in one place\u2014no Reddit account required.<\/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=\"rduv-features-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"rduv-section-title\">What you get<\/h2>\r\n              <p class=\"rduv-section-subtitle\">Everything is built around simple, low-friction reading\u2014fewer tabs, less tracking noise, and a layout that stays out of your way.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-link\"><\/i>\r\n                      <\/div>\r\n                      <h4>Stay off the radar<\/h4>\r\n                      <p>Use the viewer without signing into Reddit or tying views to your profile.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-shield\"><\/i>\r\n                      <\/div>\r\n                      <h4>Less surface for tracking<\/h4>\r\n                      <p>Skip the full Reddit app experience when you only need to read a single thread.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-detail\"><\/i>\r\n                      <\/div>\r\n                      <h4>Thread in one view<\/h4>\r\n                      <p>See the post body, media, and discussion together when the content is public.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-search-alt\"><\/i>\r\n                      <\/div>\r\n                      <h4>Quick lookup<\/h4>\r\n                      <p>Jump to a user or post from the search box without hunting through the main site.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-time\"><\/i>\r\n                      <\/div>\r\n                      <h4>Browser-first<\/h4>\r\n                      <p>Runs entirely in your browser session\u2014nothing to install, nothing to configure.<\/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=\"rduv-feature-card\">\r\n                      <div class=\"rduv-feature-icon\">\r\n                          <i class=\"bx bx-devices\"><\/i>\r\n                      <\/div>\r\n                      <h4>Any screen<\/h4>\r\n                      <p>Responsive layout that works on desktop, tablet, and phone browsers.<\/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=\"rduv-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=\"rduv-why-choose-image rduv-floating-element\">\r\n                      <img decoding=\"async\" src=\"https:\/\/viewanonymous.com\/wp-content\/uploads\/2026\/03\/Reddit_Link_Viewer.webp\" alt=\"Reddit 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=\"rduv-section-title mb-4\">Why use this viewer?<\/h2>\r\n                  <p class=\"mb-4 rduv-lead\">When you only need to read a thread, opening the full Reddit experience can be overkill. This viewer keeps the focus on the content\u2014public posts and comments\u2014while you stay logged out of Reddit in this tab.<\/p>\r\n                  \r\n                  <div class=\"rduv-benefit-item\">\r\n                      <div class=\"rduv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">No Reddit login<\/h5>\r\n                          <p class=\"mb-0\">Paste a URL or search a username\u2014no password or signup on our side.<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"rduv-benefit-item\">\r\n                      <div class=\"rduv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Cleaner layout<\/h5>\r\n                          <p class=\"mb-0\">Fewer distractions than the default feed and promo surfaces.<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"rduv-benefit-item\">\r\n                      <div class=\"rduv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Fast to load<\/h5>\r\n                          <p class=\"mb-0\">Results are tuned for reading, not endless scrolling.<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"rduv-benefit-item\">\r\n                      <div class=\"rduv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Privacy-minded<\/h5>\r\n                          <p class=\"mb-0\">We don\u2019t ask for your Reddit credentials; use a private window for extra peace of mind.<\/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=\"rduv-faq-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"rduv-section-title\">FAQ<\/h2>\r\n              <p class=\"rduv-section-subtitle\">Straight answers about what this viewer can and can\u2019t do.<\/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=\"rduv-faqAccordion\">\r\n                      <div class=\"rduv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                          <h3 class=\"accordion-header\" id=\"rduv-heading1\">\r\n                              <button class=\"rduv-accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#rduv-collapse1\" aria-expanded=\"true\" aria-controls=\"rduv-collapse1\">\r\n                                  Is using this viewer allowed?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"rduv-collapse1\" class=\"accordion-collapse collapse show\" aria-labelledby=\"rduv-heading1\" data-bs-parent=\"#rduv-faqAccordion\">\r\n                              <div class=\"rduv-accordion-body\">\r\n                                  Yes. The viewer is meant for the same public pages you could open in a normal browser. It does not break passwords, paywalls, or Reddit\u2019s private areas\u2014and you should always respect copyright and site terms when sharing or saving content.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"rduv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                          <h3 class=\"accordion-header\" id=\"rduv-heading2\">\r\n                              <button class=\"rduv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#rduv-collapse2\" aria-expanded=\"false\" aria-controls=\"rduv-collapse2\">\r\n                                  Can I open private or deleted posts?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"rduv-collapse2\" class=\"accordion-collapse collapse\" aria-labelledby=\"rduv-heading2\" data-bs-parent=\"#rduv-faqAccordion\">\r\n                              <div class=\"rduv-accordion-body\">\r\n                                  No. If a subreddit, post, or profile is private, removed, or deleted, Reddit\u2019s API and our viewer can only show what is still publicly reachable\u2014often nothing at all for deleted threads.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"rduv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                          <h3 class=\"accordion-header\" id=\"rduv-heading3\">\r\n                              <button class=\"rduv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#rduv-collapse3\" aria-expanded=\"false\" aria-controls=\"rduv-collapse3\">\r\n                                  Does Reddit see that I used this site?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"rduv-collapse3\" class=\"accordion-collapse collapse\" aria-labelledby=\"rduv-heading3\" data-bs-parent=\"#rduv-faqAccordion\">\r\n                              <div class=\"rduv-accordion-body\">\r\n                                  Our servers may request public data on your behalf, so Reddit could log those requests like any other traffic. You are not logged in as your Reddit account here, but \u201ccompletely invisible\u201d browsing on the modern web is not something we guarantee\u2014use a VPN or private window if you need stronger separation.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"rduv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                          <h3 class=\"accordion-header\" id=\"rduv-heading4\">\r\n                              <button class=\"rduv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#rduv-collapse4\" aria-expanded=\"false\" aria-controls=\"rduv-collapse4\">\r\n                                  Do I need an app or extension?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"rduv-collapse4\" class=\"accordion-collapse collapse\" aria-labelledby=\"rduv-heading4\" data-bs-parent=\"#rduv-faqAccordion\">\r\n                              <div class=\"rduv-accordion-body\">\r\n                                  No. Everything runs in the browser: open the page, paste a Reddit URL or username, and go. There\u2019s nothing to install on your phone or desktop for basic viewing.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"rduv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                          <h3 class=\"accordion-header\" id=\"rduv-heading5\">\r\n                              <button class=\"rduv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#rduv-collapse5\" aria-expanded=\"false\" aria-controls=\"rduv-collapse5\">\r\n                                  What about removed or moderator-deleted comments?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"rduv-collapse5\" class=\"accordion-collapse collapse\" aria-labelledby=\"rduv-heading5\" data-bs-parent=\"#rduv-faqAccordion\">\r\n                              <div class=\"rduv-accordion-body\">\r\n                                  If Reddit no longer serves that text, we can\u2019t magically restore it. For historical snapshots you would need a third-party archive, and availability varies by post age and moderation.\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    <!-- Footer -->\r\n    \r\n  \r\n  <!-- Copyright Section -->\r\n  \r\n  \r\n  \r\n  \r\n   <!-- Reddit User 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      class RedditUserExplorerPro {\r\n          constructor() {\r\n              this.currentUser = null;\r\n              this.posts = [];\r\n              this.downloadController = null;\r\n              this.apiEndpoint = 'https:\/\/tools.xrespond.com\/api\/reddit\/users';\r\n              this.init();\r\n          }\r\n  \r\n          init() {\r\n              this.bindEvents();\r\n              this.setupModal();\r\n          }\r\n  \r\n          bindEvents() {\r\n              const searchForm = document.getElementById('searchForm');\r\n              const usernameInput = document.getElementById('usernameInput');\r\n  \r\n              searchForm.addEventListener('submit', (e) => {\r\n                  e.preventDefault();\r\n                  const username = usernameInput.value.trim();\r\n                  if (username) {\r\n                      this.searchUser(username);\r\n                  }\r\n              });\r\n  \r\n              usernameInput.addEventListener('keypress', (e) => {\r\n                  if (e.key === 'Enter') {\r\n                      e.preventDefault();\r\n                      searchForm.dispatchEvent(new Event('submit'));\r\n                  }\r\n              });\r\n          }\r\n  \r\n          async searchUser(username) {\r\n              this.showLoading(true);\r\n              this.clearError();\r\n  \r\n              try {\r\n                  console.log(`\ud83d\udd0d Searching for user: ${username}`);\r\n                  const userData = await this.fetchUserData(username);\r\n  \r\n                  if (userData && userData.data && userData.data.body && userData.data.body.length > 0) {\r\n                      this.currentUser = username;\r\n                      this.posts = userData.data.body;\r\n                      this.displayUserInfo(username, userData.data);\r\n                      this.displayPosts(userData.data.body);\r\n                      this.showPostsSection(true);\r\n                      console.log(`\u2705 Success! Found ${userData.data.body.length} posts for ${username}`);\r\n                  } else {\r\n                      this.showError(`No posts found for user \"${username}\". The user might not exist, have no posts, or their profile might be private.`);\r\n                      this.showPostsSection(false);\r\n                  }\r\n              } catch (error) {\r\n                  console.error('\u274c Error details:', error);\r\n                  this.showError(`Failed to fetch posts for \"${username}\". Error: ${error.message}`);\r\n                  this.showPostsSection(false);\r\n              } finally {\r\n                  this.showLoading(false);\r\n              }\r\n          }\r\n  \r\n          async fetchUserData(username) {\r\n              try {\r\n                  const response = await fetch(this.apiEndpoint, {\r\n                      method: 'POST',\r\n                      headers: {\r\n                          'Content-Type': 'application\/x-www-form-urlencoded',\r\n                      },\r\n                      body: `username=${encodeURIComponent(username)}`\r\n                  });\r\n  \r\n                  if (!response.ok) {\r\n                      throw new Error(`API request failed: ${response.status} ${response.statusText}`);\r\n                  }\r\n  \r\n                  const data = await response.json();\r\n  \r\n                  if (data.status !== 'success') {\r\n                      throw new Error('API returned unsuccessful status');\r\n                  }\r\n  \r\n                  return data;\r\n              } catch (error) {\r\n                  console.error('API Error:', error);\r\n                  throw error;\r\n              }\r\n          }\r\n  \r\n          displayUserInfo(username, userData) {\r\n              const userInfo = document.getElementById('userInfo');\r\n              const userAvatar = document.getElementById('userAvatar');\r\n              const userName = document.getElementById('userName');\r\n              const userDescription = document.getElementById('userDescription');\r\n              const userStats = document.getElementById('userStats');\r\n  \r\n              userAvatar.textContent = username.charAt(0).toUpperCase();\r\n              userName.textContent = `u\/${username}`;\r\n              userDescription.textContent = `Reddit User \u2022 ${userData.body.length} posts analyzed`;\r\n  \r\n              \/\/ Calculate comprehensive stats from the posts\r\n              const posts = userData.body.filter(item => item.title); \/\/ Filter actual posts\r\n              const comments = userData.body.filter(item => item.body && !item.title); \/\/ Filter comments\r\n  \r\n              const totalUpvotes = userData.body.reduce((sum, item) => sum + (item.ups || 0), 0);\r\n              const totalComments = posts.reduce((sum, post) => sum + (post.num_comments || 0), 0);\r\n              const totalAwards = userData.body.reduce((sum, item) => sum + (item.total_awards_received || 0), 0);\r\n              const avgUpvoteRatio = posts.length > 0 ?\r\n                  posts.reduce((sum, post) => sum + (post.upvote_ratio || 0), 0) \/ posts.length : 0;\r\n  \r\n              userStats.innerHTML = `\r\n                  <div class=\"stat-card\">\r\n                      <div class=\"stat-number\">${this.formatNumber(totalUpvotes)}<\/div>\r\n                      <div class=\"stat-label\">Total Upvotes<\/div>\r\n                  <\/div>\r\n                  <div class=\"stat-card\">\r\n                      <div class=\"stat-number\">${posts.length}<\/div>\r\n                      <div class=\"stat-label\">Posts Created<\/div>\r\n                  <\/div>\r\n                  <div class=\"stat-card\">\r\n                      <div class=\"stat-number\">${comments.length}<\/div>\r\n                      <div class=\"stat-label\">Comments Made<\/div>\r\n                  <\/div>\r\n                  <div class=\"stat-card\">\r\n                      <div class=\"stat-number\">${totalAwards}<\/div>\r\n                      <div class=\"stat-label\">Awards Received<\/div>\r\n                  <\/div>\r\n                  <div class=\"stat-card\">\r\n                      <div class=\"stat-number\">${Math.round(avgUpvoteRatio * 100)}%<\/div>\r\n                      <div class=\"stat-label\">Avg. Upvote Ratio<\/div>\r\n                  <\/div>\r\n              `;\r\n  \r\n              userInfo.style.display = 'block';\r\n          }\r\n  \r\n          displayPosts(posts) {\r\n              const container = document.getElementById('postsContainer');\r\n              const sectionTitle = document.getElementById('sectionTitle');\r\n  \r\n              sectionTitle.textContent = `${posts.length} Posts & Comments from u\/${this.currentUser}`;\r\n              container.innerHTML = '';\r\n  \r\n              posts.forEach((post, index) => {\r\n                  const postCard = this.createPostCard(post);\r\n                  postCard.style.animationDelay = `${index * 0.1}s`;\r\n                  container.appendChild(postCard);\r\n              });\r\n          }\r\n  \r\n          createPostCard(post) {\r\n              const card = document.createElement('div');\r\n              card.className = 'post-card';\r\n  \r\n              \/\/ Determine if this is a post or comment\r\n              const isPost = !!post.title;\r\n              const isComment = !!post.body && !post.title;\r\n              const isVideo = post.is_video || (post.secure_media && post.secure_media.reddit_video);\r\n              const hasImage = post.preview && post.preview.images && post.preview.images.length > 0;\r\n              const isExternalLink = isPost && post.url && !post.url.includes('reddit.com') && !isVideo && !hasImage;\r\n  \r\n              let mediaContent = '';\r\n              let postType = isComment ? 'Comment' : isPost ? 'Post' : 'Activity';\r\n  \r\n              if (isVideo && post.secure_media && post.secure_media.reddit_video) {\r\n                  postType = 'Video';\r\n                  const video = post.secure_media.reddit_video;\r\n                  const videoUrl = video.fallback_url;\r\n                  const redditPostUrl = `https:\/\/www.reddit.com${post.permalink}`;\r\n  \r\n                  mediaContent = `\r\n                      <div class=\"media-container\">\r\n                          <div class=\"video-container\">\r\n                              <video class=\"video-player\" controls preload=\"metadata\" id=\"video-${post.id}\" onclick=\"redditExplorer.toggleVideoPlayPause('${post.id}')\">\r\n                                  <source src=\"${videoUrl}\" type=\"video\/mp4\">\r\n                                  Your browser does not support the video tag.\r\n                              <\/video>\r\n                              <button class=\"video-play-overlay\" id=\"play-overlay-${post.id}\" onclick=\"redditExplorer.toggleVideoPlayPause('${post.id}')\">\u25b6<\/button>\r\n                          <\/div>\r\n                          <div class=\"media-controls\">\r\n                              ${video.has_audio ? `\r\n                                  <button class=\"control-btn stream-audio-btn\" onclick=\"redditExplorer.streamWithAudio(event, '${redditPostUrl}', '${post.id}')\">\r\n                                      \ud83d\udd0a Stream with Audio\r\n                                  <\/button>\r\n                              ` : ''}\r\n                              <button class=\"control-btn download-btn\" onclick=\"redditExplorer.downloadVideoWithAudio(event, '${redditPostUrl}', '${this.sanitizeFilename(post.title || 'video')}.mp4', '${post.id}')\">\r\n                                  \ud83d\udce5 Download Video\r\n                              <\/button>\r\n                          <\/div>\r\n                      <\/div>\r\n                  `;\r\n              } else if (hasImage) {\r\n                  postType = 'Image';\r\n                  const image = post.preview.images[0];\r\n                  const imageUrl = image.source.url.replace(\/&\/g, '&');\r\n                  mediaContent = `\r\n                      <div class=\"media-container\">\r\n                          <img decoding=\"async\" src=\"${imageUrl}\" alt=\"${post.title || 'Image'}\" class=\"image-preview\" onclick=\"redditExplorer.openImageModal('${imageUrl}')\">\r\n                          <div class=\"media-controls\">\r\n                              <button class=\"control-btn download-btn\" onclick=\"redditExplorer.downloadImageBase64WithButtonSpinner(event, this, '${imageUrl}', '${this.sanitizeFilename(post.title || 'image')}.jpg')\">\r\n                                  <span class=\"btn-text\">\ud83d\udce5 Download Image<\/span>\r\n                                  <span class=\"btn-spinner\" style=\"display:none; margin-left:8px;\">\r\n                                      <span class=\"spinner\" style=\"width:18px;height:18px;border:3px solid #eee;border-top:3px solid #8A66FF;border-radius:50%;display:inline-block;vertical-align:middle;animation:spin 1s linear infinite;\"><\/span>\r\n                                  <\/span>\r\n                              <\/button>\r\n                          <\/div>\r\n                      <\/div>\r\n                  `;\r\n              } else if (isExternalLink) {\r\n                  postType = 'Link';\r\n              }\r\n  \r\n              let externalLinkContent = '';\r\n              if (isExternalLink && post.url) {\r\n                  externalLinkContent = `\r\n                      <a href=\"${post.url}\" target=\"_blank\" class=\"external-link\">\r\n                          \ud83d\udd17 Visit ${post.domain || 'External Link'}\r\n                      <\/a>\r\n                  `;\r\n              }\r\n  \r\n              \/\/ Enhanced post badges\r\n              let badges = '';\r\n              if (post.distinguished === 'admin') badges += '<span class=\"badge admin\">\ud83d\udc51 Admin<\/span>';\r\n              if (post.distinguished === 'moderator') badges += '<span class=\"badge admin\">\ud83d\udee1\ufe0f Mod<\/span>';\r\n              if (post.stickied) badges += '<span class=\"badge stickied\">\ud83d\udccc Stickied<\/span>';\r\n              if (post.archived) badges += '<span class=\"badge archived\">\ud83d\uddc3\ufe0f Archived<\/span>';\r\n              if (post.locked) badges += '<span class=\"badge locked\">\ud83d\udd12 Locked<\/span>';\r\n              if (post.over_18) badges += '<span class=\"badge nsfw\">\ud83d\udd1e NSFW<\/span>';\r\n  \r\n              \/\/ Content handling for both posts and comments - FIXED VERSION\r\n              let contentText = '';\r\n              if (isComment && post.body) {\r\n                  const isLongText = post.body.length > 300;\r\n                  const truncatedText = isLongText ? this.truncateText(post.body, 300) : post.body;\r\n                  contentText = `\r\n                      <div class=\"post-text\" id=\"text-${post.id}\">${truncatedText}<\/div>\r\n                      ${isLongText ? `\r\n                          <button class=\"expand-btn\" data-post-id=\"${post.id}\" data-full-text=\"${this.escapeHtml(post.body)}\" onclick=\"redditExplorer.toggleText(this)\">\r\n                              Show More\r\n                          <\/button>\r\n                      ` : ''}\r\n                  `;\r\n              } else if (isPost && post.selftext) {\r\n                  const isLongText = post.selftext.length > 300;\r\n                  const truncatedText = isLongText ? this.truncateText(post.selftext, 300) : post.selftext;\r\n                  contentText = `\r\n                      <div class=\"post-text\" id=\"text-${post.id}\">${truncatedText}<\/div>\r\n                      ${isLongText ? `\r\n                          <button class=\"expand-btn\" data-post-id=\"${post.id}\" data-full-text=\"${this.escapeHtml(post.selftext)}\" onclick=\"redditExplorer.toggleText(this)\">\r\n                              Show More\r\n                          <\/button>\r\n                      ` : ''}\r\n                  `;\r\n              }\r\n  \r\n              \/\/ Title handling\r\n              const title = post.title || (isComment ? `Comment in: ${post.link_title || 'Discussion'}` : 'Reddit Activity');\r\n  \r\n              card.innerHTML = `\r\n                  <div class=\"post-header\">\r\n                      <div class=\"subreddit-info\">\r\n                          <div class=\"subreddit-badge\">${post.subreddit_name_prefixed || 'r\/unknown'}<\/div>\r\n                          <div class=\"post-type\">${postType}<\/div>\r\n                      <\/div>\r\n                      <div class=\"post-meta\">\r\n                          ${this.formatDate(post.created_utc)}\r\n                          ${post.edited ? ` \u2022 Edited` : ''}\r\n                      <\/div>\r\n                  <\/div>\r\n  \r\n                  ${badges ? `<div class=\"post-badges\">${badges}<\/div>` : ''}\r\n  \r\n                  <h2 class=\"post-title\">${title}<\/h2>\r\n  \r\n                  <div class=\"post-content\">\r\n                      ${contentText}\r\n                      ${mediaContent}\r\n                      ${externalLinkContent}\r\n                  <\/div>\r\n  \r\n                  <div class=\"post-stats\">\r\n                      <div class=\"stat-item upvotes\">\r\n                          <div class=\"stat-value\">${this.formatNumber(post.ups || 0)}<\/div>\r\n                          <div class=\"stat-label\">Upvotes<\/div>\r\n                      <\/div>\r\n                      <div class=\"stat-item comments\">\r\n                          <div class=\"stat-value\">${this.formatNumber(post.num_comments || 0)}<\/div>\r\n                          <div class=\"stat-label\">Comments<\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              `;\r\n  \r\n              return card;\r\n          }\r\n  \r\n          \/\/ FIXED toggleText function\r\n          toggleText(button) {\r\n              const postId = button.getAttribute('data-post-id');\r\n              const fullText = button.getAttribute('data-full-text');\r\n              const textElement = document.getElementById(`text-${postId}`);\r\n  \r\n              if (button.textContent.trim() === 'Show More') {\r\n                  textElement.innerHTML = fullText;\r\n                  button.textContent = 'Show Less';\r\n              } else {\r\n                  textElement.innerHTML = this.truncateText(fullText, 300);\r\n                  button.textContent = 'Show More';\r\n              }\r\n          }\r\n  \r\n          \/\/ Helper function to escape HTML\r\n          escapeHtml(text) {\r\n              const div = document.createElement('div');\r\n              div.textContent = text;\r\n              return div.innerHTML;\r\n          }\r\n  \r\n          \/\/ Video control functions\r\n          playVideo(postId) {\r\n              const video = document.getElementById(`video-${postId}`);\r\n              const overlay = document.getElementById(`play-overlay-${postId}`);\r\n  \r\n              if (video.paused) {\r\n                  video.play();\r\n                  overlay.innerHTML = '\u23f8\ufe0f';\r\n                  overlay.style.display = 'flex';\r\n              } else {\r\n                  video.pause();\r\n                  overlay.innerHTML = '\u25b6';\r\n                  overlay.style.display = 'flex';\r\n              }\r\n  \r\n              \/\/ Update overlay when video ends\r\n              video.addEventListener('ended', () => {\r\n                  overlay.innerHTML = '\u25b6';\r\n                  overlay.style.display = 'flex';\r\n              });\r\n          }\r\n  \r\n          toggleVideoPlayPause(postId) {\r\n              const video = document.getElementById(`video-${postId}`);\r\n              const overlay = document.getElementById(`play-overlay-${postId}`);\r\n  \r\n              if (video.paused) {\r\n                  video.play();\r\n                  overlay.innerHTML = '\u23f8\ufe0f';\r\n                  overlay.style.display = 'flex';\r\n              } else {\r\n                  video.pause();\r\n                  overlay.innerHTML = '\u25b6';\r\n                  overlay.style.display = 'flex';\r\n              }\r\n          }\r\n  \r\n          async streamWithAudio(event, redditUrl, postId) {\r\n              const button = event.target;\r\n              const originalText = button.innerHTML;\r\n              const videoContainer = document.querySelector(`#video-${postId}`).parentElement;\r\n  \r\n              \/\/ Show loading overlay\r\n              const loadingOverlay = document.createElement('div');\r\n              loadingOverlay.className = 'video-loading-overlay';\r\n              loadingOverlay.innerHTML = `\r\n                  <div class=\"video-loading-spinner\"><\/div>\r\n                  <div>Loading audio-enabled video...<\/div>\r\n              `;\r\n              videoContainer.appendChild(loadingOverlay);\r\n  \r\n              button.disabled = true;\r\n              button.classList.add('loading');\r\n              button.innerHTML = '\u23f3 Loading Audio...';\r\n  \r\n              try {\r\n                  console.log('Fetching audio-enabled video for:', redditUrl);\r\n  \r\n                  const response = await fetch('https:\/\/tools.xrespond.com\/api\/reddit\/video\/downloader', {\r\n                      method: 'POST',\r\n                      headers: {\r\n                          'Content-Type': 'application\/x-www-form-urlencoded',\r\n                      },\r\n                      body: `url=${encodeURIComponent(redditUrl)}`\r\n                  });\r\n  \r\n                  if (!response.ok) {\r\n                      throw new Error(`API request failed: ${response.status}`);\r\n                  }\r\n  \r\n                  const data = await response.json();\r\n  \r\n                  if (data.success && data.data && data.data.data && data.data.data.links && data.data.data.links.length > 0) {\r\n                      const downloadUrl = data.data.data.links[0].download_url;\r\n  \r\n                      const videoElement = document.getElementById(`video-${postId}`);\r\n                      if (videoElement) {\r\n                          videoElement.src = downloadUrl;\r\n                          videoElement.load();\r\n  \r\n                          button.innerHTML = '\ud83d\udd0a Audio Loaded!';\r\n                          button.style.background = 'var(--gradient-accent)';\r\n  \r\n                          setTimeout(() => {\r\n                              button.innerHTML = '\ud83d\udd0a Stream with Audio';\r\n                              button.style.background = '';\r\n                              button.disabled = false;\r\n                              button.classList.remove('loading');\r\n                          }, 2000);\r\n                      }\r\n                  } else {\r\n                      throw new Error('Invalid API response format');\r\n                  }\r\n              } catch (error) {\r\n                  console.error('Error fetching audio video:', error);\r\n                  button.innerHTML = '\u274c Audio Failed';\r\n                  button.style.background = 'var(--gradient-accent)';\r\n  \r\n                  setTimeout(() => {\r\n                      button.innerHTML = originalText;\r\n                      button.style.background = '';\r\n                      button.disabled = false;\r\n                      button.classList.remove('loading');\r\n                  }, 3000);\r\n              } finally {\r\n                  \/\/ Remove loading overlay\r\n                  if (loadingOverlay && loadingOverlay.parentElement) {\r\n                      loadingOverlay.parentElement.removeChild(loadingOverlay);\r\n                  }\r\n              }\r\n          }\r\n  \r\n          async downloadVideoWithAudio(event, redditUrl, filename, postId) {\r\n              const button = event.target;\r\n              const originalText = button.innerHTML;\r\n              button.disabled = true;\r\n              button.classList.add('downloading');\r\n              button.innerHTML = '\u23f3 Preparing...';\r\n  \r\n              this.downloadController = new AbortController();\r\n  \r\n              try {\r\n                  this.showDownloadProgress('Fetching audio-enabled video...', 0);\r\n  \r\n                  const response = await fetch('https:\/\/tools.xrespond.com\/api\/reddit\/video\/downloader', {\r\n                      method: 'POST',\r\n                      headers: {\r\n                          'Content-Type': 'application\/x-www-form-urlencoded',\r\n                      },\r\n                      body: `url=${encodeURIComponent(redditUrl)}`,\r\n                      signal: this.downloadController.signal\r\n                  });\r\n  \r\n                  if (!response.ok) {\r\n                      throw new Error(`API request failed: ${response.status}`);\r\n                  }\r\n  \r\n                  const data = await response.json();\r\n  \r\n                  if (data.success && data.data && data.data.data && data.data.data.links && data.data.data.links.length > 0) {\r\n                      const downloadUrl = data.data.data.links[0].download_url;\r\n  \r\n                      this.showDownloadProgress('Starting video download...', 10);\r\n  \r\n                      const videoResponse = await fetch(downloadUrl, {\r\n                          signal: this.downloadController.signal\r\n                      });\r\n  \r\n                      if (!videoResponse.ok) {\r\n                          throw new Error(`Download failed: ${videoResponse.status}`);\r\n                      }\r\n  \r\n                      const totalSize = parseInt(videoResponse.headers.get('content-length') || '0');\r\n                      const reader = videoResponse.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                          if (done) break;\r\n  \r\n                          chunks.push(value);\r\n                          receivedSize += value.length;\r\n  \r\n                          const progress = totalSize ? 10 + (receivedSize \/ totalSize) * 80 : 50;\r\n                          this.showDownloadProgress('Downloading video with audio...', progress, receivedSize, totalSize);\r\n                      }\r\n  \r\n                      this.showDownloadProgress('Processing download...', 95, receivedSize, totalSize);\r\n  \r\n                      const blob = new Blob(chunks, { type: 'video\/mp4' });\r\n                      const downloadBlobUrl = URL.createObjectURL(blob);\r\n  \r\n                      const a = document.createElement('a');\r\n                      a.href = downloadBlobUrl;\r\n                      a.download = filename;\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                      setTimeout(() => URL.revokeObjectURL(downloadBlobUrl), 1000);\r\n  \r\n                      this.showDownloadProgress('Download completed!', 100, receivedSize, totalSize);\r\n                      setTimeout(() => this.hideDownloadProgress(), 3000);\r\n                  } else {\r\n                      throw new Error('Invalid API response format');\r\n                  }\r\n              } catch (error) {\r\n                  if (error.name === 'AbortError') {\r\n                      this.showDownloadProgress('Download cancelled', 0);\r\n                      setTimeout(() => this.hideDownloadProgress(), 2000);\r\n                  } else {\r\n                      console.error('Download error:', error);\r\n                      this.showError(`Download failed: ${error.message}`);\r\n                      this.hideDownloadProgress();\r\n                  }\r\n              } finally {\r\n                  button.disabled = false;\r\n                  button.classList.remove('downloading');\r\n                  button.innerHTML = originalText;\r\n                  this.downloadController = null;\r\n              }\r\n          }\r\n  \r\n          async downloadImageBase64WithButtonSpinner(event, btn, imageUrl, filename) {\r\n              event.preventDefault();\r\n              const textSpan = btn.querySelector('.btn-text');\r\n              const spinnerSpan = btn.querySelector('.btn-spinner');\r\n              btn.disabled = true;\r\n              textSpan.style.display = 'none';\r\n              spinnerSpan.style.display = 'inline-block';\r\n              try {\r\n                  const proxyUrl = `https:\/\/tools.xrespond.com\/api\/reddit\/proxy-media-base64?url=${encodeURIComponent(imageUrl)}`;\r\n                  const response = await fetch(proxyUrl);\r\n                  if (!response.ok) throw new Error('Failed to fetch image');\r\n                  const data = await response.json();\r\n                  const base64data = `data:${data.contentType};base64,${data.base64}`;\r\n                  const a = document.createElement('a');\r\n                  a.href = base64data;\r\n                  a.download = filename;\r\n                  document.body.appendChild(a);\r\n                  a.click();\r\n                  document.body.removeChild(a);\r\n                  await new Promise(res => setTimeout(res, 1200)); \/\/ Show spinner briefly\r\n              } catch (error) {\r\n                  this.showError('Could not download image. Please try again later.');\r\n              } finally {\r\n                  btn.disabled = false;\r\n                  textSpan.style.display = '';\r\n                  spinnerSpan.style.display = 'none';\r\n              }\r\n          }\r\n  \r\n          showDownloadProgress(text, progress = 0, downloaded = 0, total = 0) {\r\n              const progressDiv = document.getElementById('downloadProgress');\r\n              const progressText = document.getElementById('progressText');\r\n              const progressFill = document.getElementById('progressBarFill');\r\n              const progressPercent = document.getElementById('progressPercent');\r\n              const progressSize = document.getElementById('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 = `${this.formatFileSize(downloaded)} \/ ${this.formatFileSize(total)}`;\r\n  \r\n              progressDiv.classList.add('show');\r\n          }\r\n  \r\n          hideDownloadProgress() {\r\n              document.getElementById('downloadProgress').classList.remove('show');\r\n          }\r\n  \r\n          cancelDownload() {\r\n              if (this.downloadController) {\r\n                  this.downloadController.abort();\r\n                  this.downloadController = null;\r\n              }\r\n          }\r\n  \r\n          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          newSearch() {\r\n              document.getElementById('usernameInput').value = '';\r\n              document.getElementById('userInfo').style.display = 'none';\r\n              document.getElementById('postsSection').style.display = 'none';\r\n              this.clearError();\r\n              document.getElementById('usernameInput').focus();\r\n          }\r\n  \r\n          setupModal() {\r\n              const modal = document.getElementById('imageModal');\r\n              const closeBtn = document.querySelector('.close');\r\n  \r\n              closeBtn.onclick = () => {\r\n                  modal.style.display = 'none';\r\n              }\r\n  \r\n              window.onclick = (event) => {\r\n                  if (event.target === modal) {\r\n                      modal.style.display = 'none';\r\n                  }\r\n              }\r\n          }\r\n  \r\n          openImageModal(imageUrl) {\r\n              const modal = document.getElementById('imageModal');\r\n              const modalImg = document.getElementById('modalImage');\r\n              modal.style.display = 'block';\r\n              modalImg.src = imageUrl;\r\n          }\r\n  \r\n          showLoading(show) {\r\n              const searchBtn = document.getElementById('searchBtn');\r\n              const searchText = document.getElementById('searchText');\r\n              const searchSpinner = document.getElementById('searchSpinner');\r\n              const loading = document.getElementById('loading');\r\n  \r\n              if (show) {\r\n                  searchBtn.disabled = true;\r\n                  searchText.style.display = 'none';\r\n                  searchSpinner.style.display = 'block';\r\n                  loading.style.display = 'block';\r\n              } else {\r\n                  searchBtn.disabled = false;\r\n                  searchText.style.display = 'block';\r\n                  searchSpinner.style.display = 'none';\r\n                  loading.style.display = 'none';\r\n              }\r\n          }\r\n  \r\n          showPostsSection(show) {\r\n              const postsSection = document.getElementById('postsSection');\r\n              postsSection.style.display = show ? 'block' : 'none';\r\n          }\r\n  \r\n          showError(message) {\r\n              const errorContainer = document.getElementById('errorMessage');\r\n              errorContainer.textContent = message;\r\n              errorContainer.style.display = 'block';\r\n              setTimeout(() => {\r\n                  errorContainer.style.display = 'none';\r\n              }, 8000);\r\n          }\r\n  \r\n          clearError() {\r\n              document.getElementById('errorMessage').style.display = 'none';\r\n          }\r\n  \r\n          formatNumber(num) {\r\n              if (num >= 1000000) {\r\n                  return (num \/ 1000000).toFixed(1) + 'M';\r\n              } else if (num >= 1000) {\r\n                  return (num \/ 1000).toFixed(1) + 'K';\r\n              }\r\n              return num.toString();\r\n          }\r\n  \r\n          formatDate(timestamp) {\r\n              return new Date(timestamp * 1000).toLocaleDateString('en-US', {\r\n                  year: 'numeric',\r\n                  month: 'short',\r\n                  day: 'numeric'\r\n              });\r\n          }\r\n  \r\n          formatDuration(seconds) {\r\n              const mins = Math.floor(seconds \/ 60);\r\n              const secs = seconds % 60;\r\n              return `${mins}:${secs.toString().padStart(2, '0')}`;\r\n          }\r\n  \r\n          truncateText(text, maxLength) {\r\n              if (text.length <= maxLength) return text;\r\n              return text.substring(0, maxLength) + '...';\r\n          }\r\n  \r\n          sanitizeFilename(filename) {\r\n              return filename.replace(\/[^a-z0-9]\/gi, '_').toLowerCase();\r\n          }\r\n      }\r\n  \r\n      \/\/ Global function for cancel download\r\n      function cancelDownload() {\r\n          redditExplorer.cancelDownload();\r\n      }\r\n  \r\n      \/\/ Initialize the app\r\n      const redditExplorer = new RedditUserExplorerPro();\r\n  <\/script>\r\n    <!-- Vvveb Common Js -->\r\n    <script id=\"popper-js\" src=\"..\/js\/popper.min.js\"><\/script>\r\n    <!-- Vvveb Ajax Common Js -->\r\n    <script id=\"app-js\" src=\"..\/js\/app.js\"><\/script>\r\n  \r\n    <!-- Animation -->\r\n  \r\n    <link rel=\"stylesheet\" href=\"..\/js\/aos.css\">\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=\"..\/js\/aos.js\"><\/script>\r\n    <script src=\"..\/js\/theme.js\"><\/script>\r\n    \r\n        <!-- Scripts -->\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  \r\n    <script>\r\n          \/\/ Initialize AOS animation\r\n          AOS.init({\r\n              duration: 800,\r\n              easing: 'ease-in-out',\r\n              once: true\r\n          });\r\n          \r\n          \/\/ Smooth scrolling for anchor links\r\n          document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\r\n              anchor.addEventListener('click', function (e) {\r\n                  e.preventDefault();\r\n                  document.querySelector(this.getAttribute('href')).scrollIntoView({\r\n                      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":264,"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-242","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/242","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=242"}],"version-history":[{"count":5,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/242\/revisions"}],"predecessor-version":[{"id":584,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/242\/revisions\/584"}],"up":[{"embeddable":true,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/264"}],"wp:attachment":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/media?parent=242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}