{"id":5918,"date":"2026-06-01T00:00:00","date_gmt":"2026-06-01T00:00:00","guid":{"rendered":"https:\/\/viewari.com\/?page_id=5918"},"modified":"2026-06-14T05:48:09","modified_gmt":"2026-06-14T05:48:09","slug":"post","status":"publish","type":"page","link":"https:\/\/viewari.com\/reddit\/post\/","title":{"rendered":"Reddit Post Viewer &#8211; Read Hidden &amp; Deleted Posts Safely"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5918\" class=\"elementor elementor-5918\">\n\t\t\t\t<div class=\"elementor-element elementor-element-53ddf44a e-con-full e-flex e-con e-parent\" data-id=\"53ddf44a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-67513c96 elementor-widget elementor-widget-shortcode\" data-id=\"67513c96\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <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<body data-aos-easing=\"ease-in-out\" data-aos-duration=\"800\" data-aos-delay=\"0\" data-new-gr-c-s-check-loaded=\"14.1242.0\"\r\n    data-gr-ext-installed=\"\" data-new-gr-c-s-loaded=\"14.1223.0\" class=\"\" style=\"\">\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 src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n<script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n \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, { headers: { 'User-Agent': 'RedditPostViewer\/1.0' } });\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, { headers: { 'User-Agent': 'RedditPostViewer\/1.0' } });\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 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 = post.secure_media.reddit_video.fallback_url;\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=\"${videoUrl}\" type=\"video\/mp4\">\r\n                                <\/video>\r\n                                <button class=\"rpv-custom-play-pause-btn\" id=\"rpv-playpause-${post.id}\">\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\" data-url=\"https:\/\/www.reddit.com${post.permalink}\" data-postid=\"${post.id}\">\ud83d\udd0a Stream with Audio<\/button>\r\n                        <button class=\"rpv-control-btn rpv-download-btn\" data-url=\"https:\/\/www.reddit.com${post.permalink}\" data-filename=\"${this.sanitizeFilename(post.title)}.mp4\" data-postid=\"${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.map(item => post.media_metadata[item.media_id]?.s?.u?.replace(\/&\/g, '&')).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                                        <div class='rpv-gallery-image-wrapper'>\r\n                                            <img decoding=\"async\" src=\"${imgUrl}\" alt=\"Gallery image ${idx + 1}\" class=\"rpv-gallery-image\" data-fullurl=\"${imgUrl}\">\r\n                                        <\/div>`).join('')}\r\n                                <\/div>\r\n                            <\/div>`;\r\n                        mediaControls = images.map((imgUrl, idx) => `\r\n                            <button class='rpv-control-btn rpv-download-btn' data-url=\"${imgUrl}\" data-filename=\"${this.sanitizeFilename(post.title)}_${idx + 1}.jpg\">\ud83d\udce5 Download Image ${idx + 1}<\/button>\r\n                        `).join('');\r\n                    }\r\n                } else if (hasImage) {\r\n                    const imageUrl = post.preview.images[0].source.url.replace(\/&\/g, '&');\r\n                    mediaContent = `\r\n                        <div class=\"rpv-media-container\">\r\n                            <img decoding=\"async\" src=\"${imageUrl}\" alt=\"${post.title}\" class=\"rpv-image-preview\" data-fullurl=\"${imageUrl}\">\r\n                        <\/div>`;\r\n                    mediaControls = `<button class=\"rpv-control-btn rpv-download-btn\" data-url=\"${imageUrl}\" data-filename=\"${this.sanitizeFilename(post.title)}.jpg\">\ud83d\udce5 Download Image<\/button>`;\r\n                }\r\n\r\n                const isTitleTruncated = post.title.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                    textContent = `\r\n                        <div class=\"rpv-post-text\" id=\"rpv-text-${post.id}\" style=\"white-space: pre-wrap; word-wrap: break-word;\">\r\n                            ${isLongText ? this.truncateText(post.selftext, 400) : post.selftext}\r\n                        <\/div>\r\n                        ${isLongText ? `<button class=\"rpv-expand-btn\" data-postid=\"${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\">${post.subreddit_name_prefixed}<\/span>\r\n                            <span class=\"rpv-post-meta\">${this.formatDate(post.created_utc)}<\/span>\r\n                        <\/div>\r\n                        <h2 class=\"rpv-post-title ${isTitleTruncated ? '' : 'rpv-full'}\" id=\"rpv-title-${post.id}\">${post.title}<\/h2>\r\n                        ${isTitleTruncated ? `<button class=\"rpv-show-title-btn\" data-postid=\"${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                    URL.revokeObjectURL(blobUrl);\r\n\r\n                    this.showDownloadProgress('Completed!', 100, totalSize, 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            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<\/body>\r\n\r\n<!-- ======== Content Section Start ======== -->\r\n<!-- Reddit Post Viewer - 3 Content Sections + Shortcode -->\r\n\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\" \/>\r\n\r\n<style>\r\n  .rdpv-s1-root { --s1-bg: #ffffff; --s1-card-bg: #fef6f0; --s1-text: #0f172a; --s1-text-soft: #334155; --s1-text-muted: #64748b; --s1-primary: #FF4500; --s1-accent: #FF8717; width: 100%; background: var(--s1-bg); padding: 80px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .rdpv-s1-container { max-width: 1200px; margin: 0 auto; }\r\n  .rdpv-s1-header { text-align: center; margin-bottom: 30px; }\r\n  .rdpv-s1-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .rdpv-highlight { background: linear-gradient(135deg, #FF4500 0%, #FF8717 50%, #FFB000 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }\r\n  .rdpv-s1-subheading { font-size: clamp(0.8rem, 2vw, 1rem); color: var(--s1-text-muted); max-width: 700px; margin: 0 auto; line-height: 1.6; }\r\n  .rdpv-s1-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .rdpv-s1-card { background: var(--s1-card-bg); border-radius: 10px; padding: 32px 28px; position: relative; overflow: hidden; transition: all 0.4s ease; cursor: pointer; border: 2px solid transparent; opacity: 0; animation: rdpv-s1-fadeSlideUp 0.6s ease forwards; }\r\n  .rdpv-s1-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .rdpv-s1-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .rdpv-s1-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .rdpv-s1-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .rdpv-s1-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .rdpv-s1-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes rdpv-s1-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .rdpv-s1-card::before { content: \"\"; position: absolute; inset: 0; border-radius: 10px; padding: 2px; background: linear-gradient(90deg, var(--s1-primary), var(--s1-accent), var(--s1-primary)); background-size: 300% 100%; -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity 0.3s ease; animation: rdpv-s1-borderTrace 2s linear infinite; }\r\n  .rdpv-s1-card:hover::before { opacity: 1; }\r\n  @keyframes rdpv-s1-borderTrace { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }\r\n  .rdpv-s1-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(255, 69, 0, 0.15); }\r\n  .rdpv-s1-icon-wrap { width: 56px; height: 56px; background: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%); border: 2px solid #e2e8f0; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; transition: all 0.4s ease; }\r\n  .rdpv-s1-card:hover .rdpv-s1-icon-wrap { border-color: var(--s1-primary); background: linear-gradient(135deg, var(--s1-primary) 0%, var(--s1-accent) 100%); }\r\n  .rdpv-s1-icon { font-size: 24px; color: var(--s1-primary); transition: all 0.4s ease; }\r\n  .rdpv-s1-card:hover .rdpv-s1-icon { color: #ffffff; transform: rotate(15deg) scale(1.1); }\r\n  .rdpv-s1-card-title { font-size: 1.2rem; font-weight: 700; color: var(--s1-text); margin-bottom: 12px; }\r\n  .rdpv-s1-card-desc { font-size: 0.95rem; color: var(--s1-text-soft); line-height: 1.6; }\r\n\r\n  .rdpv-s2-root { --s2-bg: #fef6f0; --s2-card-bg: #ffffff; --s2-text: #0f172a; --s2-text-soft: #334155; --s2-text-muted: #64748b; --s2-primary: #FF4500; --s2-accent: #FF8717; width: 100%; background: var(--s2-bg); padding: 80px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .rdpv-s2-container { max-width: 1200px; margin: 0 auto; }\r\n  .rdpv-s2-header { text-align: center; margin-bottom: 30px; }\r\n  .rdpv-s2-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .rdpv-s2-subheading { font-size: clamp(0.8rem, 2vw, 1rem); color: var(--s2-text-muted); max-width: 700px; margin: 0 auto; line-height: 1.6; }\r\n  .rdpv-s2-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .rdpv-s2-card { background: var(--s2-card-bg); border-radius: 10px; padding: 32px 28px; text-align: center; position: relative; transition: all 0.4s ease; cursor: pointer; border: 1px solid #e2e8f0; opacity: 0; animation: rdpv-s2-fadeSlideUp 0.6s ease forwards; }\r\n  .rdpv-s2-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .rdpv-s2-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .rdpv-s2-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .rdpv-s2-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .rdpv-s2-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .rdpv-s2-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes rdpv-s2-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .rdpv-s2-card::after { content: \"\"; position: absolute; inset: 0; border-radius: 10px; box-shadow: 0 0 0 0 rgba(255, 69, 0, 0.4); opacity: 0; pointer-events: none; }\r\n  .rdpv-s2-card:hover::after { animation: rdpv-s2-pulseEcho 1.5s ease-out infinite; }\r\n  @keyframes rdpv-s2-pulseEcho { 0% { box-shadow: 0 0 0 0 rgba(255, 69, 0, 0.4); opacity: 1; } 100% { box-shadow: 0 0 0 20px rgba(255, 69, 0, 0); opacity: 0; } }\r\n  .rdpv-s2-card:hover { transform: translateY(-8px); }\r\n  .rdpv-s2-icon-wrap { width: 64px; height: 64px; margin: 0 auto 20px; background: linear-gradient(135deg, var(--s2-primary) 0%, var(--s2-accent) 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); }\r\n  .rdpv-s2-card:hover .rdpv-s2-icon-wrap { animation: rdpv-s2-elasticBounce 0.6s ease; }\r\n  @keyframes rdpv-s2-elasticBounce { 0% { transform: scale(1); } 30% { transform: scale(0.85) translateY(5px); } 50% { transform: scale(1.15) translateY(-10px); } 70% { transform: scale(0.95) translateY(2px); } 100% { transform: scale(1) translateY(0); } }\r\n  .rdpv-s2-icon { font-size: 26px; color: #ffffff; transition: transform 0.3s ease; }\r\n  .rdpv-s2-card:hover .rdpv-s2-icon { transform: rotate(10deg); }\r\n  .rdpv-s2-card-title { font-size: 1.2rem; font-weight: 700; color: var(--s2-text); margin-bottom: 12px; }\r\n  .rdpv-s2-card-desc { font-size: 0.95rem; color: var(--s2-text-soft); line-height: 1.6; }\r\n\r\n  .rdpv-s3-root { --s3-bg: #ffffff; --s3-card-bg: #fef6f0; --s3-text: #0f172a; --s3-text-soft: #334155; --s3-text-muted: #64748b; --s3-primary: #FF4500; --s3-accent: #FF8717; width: 100%; background: var(--s3-bg); padding: 80px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .rdpv-s3-container { max-width: 1200px; margin: 0 auto; }\r\n  .rdpv-s3-header { text-align: center; margin-bottom: 30px; }\r\n  .rdpv-s3-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .rdpv-s3-subheading { font-size: clamp(0.8rem, 2vw, 1rem); color: var(--s3-text-muted); max-width: 700px; margin: 0 auto; line-height: 1.6; }\r\n  .rdpv-s3-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .rdpv-s3-card { background: var(--s3-card-bg); border-radius: 10px; padding: 28px; position: relative; overflow: hidden; transition: all 0.4s ease; cursor: pointer; border: 1px solid transparent; opacity: 0; animation: rdpv-s3-fadeSlideUp 0.6s ease forwards; }\r\n  .rdpv-s3-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .rdpv-s3-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .rdpv-s3-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .rdpv-s3-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .rdpv-s3-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .rdpv-s3-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes rdpv-s3-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .rdpv-s3-card::before { content: \"\"; position: absolute; width: 200px; height: 200px; background: radial-gradient(circle, rgba(255, 69, 0, 0.25) 0%, transparent 70%); border-radius: 50%; pointer-events: none; opacity: 0; transform: translate(-50%, -50%); transition: opacity 0.4s ease; left: var(--mouse-x, 50%); top: var(--mouse-y, 50%); }\r\n  .rdpv-s3-card:hover::before { opacity: 1; }\r\n  .rdpv-s3-card:hover { border-color: rgba(255, 69, 0, 0.3); transform: translateY(-4px); box-shadow: 0 12px 30px rgba(255, 69, 0, 0.1); }\r\n  .rdpv-s3-step-badge { position: absolute; top: 16px; right: 16px; width: 28px; height: 28px; background: linear-gradient(135deg, var(--s3-primary) 0%, var(--s3-accent) 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 700; color: #ffffff; transition: transform 0.3s ease; }\r\n  .rdpv-s3-card:hover .rdpv-s3-step-badge { transform: scale(1.2) rotate(10deg); }\r\n  .rdpv-s3-icon-wrap { width: 52px; height: 52px; background: #ffffff; border: 2px solid #e2e8f0; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; transition: all 0.4s ease; transform-style: preserve-3d; }\r\n  .rdpv-s3-card:hover .rdpv-s3-icon-wrap { transform: rotateY(180deg); border-color: var(--s3-primary); background: linear-gradient(135deg, var(--s3-primary) 0%, var(--s3-accent) 100%); }\r\n  .rdpv-s3-icon { font-size: 22px; color: var(--s3-primary); transition: all 0.4s ease; backface-visibility: hidden; }\r\n  .rdpv-s3-card:hover .rdpv-s3-icon { color: #ffffff; transform: rotateY(180deg); }\r\n  .rdpv-s3-card-title { font-size: 1.1rem; font-weight: 700; color: var(--s3-text); margin-bottom: 10px; position: relative; z-index: 1; }\r\n  .rdpv-s3-card-desc { font-size: 0.9rem; color: var(--s3-text-soft); line-height: 1.5; position: relative; z-index: 1; }\r\n\r\n  .rdpv-shortcode { --sc-bg: #ffffff; --sc-border: #e2e8f0; --sc-text: #0f172a; --sc-text-muted: #64748b; --sc-primary: #FF4500; --sc-accent: #FF8717; width: 100%; background: var(--sc-bg); padding: 60px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .rdpv-shortcode-container { max-width: 1200px; margin: 0 auto; }\r\n  .rdpv-shortcode-inner { border: 2px dashed var(--sc-border); border-radius: 12px; padding: 40px; text-align: center; background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); transition: border-color 0.3s ease; }\r\n  .rdpv-shortcode-inner:hover { border-color: var(--sc-primary); }\r\n  .rdpv-shortcode-placeholder { display: inline-block; background: linear-gradient(135deg, var(--sc-primary) 0%, var(--sc-accent) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-size: clamp(1.2rem, 3vw, 1.8rem); font-weight: 800; letter-spacing: 1px; }\r\n  .rdpv-shortcode-hint { margin-top: 12px; font-size: 0.9rem; color: var(--sc-text-muted); }\r\n\r\n  @media (max-width: 1024px) { .rdpv-s1-grid, .rdpv-s2-grid, .rdpv-s3-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }\r\n  @media (max-width: 640px) { .rdpv-s1-root, .rdpv-s2-root, .rdpv-s3-root, .rdpv-shortcode { padding: 50px 10px; } .rdpv-s1-grid, .rdpv-s2-grid, .rdpv-s3-grid { grid-template-columns: 1fr; gap: 16px; } .rdpv-s1-card, .rdpv-s2-card, .rdpv-s3-card { padding: 28px 24px; } .rdpv-shortcode-inner { padding: 24px 16px; } }\r\n<\/style>\r\n\r\n<section class=\"rdpv-shortcode\"><div class=\"rdpv-shortcode-container\"><\/div><\/section>\r\n\r\n<section class=\"rdpv-s1-root\" id=\"what-is-reddit-post-viewer\">\r\n  <div class=\"rdpv-s1-container\">\r\n    <div class=\"rdpv-s1-header\">\r\n      <h2 class=\"rdpv-s1-heading\">What Is a <span class=\"rdpv-highlight\">Reddit Post Viewer<\/span>?<\/h2>\r\n      <p class=\"rdpv-s1-subheading\">View, read, and analyze Reddit posts in a clean interface<\/p>\r\n    <\/div>\r\n    <div class=\"rdpv-s1-grid\">\r\n      <article class=\"rdpv-s1-card\"><div class=\"rdpv-s1-icon-wrap\"><i class=\"fa-solid fa-file-lines rdpv-s1-icon\"><\/i><\/div><h3 class=\"rdpv-s1-card-title\">Post Reader<\/h3><p class=\"rdpv-s1-card-desc\">Read full Reddit posts without distractions<\/p><\/article>\r\n      <article class=\"rdpv-s1-card\"><div class=\"rdpv-s1-icon-wrap\"><i class=\"fa-solid fa-comments rdpv-s1-icon\"><\/i><\/div><h3 class=\"rdpv-s1-card-title\">Comment Thread<\/h3><p class=\"rdpv-s1-card-desc\">Browse all comments in threaded format<\/p><\/article>\r\n      <article class=\"rdpv-s1-card\"><div class=\"rdpv-s1-icon-wrap\"><i class=\"fa-solid fa-arrow-up rdpv-s1-icon\"><\/i><\/div><h3 class=\"rdpv-s1-card-title\">Vote Count<\/h3><p class=\"rdpv-s1-card-desc\">View upvote and downvote statistics<\/p><\/article>\r\n      <article class=\"rdpv-s1-card\"><div class=\"rdpv-s1-icon-wrap\"><i class=\"fa-solid fa-tag rdpv-s1-icon\"><\/i><\/div><h3 class=\"rdpv-s1-card-title\">Flair & Tag<\/h3><p class=\"rdpv-s1-card-desc\">See post flair and category tags<\/p><\/article>\r\n      <article class=\"rdpv-s1-card\"><div class=\"rdpv-s1-icon-wrap\"><i class=\"fa-solid fa-users rdpv-s1-icon\"><\/i><\/div><h3 class=\"rdpv-s1-card-title\">OP Details<\/h3><p class=\"rdpv-s1-card-desc\">View original poster information<\/p><\/article>\r\n      <article class=\"rdpv-s1-card\"><div class=\"rdpv-s1-icon-wrap\"><i class=\"fa-solid fa-share-nodes rdpv-s1-icon\"><\/i><\/div><h3 class=\"rdpv-s1-card-title\">Share & Save<\/h3><p class=\"rdpv-s1-card-desc\">Share or save posts for later reference<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"rdpv-s2-root\" id=\"why-use-reddit-post-viewer\">\r\n  <div class=\"rdpv-s2-container\">\r\n    <div class=\"rdpv-s2-header\">\r\n      <h2 class=\"rdpv-s2-heading\">Why Use a <span class=\"rdpv-highlight\">Reddit Post Viewer<\/span>?<\/h2>\r\n      <p class=\"rdpv-s2-subheading\">Research discussions, analyze content, and stay informed with ease<\/p>\r\n    <\/div>\r\n    <div class=\"rdpv-s2-grid\">\r\n      <article class=\"rdpv-s2-card\"><div class=\"rdpv-s2-icon-wrap\"><i class=\"fa-solid fa-magnifying-glass rdpv-s2-icon\"><\/i><\/div><h3 class=\"rdpv-s2-card-title\">Content Research<\/h3><p class=\"rdpv-s2-card-desc\">Explore popular discussions and trending topics<\/p><\/article>\r\n      <article class=\"rdpv-s2-card\"><div class=\"rdpv-s2-icon-wrap\"><i class=\"fa-solid fa-chart-line rdpv-s2-icon\"><\/i><\/div><h3 class=\"rdpv-s2-card-title\">Trend Analysis<\/h3><p class=\"rdpv-s2-card-desc\">Track viral posts and community engagement<\/p><\/article>\r\n      <article class=\"rdpv-s2-card\"><div class=\"rdpv-s2-icon-wrap\"><i class=\"fa-solid fa-graduation-cap rdpv-s2-icon\"><\/i><\/div><h3 class=\"rdpv-s2-card-title\">Learn & Explore<\/h3><p class=\"rdpv-s2-card-desc\">Discover informative content across subreddits<\/p><\/article>\r\n      <article class=\"rdpv-s2-card\"><div class=\"rdpv-s2-icon-wrap\"><i class=\"fa-solid fa-newspaper rdpv-s2-icon\"><\/i><\/div><h3 class=\"rdpv-s2-card-title\">News & Updates<\/h3><p class=\"rdpv-s2-card-desc\">Stay updated with real-time community posts<\/p><\/article>\r\n      <article class=\"rdpv-s2-card\"><div class=\"rdpv-s2-icon-wrap\"><i class=\"fa-solid fa-database rdpv-s2-icon\"><\/i><\/div><h3 class=\"rdpv-s2-card-title\">Data Collection<\/h3><p class=\"rdpv-s2-card-desc\">Gather post data for reports and analysis<\/p><\/article>\r\n      <article class=\"rdpv-s2-card\"><div class=\"rdpv-s2-icon-wrap\"><i class=\"fa-solid fa-users-between-lines rdpv-s2-icon\"><\/i><\/div><h3 class=\"rdpv-s2-card-title\">Community Insights<\/h3><p class=\"rdpv-s2-card-desc\">Understand community sentiment and opinions<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"rdpv-s3-root\" id=\"how-to-use-reddit-post-viewer\">\r\n  <div class=\"rdpv-s3-container\">\r\n    <div class=\"rdpv-s3-header\">\r\n      <h3 class=\"rdpv-s3-heading\">How to Use the <span class=\"rdpv-highlight\">Reddit Post Viewer<\/span>?<\/h3>\r\n      <p class=\"rdpv-s3-subheading\">View and analyze Reddit posts with this simple step-by-step process<\/p>\r\n    <\/div>\r\n    <div class=\"rdpv-s3-grid\">\r\n      <article class=\"rdpv-s3-card\"><span class=\"rdpv-s3-step-badge\">1<\/span><div class=\"rdpv-s3-icon-wrap\"><i class=\"fa-solid fa-link rdpv-s3-icon\"><\/i><\/div><h3 class=\"rdpv-s3-card-title\">Paste Post URL<\/h3><p class=\"rdpv-s3-card-desc\">Paste the Reddit post link to load content<\/p><\/article>\r\n      <article class=\"rdpv-s3-card\"><span class=\"rdpv-s3-step-badge\">2<\/span><div class=\"rdpv-s3-icon-wrap\"><i class=\"fa-solid fa-arrow-right-to-bracket rdpv-s3-icon\"><\/i><\/div><h3 class=\"rdpv-s3-card-title\">Load Post<\/h3><p class=\"rdpv-s3-card-desc\">Fetch the full post and all comments<\/p><\/article>\r\n      <article class=\"rdpv-s3-card\"><span class=\"rdpv-s3-step-badge\">3<\/span><div class=\"rdpv-s3-icon-wrap\"><i class=\"fa-solid fa-file-lines rdpv-s3-icon\"><\/i><\/div><h3 class=\"rdpv-s3-card-title\">Read Content<\/h3><p class=\"rdpv-s3-card-desc\">View the post body in full detail<\/p><\/article>\r\n      <article class=\"rdpv-s3-card\"><span class=\"rdpv-s3-step-badge\">4<\/span><div class=\"rdpv-s3-icon-wrap\"><i class=\"fa-solid fa-comments rdpv-s3-icon\"><\/i><\/div><h3 class=\"rdpv-s3-card-title\">Browse Comments<\/h3><p class=\"rdpv-s3-card-desc\">Scroll through threaded comment discussions<\/p><\/article>\r\n      <article class=\"rdpv-s3-card\"><span class=\"rdpv-s3-step-badge\">5<\/span><div class=\"rdpv-s3-icon-wrap\"><i class=\"fa-solid fa-arrow-up rdpv-s3-icon\"><\/i><\/div><h3 class=\"rdpv-s3-card-title\">Check Votes<\/h3><p class=\"rdpv-s3-card-desc\">Review upvote ratios and engagement<\/p><\/article>\r\n      <article class=\"rdpv-s3-card\"><span class=\"rdpv-s3-step-badge\">6<\/span><div class=\"rdpv-s3-icon-wrap\"><i class=\"fa-solid fa-floppy-disk rdpv-s3-icon\"><\/i><\/div><h3 class=\"rdpv-s3-card-title\">Save Post<\/h3><p class=\"rdpv-s3-card-desc\">Save the post for offline reading<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n  (function () {\r\n    var cards = document.querySelectorAll(\".rdpv-s3-card\");\r\n    cards.forEach(function (card) {\r\n      card.addEventListener(\"mousemove\", function (e) {\r\n        var rect = card.getBoundingClientRect();\r\n        card.style.setProperty(\"--mouse-x\", ((e.clientX - rect.left) \/ rect.width) * 100 + \"%\");\r\n        card.style.setProperty(\"--mouse-y\", ((e.clientY - rect.top) \/ rect.height) * 100 + \"%\");\r\n      });\r\n    });\r\n  })();\r\n<\/script>\r\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":4,"featured_media":0,"parent":5539,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-homepage.php","meta":{"footnotes":""},"class_list":["post-5918","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/5918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/comments?post=5918"}],"version-history":[{"count":7,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/5918\/revisions"}],"predecessor-version":[{"id":6060,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/5918\/revisions\/6060"}],"up":[{"embeddable":true,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/5539"}],"wp:attachment":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/media?parent=5918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}