{"id":5627,"date":"2026-06-02T10:27:34","date_gmt":"2026-06-02T10:27:34","guid":{"rendered":"https:\/\/viiewerr.com\/reddit\/post\/"},"modified":"2026-06-28T04:33:34","modified_gmt":"2026-06-28T04:33:34","slug":"post","status":"publish","type":"page","link":"https:\/\/viiewerr.com\/reddit\/post\/","title":{"rendered":"Reddit Post Viewer: Thread Browser"},"content":{"rendered":"<style type=\"text\/css\">\n.tc-wp-island {<br \/>\n  width: 100%;<br \/>\n  max-width: 100%;<br \/>\n  min-width: 0;<br \/>\n  box-sizing: border-box;<br \/>\n  display: flow-root;<br \/>\n  isolation: isolate;<br \/>\n  position: relative;<br \/>\n}<br \/>\n.tc-wp-island > * {<br \/>\n  min-width: 0;<br \/>\n}<br \/>\n.tc-wp-island *,<br \/>\n.tc-wp-island *::before,<br \/>\n.tc-wp-island *::after {<br \/>\n  box-sizing: border-box;<br \/>\n}<br \/>\n.tc-wp-island img,<br \/>\n.tc-wp-island video,<br \/>\n.tc-wp-island svg,<br \/>\n.tc-wp-island iframe {<br \/>\n  max-width: 100%;<br \/>\n  height: auto;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-tool {<br \/>\n  max-width: 100%;<br \/>\n  min-width: 0;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-tool-html,<br \/>\n.tc-wp-island .tc-wp-tool-content,<br \/>\n.tc-wp-island .tc-wp-other {<br \/>\n  max-width: 100%;<br \/>\n  min-width: 0;<br \/>\n  overflow-wrap: anywhere;<br \/>\n  word-break: break-word;<br \/>\n}<br \/>\n\/* Keep tool in post content flow \u2014 not overlapping theme header \/ hero band *\/<br \/>\n.tc-wp-island {<br \/>\n  clear: both;<br \/>\n  z-index: 1;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-tool {<br \/>\n  position: relative;<br \/>\n  z-index: 0;<br \/>\n  clear: both;<br \/>\n  margin-top: 0;<br \/>\n  margin-bottom: 1.25rem;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-tool-html {<br \/>\n  position: relative;<br \/>\n  z-index: 0;<br \/>\n  clear: both;<br \/>\n  contain: layout;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-tool-html > *:first-child {<br \/>\n  position: relative !important;<br \/>\n  top: auto !important;<br \/>\n  left: auto !important;<br \/>\n  right: auto !important;<br \/>\n  margin-top: 0 !important;<br \/>\n  width: 100%;<br \/>\n  max-width: 100%;<br \/>\n  box-sizing: border-box;<br \/>\n}<br \/>\nbody:has(.tc-wp-island) #main-header,<br \/>\nbody:has(.tc-wp-island) header.site-header,<br \/>\nbody:has(.tc-wp-island) .site-header,<br \/>\nbody:has(.tc-wp-island) #header,<br \/>\nbody:has(.tc-wp-island) .et-fixed-header,<br \/>\nbody:has(.tc-wp-island) .elementor-location-header {<br \/>\n  z-index: 200;<br \/>\n}<br \/>\n\/* Space between WP Coder tool + content shortcodes on publish\/draft pages *\/<br \/>\n.tc-wp-island .tc-wp-tool-html + .tc-wp-tool-content {<br \/>\n  margin-top: 20px;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-bcd-codes {<br \/>\n  display: flex;<br \/>\n  flex-direction: column;<br \/>\n  gap: 20px;<br \/>\n}<br \/>\n\/* Full-width: hide theme sidebar when a ToolsChecker island is present *\/<br \/>\nbody:has(.tc-wp-island) #sidebar,<br \/>\nbody:has(.tc-wp-island) .sidebar,<br \/>\nbody:has(.tc-wp-island) #secondary,<br \/>\nbody:has(.tc-wp-island) .widget-area,<br \/>\nbody:has(.tc-wp-island) aside.sidebar,<br \/>\nbody:has(.tc-wp-island) #right-sidebar,<br \/>\nbody:has(.tc-wp-island) #left-sidebar,<br \/>\nbody:has(.tc-wp-island) .sidebar-primary,<br \/>\nbody:has(.tc-wp-island) .sidebar-secondary,<br \/>\nbody:has(.tc-wp-island) .ast-sidebar,<br \/>\nbody:has(.tc-wp-island) .site-sidebar {<br \/>\n  display: none !important;<br \/>\n}<br \/>\n\/* Copygen: hide default page title\/breadcrumb band \u2014 tool pages use template-homepage like category *\/<br \/>\nbody:has(.tc-wp-island) section.page_header_default,<br \/>\nbody:has(.tc-wp-island) .page_header_default {<br \/>\n  display: none !important;<br \/>\n}<br \/>\n@media (min-width: 981px) {<br \/>\n  body:has(.tc-wp-island) #left-area,<br \/>\n  body:has(.tc-wp-island) #primary,<br \/>\n  body:has(.tc-wp-island) #content-area,<br \/>\n  body:has(.tc-wp-island) #content-area .container,<br \/>\n  body:has(.tc-wp-island) .content-area,<br \/>\n  body:has(.tc-wp-island) main.site-main,<br \/>\n  body:has(.tc-wp-island) .site-content .content-area {<br \/>\n    width: 100% !important;<br \/>\n    max-width: 100% !important;<br \/>\n    float: none !important;<br \/>\n    padding-right: 0 !important;<br \/>\n    padding-left: 0 !important;<br \/>\n  }<br \/>\n  body:has(.tc-wp-island) #main-content .container:before {<br \/>\n    display: none !important;<br \/>\n  }<br \/>\n}<br \/>\n\/* Tool pages: keep theme H1 readable \u2014 smaller type, full content width, 1\u20132 lines *\/<br \/>\nbody:has(.tc-wp-island) .fontib-v2-hero-inner {<br \/>\n  width: min(100%, calc(100vw - 40px)) !important;<br \/>\n  max-width: 1320px !important;<br \/>\n}<br \/>\nbody:has(.tc-wp-island) .fontib-v2-title,<br \/>\nbody:has(.tc-wp-island) #left-area > .entry-title,<br \/>\nbody:has(.tc-wp-island) .entry-title h1,<br \/>\nbody:has(.tc-wp-island) h1.entry-title,<br \/>\nbody:has(.tc-wp-island) .page-title,<br \/>\nbody:has(.tc-wp-island) .et_pb_title_container h1 {<br \/>\n  max-width: 100% !important;<br \/>\n  width: 100%;<br \/>\n  font-size: clamp(24px, 2.6vw, 38px) !important;<br \/>\n  line-height: 1.2 !important;<br \/>\n  letter-spacing: -0.01em;<br \/>\n}<br \/>\n<\/style>\n<div class=\"tc-wp-island\">\n<section class=\"tc-wp-tool\" data-tool-index=\"1\">\n<div class=\"tc-wp-tool-html\">    <style>\r\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');\r\n\r\n        :root {\r\n            --rpv-primary-color: #2C3E50;\r\n            --rpv-primary-light: #34495E;\r\n            --rpv-secondary-color: #16A085;\r\n            --rpv-secondary-light: #1ABC9C;\r\n            --rpv-accent-color: #E67E22;\r\n            --rpv-accent-light: #F39C12;\r\n            --rpv-success-color: #27AE60;\r\n            --rpv-success-light: #2ECC71;\r\n            --rpv-danger-color: #E74C3C;\r\n            --rpv-danger-light: #C0392B;\r\n            --rpv-progress-color: #00D4AA;\r\n            --rpv-progress-bg: #E8F5F3;\r\n            --rpv-bg-primary: #F8F9FA;\r\n            --rpv-bg-secondary: #FFFFFF;\r\n            --rpv-bg-tertiary: #ECF0F1;\r\n            --rpv-glass-bg: rgba(255, 255, 255, 0.25);\r\n            --rpv-glass-border: rgba(255, 255, 255, 0.35);\r\n            --rpv-text-primary: #2C3E50;\r\n            --rpv-text-secondary: #34495E;\r\n            --rpv-text-muted: #7F8C8D;\r\n            --rpv-text-white: #FFFFFF;\r\n            --rpv-shadow-sm: 0 2px 4px rgba(44, 62, 80, 0.08);\r\n            --rpv-shadow-md: 0 4px 12px rgba(44, 62, 80, 0.12);\r\n            --rpv-shadow-lg: 0 8px 24px rgba(44, 62, 80, 0.15);\r\n            --rpv-shadow-xl: 0 12px 32px rgba(44, 62, 80, 0.18);\r\n            --rpv-reddit-orange: #FF4500;\r\n            --rpv-reddit-orange-light: #FF6B35;\r\n        }\r\n\r\n        .rpv-wrapper {\r\n            font-family: 'Inter', sans-serif;\r\n            background: linear-gradient(135deg, #ECF0F1 0%, #BDC3C7 25%, #95A5A6 50%, #7F8C8D 75%, #34495E 100%);\r\n            min-height: 100vh;\r\n            line-height: 1.6;\r\n            position: relative;\r\n            overflow-x: hidden;\r\n            color: var(--rpv-text-primary);\r\n        }\r\n\r\n        .rpv-wrapper::before {\r\n            content: '';\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background:\r\n                radial-gradient(circle at 25% 25%, rgba(22, 160, 133, 0.1) 0%, transparent 50%),\r\n                radial-gradient(circle at 75% 75%, rgba(52, 73, 94, 0.1) 0%, transparent 50%),\r\n                radial-gradient(circle at 50% 50%, rgba(230, 126, 34, 0.08) 0%, transparent 50%);\r\n            pointer-events: none;\r\n            z-index: -1;\r\n        }\r\n\r\n        .rpv-container {\r\n            max-width: 1400px;\r\n            margin: 0 auto;\r\n            padding: 20px;\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        .rpv-header {\r\n            text-align: center;\r\n            margin-bottom: 40px;\r\n            padding: 30px 0;\r\n            animation: rpv-fadeInDown 1s ease-out;\r\n        }\r\n\r\n        .rpv-logo {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 20px;\r\n            margin-bottom: 20px;\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .rpv-logo-icon {\r\n            width: 70px;\r\n            height: 70px;\r\n            background: linear-gradient(135deg, var(--rpv-reddit-orange), var(--rpv-reddit-orange-light));\r\n            border-radius: 16px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: white;\r\n            font-size: 32px;\r\n            font-weight: 700;\r\n            box-shadow: var(--rpv-shadow-lg);\r\n            animation: rpv-pulse 3s ease-in-out infinite;\r\n        }\r\n\r\n        .rpv-reddit-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            background: var(--rpv-reddit-orange);\r\n            border-radius: 12px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: white;\r\n            font-size: 20px;\r\n            font-weight: 700;\r\n            animation: rpv-redditFloat 4s ease-in-out infinite;\r\n            box-shadow: 0 4px 15px rgba(255, 69, 0, 0.3);\r\n            margin: 0 10px;\r\n        }\r\n\r\n        .rpv-logo-text {\r\n            font-size: clamp(2rem, 5vw, 3.2rem);\r\n            font-weight: 800;\r\n            background: linear-gradient(135deg, var(--rpv-reddit-orange), var(--rpv-secondary-color));\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            letter-spacing: -0.5px;\r\n        }\r\n\r\n        .rpv-subtitle {\r\n            color: var(--rpv-text-secondary);\r\n            font-size: 18px;\r\n            font-weight: 600;\r\n            margin-bottom: 25px;\r\n            max-width: 600px;\r\n            margin-left: auto;\r\n            margin-right: auto;\r\n            text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8);\r\n        }\r\n\r\n        .rpv-features-bar {\r\n            display: flex;\r\n            justify-content: center;\r\n            gap: 20px;\r\n            margin-bottom: 30px;\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .rpv-feature-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n            color: var(--rpv-text-primary);\r\n            font-size: 14px;\r\n            font-weight: 600;\r\n            background: var(--rpv-glass-bg);\r\n            backdrop-filter: blur(20px);\r\n            padding: 12px 20px;\r\n            border-radius: 12px;\r\n            border: 1px solid var(--rpv-glass-border);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .rpv-feature-item:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: var(--rpv-shadow-md);\r\n            background: rgba(255, 255, 255, 0.35);\r\n        }\r\n\r\n        .rpv-feature-icon {\r\n            width: 24px;\r\n            height: 24px;\r\n            background: linear-gradient(135deg, var(--rpv-success-color), var(--rpv-success-light));\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-size: 12px;\r\n            color: white;\r\n            font-weight: 700;\r\n        }\r\n\r\n        .rpv-search-container {\r\n            background: var(--rpv-bg-secondary);\r\n            border: 1px solid rgba(44, 62, 80, 0.1);\r\n            padding: 35px;\r\n            border-radius: 20px;\r\n            box-shadow: var(--rpv-shadow-lg);\r\n            margin-bottom: 30px;\r\n            animation: rpv-fadeInUp 1s ease-out 0.2s both;\r\n        }\r\n\r\n        .rpv-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        .rpv-search-input {\r\n            flex: 1 !important;\r\n            padding: 16px 20px !important;\r\n            border: 2px solid var(--rpv-bg-tertiary) !important;\r\n            border-radius: 12px !important;\r\n            font-size: 16px !important;\r\n            font-weight: 500 !important;\r\n            background: var(--rpv-bg-secondary) !important;\r\n            transition: all 0.3s ease !important;\r\n            outline: none !important;\r\n            color: var(--rpv-text-primary) !important;\r\n            font-family: inherit !important;\r\n        }\r\n\r\n        .rpv-search-input:focus {\r\n            border-color: var(--rpv-secondary-color);\r\n            box-shadow: 0 0 0 3px rgba(22, 160, 133, 0.1);\r\n            transform: translateY(-1px);\r\n        }\r\n\r\n        .rpv-search-input::placeholder {\r\n            color: var(--rpv-text-muted);\r\n            font-weight: 400;\r\n        }\r\n\r\n        .rpv-search-btn {\r\n            padding: 16px 32px;\r\n            background: linear-gradient(135deg, var(--rpv-reddit-orange), var(--rpv-reddit-orange-light));\r\n            color: white;\r\n            border: none;\r\n            border-radius: 12px;\r\n            font-size: 16px;\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            min-width: 160px;\r\n            position: relative;\r\n            overflow: hidden;\r\n            box-shadow: var(--rpv-shadow-md);\r\n            font-family: inherit;\r\n        }\r\n\r\n        .rpv-search-btn:hover:not(:disabled) {\r\n            transform: translateY(-2px);\r\n            box-shadow: var(--rpv-shadow-lg);\r\n            background: linear-gradient(135deg, var(--rpv-reddit-orange-light), var(--rpv-secondary-color));\r\n        }\r\n\r\n        .rpv-search-btn:disabled {\r\n            opacity: 0.6;\r\n            cursor: not-allowed;\r\n            transform: none;\r\n        }\r\n\r\n        .rpv-user-info {\r\n            background: var(--rpv-bg-secondary);\r\n            border: 1px solid rgba(44, 62, 80, 0.1);\r\n            padding: 35px;\r\n            border-radius: 20px;\r\n            box-shadow: var(--rpv-shadow-lg);\r\n            margin-bottom: 30px;\r\n            display: none;\r\n            animation: rpv-slideInDown 0.8s ease-out;\r\n        }\r\n\r\n        .rpv-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        .rpv-user-avatar {\r\n            width: 90px;\r\n            height: 90px;\r\n            border-radius: 50%;\r\n            background: linear-gradient(135deg, var(--rpv-reddit-orange), var(--rpv-reddit-orange-light));\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: 800;\r\n            box-shadow: var(--rpv-shadow-lg);\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .rpv-user-details h2 {\r\n            font-size: 2rem;\r\n            color: var(--rpv-text-primary);\r\n            margin-bottom: 8px;\r\n            font-weight: 800;\r\n        }\r\n\r\n        .rpv-user-description {\r\n            color: var(--rpv-text-secondary);\r\n            font-size: 16px;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .rpv-user-stats {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\r\n            gap: 20px;\r\n            margin-top: 25px;\r\n        }\r\n\r\n        .rpv-stat-card {\r\n            background: linear-gradient(135deg, var(--rpv-glass-bg), rgba(255, 255, 255, 0.15));\r\n            backdrop-filter: blur(20px);\r\n            padding: 20px;\r\n            border-radius: 16px;\r\n            text-align: center;\r\n            border: 1px solid var(--rpv-glass-border);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .rpv-stat-card:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: var(--rpv-shadow-md);\r\n        }\r\n\r\n        .rpv-stat-number {\r\n            font-size: 1.8rem;\r\n            font-weight: 800;\r\n            color: var(--rpv-reddit-orange);\r\n            margin-bottom: 5px;\r\n        }\r\n\r\n        .rpv-stat-label {\r\n            font-size: 0.9rem;\r\n            color: var(--rpv-text-secondary);\r\n            font-weight: 600;\r\n        }\r\n\r\n        .rpv-posts-section {\r\n            display: none;\r\n            margin-bottom: 40px;\r\n        }\r\n\r\n        .rpv-section-title {\r\n            color: var(--rpv-text-primary);\r\n            font-size: 2rem;\r\n            font-weight: 800;\r\n            margin-bottom: 30px;\r\n            text-align: center;\r\n            background: var(--rpv-glass-bg);\r\n            backdrop-filter: blur(20px);\r\n            padding: 20px;\r\n            border-radius: 16px;\r\n            border: 1px solid var(--rpv-glass-border);\r\n        }\r\n\r\n        .rpv-posts-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(480px, 1fr));\r\n            gap: 32px;\r\n            align-items: stretch;\r\n        }\r\n\r\n        .rpv-post-card {\r\n            background: var(--rpv-bg-secondary);\r\n            border: 1.5px solid var(--rpv-glass-border);\r\n            border-radius: 28px;\r\n            box-shadow: 0 8px 32px rgba(44, 62, 80, 0.13), 0 1.5px 6px rgba(44, 62, 80, 0.07);\r\n            transition: box-shadow 0.3s, transform 0.2s;\r\n            position: relative;\r\n            overflow: hidden;\r\n            animation: rpv-slideUp 0.6s ease forwards;\r\n            display: flex;\r\n            flex-direction: column;\r\n        }\r\n\r\n        .rpv-post-card-inner {\r\n            padding: 36px 32px 32px 32px;\r\n            display: flex;\r\n            flex-direction: column;\r\n            flex-grow: 1;\r\n        }\r\n\r\n        .rpv-post-card::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: -1.5px;\r\n            left: 0;\r\n            right: 0;\r\n            height: 7px;\r\n            background: linear-gradient(90deg, var(--rpv-reddit-orange), var(--rpv-secondary-color));\r\n            border-radius: 28px 28px 0 0;\r\n            z-index: 1;\r\n        }\r\n\r\n        .rpv-post-card:hover {\r\n            transform: translateY(-8px) scale(1.012);\r\n            box-shadow: 0 16px 48px rgba(44, 62, 80, 0.18), 0 2px 8px rgba(44, 62, 80, 0.10);\r\n            border-color: var(--rpv-reddit-orange-light);\r\n        }\r\n\r\n        .rpv-post-header {\r\n            display: flex;\r\n            align-items: flex-start;\r\n            justify-content: space-between;\r\n            margin-bottom: 18px;\r\n            padding-bottom: 12px;\r\n            border-bottom: 1.5px solid var(--rpv-bg-tertiary);\r\n        }\r\n\r\n        .rpv-post-title {\r\n            font-size: 1.7rem;\r\n            font-weight: 800;\r\n            margin-bottom: 18px;\r\n            color: var(--rpv-primary-color);\r\n            line-height: 1.3;\r\n            letter-spacing: -0.5px;\r\n            display: -webkit-box;\r\n            -webkit-line-clamp: 3;\r\n            -webkit-box-orient: vertical;\r\n            overflow: hidden;\r\n            text-overflow: ellipsis;\r\n            max-width: 100%;\r\n        }\r\n\r\n        .rpv-post-title.rpv-full {\r\n            display: block;\r\n            -webkit-line-clamp: unset;\r\n            -webkit-box-orient: unset;\r\n            overflow: visible;\r\n            text-overflow: unset;\r\n        }\r\n\r\n        .rpv-show-title-btn {\r\n            background: linear-gradient(135deg, var(--rpv-primary-color), var(--rpv-primary-light));\r\n            color: white;\r\n            border: none;\r\n            padding: 6px 16px;\r\n            border-radius: 10px;\r\n            cursor: pointer;\r\n            font-size: 0.9rem;\r\n            font-weight: 600;\r\n            margin-top: -10px;\r\n            margin-bottom: 10px;\r\n            transition: all 0.2s;\r\n            align-self: flex-start;\r\n        }\r\n\r\n        .rpv-show-title-btn:hover {\r\n            background: linear-gradient(135deg, var(--rpv-reddit-orange), var(--rpv-secondary-color));\r\n        }\r\n\r\n        .rpv-post-body-content {\r\n            flex-grow: 1;\r\n            display: flex;\r\n            flex-direction: column;\r\n            margin-bottom: 18px;\r\n        }\r\n\r\n        .rpv-media-container {\r\n            margin-top: 18px;\r\n            border-radius: 18px;\r\n            overflow: hidden;\r\n            position: relative;\r\n            box-shadow: 0 2px 12px rgba(44, 62, 80, 0.10);\r\n            background: #000;\r\n            height: 300px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .rpv-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.55);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            z-index: 2;\r\n            border-radius: 18px;\r\n            font-size: 1.3rem;\r\n            color: #fff;\r\n            font-weight: 700;\r\n            transition: opacity 0.2s;\r\n        }\r\n\r\n        .rpv-video-loading-spinner {\r\n            border: 5px solid #eee;\r\n            border-top: 5px solid var(--rpv-reddit-orange);\r\n            border-radius: 50%;\r\n            width: 48px;\r\n            height: 48px;\r\n            animation: rpv-spin 1s linear infinite;\r\n            margin-right: 16px;\r\n        }\r\n\r\n        .rpv-image-preview,\r\n        .rpv-video-player {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n        }\r\n\r\n        .rpv-image-preview {\r\n            cursor: pointer;\r\n            transition: transform 0.3s ease;\r\n        }\r\n\r\n        .rpv-image-preview:hover {\r\n            transform: scale(1.02);\r\n        }\r\n\r\n        .rpv-video-container {\r\n            position: relative;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: #000;\r\n            border-radius: 18px;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .rpv-video-player {\r\n            border-radius: 18px;\r\n        }\r\n\r\n        .rpv-media-controls {\r\n            display: flex;\r\n            gap: 12px;\r\n            margin-top: auto;\r\n            padding-top: 16px;\r\n            flex-wrap: wrap;\r\n            align-items: center;\r\n        }\r\n\r\n        .rpv-control-btn {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 8px;\r\n            padding: 12px 20px;\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            text-transform: none;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .rpv-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        .rpv-control-btn:hover::before {\r\n            left: 100%;\r\n        }\r\n\r\n        .rpv-stream-audio-btn {\r\n            background: linear-gradient(135deg, #9B59B6, #8E44AD);\r\n            color: white;\r\n            box-shadow: 0 4px 15px rgba(155, 89, 182, 0.3);\r\n        }\r\n\r\n        .rpv-stream-audio-btn:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 6px 20px rgba(155, 89, 182, 0.4);\r\n        }\r\n\r\n        .rpv-stream-audio-btn:disabled {\r\n            opacity: 0.6;\r\n            cursor: not-allowed;\r\n            transform: none;\r\n        }\r\n\r\n        .rpv-stream-audio-btn.loading {\r\n            background: linear-gradient(135deg, #95A5A6, #7F8C8D);\r\n        }\r\n\r\n        .rpv-download-btn {\r\n            background: linear-gradient(135deg, var(--rpv-success-color), var(--rpv-success-light));\r\n            color: white;\r\n            box-shadow: 0 4px 15px rgba(39, 174, 96, 0.3);\r\n        }\r\n\r\n        .rpv-download-btn:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 6px 20px rgba(39, 174, 96, 0.4);\r\n        }\r\n\r\n        .rpv-download-btn:disabled {\r\n            opacity: 0.6;\r\n            cursor: not-allowed;\r\n            transform: none;\r\n        }\r\n\r\n        .rpv-download-btn.downloading {\r\n            background: linear-gradient(135deg, var(--rpv-accent-color), var(--rpv-accent-light));\r\n        }\r\n\r\n        .rpv-post-stats {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));\r\n            gap: 16px;\r\n            margin-top: 25px;\r\n            padding-top: 20px;\r\n            border-top: 2px solid var(--rpv-bg-tertiary);\r\n        }\r\n\r\n        .rpv-stat-item {\r\n            display: flex;\r\n            flex-direction: column;\r\n            align-items: center;\r\n            gap: 8px;\r\n            padding: 16px;\r\n            background: linear-gradient(135deg, var(--rpv-glass-bg), rgba(255, 255, 255, 0.15));\r\n            backdrop-filter: blur(20px);\r\n            border-radius: 16px;\r\n            text-align: center;\r\n            border: 1px solid var(--rpv-glass-border);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .rpv-stat-item:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: var(--rpv-shadow-sm);\r\n        }\r\n\r\n        .rpv-stat-value {\r\n            font-weight: 800;\r\n            font-size: 1.3rem;\r\n        }\r\n\r\n        .rpv-upvotes .rpv-stat-value {\r\n            color: var(--rpv-reddit-orange);\r\n        }\r\n\r\n        .rpv-comments .rpv-stat-value {\r\n            color: var(--rpv-secondary-color);\r\n        }\r\n\r\n        .rpv-awards .rpv-stat-value {\r\n            color: #FFD700;\r\n        }\r\n\r\n        .rpv-ratio .rpv-stat-value {\r\n            color: var(--rpv-success-color);\r\n        }\r\n\r\n        .rpv-loading {\r\n            text-align: center;\r\n            padding: 50px;\r\n            color: var(--rpv-text-primary);\r\n            font-size: 1.2rem;\r\n            display: none;\r\n        }\r\n\r\n        .rpv-spinner {\r\n            border: 4px solid var(--rpv-bg-tertiary);\r\n            border-top: 4px solid var(--rpv-reddit-orange);\r\n            border-radius: 50%;\r\n            width: 50px;\r\n            height: 50px;\r\n            animation: rpv-spin 1s linear infinite;\r\n            margin: 20px auto;\r\n        }\r\n\r\n        .rpv-error-message {\r\n            background: rgba(231, 76, 60, 0.1);\r\n            border: 1px solid rgba(231, 76, 60, 0.2);\r\n            color: var(--rpv-danger-color);\r\n            padding: 20px;\r\n            border-radius: 15px;\r\n            text-align: center;\r\n            margin: 20px 0;\r\n            font-weight: 600;\r\n            display: none;\r\n        }\r\n\r\n        .rpv-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.9);\r\n            animation: rpv-fadeIn 0.3s ease;\r\n        }\r\n\r\n        .rpv-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        .rpv-modal img {\r\n            width: 100%;\r\n            height: auto;\r\n            max-width: 90vw;\r\n            max-height: 90vh;\r\n            object-fit: contain;\r\n            border-radius: 16px;\r\n        }\r\n\r\n        .rpv-close {\r\n            position: absolute;\r\n            top: 15px;\r\n            right: 35px;\r\n            color: #f1f1f1;\r\n            font-size: 40px;\r\n            font-weight: bold;\r\n            cursor: pointer;\r\n            z-index: 1001;\r\n        }\r\n\r\n        .rpv-close:hover {\r\n            color: var(--rpv-reddit-orange);\r\n        }\r\n\r\n        .rpv-download-progress {\r\n            position: fixed;\r\n            bottom: 20px;\r\n            right: 20px;\r\n            background: var(--rpv-bg-secondary);\r\n            border: 1px solid rgba(44, 62, 80, 0.1);\r\n            border-radius: 16px;\r\n            padding: 25px;\r\n            min-width: 350px;\r\n            box-shadow: var(--rpv-shadow-xl);\r\n            z-index: 1000;\r\n            display: none;\r\n            color: var(--rpv-text-primary);\r\n        }\r\n\r\n        .rpv-download-progress.rpv-show {\r\n            display: block;\r\n            animation: rpv-slideInRight 0.4s ease-out;\r\n        }\r\n\r\n        .rpv-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        .rpv-progress-text {\r\n            font-weight: 700;\r\n            font-size: 15px;\r\n            color: var(--rpv-text-primary);\r\n        }\r\n\r\n        .rpv-cancel-btn {\r\n            background: rgba(231, 76, 60, 0.1);\r\n            border: 1px solid rgba(231, 76, 60, 0.2);\r\n            color: var(--rpv-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        .rpv-cancel-btn:hover {\r\n            background: rgba(231, 76, 60, 0.15);\r\n        }\r\n\r\n        .rpv-progress-bar-container {\r\n            width: 100%;\r\n            height: 12px;\r\n            background: var(--rpv-progress-bg);\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.1);\r\n        }\r\n\r\n        .rpv-progress-bar-fill {\r\n            height: 100%;\r\n            background: linear-gradient(135deg, var(--rpv-progress-color), var(--rpv-secondary-light));\r\n            border-radius: 6px;\r\n            width: 0%;\r\n            transition: width 0.3s ease;\r\n            box-shadow: 0 2px 4px rgba(0, 212, 170, 0.4);\r\n        }\r\n\r\n        .rpv-progress-details {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            font-size: 13px;\r\n            color: var(--rpv-text-secondary);\r\n            font-weight: 500;\r\n        }\r\n\r\n        .rpv-expand-btn {\r\n            background: linear-gradient(135deg, var(--rpv-primary-color), var(--rpv-primary-light));\r\n            color: white;\r\n            border: none;\r\n            padding: 10px 20px;\r\n            border-radius: 12px;\r\n            cursor: pointer;\r\n            font-size: 0.9rem;\r\n            font-weight: 600;\r\n            margin-top: 15px;\r\n            transition: all 0.3s ease;\r\n            font-family: inherit;\r\n        }\r\n\r\n        .rpv-expand-btn:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: var(--rpv-shadow-sm);\r\n        }\r\n\r\n        .rpv-gallery-container {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\r\n            gap: 12px;\r\n            width: 100%;\r\n            height: 100%;\r\n        }\r\n\r\n        .rpv-gallery-image-wrapper {\r\n            position: relative;\r\n            border-radius: 12px;\r\n            overflow: hidden;\r\n            width: 100%;\r\n            height: 100%;\r\n        }\r\n\r\n        .rpv-gallery-image {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n            cursor: pointer;\r\n            transition: transform 0.3s ease;\r\n            display: block;\r\n        }\r\n\r\n        .rpv-gallery-image:hover {\r\n            transform: scale(1.02);\r\n        }\r\n\r\n        .rpv-gallery-download-btn {\r\n            position: absolute;\r\n            right: 10px;\r\n            bottom: 10px;\r\n            background: linear-gradient(135deg, var(--rpv-success-color), var(--rpv-success-light));\r\n            color: white;\r\n            border: none;\r\n            border-radius: 8px;\r\n            padding: 8px 14px;\r\n            font-size: 0.95rem;\r\n            font-weight: 600;\r\n            box-shadow: 0 2px 8px rgba(39, 174, 96, 0.18);\r\n            opacity: 0;\r\n            transition: opacity 0.2s;\r\n            cursor: pointer;\r\n            z-index: 2;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 6px;\r\n        }\r\n\r\n        .rpv-gallery-image-wrapper:hover .rpv-gallery-download-btn {\r\n            opacity: 1;\r\n        }\r\n\r\n        .rpv-custom-play-pause-btn {\r\n            position: absolute;\r\n            left: 50%;\r\n            top: 50%;\r\n            transform: translate(-50%, -50%);\r\n            background: rgba(44, 62, 80, 0.85);\r\n            color: #fff;\r\n            border: none;\r\n            border-radius: 50%;\r\n            width: 54px;\r\n            height: 54px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-size: 2rem;\r\n            z-index: 3;\r\n            cursor: pointer;\r\n            box-shadow: 0 2px 8px rgba(44, 62, 80, 0.18);\r\n            transition: background 0.2s, opacity 0.2s;\r\n            opacity: 0;\r\n        }\r\n\r\n        .rpv-video-container:hover .rpv-custom-play-pause-btn,\r\n        .rpv-video-container.rpv-paused .rpv-custom-play-pause-btn {\r\n            opacity: 0.85;\r\n        }\r\n\r\n        .rpv-custom-play-pause-btn:hover {\r\n            background: rgba(44, 62, 80, 1);\r\n        }\r\n\r\n        @keyframes rpv-redditFloat {\r\n\r\n            0%,\r\n            100% {\r\n                transform: translateY(0px) scale(1);\r\n            }\r\n\r\n            50% {\r\n                transform: translateY(-6px) scale(1.02);\r\n            }\r\n        }\r\n\r\n        @keyframes rpv-fadeInDown {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(-20px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0);\r\n            }\r\n        }\r\n\r\n        @keyframes rpv-fadeInUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(20px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0);\r\n            }\r\n        }\r\n\r\n        @keyframes rpv-slideInDown {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(-30px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0);\r\n            }\r\n        }\r\n\r\n        @keyframes rpv-slideInRight {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateX(100%);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateX(0);\r\n            }\r\n        }\r\n\r\n        @keyframes rpv-slideUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(30px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0);\r\n            }\r\n        }\r\n\r\n        @keyframes rpv-spin {\r\n            0% {\r\n                transform: rotate(0deg);\r\n            }\r\n\r\n            100% {\r\n                transform: rotate(360deg);\r\n            }\r\n        }\r\n\r\n        @keyframes rpv-pulse {\r\n\r\n            0%,\r\n            100% {\r\n                transform: scale(1);\r\n            }\r\n\r\n            50% {\r\n                transform: scale(1.02);\r\n            }\r\n        }\r\n\r\n        @keyframes rpv-fadeIn {\r\n            from {\r\n                opacity: 0;\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n            }\r\n        }\r\n\r\n        \/* --- Responsive Design --- *\/\r\n        @media (max-width: 1200px) {\r\n            .rpv-posts-grid {\r\n                grid-template-columns: 1fr 1fr;\r\n                gap: 24px;\r\n            }\r\n\t\t\t\t\t.rpv-search-form {\r\n\tdisplay: flex;\r\n\tgap: 15px;\r\n\tmargin-bottom: 20px;\r\n\tposition: relative;\r\n\tflex-direction: column;\r\n}\r\n\t\t\t\t\t.rpv-logo {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tgap: 20px;\r\n\tmargin-bottom: 20px;\r\n\tflex-wrap: wrap;\r\n\tflex-direction: column;\r\n}\r\n        }\r\n\r\n        @media (max-width: 992px) {\r\n            .rpv-posts-grid {\r\n                grid-template-columns: 1fr;\r\n                gap: 24px;\r\n            }\r\n\r\n            .rpv-post-card-inner {\r\n                padding: 24px;\r\n            }\r\n\r\n            .rpv-section-title {\r\n                font-size: 1.5rem;\r\n                padding: 16px;\r\n            }\r\n\t\t\t\t\t.rpv-search-form {\r\n\tdisplay: flex;\r\n\tgap: 15px;\r\n\tmargin-bottom: 20px;\r\n\tposition: relative;\r\n\tflex-direction: column;\r\n}\r\n\t\t\t\t\t.rpv-logo {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tgap: 20px;\r\n\tmargin-bottom: 20px;\r\n\tflex-wrap: wrap;\r\n\tflex-direction: column;\r\n}\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .rpv-container {\r\n                padding: 15px;\r\n            }\r\n\r\n            .rpv-search-container,\r\n            .rpv-user-info {\r\n                padding: 20px;\r\n            }\r\n\r\n            .rpv-user-header {\r\n                flex-direction: column;\r\n                align-items: flex-start;\r\n                gap: 15px;\r\n            }\r\n\r\n            .rpv-user-avatar {\r\n                width: 70px;\r\n                height: 70px;\r\n                font-size: 2rem;\r\n            }\r\n\r\n            .rpv-user-details h2 {\r\n                font-size: 1.5rem;\r\n            }\r\n\r\n            .rpv-user-stats {\r\n                grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n            }\r\n\r\n            .rpv-post-card-inner {\r\n                padding: 20px;\r\n            }\r\n\r\n            .rpv-post-title {\r\n                font-size: 1.3rem;\r\n            }\r\n\r\n            .rpv-stat-value {\r\n                font-size: 1.1rem;\r\n            }\r\n\r\n            .rpv-stat-label {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .rpv-media-container {\r\n                height: 250px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 600px) {\r\n            .rpv-search-form {\r\n                flex-direction: column;\r\n                gap: 10px;\r\n                margin-bottom: 10px;\r\n            }\r\n\r\n            .rpv-search-input,\r\n            .rpv-search-btn {\r\n                width: 100%;\r\n                font-size: 15px;\r\n            }\r\n\r\n            .rpv-features-bar {\r\n                gap: 10px;\r\n            }\r\n\r\n            .rpv-feature-item {\r\n                padding: 10px 15px;\r\n            }\r\n\r\n            .rpv-post-card-inner {\r\n                padding: 15px;\r\n            }\r\n\r\n            .rpv-post-title {\r\n                font-size: 1.1rem;\r\n            }\r\n\r\n            .rpv-media-controls {\r\n                flex-direction: column;\r\n                align-items: stretch;\r\n                gap: 10px;\r\n            }\r\n\r\n            .rpv-control-btn {\r\n                justify-content: center;\r\n            }\r\n\r\n            .rpv-post-stats {\r\n                grid-template-columns: 1fr 1fr;\r\n                gap: 10px;\r\n            }\r\n\r\n            .rpv-stat-item {\r\n                padding: 10px;\r\n            }\r\n\r\n            .rpv-custom-play-pause-btn {\r\n                width: 44px;\r\n                height: 44px;\r\n                font-size: 1.5rem;\r\n            }\r\n\r\n            .rpv-download-progress {\r\n                min-width: auto;\r\n                width: calc(100% - 40px);\r\n            }\r\n        }\r\n\r\n        \/* Extra small devices *\/\r\n        @media (max-width: 400px) {\r\n            .rpv-logo-icon {\r\n                width: 50px;\r\n                height: 50px;\r\n                font-size: 24px;\r\n            }\r\n\r\n            .rpv-reddit-icon {\r\n                width: 36px;\r\n                height: 36px;\r\n                font-size: 16px;\r\n            }\r\n\r\n            .rpv-logo-text {\r\n                font-size: 1.8rem;\r\n            }\r\n\r\n            .rpv-subtitle {\r\n                font-size: 16px;\r\n            }\r\n\r\n            .rpv-feature-item {\r\n                padding: 8px 12px;\r\n                font-size: 12px;\r\n            }\r\n\r\n            .rpv-feature-icon {\r\n                width: 20px;\r\n                height: 20px;\r\n                font-size: 10px;\r\n            }\r\n\r\n            .rpv-search-container,\r\n            .rpv-user-info {\r\n                padding: 15px;\r\n            }\r\n\r\n            .rpv-user-avatar {\r\n                width: 60px;\r\n                height: 60px;\r\n                font-size: 1.8rem;\r\n            }\r\n\r\n            .rpv-user-details h2 {\r\n                font-size: 1.3rem;\r\n            }\r\n\r\n            .rpv-user-description {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .rpv-stat-number {\r\n                font-size: 1.5rem;\r\n            }\r\n\r\n            .rpv-stat-label {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .rpv-section-title {\r\n                font-size: 1.3rem;\r\n                padding: 15px;\r\n            }\r\n\r\n            .rpv-post-card-inner {\r\n                padding: 12px;\r\n            }\r\n\r\n            .rpv-post-title {\r\n                font-size: 1rem;\r\n                margin-bottom: 12px;\r\n            }\r\n\r\n            .rpv-media-container {\r\n                height: 200px;\r\n            }\r\n\r\n            .rpv-control-btn {\r\n                padding: 10px 15px;\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .rpv-stat-item {\r\n                padding: 8px;\r\n            }\r\n\r\n            .rpv-stat-value {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .rpv-download-progress {\r\n                padding: 15px;\r\n                min-width: auto;\r\n                width: calc(100% - 30px);\r\n            }\r\n        }\r\n\r\n        \/* Very small devices *\/\r\n        @media (max-width: 375px) {\r\n            .rpv-container {\r\n                padding: 10px;\r\n            }\r\n\r\n            .rpv-header {\r\n                padding: 20px 0;\r\n                margin-bottom: 20px;\r\n            }\r\n\r\n            .rpv-logo {\r\n                gap: 15px;\r\n            }\r\n\r\n            .rpv-features-bar {\r\n                gap: 8px;\r\n                margin-bottom: 20px;\r\n            }\r\n\r\n            .rpv-search-container,\r\n            .rpv-user-info {\r\n                padding: 12px;\r\n            }\r\n\r\n            .rpv-user-header {\r\n                gap: 10px;\r\n            }\r\n\r\n            .rpv-user-stats {\r\n                grid-template-columns: 1fr 1fr;\r\n                gap: 10px;\r\n            }\r\n\r\n            .rpv-section-title {\r\n                font-size: 1.2rem;\r\n                padding: 12px;\r\n                margin-bottom: 20px;\r\n            }\r\n\r\n            .rpv-posts-grid {\r\n                gap: 15px;\r\n            }\r\n\r\n            .rpv-post-card-inner {\r\n                padding: 10px;\r\n            }\r\n\r\n            .rpv-post-title {\r\n                font-size: 0.9rem;\r\n                margin-bottom: 10px;\r\n            }\r\n\r\n            .rpv-media-container {\r\n                height: 180px;\r\n            }\r\n\r\n            .rpv-post-stats {\r\n                margin-top: 15px;\r\n                padding-top: 15px;\r\n                gap: 8px;\r\n            }\r\n\r\n            .rpv-stat-item {\r\n                padding: 6px;\r\n            }\r\n\r\n            .rpv-stat-value {\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            .rpv-stat-label {\r\n                font-size: 0.7rem;\r\n            }\r\n\r\n            .rpv-control-btn {\r\n                padding: 8px 12px;\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            .rpv-download-progress {\r\n                padding: 12px;\r\n                width: calc(100% - 24px);\r\n            }\r\n\r\n            .rpv-progress-text {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .rpv-cancel-btn {\r\n                padding: 6px 12px;\r\n                font-size: 11px;\r\n            }\r\n        }\r\n    <\/style>\r\n    <style id=\"vvvebjs-styles\"><\/style>\r\n\r\n\r\n    <div class=\"rpv-wrapper\">\r\n        <div class=\"rpv-container\">\r\n            <div class=\"rpv-header\">\r\n                <div class=\"rpv-logo\">\r\n                    <div class=\"rpv-logo-icon\">\ud83d\ude80<\/div>\r\n                    <div class=\"rpv-reddit-icon\">\ud83d\udcf1<\/div>\r\n                    <div class=\"rpv-logo-text\">Reddit Post Viewer<\/div>\r\n                <\/div>\r\n                <div class=\"rpv-subtitle\">Discover and explore Reddit posts from any user with professional insights and\r\n                    premium\r\n                    design<\/div>\r\n                <div class=\"rpv-features-bar\">\r\n                    <div class=\"rpv-feature-item\">\r\n                        <div class=\"rpv-feature-icon\">\u2713<\/div>\r\n                        <span>Premium Design<\/span>\r\n                    <\/div>\r\n                    <div class=\"rpv-feature-item\">\r\n                        <div class=\"rpv-feature-icon\">\u2713<\/div>\r\n                        <span>Audio Support<\/span>\r\n                    <\/div>\r\n                    <div class=\"rpv-feature-item\">\r\n                        <div class=\"rpv-feature-icon\">\u2713<\/div>\r\n                        <span>Auto Downloads<\/span>\r\n                    <\/div>\r\n                    <div class=\"rpv-feature-item\">\r\n                        <div class=\"rpv-feature-icon\">\u2713<\/div>\r\n                        <span>Rich Media<\/span>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"rpv-search-container\">\r\n                <form class=\"rpv-search-form\" id=\"rpv-searchForm\">\r\n                    <input type=\"text\" class=\"rpv-search-input\" id=\"rpv-usernameInput\"\r\n                        placeholder=\"Reddit username, u\/username, or profile URL (e.g., spez, u\/spez, https:\/\/www.reddit.com\/user\/spez\/)\"\r\n                        required=\"\">\r\n                    <button type=\"submit\" class=\"rpv-search-btn\" id=\"rpv-searchBtn\">\r\n                        <span id=\"rpv-searchText\">\ud83d\udd0d Explore User<\/span>\r\n                        <div class=\"rpv-spinner\" id=\"rpv-searchSpinner\"\r\n                            style=\"display: none; width: 20px; height: 20px; margin: 0;\"><\/div>\r\n                    <\/button>\r\n                <\/form>\r\n\r\n                <div class=\"rpv-loading\" id=\"rpv-loading\">\r\n                    <div class=\"rpv-spinner\"><\/div>\r\n                    <p>Fetching user data and posts...<\/p>\r\n                <\/div>\r\n\r\n                <div class=\"rpv-error-message\" id=\"rpv-errorMessage\"><\/div>\r\n            <\/div>\r\n\r\n            <div class=\"rpv-user-info\" id=\"rpv-userInfo\">\r\n                <div class=\"rpv-user-header\">\r\n                    <div class=\"rpv-user-avatar\" id=\"rpv-userAvatar\">U<\/div>\r\n                    <div class=\"rpv-user-details\">\r\n                        <h2 id=\"rpv-userName\">Username<\/h2>\r\n                        <p class=\"rpv-user-description\" id=\"rpv-userDescription\">Reddit User Profile<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"rpv-user-stats\" id=\"rpv-userStats\">\r\n                    <!-- Stats will be populated dynamically -->\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"rpv-posts-section\" id=\"rpv-postsSection\">\r\n                <h2 class=\"rpv-section-title\" id=\"rpv-sectionTitle\">Recent Posts<\/h2>\r\n                <div id=\"rpv-postsContainer\" class=\"rpv-posts-grid\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Modal for image preview -->\r\n        <div id=\"rpv-imageModal\" class=\"rpv-modal\">\r\n            <span class=\"rpv-close\">\u00d7<\/span>\r\n            <div class=\"rpv-modal-content\">\r\n                <img decoding=\"async\" id=\"rpv-modalImage\" src=\"\/placeholder.svg\" alt=\"Full size image\">\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Download Progress -->\r\n        <div class=\"rpv-download-progress\" id=\"rpv-downloadProgress\">\r\n            <div class=\"rpv-progress-header\">\r\n                <span class=\"rpv-progress-text\" id=\"rpv-progressText\">Downloading...<\/span>\r\n                <button class=\"rpv-cancel-btn\" id=\"rpv-cancelDownloadBtn\">Cancel<\/button>\r\n            <\/div>\r\n            <div class=\"rpv-progress-bar-container\">\r\n                <div class=\"rpv-progress-bar-fill\" id=\"rpv-progressBarFill\"><\/div>\r\n            <\/div>\r\n            <div class=\"rpv-progress-details\">\r\n                <span id=\"rpv-progressPercent\">0%<\/span>\r\n                <span id=\"rpv-progressSize\">0 MB \/ 0 MB<\/span>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n     <script>(function(w,d){var u=[\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\",\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"];function ready(){var jq=w.jQuery;return jq&&jq.fn&&typeof jq.fn.on===\"function\";}function load(){if(!ready()){return false;}for(var i=0;i<u.length;i++){if(d.querySelector('script[src=\"'+u[i]+'\"]')){continue;}var s=d.createElement(\"script\");s.src=u[i];s.async=true;(d.body||d.head).appendChild(s);}return true;}function wait(n){if(load()||n<=0){return;}setTimeout(function(){wait(n-1);},100);}if(d.readyState===\"loading\"){d.addEventListener(\"DOMContentLoaded\",function(){wait(150);});}else{wait(150);}})(window,document);<\/script>\r\n \r\n    <script>\r\n        class RedditPostViewer {\r\n            constructor() {\r\n                this.currentUser = null;\r\n                this.posts = [];\r\n                this.downloadController = null;\r\n                this.corsProxies = [\r\n                    'https:\/\/api.allorigins.win\/raw?url=',\r\n                    'https:\/\/corsproxy.io\/?',\r\n                    'https:\/\/api.codetabs.com\/v1\/proxy?quest='\r\n                ];\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('rpv-searchForm');\r\n                const usernameInput = document.getElementById('rpv-usernameInput');\r\n\r\n                searchForm.addEventListener('submit', (e) => {\r\n                    e.preventDefault();\r\n                    const rawInput = usernameInput.value.trim();\r\n                    const username = this.extractRedditUsername(rawInput);\r\n                    if (username) {\r\n                        this.searchUser(username);\r\n                    } else {\r\n                        this.showError('Please enter a valid Reddit username, u\/username, or profile URL (e.g., spez, u\/spez, https:\/\/www.reddit.com\/user\/spez\/)');\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                document.getElementById('rpv-cancelDownloadBtn').addEventListener('click', () => this.cancelDownload());\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(`Searching for user: ${username}`);\r\n                    const posts = await this.fetchUserPosts(username);\r\n\r\n                    if (posts && posts.length > 0) {\r\n                        this.currentUser = username;\r\n                        this.posts = posts;\r\n                        this.displayUserInfo(username, posts);\r\n                        this.displayPosts(posts);\r\n                        this.showPostsSection(true);\r\n                        console.log(`Found ${posts.length} posts for ${username}`);\r\n                    } else {\r\n                        this.showError('The username is not correct or does not exist. Please check and try another one.');\r\n                        this.showPostsSection(false);\r\n                        document.getElementById('rpv-userInfo').style.display = 'none';\r\n                    }\r\n                } catch (error) {\r\n                    console.error('Error fetching posts:', error);\r\n                    if (error && error.message && error.message.toLowerCase().includes('not found')) {\r\n                        this.showError('The username is not correct or does not exist. Please check and try another one.');\r\n                    } else {\r\n                        this.showError('Something went wrong. Please try again later.');\r\n                    }\r\n                    this.showPostsSection(false);\r\n                    document.getElementById('rpv-userInfo').style.display = 'none';\r\n                } finally {\r\n                    this.showLoading(false);\r\n                }\r\n            }\r\n\r\n            async fetchUserPosts(username) {\r\n                const redditUrl = `https:\/\/www.reddit.com\/user\/${username}\/submitted.json?limit=25`;\r\n                \/\/ No-CORS fetch might work on some environments\r\n                const directFetch = async () => {\r\n                    const response = await fetch(redditUrl);\r\n                    if (!response.ok) throw new Error(`HTTP ${response.status}`);\r\n                    const data = await response.json();\r\n                    return this.parseRedditData(data);\r\n                };\r\n\r\n                const proxyFetch = async (proxy) => {\r\n                    const proxyUrl = proxy + encodeURIComponent(redditUrl);\r\n                    console.log(`Trying proxy: ${proxy.split('?')[0]}`);\r\n                    const response = await fetch(proxyUrl);\r\n                    if (!response.ok) throw new Error(`Proxy failed: HTTP ${response.status}`);\r\n                    const data = await response.json();\r\n                    return this.parseRedditData(data);\r\n                };\r\n\r\n                const methods = [directFetch, ...this.corsProxies.map(p => () => proxyFetch(p))];\r\n                for (const method of methods) {\r\n                    try {\r\n                        const result = await method();\r\n                        if (result && result.length > 0) return result;\r\n                    } catch (error) {\r\n                        console.log('Fetch method failed, trying next...');\r\n                    }\r\n                }\r\n                throw new Error('not found');\r\n            }\r\n\r\n            parseRedditData(data) {\r\n                if (!data || !data.data || !data.data.children) {\r\n                    throw new Error('Invalid Reddit API response format');\r\n                }\r\n                return data.data.children.map(child => child.data);\r\n            }\r\n\r\n            displayUserInfo(username, posts) {\r\n                const userInfo = document.getElementById('rpv-userInfo');\r\n                const userAvatar = document.getElementById('rpv-userAvatar');\r\n                const userName = document.getElementById('rpv-userName');\r\n                const userDescription = document.getElementById('rpv-userDescription');\r\n                const userStats = document.getElementById('rpv-userStats');\r\n\r\n                userAvatar.textContent = username.charAt(0).toUpperCase();\r\n                userName.textContent = `u\/${username}`;\r\n                userDescription.textContent = `Reddit User \u2022 ${posts.length} recent posts loaded`;\r\n\r\n                const totalUpvotes = posts.reduce((sum, post) => sum + (post.ups || 0), 0);\r\n                const totalComments = posts.reduce((sum, post) => sum + (post.num_comments || 0), 0);\r\n                const totalAwards = posts.reduce((sum, post) => sum + (post.total_awards_received || 0), 0);\r\n                const avgUpvoteRatio = posts.length > 0 ? posts.reduce((sum, post) => sum + (post.upvote_ratio || 0), 0) \/ posts.length : 0;\r\n                const totalCrossposts = posts.reduce((sum, post) => sum + (post.num_crossposts || 0), 0);\r\n\r\n                userStats.innerHTML = `\r\n                    <div class=\"rpv-stat-card\">\r\n                        <div class=\"rpv-stat-number\">${this.formatNumber(totalUpvotes)}<\/div>\r\n                        <div class=\"rpv-stat-label\">Total Upvotes<\/div>\r\n                    <\/div>\r\n                    <div class=\"rpv-stat-card\">\r\n                        <div class=\"rpv-stat-number\">${this.formatNumber(totalComments)}<\/div>\r\n                        <div class=\"rpv-stat-label\">Total Comments<\/div>\r\n                    <\/div>\r\n                    <div class=\"rpv-stat-card\">\r\n                        <div class=\"rpv-stat-number\">${totalAwards}<\/div>\r\n                        <div class=\"rpv-stat-label\">Total Awards<\/div>\r\n                    <\/div>\r\n                    <div class=\"rpv-stat-card\">\r\n                        <div class=\"rpv-stat-number\">${Math.round(avgUpvoteRatio * 100)}%<\/div>\r\n                        <div class=\"rpv-stat-label\">Avg. Upvote Ratio<\/div>\r\n                    <\/div>\r\n                    <div class=\"rpv-stat-card\">\r\n                        <div class=\"rpv-stat-number\">${totalCrossposts}<\/div>\r\n                        <div class=\"rpv-stat-label\">Total Crossposts<\/div>\r\n                    <\/div>\r\n                `;\r\n                userInfo.style.display = 'block';\r\n            }\r\n\r\n            displayPosts(posts) {\r\n                const container = document.getElementById('rpv-postsContainer');\r\n                const sectionTitle = document.getElementById('rpv-sectionTitle');\r\n\r\n                sectionTitle.textContent = `${posts.length} Posts 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.05}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 = 'rpv-post-card';\r\n                card.dataset.postId = post.id || '';\r\n\r\n                const postTitle = post.title || 'Untitled';\r\n                const safeTitle = this.escapeHtml(postTitle);\r\n                const safeTitleAttr = this.escapeAttr(postTitle);\r\n                const safeSubreddit = this.escapeHtml(post.subreddit_name_prefixed || 'r\/unknown');\r\n                const safeDate = this.escapeHtml(this.formatDate(post.created_utc));\r\n                const permalink = post.permalink ? `https:\/\/www.reddit.com${post.permalink}` : '';\r\n                const safePermalink = this.escapeAttr(permalink);\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 isGallery = post.is_gallery && post.media_metadata;\r\n\r\n                let mediaContent = '';\r\n                let mediaControls = '';\r\n\r\n                if (isVideo && post.secure_media && post.secure_media.reddit_video) {\r\n                    const videoUrl = this.decodeRedditUrl(post.secure_media.reddit_video.fallback_url || '');\r\n                    const safeVideoUrl = this.escapeAttr(videoUrl);\r\n                    mediaContent = `\r\n                        <div class=\"rpv-media-container\">\r\n                            <div class=\"rpv-video-container rpv-paused\" id=\"rpv-videocontainer-${post.id}\">\r\n                                <video class=\"rpv-video-player\" preload=\"metadata\" id=\"rpv-video-${post.id}\">\r\n                                    <source src=\"${safeVideoUrl}\" type=\"video\/mp4\">\r\n                                <\/video>\r\n                                <button class=\"rpv-custom-play-pause-btn\" id=\"rpv-playpause-${post.id}\" type=\"button\">\u25b6<\/button>\r\n                                <div class=\"rpv-video-loading-overlay\" id=\"rpv-video-loading-${post.id}\" style=\"display:none;\">\r\n                                    <div class=\"rpv-video-loading-spinner\"><\/div> Loading...\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>`;\r\n                    mediaControls = `\r\n                        <button class=\"rpv-control-btn rpv-stream-audio-btn\" type=\"button\" data-url=\"${safePermalink}\" data-postid=\"${this.escapeAttr(post.id || '')}\">\ud83d\udd0a Stream with Audio<\/button>\r\n                        <button class=\"rpv-control-btn rpv-download-btn\" type=\"button\" data-url=\"${safePermalink}\" data-filename=\"${this.escapeAttr(this.sanitizeFilename(postTitle))}.mp4\" data-postid=\"${this.escapeAttr(post.id || '')}\">\ud83d\udce5 Download Video<\/button>`;\r\n                } else if (isGallery && post.gallery_data && post.gallery_data.items) {\r\n                    const images = post.gallery_data.items\r\n                        .map(item => this.decodeRedditUrl(post.media_metadata[item.media_id]?.s?.u || ''))\r\n                        .filter(Boolean);\r\n                    if (images.length > 0) {\r\n                        mediaContent = `\r\n                            <div class=\"rpv-media-container\">\r\n                                <div class=\"rpv-gallery-container\">\r\n                                    ${images.map((imgUrl, idx) => {\r\n                                        const safeImgUrl = this.escapeAttr(imgUrl);\r\n                                        return `\r\n                                        <div class='rpv-gallery-image-wrapper'>\r\n                                            <img decoding=\"async\" src=\"${safeImgUrl}\" alt=\"Gallery image ${idx + 1}\" class=\"rpv-gallery-image\" data-fullurl=\"${safeImgUrl}\">\r\n                                        <\/div>`;\r\n                                    }).join('')}\r\n                                <\/div>\r\n                            <\/div>`;\r\n                        mediaControls = images.map((imgUrl, idx) => `\r\n                            <button class='rpv-control-btn rpv-download-btn' type=\"button\" data-url=\"${this.escapeAttr(imgUrl)}\" data-filename=\"${this.escapeAttr(this.sanitizeFilename(postTitle))}_${idx + 1}.jpg\">\ud83d\udce5 Download Image ${idx + 1}<\/button>\r\n                        `).join('');\r\n                    }\r\n                } else if (hasImage) {\r\n                    const imageUrl = this.decodeRedditUrl(post.preview.images[0].source.url || '');\r\n                    const safeImageUrl = this.escapeAttr(imageUrl);\r\n                    mediaContent = `\r\n                        <div class=\"rpv-media-container\">\r\n                            <img decoding=\"async\" src=\"${safeImageUrl}\" alt=\"${safeTitleAttr}\" class=\"rpv-image-preview\" data-fullurl=\"${safeImageUrl}\">\r\n                        <\/div>`;\r\n                    mediaControls = `<button class=\"rpv-control-btn rpv-download-btn\" type=\"button\" data-url=\"${safeImageUrl}\" data-filename=\"${this.escapeAttr(this.sanitizeFilename(postTitle))}.jpg\">\ud83d\udce5 Download Image<\/button>`;\r\n                }\r\n\r\n                const isTitleTruncated = postTitle.length > 150; \/\/ Simple check, JS line clamp check is too slow for many cards\r\n\r\n                let textContent = '';\r\n                if (post.selftext && post.selftext.trim()) {\r\n                    const isLongText = post.selftext.length > 400;\r\n                    const visibleText = isLongText ? this.truncateText(post.selftext, 400) : post.selftext;\r\n                    textContent = `\r\n                        <div class=\"rpv-post-text\" id=\"rpv-text-${post.id}\" style=\"white-space: pre-wrap; word-wrap: break-word;\">\r\n                            ${this.escapeHtml(visibleText)}\r\n                        <\/div>\r\n                        ${isLongText ? `<button class=\"rpv-expand-btn\" type=\"button\" data-postid=\"${this.escapeAttr(post.id || '')}\">Show More<\/button>` : ''}`;\r\n                }\r\n\r\n                card.innerHTML = `\r\n                    <div class=\"rpv-post-card-inner\">\r\n                        <div class=\"rpv-post-header\">\r\n                            <span class=\"rpv-subreddit-badge\">${safeSubreddit}<\/span>\r\n                            <span class=\"rpv-post-meta\">${safeDate}<\/span>\r\n                        <\/div>\r\n                        <h2 class=\"rpv-post-title ${isTitleTruncated ? '' : 'rpv-full'}\" id=\"rpv-title-${post.id}\">${safeTitle}<\/h2>\r\n                        ${isTitleTruncated ? `<button class=\"rpv-show-title-btn\" type=\"button\" data-postid=\"${this.escapeAttr(post.id || '')}\" data-state=\"collapsed\">Show More<\/button>` : ''}\r\n                        \r\n                        <div class=\"rpv-post-body-content\">\r\n                            ${textContent}\r\n                            ${mediaContent}\r\n                        <\/div>\r\n                        \r\n                        <div class=\"rpv-post-stats\">\r\n                            <div class=\"rpv-stat-item rpv-upvotes\"><div class=\"rpv-stat-value\">${this.formatNumber(post.ups || 0)}<\/div><div class=\"rpv-stat-label\">Upvotes<\/div><\/div>\r\n                            <div class=\"rpv-stat-item rpv-comments\"><div class=\"rpv-stat-value\">${this.formatNumber(post.num_comments || 0)}<\/div><div class=\"rpv-stat-label\">Comments<\/div><\/div>\r\n                            <div class=\"rpv-stat-item rpv-awards\"><div class=\"rpv-stat-value\">${post.total_awards_received || 0}<\/div><div class=\"rpv-stat-label\">Awards<\/div><\/div>\r\n                            <div class=\"rpv-stat-item rpv-ratio\"><div class=\"rpv-stat-value\">${Math.round((post.upvote_ratio || 0) * 100)}%<\/div><div class=\"rpv-stat-label\">Upvoted<\/div><\/div>\r\n                        <\/div>\r\n                        <div class=\"rpv-media-controls\">${mediaControls}<\/div>\r\n                    <\/div>\r\n                `;\r\n\r\n                \/\/ Add event listeners using delegation on the container later\r\n                setTimeout(() => {\r\n                    const video = card.querySelector(`#rpv-video-${post.id}`);\r\n                    const playBtn = card.querySelector(`#rpv-playpause-${post.id}`);\r\n                    const videoContainer = card.querySelector(`#rpv-videocontainer-${post.id}`);\r\n                    if (video && playBtn && videoContainer) {\r\n                        const togglePlay = () => this.togglePlayPause(post.id);\r\n                        playBtn.addEventListener('click', togglePlay);\r\n                        video.addEventListener('click', togglePlay);\r\n                        video.addEventListener('play', () => {\r\n                            playBtn.innerHTML = '\u2759\u2759';\r\n                            videoContainer.classList.remove('rpv-paused');\r\n                        });\r\n                        video.addEventListener('pause', () => {\r\n                            playBtn.innerHTML = '\u25b6';\r\n                            videoContainer.classList.add('rpv-paused');\r\n                        });\r\n                    }\r\n\r\n                    card.querySelectorAll('.rpv-image-preview, .rpv-gallery-image').forEach(img => {\r\n                        img.addEventListener('click', (e) => this.openImageModal(e.currentTarget.dataset.fullurl));\r\n                    });\r\n\r\n                    card.querySelectorAll('.rpv-control-btn').forEach(btn => {\r\n                        if (btn.classList.contains('rpv-stream-audio-btn')) {\r\n                            btn.addEventListener('click', (e) => this.streamWithAudio(e.currentTarget.dataset.url, e.currentTarget.dataset.postid, e.currentTarget));\r\n                        } else if (btn.classList.contains('rpv-download-btn')) {\r\n                            if (btn.dataset.url.includes('reddit.com')) {\r\n                                btn.addEventListener('click', (e) => this.downloadVideoWithAudio(e.currentTarget.dataset.url, e.currentTarget.dataset.filename, e.currentTarget));\r\n                            } else {\r\n                                btn.addEventListener('click', (e) => this.downloadImage(e.currentTarget.dataset.url, e.currentTarget.dataset.filename, e.currentTarget));\r\n                            }\r\n                        }\r\n                    });\r\n\r\n                    const showTitleBtn = card.querySelector('.rpv-show-title-btn');\r\n                    if (showTitleBtn) {\r\n                        showTitleBtn.addEventListener('click', (e) => this.toggleTitle(e.currentTarget.dataset.postid));\r\n                    }\r\n\r\n                    const expandBtn = card.querySelector('.rpv-expand-btn');\r\n                    if (expandBtn) {\r\n                        const fullText = post.selftext;\r\n                        expandBtn.addEventListener('click', (e) => this.toggleText(e.currentTarget.dataset.postid, fullText, e.currentTarget));\r\n                    }\r\n                }, 0);\r\n\r\n                return card;\r\n            }\r\n\r\n            async streamWithAudio(redditUrl, postId, button) {\r\n                const originalText = button.innerHTML;\r\n                button.disabled = true;\r\n                button.classList.add('loading');\r\n                button.innerHTML = '\u23f3 Loading Audio...';\r\n                const overlay = document.getElementById(`rpv-video-loading-${postId}`);\r\n                if (overlay) overlay.style.display = 'flex';\r\n                try {\r\n                    const response = await fetch('https:\/\/tools.xrespond.com\/api\/reddit\/video\/downloader', {\r\n                        method: 'POST',\r\n                        headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\r\n                        body: `url=${encodeURIComponent(redditUrl)}`\r\n                    });\r\n                    if (!response.ok) throw new Error('API failed');\r\n                    const data = await response.json();\r\n                    if (data.success && data.data?.data?.links?.[0]?.download_url) {\r\n                        const videoElement = document.getElementById(`rpv-video-${postId}`);\r\n                        if (videoElement) {\r\n                            videoElement.src = data.data.data.links[0].download_url;\r\n                            videoElement.load();\r\n                            videoElement.onloadeddata = () => {\r\n                                if (overlay) overlay.style.display = 'none';\r\n                                videoElement.play(); \/\/ Autoplay after loading audio\r\n                                button.innerHTML = '\ud83d\udd0a Audio Loaded!';\r\n                                setTimeout(() => { button.innerHTML = originalText; button.disabled = false; button.classList.remove('loading'); }, 3000);\r\n                            };\r\n                        }\r\n                    } else { throw new Error('Invalid API response'); }\r\n                } catch (error) {\r\n                    console.error('Error fetching audio video:', error);\r\n                    button.innerHTML = '\u274c Failed';\r\n                    setTimeout(() => { button.innerHTML = originalText; button.disabled = false; button.classList.remove('loading'); }, 3000);\r\n                } finally {\r\n                    if (overlay && overlay.style.display === 'flex') overlay.style.display = 'none';\r\n                }\r\n            }\r\n\r\n            async downloadFile(url, filename, button, type = 'video') {\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                const signal = this.downloadController.signal;\r\n\r\n                try {\r\n                    this.showDownloadProgress(`Preparing ${type}...`, 0);\r\n\r\n                    let downloadUrl = url;\r\n                    \/\/ If it's a reddit video link, get the audio-enabled version first\r\n                    if (type === 'video' && url.includes('reddit.com')) {\r\n                        const apiResponse = await fetch('https:\/\/tools.xrespond.com\/api\/reddit\/video\/downloader', {\r\n                            method: 'POST',\r\n                            headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\r\n                            body: `url=${encodeURIComponent(url)}`,\r\n                            signal\r\n                        });\r\n                        if (!apiResponse.ok) throw new Error('API fetch failed');\r\n                        const data = await apiResponse.json();\r\n                        if (!data.success || !data.data?.data?.links?.[0]?.download_url) throw new Error('Invalid API response');\r\n                        downloadUrl = data.data.data.links[0].download_url;\r\n                    }\r\n\r\n                    const response = await fetch(downloadUrl, { signal });\r\n                    if (!response.ok) throw new Error(`Download failed: ${response.statusText}`);\r\n\r\n                    const totalSize = parseInt(response.headers.get('content-length') || '0');\r\n                    const reader = response.body.getReader();\r\n                    let receivedSize = 0;\r\n                    const chunks = [];\r\n                    while (true) {\r\n                        const { done, value } = await reader.read();\r\n                        if (done) break;\r\n                        chunks.push(value);\r\n                        receivedSize += value.length;\r\n                        const progress = totalSize ? (receivedSize \/ totalSize) * 100 : 50;\r\n                        this.showDownloadProgress(`Downloading ${type}...`, progress, receivedSize, totalSize);\r\n                    }\r\n\r\n                    this.showDownloadProgress('Processing...', 99, receivedSize, totalSize);\r\n                    const blob = new Blob(chunks);\r\n                    const blobUrl = URL.createObjectURL(blob);\r\n                    const a = document.createElement('a');\r\n                    a.href = blobUrl;\r\n                    a.download = filename;\r\n                    document.body.appendChild(a);\r\n                    a.click();\r\n                    document.body.removeChild(a);\r\n                    setTimeout(() => URL.revokeObjectURL(blobUrl), 1000);\r\n\r\n                    this.showDownloadProgress('Completed!', 100, receivedSize, totalSize);\r\n                    setTimeout(() => this.hideDownloadProgress(), 3000);\r\n                } catch (error) {\r\n                    if (error.name === 'AbortError') {\r\n                        this.showDownloadProgress('Download cancelled', 0);\r\n                    } else {\r\n                        console.error('Download error:', error);\r\n                        this.showError(`Could not download ${type}. Please try again.`);\r\n                        this.hideDownloadProgress();\r\n                    }\r\n                    setTimeout(() => this.hideDownloadProgress(), 2000);\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            downloadVideoWithAudio(url, filename, button) {\r\n                this.downloadFile(url, filename, button, 'video');\r\n            }\r\n\r\n            downloadImage(url, filename, button) {\r\n                this.downloadFile(url, filename, button, 'image');\r\n            }\r\n\r\n            showDownloadProgress(text, progress = 0, downloaded = 0, total = 0) {\r\n                const progressDiv = document.getElementById('rpv-downloadProgress');\r\n                document.getElementById('rpv-progressText').textContent = text;\r\n                document.getElementById('rpv-progressBarFill').style.width = `${progress}%`;\r\n                document.getElementById('rpv-progressPercent').textContent = `${Math.round(progress)}%`;\r\n                document.getElementById('rpv-progressSize').textContent = `${this.formatFileSize(downloaded)} \/ ${this.formatFileSize(total)}`;\r\n                progressDiv.classList.add('rpv-show');\r\n            }\r\n\r\n            hideDownloadProgress() {\r\n                document.getElementById('rpv-downloadProgress').classList.remove('rpv-show');\r\n            }\r\n\r\n            cancelDownload() {\r\n                if (this.downloadController) {\r\n                    this.downloadController.abort();\r\n                }\r\n            }\r\n\r\n            toggleText(postId, fullText, button) {\r\n                const textElement = document.getElementById(`rpv-text-${postId}`);\r\n                if (button.textContent === 'Show More') {\r\n                    textElement.textContent = fullText;\r\n                    button.textContent = 'Show Less';\r\n                } else {\r\n                    textElement.textContent = this.truncateText(fullText, 400);\r\n                    button.textContent = 'Show More';\r\n                }\r\n            }\r\n\r\n            toggleTitle(postId) {\r\n                const titleElem = document.getElementById(`rpv-title-${postId}`);\r\n                const btn = titleElem.nextElementSibling;\r\n                if (btn.dataset.state === 'collapsed') {\r\n                    titleElem.classList.add('rpv-full');\r\n                    btn.textContent = 'Show Less';\r\n                    btn.dataset.state = 'expanded';\r\n                } else {\r\n                    titleElem.classList.remove('rpv-full');\r\n                    btn.textContent = 'Show More';\r\n                    btn.dataset.state = 'collapsed';\r\n                }\r\n            }\r\n\r\n            togglePlayPause(postId) {\r\n                const video = document.getElementById(`rpv-video-${postId}`);\r\n                if (!video) return;\r\n                document.querySelectorAll('.rpv-video-player').forEach(v => {\r\n                    if (v !== video && !v.paused) v.pause();\r\n                });\r\n                video.paused ? video.play() : video.pause();\r\n            }\r\n\r\n            setupModal() {\r\n                const modal = document.getElementById('rpv-imageModal');\r\n                const closeBtn = modal.querySelector('.rpv-close');\r\n                closeBtn.onclick = () => modal.style.display = 'none';\r\n                modal.onclick = (event) => {\r\n                    if (event.target === modal) modal.style.display = 'none';\r\n                };\r\n            }\r\n\r\n            openImageModal(imageUrl) {\r\n                const modal = document.getElementById('rpv-imageModal');\r\n                const modalImg = document.getElementById('rpv-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('rpv-searchBtn');\r\n                document.getElementById('rpv-searchText').style.display = show ? 'none' : 'block';\r\n                document.getElementById('rpv-searchSpinner').style.display = show ? 'block' : 'none';\r\n                document.getElementById('rpv-loading').style.display = show ? 'block' : 'none';\r\n                searchBtn.disabled = show;\r\n            }\r\n\r\n            showPostsSection(show) {\r\n                document.getElementById('rpv-postsSection').style.display = show ? 'block' : 'none';\r\n            }\r\n\r\n            showError(message) {\r\n                const errorContainer = document.getElementById('rpv-errorMessage');\r\n                errorContainer.textContent = message;\r\n                errorContainer.style.display = 'block';\r\n            }\r\n\r\n            clearError() {\r\n                document.getElementById('rpv-errorMessage').style.display = 'none';\r\n            }\r\n\r\n            escapeHtml(value) {\r\n                const div = document.createElement('div');\r\n                div.textContent = value == null ? '' : String(value);\r\n                return div.innerHTML;\r\n            }\r\n\r\n            escapeAttr(value) {\r\n                return this.escapeHtml(value).replace(\/\"\/g, '&quot;').replace(\/'\/g, '&#39;');\r\n            }\r\n\r\n            decodeRedditUrl(url) {\r\n                return (url || '').replace(\/&amp;\/g, '&');\r\n            }\r\n\r\n            formatNumber(num) {\r\n                return Intl.NumberFormat('en-US', { notation: 'compact', maximumFractionDigits: 1 }).format(num);\r\n            }\r\n\r\n            formatDate(timestamp) {\r\n                return new Date(timestamp * 1000).toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric' });\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            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, '_').substring(0, 100);\r\n            }\r\n\r\n            extractRedditUsername(input) {\r\n                if (!input) return null;\r\n                const cleanedInput = input.trim();\r\n                const urlMatch = cleanedInput.match(\/reddit\\.com\\\/(?:u|user)\\\/([A-Za-z0-9_\\-]+)\/i);\r\n                if (urlMatch) return urlMatch[1];\r\n                const uMatch = cleanedInput.match(\/^(?:u\\\/)?([A-Za-z0-9_\\-]+)$\/i);\r\n                if (uMatch) return uMatch[1];\r\n                return null;\r\n            }\r\n        }\r\n\r\n        const redditViewer = new RedditPostViewer();\r\n    <\/script>\r\n<\/div>\n<div class=\"tc-wp-tool-content\"><div class=\"wpc-scope-198\">\n<div class=\"tc-wp-content-root\" data-tc-wp-scope=\"1\" style=\"max-width:100%;box-sizing:border-box;isolation:isolate;min-width:0;position:relative;\">\n<div class=\"rp\">\n<div class=\"rp-inner\">\n<div class=\"rp-hb\" style=\"margin-top: 4rem;\"><\/div>\n<\/div><section class=\"rp-sec rp-bg-wh\" aria-labelledby=\"rp-h1\">\n<div class=\"rp-inner\">\n<div class=\"rp-hb\">\n<h2 id=\"rp-h1\">How <span class=\"rp-gx\">Reddit Post Viewer<\/span> Works<\/h2>\n<p>Browse Reddit posts from any subreddit with our intuitive platform built for speed and ease.<\/p>\n<\/div>\n<div class=\"rp-g3\" data-rp-grid=\"g1\">\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n<\/div>\n<h3>Post View<\/h3>\n<p>View any Reddit post in full detail with complete content rendering and rich media support including images videos and embedded links for a complete reading experience.<\/p>\n<\/article>\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"\/><\/svg>\n<\/div>\n<h3>Post Feed<\/h3>\n<p>Browse posts from any subreddit in a clean organized feed with infinite scrolling support letting you consume content continuously without pagination interruptions.<\/p>\n<\/article>\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg>\n<\/div>\n<h3>Post Details<\/h3>\n<p>See upvotes comments and awards with detailed metadata for every Reddit post you view providing comprehensive insight into content popularity and community reception.<\/p>\n<\/article>\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg>\n<\/div>\n<h3>Post History<\/h3>\n<p>Track user post history and browse through all submissions from any Reddit account making it easy to review an author's content contributions over time.<\/p>\n<\/article>\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\n<\/div>\n<h3>Post Search<\/h3>\n<p>Find posts by keyword or subreddit with powerful search filters and instant results helping you locate specific content quickly without endless manual scrolling.<\/p>\n<\/article>\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"\/><\/svg>\n<\/div>\n<h3>Post Save<\/h3>\n<p>Save posts to your collection for later reading with organized folders and tags allowing you to build a personal library of interesting Reddit content.<\/p>\n<\/article>\n<\/div>\n<\/div>\n<\/section>\n\n<section class=\"rp-sec rp-bg-ow\" aria-labelledby=\"rp-h2\">\n<div class=\"rp-inner\">\n<div class=\"rp-hb\">\n<h2 id=\"rp-h2\">Key Benefits of <span class=\"rp-gx\">Reddit Post Viewer<\/span><\/h2>\n<p>Discover why thousands of users choose our platform for viewing Reddit posts every day.<\/p>\n<\/div>\n<div class=\"rp-g4\" data-rp-grid=\"g2\">\n<article class=\"rp-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><polyline points=\"10 9 9 9 8 9\"\/><\/svg>\n<\/div>\n<div class=\"rp-cb-body\">\n<h3>Full Content<\/h3>\n<p>See complete post with all comments threads nested replies and media attachments included.<\/p>\n<\/div>\n<\/article>\n<article class=\"rp-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg>\n<\/div>\n<div class=\"rp-cb-body\">\n<h3>No Login<\/h3>\n<p>View without Reddit account instantly access public posts with zero authentication required.<\/p>\n<\/div>\n<\/article>\n<article class=\"rp-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"4.93\" y1=\"4.93\" x2=\"19.07\" y2=\"19.07\"\/><\/svg>\n<\/div>\n<div class=\"rp-cb-body\">\n<h3>Unlimited Access<\/h3>\n<p>No restrictions on post viewing browse as many posts as you want without any limits.<\/p>\n<\/div>\n<\/article>\n<article class=\"rp-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg>\n<\/div>\n<div class=\"rp-cb-body\">\n<h3>Free Service<\/h3>\n<p>All post features at zero cost no premium tiers no subscriptions and no hidden charges.<\/p>\n<\/div>\n<\/article>\n<article class=\"rp-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10\"\/><\/svg>\n<\/div>\n<div class=\"rp-cb-body\">\n<h3>Quick Load<\/h3>\n<p>Posts load instantly with optimized rendering and smart caching for zero wait times.<\/p>\n<\/div>\n<\/article>\n<article class=\"rp-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/><\/svg>\n<\/div>\n<div class=\"rp-cb-body\">\n<h3>Any Subreddit<\/h3>\n<p>Works with any public subreddit from the largest communities to the most niche topics.<\/p>\n<\/div>\n<\/article>\n<article class=\"rp-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><line x1=\"4\" y1=\"21\" x2=\"4\" y2=\"14\"\/><line x1=\"9\" y1=\"21\" x2=\"9\" y2=\"8\"\/><line x1=\"14\" y1=\"21\" x2=\"14\" y2=\"11\"\/><line x1=\"19\" y1=\"21\" x2=\"19\" y2=\"4\"\/><\/svg>\n<\/div>\n<div class=\"rp-cb-body\">\n<h3>Sort Options<\/h3>\n<p>Sort by hot new or top to find the most relevant posts based on your preferences.<\/p>\n<\/div>\n<\/article>\n<article class=\"rp-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg>\n<\/div>\n<div class=\"rp-cb-body\">\n<h3>Post Export<\/h3>\n<p>Export saved posts to JSON or CSV format for offline analysis and content archiving.<\/p>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/section>\n\n<section class=\"rp-sec rp-bg-wh\" aria-labelledby=\"rp-h3\">\n<div class=\"rp-inner\">\n<div class=\"rp-hb\">\n<h2 id=\"rp-h3\">Best Use Case of <span class=\"rp-gx\">Reddit Post Viewer<\/span><\/h2>\n<p>Explore real-world scenarios where our Reddit post viewer delivers the most value and impact.<\/p>\n<\/div>\n<div class=\"rp-g3\" data-rp-grid=\"g3\">\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\n<\/div>\n<h3>Content Research<\/h3>\n<p>Study post content strategies to understand what makes certain topics resonate with audiences identifying patterns in successful posts across different communities.<\/p>\n<\/article>\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\"\/><polyline points=\"17 6 23 6 23 12\"\/><\/svg>\n<\/div>\n<h3>Trend Analysis<\/h3>\n<p>Track trending post topics across subreddits to identify viral content patterns and themes staying ahead of emerging discussions and popular conversation trends.<\/p>\n<\/article>\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n<\/div>\n<h3>Community Intel<\/h3>\n<p>Understand subreddit dynamics including active hours moderation style and member behavior giving you a complete picture of how communities operate and engage.<\/p>\n<\/article>\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"\/><\/svg>\n<\/div>\n<h3>Engagement Study<\/h3>\n<p>Analyze post engagement metrics to determine which content formats drive the most interaction from text posts and images to videos and link-based submissions.<\/p>\n<\/article>\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n<\/div>\n<h3>Competitor Watch<\/h3>\n<p>Monitor competitor subreddits to track their content strategy community engagement and reach gaining valuable competitive intelligence for your own Reddit marketing efforts.<\/p>\n<\/article>\n<article class=\"rp-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"rp-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polygon points=\"10 8 16 12 10 16\"\/><\/svg>\n<\/div>\n<h3>Topic Discovery<\/h3>\n<p>Discover trending discussion topics and emerging conversations before they go mainstream giving you early insight into what Reddit communities are talking about right now.<\/p>\n<\/article>\n<\/div>\n<\/div>\n<\/section>\n\n<\/div>\n<noscript><\/noscript>\n<\/div>\n<\/div><\/div>\n<\/section>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":5398,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-homepage.php","meta":{"footnotes":""},"class_list":["post-5627","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5627","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/comments?post=5627"}],"version-history":[{"count":1,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5627\/revisions"}],"predecessor-version":[{"id":5767,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5627\/revisions\/5767"}],"up":[{"embeddable":true,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5398"}],"wp:attachment":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/media?parent=5627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}