{"id":589,"date":"2025-10-16T03:51:40","date_gmt":"2025-10-16T03:51:40","guid":{"rendered":"https:\/\/viewri.com\/?page_id=589"},"modified":"2025-12-29T06:59:23","modified_gmt":"2025-12-29T06:59:23","slug":"reddit-gallery","status":"publish","type":"page","link":"https:\/\/viewri.com\/ar\/reddit\/reddit-gallery\/","title":{"rendered":"Reddit Gallery Viewer"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_fullwidth_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\r\n    <style>\r\n        :root {\r\n            \/* Professional Teal\/Gray Theme Palette *\/\r\n            --primary: #0d9488;\r\n            \/* Professional Teal *\/\r\n            --primary-glow: rgba(13, 148, 136, 0.3);\r\n            --accent: #0284c7;\r\n            \/* Professional Blue *\/\r\n            --success: #10b981;\r\n            --error: #ef4444;\r\n\r\n            \/* Neutrals for the new theme *\/\r\n            --white: #ffffff;\r\n            --gray-50: #f8fafc;\r\n            --gray-100: #f1f5f9;\r\n            --gray-200: #e2e8f0;\r\n            --gray-300: #cbd5e1;\r\n            --gray-400: #94a3b8;\r\n            --gray-500: #64748b;\r\n            --gray-600: #475569;\r\n            --gray-700: #334155;\r\n            --gray-800: #1e293b;\r\n            --gray-900: #0f172a;\r\n\r\n            \/* Background Colors *\/\r\n            --bg-primary: #f8fafc;\r\n            --bg-secondary: #f1f5f9;\r\n            --bg-tertiary: #e2e8f0;\r\n\r\n            \/* Glassmorphism for the new theme *\/\r\n            --glass-bg: rgba(255, 255, 255, 0.7);\r\n            --glass-border: rgba(203, 213, 225, 0.3);\r\n            --shadow-lg: 0 10px 30px -5px rgba(0, 0, 0, 0.1);\r\n            --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\r\n\r\n            \/* Modern Border Radius *\/\r\n            --radius-md: 12px;\r\n            --radius-lg: 16px;\r\n            --radius-xl: 24px;\r\n\r\n            \/* Layout *\/\r\n            --container-max-width: 1200px;\r\n            --input-height: 60px;\r\n        }\r\n\r\n        \/* Scoped reset to only affect elements inside the wrapper *\/\r\n        #reddit-downloader-app * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        \/* Keyframe Animations are global and do not need scoping *\/\r\n        @keyframes fadeIn {\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 spin {\r\n            from {\r\n                transform: rotate(0deg);\r\n            }\r\n\r\n            to {\r\n                transform: rotate(360deg);\r\n            }\r\n        }\r\n\r\n        @keyframes slide-in-fwd-center {\r\n            0% {\r\n                transform: translateZ(-1400px);\r\n                opacity: 0;\r\n            }\r\n\r\n            100% {\r\n                transform: translateZ(0);\r\n                opacity: 1;\r\n            }\r\n        }\r\n\r\n        @keyframes slide-in-bottom {\r\n            0% {\r\n                transform: translateY(100px);\r\n                opacity: 0;\r\n            }\r\n\r\n            100% {\r\n                transform: translateY(0);\r\n                opacity: 1;\r\n            }\r\n        }\r\n\r\n        @keyframes slideOut {\r\n            0% {\r\n                transform: translateY(0);\r\n                opacity: 1;\r\n            }\r\n\r\n            100% {\r\n                transform: translateY(100px);\r\n                opacity: 0;\r\n            }\r\n        }\r\n\r\n        \/* Main app wrapper replaces body styling *\/\r\n        #reddit-downloader-app {\r\n            font-family: 'Inter', sans-serif;\r\n            background-color: var(--bg-primary);\r\n            color: var(--gray-800);\r\n            line-height: 1.6;\r\n            overflow-x: hidden;\r\n            min-height: 80vh;\r\n            position: relative;\r\n        }\r\n\r\n        #reddit-downloader-app::before {\r\n            content: '';\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100vh;\r\n            pointer-events: none;\r\n            background:\r\n                radial-gradient(circle at 10% 10%, var(--primary) 0%, transparent 25%),\r\n                radial-gradient(circle at 90% 80%, var(--accent) 0%, transparent 25%);\r\n            filter: blur(120px);\r\n            opacity: 0.15;\r\n            z-index: -1;\r\n        }\r\n\r\n        #reddit-downloader-app .container {\r\n            max-width: var(--container-max-width);\r\n            margin: 0 auto;\r\n            padding: clamp(2rem, 5vh, 4rem) 1.5rem;\r\n            min-height: 100vh;\r\n            display: flex;\r\n            flex-direction: column;\r\n            justify-content: center;\r\n            align-items: center;\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        \/* Header *\/\r\n        #reddit-downloader-app .header {\r\n            text-align: center;\r\n            margin-bottom: 3rem;\r\n            animation: fadeIn 0.8s ease-out;\r\n        }\r\n\r\n        #reddit-downloader-app .logo {\r\n            font-size: 4rem;\r\n            color: var(--primary);\r\n            margin-bottom: 1.5rem;\r\n            line-height: 1;\r\n            text-shadow: 0 0 30px var(--primary-glow);\r\n        }\r\n\r\n        #reddit-downloader-app .header h1 {\r\n            font-size: clamp(1.8rem, 5vw, 3.25rem);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n            margin-bottom: 1rem;\r\n            letter-spacing: -0.03em;\r\n            line-height: 1.2;\r\n        }\r\n\r\n        #reddit-downloader-app .header p {\r\n            font-size: 1.125rem;\r\n            color: var(--gray-600);\r\n            max-width: 550px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        \/* Main Card *\/\r\n        #reddit-downloader-app .main-card {\r\n            width: 100%;\r\n            background: var(--glass-bg);\r\n            border: 1px solid var(--glass-border);\r\n            border-radius: var(--radius-xl);\r\n            box-shadow: var(--shadow-lg);\r\n            backdrop-filter: blur(16px) saturate(180%);\r\n            -webkit-backdrop-filter: blur(16px) saturate(180%);\r\n            padding: 2.5rem;\r\n            animation: fadeIn 0.8s ease-out 0.2s backwards;\r\n            position: relative;\r\n        }\r\n\r\n        \/* Form *\/\r\n        #reddit-downloader-app .downloader-form {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 1rem;\r\n            width: 100%;\r\n        }\r\n\r\n        #reddit-downloader-app .input-wrapper {\r\n            position: relative;\r\n            width: 100%;\r\n            display: flex;\r\n            align-items: center;\r\n        }\r\n\r\n        #reddit-downloader-app .url-input {\r\n            width: 100%;\r\n            height: var(--input-height);\r\n            padding: 0 4rem 0 1.5rem;\r\n            font-size: 1rem;\r\n            font-family: 'Inter', sans-serif;\r\n            border: 1px solid var(--gray-300);\r\n            border-radius: var(--radius-md);\r\n            background: var(--white);\r\n            color: var(--gray-800);\r\n            transition: border-color 0.3s, box-shadow 0.3s;\r\n        }\r\n\r\n        #reddit-downloader-app #pasteBtn {\r\n            position: absolute;\r\n            right: 1rem;\r\n            height: 44px;\r\n            width: 44px;\r\n            background: var(--gray-100);\r\n            border: 1px solid var(--gray-200);\r\n            color: var(--gray-600);\r\n            border-radius: 8px;\r\n            cursor: pointer;\r\n            transition: all 0.2s ease;\r\n            font-size: 1.1rem;\r\n        }\r\n\r\n        #reddit-downloader-app #pasteBtn:hover {\r\n            background: var(--gray-200);\r\n            color: var(--gray-800);\r\n        }\r\n\r\n        #reddit-downloader-app .url-input:focus {\r\n            outline: none;\r\n            border-color: var(--primary);\r\n            box-shadow: 0 0 0 3px var(--primary-glow);\r\n        }\r\n\r\n        #reddit-downloader-app .url-input::placeholder {\r\n            color: var(--gray-400);\r\n        }\r\n\r\n        #reddit-downloader-app .submit-btn {\r\n            background: linear-gradient(135deg, var(--primary) 0%, #0d7d73 100%);\r\n            color: var(--white);\r\n            border: none;\r\n            height: var(--input-height);\r\n            font-size: 1.125rem;\r\n            font-weight: 700;\r\n            border-radius: var(--radius-md);\r\n            cursor: pointer;\r\n            display: flex;\r\n            justify-content: center;\r\n            align-items: center;\r\n            gap: 0.75rem;\r\n            transition: all 0.3s ease;\r\n            box-shadow: var(--shadow-md);\r\n        }\r\n\r\n        #reddit-downloader-app .submit-btn:hover:not(:disabled) {\r\n            transform: translateY(-3px);\r\n            box-shadow: 0 7px 20px rgba(13, 148, 136, 0.3);\r\n        }\r\n\r\n        #reddit-downloader-app .submit-btn:active:not(:disabled) {\r\n            transform: translateY(-1px);\r\n            box-shadow: 0 4px 10px rgba(13, 148, 136, 0.2);\r\n        }\r\n\r\n        #reddit-downloader-app .submit-btn:disabled {\r\n            background: var(--gray-300);\r\n            color: var(--gray-500);\r\n            cursor: not-allowed;\r\n            box-shadow: none;\r\n            transform: none;\r\n        }\r\n\r\n        #reddit-downloader-app .submit-btn .fa-spinner {\r\n            animation: spin 1s linear infinite;\r\n        }\r\n\r\n        #reddit-downloader-app #searchAnotherBtn {\r\n            display: none;\r\n            margin-top: 1.5rem;\r\n            background: var(--accent);\r\n            color: var(--white);\r\n            border: none;\r\n            height: var(--input-height);\r\n            font-size: 1.125rem;\r\n            font-weight: 600;\r\n            border-radius: var(--radius-md);\r\n            cursor: pointer;\r\n            width: 100%;\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        #reddit-downloader-app #searchAnotherBtn:hover {\r\n            opacity: 0.9;\r\n            box-shadow: 0 7px 20px rgba(2, 132, 199, 0.3);\r\n        }\r\n\r\n        \/* Loader & Messages *\/\r\n        #reddit-downloader-app .loader {\r\n            display: none;\r\n            width: 40px;\r\n            height: 40px;\r\n            border: 4px solid rgba(13, 148, 136, 0.2);\r\n            border-top-color: var(--primary);\r\n            border-radius: 50%;\r\n            animation: spin 1s linear infinite;\r\n            margin: 2rem auto;\r\n        }\r\n\r\n        #reddit-downloader-app .error-message {\r\n            display: none;\r\n            background: rgba(239, 68, 68, 0.1);\r\n            color: var(--error);\r\n            padding: 1rem 1.5rem;\r\n            border-radius: var(--radius-md);\r\n            margin-top: 1.5rem;\r\n            border: 1px solid rgba(239, 68, 68, 0.3);\r\n            font-weight: 500;\r\n        }\r\n\r\n        \/* Results *\/\r\n        #reddit-downloader-app #result-container {\r\n            display: none;\r\n            width: 100%;\r\n            margin-top: 2rem;\r\n            animation: slide-in-fwd-center 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;\r\n        }\r\n\r\n        #reddit-downloader-app .result-card {\r\n            background: var(--glass-bg);\r\n            border: 1px solid var(--glass-border);\r\n            border-radius: var(--radius-lg);\r\n            overflow: hidden;\r\n            backdrop-filter: blur(16px) saturate(180%);\r\n            -webkit-backdrop-filter: blur(16px) saturate(180%);\r\n        }\r\n\r\n        \/* Image Result Styles *\/\r\n        #reddit-downloader-app .image-preview-container {\r\n            width: 100%;\r\n            background-color: var(--gray-100);\r\n            border-radius: var(--radius-lg) var(--radius-lg) 0 0;\r\n            display: flex;\r\n            justify-content: center;\r\n            align-items: center;\r\n            max-height: 70vh;\r\n        }\r\n\r\n        #reddit-downloader-app .result-image {\r\n            max-width: 100%;\r\n            max-height: 70vh;\r\n            object-fit: contain;\r\n            display: block;\r\n        }\r\n\r\n        #reddit-downloader-app .result-card .info {\r\n            padding: 1.5rem;\r\n        }\r\n\r\n        #reddit-downloader-app .result-card .title {\r\n            font-size: 1.375rem;\r\n            font-weight: 700;\r\n            margin-bottom: 0.25rem;\r\n            color: var(--gray-900);\r\n            line-height: 1.4;\r\n            white-space: nowrap;\r\n            overflow: hidden;\r\n            text-overflow: ellipsis;\r\n        }\r\n\r\n        #reddit-downloader-app .result-card .author {\r\n            font-size: 1rem;\r\n            color: var(--gray-600);\r\n            margin-bottom: 1.5rem;\r\n        }\r\n\r\n        #reddit-downloader-app .download-section {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 0.75rem;\r\n        }\r\n\r\n        #reddit-downloader-app .download-button {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            background: var(--gray-100);\r\n            padding: 1rem 1.25rem;\r\n            border-radius: var(--radius-md);\r\n            border: 1px solid var(--gray-200);\r\n            width: 100%;\r\n            cursor: pointer;\r\n            text-align: left;\r\n            font-size: 1rem;\r\n            font-weight: 500;\r\n            color: var(--gray-800);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        #reddit-downloader-app .download-button:hover {\r\n            background: var(--gray-200);\r\n            border-color: var(--gray-300);\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        #reddit-downloader-app .download-button .icon-text {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 0.75rem;\r\n        }\r\n\r\n        #reddit-downloader-app .download-button .fa-download {\r\n            color: var(--primary);\r\n        }\r\n\r\n        #reddit-downloader-app .file-info {\r\n            background: var(--primary);\r\n            color: white;\r\n            padding: 0.25rem 0.6rem;\r\n            border-radius: 6px;\r\n            font-size: 0.75rem;\r\n            font-weight: 600;\r\n            text-transform: uppercase;\r\n        }\r\n\r\n        \/* Toast Notifications *\/\r\n        #reddit-downloader-app #toast-container {\r\n            position: fixed;\r\n            bottom: 1.5rem;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            display: flex;\r\n            flex-direction: column-reverse;\r\n            align-items: center;\r\n            gap: 1rem;\r\n            z-index: 9999;\r\n            pointer-events: none;\r\n            width: 90%;\r\n            max-width: 420px;\r\n        }\r\n\r\n        #reddit-downloader-app .toast {\r\n            color: white;\r\n            padding: 1rem 1.5rem;\r\n            border-radius: var(--radius-md);\r\n            box-shadow: var(--shadow-lg);\r\n            font-weight: 500;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 0.75rem;\r\n            pointer-events: auto;\r\n            width: 100%;\r\n            min-height: 50px;\r\n            border: 1px solid rgba(255, 255, 255, 0.2);\r\n            backdrop-filter: blur(10px);\r\n            animation: slide-in-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.progress .toast-content {\r\n            flex-grow: 1;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.progress .progress-toast-bar {\r\n            width: 100%;\r\n            height: 6px;\r\n            background-color: rgba(0, 0, 0, 0.2);\r\n            border-radius: 3px;\r\n            margin-top: 0.5rem;\r\n            overflow: hidden;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.progress .progress-toast-filled {\r\n            width: 0%;\r\n            height: 100%;\r\n            background-color: var(--white);\r\n            border-radius: 3px;\r\n            transition: width 0.1s linear;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.progress .cancel-download-btn {\r\n            background: none;\r\n            border: none;\r\n            color: white;\r\n            font-size: 1.2rem;\r\n            cursor: pointer;\r\n            margin-left: 0.5rem;\r\n            opacity: 0.8;\r\n            transition: opacity 0.2s;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.progress .cancel-download-btn:hover {\r\n            opacity: 1;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.info {\r\n            background: rgba(2, 132, 199, 0.9);\r\n        }\r\n\r\n        #reddit-downloader-app .toast.success {\r\n            background: rgba(16, 185, 129, 0.9);\r\n        }\r\n\r\n        #reddit-downloader-app .toast.error {\r\n            background: rgba(239, 68, 68, 0.9);\r\n        }\r\n\r\n        \/* Responsive *\/\r\n        @media (max-width: 992px) {\r\n            #reddit-downloader-app .container {\r\n                padding: clamp(1.5rem, 4vh, 3rem) 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .logo {\r\n                font-size: 3.5rem;\r\n                margin-bottom: 1.2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header h1 {\r\n                font-size: clamp(1.6rem, 4.5vw, 2.8rem);\r\n                margin-bottom: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header p {\r\n                font-size: 1rem;\r\n                max-width: 500px;\r\n            }\r\n\r\n            #reddit-downloader-app .main-card {\r\n                padding: 2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .url-input {\r\n                height: 55px;\r\n                padding: 0 3.5rem 0 1.25rem;\r\n            }\r\n\r\n            #reddit-downloader-app #pasteBtn {\r\n                height: 40px;\r\n                width: 40px;\r\n                font-size: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .submit-btn,\r\n            #reddit-downloader-app #searchAnotherBtn {\r\n                height: 55px;\r\n                font-size: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app #result-container {\r\n                margin-top: 1.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .info {\r\n                padding: 1.25rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .title {\r\n                font-size: 1.25rem;\r\n                margin-bottom: 0.2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .author {\r\n                font-size: 0.9rem;\r\n                margin-bottom: 1.2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button {\r\n                padding: 0.9rem 1.1rem;\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            #reddit-downloader-app .file-info {\r\n                padding: 0.2rem 0.5rem;\r\n                font-size: 0.7rem;\r\n            }\r\n\r\n            #reddit-downloader-app #toast-container {\r\n                bottom: 1.2rem;\r\n                width: 95%;\r\n                max-width: 380px;\r\n            }\r\n\r\n            #reddit-downloader-app .toast {\r\n                padding: 0.9rem 1.2rem;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            #reddit-downloader-app .container {\r\n                padding: clamp(1rem, 3vh, 2.5rem) 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header {\r\n                margin-bottom: 2.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .logo {\r\n                font-size: 3rem;\r\n                margin-bottom: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header h1 {\r\n                font-size: clamp(1.4rem, 4vw, 2.2rem);\r\n            }\r\n\r\n            #reddit-downloader-app .header p {\r\n                font-size: 0.95rem;\r\n                max-width: 450px;\r\n            }\r\n\r\n            #reddit-downloader-app .main-card {\r\n                padding: 1.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .url-input {\r\n                height: 50px;\r\n                padding: 0 3rem 0 1rem;\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            #reddit-downloader-app #pasteBtn {\r\n                right: 0.8rem;\r\n                height: 36px;\r\n                width: 36px;\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            #reddit-downloader-app .submit-btn,\r\n            #reddit-downloader-app #searchAnotherBtn {\r\n                height: 50px;\r\n                font-size: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .loader {\r\n                width: 35px;\r\n                height: 35px;\r\n                margin: 1.5rem auto;\r\n            }\r\n\r\n            #reddit-downloader-app .error-message {\r\n                padding: 0.9rem 1.2rem;\r\n                margin-top: 1.2rem;\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .title {\r\n                font-size: 1.15rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .author {\r\n                font-size: 0.85rem;\r\n                margin-bottom: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-section {\r\n                gap: 0.6rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button {\r\n                padding: 0.8rem 1rem;\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            #reddit-downloader-app #toast-container {\r\n                bottom: 1rem;\r\n                max-width: 350px;\r\n            }\r\n\r\n            #reddit-downloader-app .toast {\r\n                padding: 0.8rem 1rem;\r\n                font-size: 0.95rem;\r\n                min-height: 45px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 600px) {\r\n            #reddit-downloader-app .container {\r\n                padding: 1.5rem 0.7rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header {\r\n                margin-bottom: 2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .logo {\r\n                font-size: 2.8rem;\r\n                margin-bottom: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header h1 {\r\n                font-size: clamp(1.2rem, 5vw, 2rem);\r\n            }\r\n\r\n            #reddit-downloader-app .header p {\r\n                font-size: 0.9rem;\r\n                max-width: 350px;\r\n            }\r\n\r\n            #reddit-downloader-app .main-card {\r\n                padding: 1.5rem;\r\n                border-radius: var(--radius-lg);\r\n            }\r\n\r\n            #reddit-downloader-app .url-input {\r\n                height: 48px;\r\n                padding: 0 2.8rem 0 0.9rem;\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            #reddit-downloader-app #pasteBtn {\r\n                right: 0.7rem;\r\n                height: 34px;\r\n                width: 34px;\r\n                font-size: 0.85rem;\r\n                border-radius: 6px;\r\n            }\r\n\r\n            #reddit-downloader-app .submit-btn,\r\n            #reddit-downloader-app #searchAnotherBtn {\r\n                height: 48px;\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-section {\r\n                gap: 0.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button {\r\n                padding: 0.7rem 0.9rem;\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button .icon-text {\r\n                gap: 0.6rem;\r\n            }\r\n\r\n            #reddit-downloader-app .file-info {\r\n                padding: 0.15rem 0.45rem;\r\n                font-size: 0.65rem;\r\n            }\r\n\r\n            #reddit-downloader-app #toast-container {\r\n                bottom: 0.8rem;\r\n                max-width: 300px;\r\n            }\r\n\r\n            #reddit-downloader-app .toast {\r\n                padding: 0.7rem 0.9rem;\r\n                font-size: 0.9rem;\r\n                min-height: 40px;\r\n            }\r\n\t\t\t\t\t#reddit-downloader-app .download-button .icon-text {\r\n\tgap: 0.6rem;\r\n\tflex-direction: column;\r\n}\r\n        }\r\n\r\n        @media (max-width: 400px) {\r\n            #reddit-downloader-app .container {\r\n                padding: 1.2rem 0.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header {\r\n                margin-bottom: 1.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .logo {\r\n                font-size: 2.5rem;\r\n                margin-bottom: 0.7rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header h1 {\r\n                font-size: clamp(1.1rem, 6vw, 1.8rem);\r\n            }\r\n\r\n            #reddit-downloader-app .header p {\r\n                font-size: 0.85rem;\r\n                max-width: 300px;\r\n            }\r\n\r\n            #reddit-downloader-app .main-card {\r\n                padding: 1.2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .url-input {\r\n                height: 45px;\r\n                padding: 0 2.5rem 0 0.8rem;\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            #reddit-downloader-app #pasteBtn {\r\n                right: 0.6rem;\r\n                height: 32px;\r\n                width: 32px;\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .submit-btn,\r\n            #reddit-downloader-app #searchAnotherBtn {\r\n                height: 45px;\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .info {\r\n                padding: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .title {\r\n                font-size: 1.05rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .author {\r\n                font-size: 0.8rem;\r\n                margin-bottom: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button {\r\n                padding: 0.6rem 0.8rem;\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app #toast-container {\r\n                bottom: 0.7rem;\r\n                max-width: 280px;\r\n            }\r\n\r\n            #reddit-downloader-app .toast {\r\n                padding: 0.6rem 0.8rem;\r\n                font-size: 0.85rem;\r\n                min-height: 38px;\r\n            }\r\n\t\t\t\t\t#reddit-downloader-app .download-button .icon-text {\r\n\tgap: 0.6rem;\r\n\tflex-direction: column;\r\n}\r\n        }\r\n\r\n        @media (max-width: 375px) {\r\n            #reddit-downloader-app .container {\r\n                padding: 1rem 0.4rem;\r\n            }\r\n\r\n            #reddit-downloader-app .logo {\r\n                font-size: 2.2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header h1 {\r\n                font-size: 1.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header p {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .main-card {\r\n                padding: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .url-input {\r\n                height: 42px;\r\n                padding: 0 2.2rem 0 0.7rem;\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app #pasteBtn {\r\n                right: 0.5rem;\r\n                height: 30px;\r\n                width: 30px;\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            #reddit-downloader-app .submit-btn,\r\n            #reddit-downloader-app #searchAnotherBtn {\r\n                height: 42px;\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .title {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .author {\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button {\r\n                padding: 0.5rem 0.7rem;\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            #reddit-downloader-app .file-info {\r\n                font-size: 0.6rem;\r\n            }\r\n\r\n            #reddit-downloader-app #toast-container {\r\n                max-width: 260px;\r\n            }\r\n\r\n            #reddit-downloader-app .toast {\r\n                padding: 0.5rem 0.7rem;\r\n                font-size: 0.8rem;\r\n                min-height: 35px;\r\n            }\r\n\t\t\t\t\t#reddit-downloader-app .download-button .icon-text {\r\n\tgap: 0.6rem;\r\n\tflex-direction: column;\r\n}\r\n        }\r\n    <\/style>\r\n\r\n    <!-- Main application wrapper to isolate styles -->\r\n    <div id=\"reddit-downloader-app\">\r\n\r\n        <div class=\"container\">\r\n            <header class=\"header\">\r\n                <div class=\"logo\"><i class=\"fa-brands fa-reddit-alien\"><\/i><\/div>\r\n                <h1>Reddit Gallery Viewer<\/h1>\r\n                <p>Paste a link to view high-quality images and GIFs from Reddit posts. Fast, secure, and always free.<\/p>\r\n            <\/header>\r\n\r\n            <div class=\"main-card\">\r\n                <form class=\"downloader-form\" id=\"downloaderForm\">\r\n                    <div class=\"input-wrapper\">\r\n                        <input type=\"url\" id=\"redditUrlInput\" class=\"url-input\" placeholder=\"Paste your Reddit image post URL here...\" required>\r\n                        <button type=\"button\" id=\"pasteBtn\" title=\"Paste from clipboard\"><i class=\"fa-regular fa-clipboard\"><\/i><\/button>\r\n                    <\/div>\r\n                    <button type=\"submit\" id=\"submitBtn\" class=\"submit-btn\">\r\n                        <i class=\"fa-solid fa-magnifying-glass\"><\/i>\r\n                        <span>Get Image<\/span>\r\n                    <\/button>\r\n                <\/form>\r\n\r\n                <div class=\"loader\" id=\"loader\"><\/div>\r\n                <div class=\"error-message\" id=\"errorMessage\"><\/div>\r\n                <div id=\"result-container\"><\/div>\r\n\r\n                <button id=\"searchAnotherBtn\">\r\n                    <i class=\"fa-solid fa-rotate-right\"><\/i> Search Another\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div id=\"toast-container\"><\/div>\r\n\r\n    <\/div><!-- End of #reddit-downloader-app -->\r\n\r\n\t\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n\t\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n\r\n    <script>\r\n        document.addEventListener('DOMContentLoaded', () => {\r\n            \/\/ Main elements\r\n            const form = document.getElementById('downloaderForm');\r\n            const redditUrlInput = document.getElementById('redditUrlInput');\r\n            const pasteBtn = document.getElementById('pasteBtn');\r\n            const submitBtn = document.getElementById('submitBtn');\r\n            const loader = document.getElementById('loader');\r\n            const errorMessage = document.getElementById('errorMessage');\r\n            const resultContainer = document.getElementById('result-container');\r\n            const searchAnotherBtn = document.getElementById('searchAnotherBtn');\r\n            const toastContainer = document.getElementById('toast-container');\r\n\r\n            \/\/ Form state elements\r\n            const submitBtnText = submitBtn.querySelector('span');\r\n            const submitBtnIcon = submitBtn.querySelector('i');\r\n\r\n            \/\/ API and state variables\r\n            const apiUrl = 'https:\/\/tools.xrespond.com\/api\/social\/all\/downloader';\r\n            let currentTitle = 'reddit-image';\r\n            let downloadXHR = null; \/\/ To hold the XMLHttpRequest object for cancellation\r\n\r\n            \/\/ --- EVENT LISTENERS ---\r\n\r\n            \/\/ Form submission\r\n            form.addEventListener('submit', async (e) => {\r\n                e.preventDefault();\r\n                const redditUrl = redditUrlInput.value.trim();\r\n                if (!redditUrl) {\r\n                    showError('Please enter a Reddit URL.');\r\n                    return;\r\n                }\r\n\r\n                if (!isValidRedditUrl(redditUrl)) {\r\n                    showError('Please enter a valid Reddit URL. The URL should be from reddit.com or redd.it');\r\n                    return;\r\n                }\r\n\r\n                resetUI();\r\n                setLoadingState(true);\r\n                try {\r\n                    const formData = new FormData();\r\n                    formData.append('url', redditUrl);\r\n                    const response = await fetch(apiUrl, { method: 'POST', body: formData });\r\n                    if (!response.ok) throw new Error(`API error: ${response.statusText}`);\r\n\r\n                    const data = await response.json();\r\n                    if (data.error || !data.data.medias || data.data.medias.length === 0) {\r\n                        throw new Error(data.message || 'Could not find a downloadable image for this URL.');\r\n                    }\r\n                    displayResults(data);\r\n                } catch (error) {\r\n                    showError(error.message);\r\n                } finally {\r\n                    setLoadingState(false);\r\n                }\r\n            });\r\n\r\n            \/\/ Paste button functionality\r\n            pasteBtn.addEventListener('click', async () => {\r\n                try {\r\n                    const text = await navigator.clipboard.readText();\r\n                    redditUrlInput.value = text;\r\n                    redditUrlInput.focus();\r\n                    showToast('Pasted from clipboard!', 'info');\r\n                } catch (err) {\r\n                    showToast('Failed to read clipboard.', 'error');\r\n                    console.error('Failed to read clipboard: ', err);\r\n                }\r\n            });\r\n\r\n            \/\/ Search Another button functionality\r\n            searchAnotherBtn.addEventListener('click', () => {\r\n                resultContainer.style.display = 'none';\r\n                searchAnotherBtn.style.display = 'none';\r\n                redditUrlInput.value = '';\r\n                redditUrlInput.focus();\r\n            });\r\n\r\n            \/\/ Dynamic event listener for download buttons\r\n            resultContainer.addEventListener('click', (e) => {\r\n                const downloadBtn = e.target.closest('.download-button');\r\n                if (downloadBtn) {\r\n                    const url = downloadBtn.dataset.url;\r\n                    const extension = downloadBtn.dataset.extension;\r\n                    triggerDownloadWithProgress(url, extension);\r\n                }\r\n            });\r\n\r\n            \/\/ --- UI & STATE FUNCTIONS ---\r\n\r\n            function isValidRedditUrl(url) {\r\n                try {\r\n                    const urlObj = new URL(url);\r\n                    const hostname = urlObj.hostname.toLowerCase();\r\n                    const validRedditDomains = ['reddit.com', 'www.reddit.com', 'old.reddit.com', 'redd.it', 'www.redd.it'];\r\n                    if (!validRedditDomains.includes(hostname)) return false;\r\n                    const pathname = urlObj.pathname;\r\n                    return pathname.includes('\/r\/') || pathname.includes('\/u\/') || pathname.includes('\/comments\/') || pathname.includes('\/user\/');\r\n                } catch (error) {\r\n                    return false;\r\n                }\r\n            }\r\n\r\n            function setLoadingState(isLoading) {\r\n                if (isLoading) {\r\n                    submitBtn.disabled = true;\r\n                    submitBtnIcon.className = 'fa-solid fa-spinner';\r\n                    submitBtnText.textContent = 'Processing...';\r\n                    loader.style.display = 'block';\r\n                } else {\r\n                    loader.style.display = 'none';\r\n                    submitBtn.disabled = false;\r\n                    submitBtnIcon.className = 'fa-solid fa-magnifying-glass';\r\n                    submitBtnText.textContent = 'Get Image';\r\n                }\r\n            }\r\n\r\n            function resetUI() {\r\n                errorMessage.style.display = 'none';\r\n                resultContainer.style.display = 'none';\r\n                searchAnotherBtn.style.display = 'none';\r\n            }\r\n\r\n            function showError(message) {\r\n                errorMessage.textContent = `Error: ${message}`;\r\n                errorMessage.style.display = 'block';\r\n            }\r\n\r\n            function sanitizeFilename(name) {\r\n                return name.replace(\/[\\\/\\\\?%*:|\"<>]\/g, '-').replace(\/\\s+\/g, ' ').trim().substring(0, 80) || 'download';\r\n            }\r\n\r\n            \/\/ --- RESULT DISPLAY ---\r\n\r\n            function displayResults(data) {\r\n                const { title, author, medias } = data.data;\r\n                currentTitle = title || 'reddit-image';\r\n\r\n                \/\/ Find the first available image\/gif\r\n                const imageMedia = medias.find(m => m.url && ['jpg', 'jpeg', 'png', 'gif', 'webp'].includes(m.extension));\r\n\r\n                if (!imageMedia) {\r\n                    showError(\"No downloadable image found in this post. This tool does not support videos.\");\r\n                    return;\r\n                }\r\n\r\n                const imageUrl = imageMedia.url;\r\n                const extension = imageMedia.extension || 'jpg';\r\n                const quality = imageMedia.quality || 'High Quality';\r\n\r\n                resultContainer.innerHTML = `\r\n                    <div class=\"result-card\">\r\n                        <div class=\"image-preview-container\">\r\n                             <img decoding=\"async\" src=\"${imageUrl}\" alt=\"${title || 'Reddit Image Preview'}\" class=\"result-image\">\r\n                        <\/div>\r\n                        <div class=\"info\">\r\n                            <h3 class=\"title\" title=\"${title || 'Untitled Post'}\">${title || 'Untitled Post'}<\/h3>\r\n                            <p class=\"author\">By: ${author || 'Unknown Author'}<\/p>\r\n                            <div class=\"download-section\">\r\n                                <button class=\"download-button\" data-url=\"${imageUrl}\" data-extension=\"${extension}\">\r\n                                    <span class=\"icon-text\"><i class=\"fa-solid fa-download\"><\/i> Download ${quality} Image<\/span>\r\n                                    <span class=\"file-info\">${extension.toUpperCase()}<\/span>\r\n                                <\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>`;\r\n\r\n                resultContainer.style.display = 'block';\r\n                searchAnotherBtn.style.display = 'block';\r\n            }\r\n\r\n            \/\/ --- DOWNLOAD WITH PROGRESS ---\r\n\r\n            function triggerDownloadWithProgress(url, extension) {\r\n                if (downloadXHR && downloadXHR.readyState < 4) {\r\n                    showToast('Another download is already in progress.', 'error');\r\n                    return;\r\n                }\r\n\r\n                const toastId = `toast-${Date.now()}`;\r\n                const toast = showToast(\r\n                    `<div class=\"toast-content\">\r\n                        <span>Starting download... 0%<\/span>\r\n                        <div class=\"progress-toast-bar\"><div class=\"progress-toast-filled\"><\/div><\/div>\r\n                    <\/div>\r\n                    <button class=\"cancel-download-btn\" data-toast-id=\"${toastId}\"><i class=\"fas fa-times\"><\/i><\/button>`,\r\n                    'info progress', null, toastId\r\n                );\r\n                attemptDirectDownload(url, extension, toast, toastId);\r\n            }\r\n\r\n            function attemptDirectDownload(url, extension, toast, toastId) {\r\n                downloadXHR = new XMLHttpRequest();\r\n                downloadXHR.open('GET', url, true);\r\n                downloadXHR.responseType = 'blob';\r\n\r\n                downloadXHR.onprogress = (event) => {\r\n                    if (event.lengthComputable) {\r\n                        const percentComplete = Math.round((event.loaded \/ event.total) * 100);\r\n                        const toastContent = toast.querySelector('.toast-content span');\r\n                        const toastProgress = toast.querySelector('.progress-toast-filled');\r\n                        if (toastContent) {\r\n                            const downloadedMB = (event.loaded \/ (1024 * 1024)).toFixed(1);\r\n                            const totalMB = (event.total \/ (1024 * 1024)).toFixed(1);\r\n                            toastContent.textContent = `Downloading... ${percentComplete}% (${downloadedMB}MB \/ ${totalMB}MB)`;\r\n                        }\r\n                        if (toastProgress) toastProgress.style.width = `${percentComplete}%`;\r\n                    }\r\n                };\r\n\r\n                downloadXHR.onload = () => {\r\n                    if (downloadXHR.status === 200) {\r\n                        const blob = downloadXHR.response;\r\n                        const blobUrl = URL.createObjectURL(blob);\r\n                        const a = document.createElement('a');\r\n                        a.href = blobUrl;\r\n                        a.download = `${sanitizeFilename(currentTitle)}.${extension}`;\r\n                        document.body.appendChild(a);\r\n                        a.click();\r\n                        document.body.removeChild(a);\r\n                        URL.revokeObjectURL(blobUrl);\r\n                        showToast('Download completed successfully!', 'success');\r\n                    } else {\r\n                        showToast(`Download failed: Server error ${downloadXHR.status}. Trying...`, 'error');\r\n                        attemptProxyDownload(url, extension, toast, toastId);\r\n                    }\r\n                    dismissToast(toastId);\r\n                };\r\n\r\n                downloadXHR.onerror = () => {\r\n                    showToast('Download processing...', 'info');\r\n                    attemptProxyDownload(url, extension, toast, toastId);\r\n                };\r\n                downloadXHR.onabort = () => { showToast('Download cancelled.', 'info'); dismissToast(toastId); };\r\n                downloadXHR.send();\r\n            }\r\n\r\n            function attemptProxyDownload(url, extension, toast, toastId) {\r\n                const toastContent = toast.querySelector('.toast-content span');\r\n                if (toastContent) toastContent.textContent = 'Preparing download ...';\r\n                const toastProgress = toast.querySelector('.progress-toast-filled');\r\n                if (toastProgress) toastProgress.style.width = `0%`;\r\n\r\n\r\n                \/\/ Using a generic proxy that might work for images\r\n                const proxyApiUrl = `https:\/\/tools.xrespond.com\/api\/reddit\/proxy-media-base64?url=${encodeURIComponent(url)}`;\r\n                downloadXHR = new XMLHttpRequest();\r\n                downloadXHR.open('GET', proxyApiUrl, true);\r\n                downloadXHR.responseType = 'json';\r\n\r\n                downloadXHR.onload = () => {\r\n                    if (downloadXHR.status === 200) {\r\n                        const data = downloadXHR.response;\r\n                        if (data.error || !data.base64) {\r\n                            showToast(`download failed: ${data.message || 'Could not retrieve media.'}`, 'error');\r\n                        } else {\r\n                            const blobUrl = `data:${data.contentType};base64,${data.base64}`;\r\n                            const a = document.createElement('a');\r\n                            a.href = blobUrl;\r\n                            a.download = `${sanitizeFilename(currentTitle)}.${extension}`;\r\n                            document.body.appendChild(a);\r\n                            a.click();\r\n                            document.body.removeChild(a);\r\n                            showToast('Download completed successfully!', 'success');\r\n                        }\r\n                    } else {\r\n                        showToast(`download failed: Server error ${downloadXHR.status}`, 'error');\r\n                    }\r\n                    dismissToast(toastId);\r\n                };\r\n\r\n                downloadXHR.onerror = () => { showToast('download failed: Network error.', 'error'); dismissToast(toastId); };\r\n                downloadXHR.onabort = () => { showToast('Download cancelled.', 'info'); dismissToast(toastId); };\r\n                downloadXHR.send();\r\n            }\r\n\r\n            toastContainer.addEventListener('click', e => {\r\n                const cancelBtn = e.target.closest('.cancel-download-btn');\r\n                if (cancelBtn && downloadXHR) { downloadXHR.abort(); }\r\n            });\r\n\r\n            \/\/ --- TOAST NOTIFICATIONS ---\r\n            function showToast(message, type = 'info', duration = 3500, id = null) {\r\n                const icons = { info: 'fa-circle-info', success: 'fa-circle-check', error: 'fa-circle-xmark', progress: 'fa-solid fa-download' };\r\n                const toast = document.createElement('div');\r\n                toast.className = `toast ${type}`;\r\n                if (id) toast.id = id;\r\n                const iconClass = type.includes('progress') ? icons['progress'] : icons[type];\r\n                toast.innerHTML = `<i class=\"fa-solid ${iconClass}\"><\/i> ${message}`;\r\n                toastContainer.appendChild(toast);\r\n                if (duration !== null) { setTimeout(() => dismissToast(toast), duration); }\r\n                return toast;\r\n            }\r\n\r\n            function dismissToast(toastOrId) {\r\n                const toast = typeof toastOrId === 'string' ? document.getElementById(toastOrId) : toastOrId;\r\n                if (toast) {\r\n                    toast.style.animation = 'slideOut 0.5s ease forwards';\r\n                    setTimeout(() => { if (toast.parentNode) { toast.parentNode.removeChild(toast); } }, 500);\r\n                }\r\n            }\r\n        });\r\n    <\/script>[\/et_pb_fullwidth_code][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;1280px&#8221; module_alignment=&#8221;center&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243; locked=&#8221;off&#8221;][et_pb_fullwidth_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; theme_builder_area=&#8221;post_content&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;][\/et_pb_fullwidth_code][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_fullwidth_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<style>       \r\n  :root{\r\n    --grad: linear-gradient(45deg,#FF4500 0%,#FF5700 50%,#FF6347 100%);\r\n    --brand:#FF4500;\r\n    --ink:#333;\r\n    --muted:#666;\r\n    --muted-2:#9498a1;\r\n    --light:#f8f9fa;\r\n    --card:#fff;\r\n    --radius:15px;\r\n    --sh:0 4px 12px rgba(0,0,0,.08);\r\n    --sh-lg:0 8px 24px rgba(0,0,0,.12);\r\n    --t:.3s ease;\r\n  }\r\n\r\n  \/* ---------- Titles ---------- *\/\r\n  .rd-gv-section-title{text-align:center; margin-bottom:60px;}\r\n  .rd-gv-section-title h2{font-weight:700; font-size:2.5rem; color:var(--brand); margin:0 0 12px;}\r\n  .rd-gv-section-title p{color:var(--muted); max-width:700px; margin:0 auto; font-size:1.05rem;}\r\n \r\n  \/* ---------- Cards ---------- *\/\r\n  .cv-card{\r\n    background:var(--card); border-radius:var(--radius); box-shadow:var(--sh);\r\n    height:100%; transition:var(--t); padding:30px;\r\n  }\r\n  .cv-card:hover{transform:translateY(-10px); box-shadow:var(--sh-lg);}\r\n\r\n  \/* Steps *\/\r\n  .rd-gv-step{ position:relative; text-align:center; }\r\n  .rd-gv-step .rd-gv-step-icon{\r\n    width:80px; height:80px; margin:0 auto 22px; border-radius:50%; display:flex; align-items:center; justify-content:center;\r\n    background:var(--grad); color:#fff; font-size:2rem; box-shadow:0 5px 15px rgba(0,0,0,.1); transition:var(--t);\r\n  }\r\n  .rd-gv-step:hover .rd-gv-step-icon{ transform:scale(1.08); }\r\n  .rd-gv-step h3{font-size:1.25rem; font-weight:700; color:var(--brand); margin:0 0 10px;}\r\n  .rd-gv-step p{color:var(--muted); margin:0;}\r\n\r\n  \/* Features *\/\r\n  .rd-gv-feature-card .rd-gv-feature-icon{font-size:2rem; display:block; margin-bottom:14px;}\r\n  .rd-gv-feature-card h3{font-size:1.2rem; font-weight:700; color:var(--brand); margin:0 0 10px;}\r\n  .rd-gv-feature-card p{color:var(--muted); margin:0;}\r\n\r\n  \/* FAQ *\/\r\n  .vr-tool-faq{ margin: 30px auto; }\r\n  .rd-gv-faq-item{ border-radius:12px; overflow:hidden; box-shadow:var(--sh); transition:var(--t); background:#fff; }\r\n  .rd-gv-faq-item:hover{ box-shadow:var(--sh-lg); }\r\n  .rd-gv-faq-question{\r\n    width:100%; padding:20px 24px; display:flex; justify-content:space-between; align-items:center;\r\n    background:#fff; border:none; text-align:left; font-weight:700; font-size:1.05rem; color:var(--brand); transition:var(--t);\r\n  }\r\n  .rd-gv-faq-question:hover{ background:rgba(255,69,0,.05); }\r\n  .rd-gv-faq-question:not(.collapsed){ background:rgba(255,69,0,.1); }\r\n  .rd-gv-faq-question:not(.collapsed)::after{ transform:rotate(180deg); }\r\n  .rd-gv-faq-answer{ padding:0 24px 22px; color:var(--muted); line-height:1.7; }\r\n\r\n  \/* CTA *\/\r\n  .vr-tool-cta{\r\n    background:var(--grad);\r\n    color:#fff;\r\n    text-align:center;\r\n    padding:50px 0;\r\n  }\r\n  .vr-tool-cta .rd-gv-cta-title{\r\n    font-size:2.4rem;\r\n    font-weight:700;\r\n    margin:0 0 20px;\r\n    line-height:1.2;\r\n  }\r\n  .vr-tool-cta .rd-gv-cta-sub{\r\n    max-width:800px;\r\n    margin:0 auto 30px;\r\n    font-size:1.1rem;\r\n    color:rgba(255,255,255,.92);\r\n  }\r\n  .vr-tool-cta .rd-gv-cta-group .btn{\r\n    background:#fff;\r\n    color:var(--brand);\r\n    font-weight:600;\r\n    padding:14px 32px;\r\n    border-radius:50px;\r\n    box-shadow:var(--sh);\r\n    transition:var(--t);\r\n    text-decoration:none;\r\n    display:inline-block;\r\n  }\r\n  .vr-tool-cta .rd-gv-cta-group .btn:hover{\r\n    transform:translateY(-3px);\r\n    box-shadow:var(--sh-lg);\r\n  }\r\n  .vr-tool-cta .rd-gv-cta-note{\r\n    margin-top:14px;\r\n    font-size:.95rem;\r\n    color:rgba(255,255,255,.85);\r\n  }\r\n\r\n  @keyframes fadeUp{ from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none} }\r\n  .animate-in{ animation: fadeUp .6s ease both; }\r\n\r\n  @media (max-width:991px){\r\n    .rd-gv-section-title h2{font-size:2.1rem}\r\n    .vr-tool-cta .rd-gv-cta-title{font-size:2.1rem}\r\n  }\r\n  @media (max-width:767px){\r\n    .rd-gv-section-title h2{font-size:1.8rem}\r\n    .cv-card{margin-bottom:20px}\r\n    .vr-tool-cta{padding:60px 0}\r\n    .vr-tool-cta .rd-gv-cta-title{font-size:1.8rem}\r\n    .vr-tool-cta .rd-gv-cta-sub{font-size:1rem}\r\n  }\r\n<\/style>\r\n\r\n<!-- How It Works -->\r\n<section class=\"vr-tool-how\">\r\n  <div class=\"container\">\r\n    <div class=\"rd-gv-section-title\">\r\n      <h2>How to Use the Reddit Gallery Viewer<\/h2>\r\n      <p>Follow these steps to browse Reddit gallery content anonymously.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"row g-4\">\r\n      <div class=\"col-md-3\">\r\n        <div class=\"cv-card rd-gv-step\">\r\n          <div class=\"rd-gv-step-icon\"><i class=\"fas fa-link\"><\/i><\/div>\r\n          <h3>Enter Gallery URL<\/h3>\r\n          <p>Copy the Reddit gallery or post URL to view.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-3\">\r\n        <div class=\"cv-card rd-gv-step\">\r\n          <div class=\"rd-gv-step-icon\"><i class=\"fas fa-search\"><\/i><\/div>\r\n          <h3>Load Gallery<\/h3>\r\n          <p>Click \u201cView Now\u201d to access public Reddit gallery content.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-3\">\r\n        <div class=\"cv-card rd-gv-step\">\r\n          <div class=\"rd-gv-step-icon\"><i class=\"fas fa-eye\"><\/i><\/div>\r\n          <h3>Browse Anonymously<\/h3>\r\n          <p>View public gallery images and posts privately.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-3\">\r\n        <div class=\"cv-card rd-gv-step\">\r\n          <div class=\"rd-gv-step-icon\"><i class=\"fas fa-user-secret\"><\/i><\/div>\r\n          <h3>No Login Required<\/h3>\r\n          <p>Access galleries without a Reddit account.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- Features -->\r\n<section class=\"vr-tool-features\">\r\n  <div class=\"container\">\r\n    <div class=\"rd-gv-section-title\">\r\n      <h2>Reddit Gallery Viewer Features<\/h2>\r\n      <p>Tools for seamless and private browsing of Reddit gallery content.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"row g-4\">\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\ud83d\udd12<\/span>\r\n          <h3>Anonymous Browsing<\/h3>\r\n          <p>Browse Reddit galleries without revealing your identity.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\ud83d\udcf8<\/span>\r\n          <h3>Public Gallery Access<\/h3>\r\n          <p>View public gallery images and posts effortlessly.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\ud83d\uddbc\ufe0f<\/span>\r\n          <h3>High-Quality Images<\/h3>\r\n          <p>View gallery images in their original resolution.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\ud83d\udcf1<\/span>\r\n          <h3>Multi-Device Support<\/h3>\r\n          <p>Optimized for phones, tablets, and desktops.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\ud83d\udd11<\/span>\r\n          <h3>No Login Needed<\/h3>\r\n          <p>Browse galleries without Reddit credentials.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\u26a1<\/span>\r\n          <h3>Fast Access<\/h3>\r\n          <p>Quickly load Reddit gallery content anonymously.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- FAQ -->\r\n<section class=\"vr-tool-faq\">\r\n  <div class=\"container\">\r\n    <div class=\"rd-gv-section-title\">\r\n      <h2>Frequently Asked Questions<\/h2>\r\n      <p>Learn how to use the Reddit Gallery Viewer effectively.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"row justify-content-center\">\r\n      <div class=\"col-lg-8\">\r\n        <div class=\"accordion\" id=\"faqAccordion\">\r\n          <div class=\"rd-gv-faq-item accordion-item mb-3\">\r\n            <h2 class=\"accordion-header\">\r\n              <button class=\"rd-gv-faq-question accordion-button collapsed\" data-bs-toggle=\"collapse\" data-bs-target=\"#faqCollapse1\">\r\n                Can I view private Reddit galleries?\r\n              <\/button>\r\n            <\/h2>\r\n            <div id=\"faqCollapse1\" class=\"accordion-collapse collapse\" data-bs-parent=\"#faqAccordion\">\r\n              <div class=\"rd-gv-faq-answer accordion-body\">\r\n                No. The Reddit Gallery Viewer only shows public gallery content, respecting privacy settings.\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"rd-gv-faq-item accordion-item mb-3\">\r\n            <h2 class=\"accordion-header\">\r\n              <button class=\"rd-gv-faq-question accordion-button collapsed\" data-bs-toggle=\"collapse\" data-bs-target=\"#faqCollapse2\">\r\n                Do I need a Reddit account to view galleries?\r\n              <\/button>\r\n            <\/h2>\r\n            <div id=\"faqCollapse2\" class=\"accordion-collapse collapse\" data-bs-parent=\"#faqAccordion\">\r\n              <div class=\"rd-gv-faq-answer accordion-body\">\r\n                No. The Reddit Gallery Viewer works without a login.\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"rd-gv-faq-item accordion-item mb-3\">\r\n            <h2 class=\"accordion-header\">\r\n              <button class=\"rd-gv-faq-question accordion-button collapsed\" data-bs-toggle=\"collapse\" data-bs-target=\"#faqCollapse3\">\r\n                Is the Reddit Gallery Viewer free to use?\r\n              <\/button>\r\n            <\/h2>\r\n            <div id=\"faqCollapse3\" class=\"accordion-collapse collapse\" data-bs-parent=\"#faqAccordion\">\r\n              <div class=\"rd-gv-faq-answer accordion-body\">\r\n                Yes. It\u2019s a free tool with no charges or subscriptions.\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"rd-gv-faq-item accordion-item mb-3\">\r\n            <h2 class=\"accordion-header\">\r\n              <button class=\"rd-gv-faq-question accordion-button collapsed\" data-bs-toggle=\"collapse\" data-bs-target=\"#faqCollapse4\">\r\n                Is this tool affiliated with Reddit?\r\n              <\/button>\r\n            <\/h2>\r\n            <div id=\"faqCollapse4\" class=\"accordion-collapse collapse\" data-bs-parent=\"#faqAccordion\">\r\n              <div class=\"rd-gv-faq-answer accordion-body\">\r\n                No. This is an independent Reddit Gallery Viewer, and browsing is anonymous with no user alerts.\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- CTA Section -->\r\n<section class=\"vr-tool-cta\">\r\n  <div class=\"container\" style=\"text-align: center;\">\r\n    <h2 class=\"rd-gv-cta-title text-white\">Try the Reddit Gallery Viewer Now<\/h2>\r\n    <p class=\"rd-gv-cta-sub\">\r\n      Browse public Reddit gallery content anonymously without login. Safe, private, and easy to use.\r\n    <\/p>\r\n    <div class=\"rd-gv-cta-group\">\r\n      <a href=\"#\" class=\"btn btn-lg\">Try It Now<\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n  document.querySelectorAll('.rd-gv-faq-question').forEach(btn=>{\r\n    btn.addEventListener('click', ()=>{\r\n      document.querySelectorAll('.rd-gv-faq-question').forEach(b=>{ if(b!==btn) b.classList.add('collapsed'); });\r\n      btn.classList.toggle('collapsed');\r\n    });\r\n  });\r\n<\/script>[\/et_pb_fullwidth_code][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\r\n    <style>\r\n        :root {\r\n            \/* Professional Teal\/Gray Theme Palette *\/\r\n            --primary: #0d9488;\r\n            \/* Professional Teal *\/\r\n            --primary-glow: rgba(13, 148, 136, 0.3);\r\n            --accent: #0284c7;\r\n            \/* Professional Blue *\/\r\n            --success: #10b981;\r\n            --error: #ef4444;\r\n\r\n            \/* Neutrals for the new theme *\/\r\n            --white: #ffffff;\r\n            --gray-50: #f8fafc;\r\n            --gray-100: #f1f5f9;\r\n            --gray-200: #e2e8f0;\r\n            --gray-300: #cbd5e1;\r\n            --gray-400: #94a3b8;\r\n            --gray-500: #64748b;\r\n            --gray-600: #475569;\r\n            --gray-700: #334155;\r\n            --gray-800: #1e293b;\r\n            --gray-900: #0f172a;\r\n\r\n            \/* Background Colors *\/\r\n            --bg-primary: #f8fafc;\r\n            --bg-secondary: #f1f5f9;\r\n            --bg-tertiary: #e2e8f0;\r\n\r\n            \/* Glassmorphism for the new theme *\/\r\n            --glass-bg: rgba(255, 255, 255, 0.7);\r\n            --glass-border: rgba(203, 213, 225, 0.3);\r\n            --shadow-lg: 0 10px 30px -5px rgba(0, 0, 0, 0.1);\r\n            --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\r\n\r\n            \/* Modern Border Radius *\/\r\n            --radius-md: 12px;\r\n            --radius-lg: 16px;\r\n            --radius-xl: 24px;\r\n\r\n            \/* Layout *\/\r\n            --container-max-width: 1200px;\r\n            --input-height: 60px;\r\n        }\r\n\r\n        \/* Scoped reset to only affect elements inside the wrapper *\/\r\n        #reddit-downloader-app * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        \/* Keyframe Animations are global and do not need scoping *\/\r\n        @keyframes fadeIn {\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 spin {\r\n            from {\r\n                transform: rotate(0deg);\r\n            }\r\n\r\n            to {\r\n                transform: rotate(360deg);\r\n            }\r\n        }\r\n\r\n        @keyframes slide-in-fwd-center {\r\n            0% {\r\n                transform: translateZ(-1400px);\r\n                opacity: 0;\r\n            }\r\n\r\n            100% {\r\n                transform: translateZ(0);\r\n                opacity: 1;\r\n            }\r\n        }\r\n\r\n        @keyframes slide-in-bottom {\r\n            0% {\r\n                transform: translateY(100px);\r\n                opacity: 0;\r\n            }\r\n\r\n            100% {\r\n                transform: translateY(0);\r\n                opacity: 1;\r\n            }\r\n        }\r\n\r\n        @keyframes slideOut {\r\n            0% {\r\n                transform: translateY(0);\r\n                opacity: 1;\r\n            }\r\n\r\n            100% {\r\n                transform: translateY(100px);\r\n                opacity: 0;\r\n            }\r\n        }\r\n\r\n        \/* Main app wrapper replaces body styling *\/\r\n        #reddit-downloader-app {\r\n            font-family: 'Inter', sans-serif;\r\n            background-color: var(--bg-primary);\r\n            color: var(--gray-800);\r\n            line-height: 1.6;\r\n            overflow-x: hidden;\r\n            min-height: 80vh;\r\n            position: relative;\r\n        }\r\n\r\n        #reddit-downloader-app::before {\r\n            content: '';\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100vh;\r\n            pointer-events: none;\r\n            background:\r\n                radial-gradient(circle at 10% 10%, var(--primary) 0%, transparent 25%),\r\n                radial-gradient(circle at 90% 80%, var(--accent) 0%, transparent 25%);\r\n            filter: blur(120px);\r\n            opacity: 0.15;\r\n            z-index: -1;\r\n        }\r\n\r\n        #reddit-downloader-app .container {\r\n            max-width: var(--container-max-width);\r\n            margin: 0 auto;\r\n            padding: clamp(2rem, 5vh, 4rem) 1.5rem;\r\n            min-height: 100vh;\r\n            display: flex;\r\n            flex-direction: column;\r\n            justify-content: center;\r\n            align-items: center;\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        \/* Header *\/\r\n        #reddit-downloader-app .header {\r\n            text-align: center;\r\n            margin-bottom: 3rem;\r\n            animation: fadeIn 0.8s ease-out;\r\n        }\r\n\r\n        #reddit-downloader-app .logo {\r\n            font-size: 4rem;\r\n            color: var(--primary);\r\n            margin-bottom: 1.5rem;\r\n            line-height: 1;\r\n            text-shadow: 0 0 30px var(--primary-glow);\r\n        }\r\n\r\n        #reddit-downloader-app .header h1 {\r\n            font-size: clamp(1.8rem, 5vw, 3.25rem);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n            margin-bottom: 1rem;\r\n            letter-spacing: -0.03em;\r\n            line-height: 1.2;\r\n        }\r\n\r\n        #reddit-downloader-app .header p {\r\n            font-size: 1.125rem;\r\n            color: var(--gray-600);\r\n            max-width: 550px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        \/* Main Card *\/\r\n        #reddit-downloader-app .main-card {\r\n            width: 100%;\r\n            background: var(--glass-bg);\r\n            border: 1px solid var(--glass-border);\r\n            border-radius: var(--radius-xl);\r\n            box-shadow: var(--shadow-lg);\r\n            backdrop-filter: blur(16px) saturate(180%);\r\n            -webkit-backdrop-filter: blur(16px) saturate(180%);\r\n            padding: 2.5rem;\r\n            animation: fadeIn 0.8s ease-out 0.2s backwards;\r\n            position: relative;\r\n        }\r\n\r\n        \/* Form *\/\r\n        #reddit-downloader-app .downloader-form {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 1rem;\r\n            width: 100%;\r\n        }\r\n\r\n        #reddit-downloader-app .input-wrapper {\r\n            position: relative;\r\n            width: 100%;\r\n            display: flex;\r\n            align-items: center;\r\n        }\r\n\r\n        #reddit-downloader-app .url-input {\r\n            width: 100%;\r\n            height: var(--input-height);\r\n            padding: 0 4rem 0 1.5rem;\r\n            font-size: 1rem;\r\n            font-family: 'Inter', sans-serif;\r\n            border: 1px solid var(--gray-300);\r\n            border-radius: var(--radius-md);\r\n            background: var(--white);\r\n            color: var(--gray-800);\r\n            transition: border-color 0.3s, box-shadow 0.3s;\r\n        }\r\n\r\n        #reddit-downloader-app #pasteBtn {\r\n            position: absolute;\r\n            right: 1rem;\r\n            height: 44px;\r\n            width: 44px;\r\n            background: var(--gray-100);\r\n            border: 1px solid var(--gray-200);\r\n            color: var(--gray-600);\r\n            border-radius: 8px;\r\n            cursor: pointer;\r\n            transition: all 0.2s ease;\r\n            font-size: 1.1rem;\r\n        }\r\n\r\n        #reddit-downloader-app #pasteBtn:hover {\r\n            background: var(--gray-200);\r\n            color: var(--gray-800);\r\n        }\r\n\r\n        #reddit-downloader-app .url-input:focus {\r\n            outline: none;\r\n            border-color: var(--primary);\r\n            box-shadow: 0 0 0 3px var(--primary-glow);\r\n        }\r\n\r\n        #reddit-downloader-app .url-input::placeholder {\r\n            color: var(--gray-400);\r\n        }\r\n\r\n        #reddit-downloader-app .submit-btn {\r\n            background: linear-gradient(135deg, var(--primary) 0%, #0d7d73 100%);\r\n            color: var(--white);\r\n            border: none;\r\n            height: var(--input-height);\r\n            font-size: 1.125rem;\r\n            font-weight: 700;\r\n            border-radius: var(--radius-md);\r\n            cursor: pointer;\r\n            display: flex;\r\n            justify-content: center;\r\n            align-items: center;\r\n            gap: 0.75rem;\r\n            transition: all 0.3s ease;\r\n            box-shadow: var(--shadow-md);\r\n        }\r\n\r\n        #reddit-downloader-app .submit-btn:hover:not(:disabled) {\r\n            transform: translateY(-3px);\r\n            box-shadow: 0 7px 20px rgba(13, 148, 136, 0.3);\r\n        }\r\n\r\n        #reddit-downloader-app .submit-btn:active:not(:disabled) {\r\n            transform: translateY(-1px);\r\n            box-shadow: 0 4px 10px rgba(13, 148, 136, 0.2);\r\n        }\r\n\r\n        #reddit-downloader-app .submit-btn:disabled {\r\n            background: var(--gray-300);\r\n            color: var(--gray-500);\r\n            cursor: not-allowed;\r\n            box-shadow: none;\r\n            transform: none;\r\n        }\r\n\r\n        #reddit-downloader-app .submit-btn .fa-spinner {\r\n            animation: spin 1s linear infinite;\r\n        }\r\n\r\n        #reddit-downloader-app #searchAnotherBtn {\r\n            display: none;\r\n            margin-top: 1.5rem;\r\n            background: var(--accent);\r\n            color: var(--white);\r\n            border: none;\r\n            height: var(--input-height);\r\n            font-size: 1.125rem;\r\n            font-weight: 600;\r\n            border-radius: var(--radius-md);\r\n            cursor: pointer;\r\n            width: 100%;\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        #reddit-downloader-app #searchAnotherBtn:hover {\r\n            opacity: 0.9;\r\n            box-shadow: 0 7px 20px rgba(2, 132, 199, 0.3);\r\n        }\r\n\r\n        \/* Loader & Messages *\/\r\n        #reddit-downloader-app .loader {\r\n            display: none;\r\n            width: 40px;\r\n            height: 40px;\r\n            border: 4px solid rgba(13, 148, 136, 0.2);\r\n            border-top-color: var(--primary);\r\n            border-radius: 50%;\r\n            animation: spin 1s linear infinite;\r\n            margin: 2rem auto;\r\n        }\r\n\r\n        #reddit-downloader-app .error-message {\r\n            display: none;\r\n            background: rgba(239, 68, 68, 0.1);\r\n            color: var(--error);\r\n            padding: 1rem 1.5rem;\r\n            border-radius: var(--radius-md);\r\n            margin-top: 1.5rem;\r\n            border: 1px solid rgba(239, 68, 68, 0.3);\r\n            font-weight: 500;\r\n        }\r\n\r\n        \/* Results *\/\r\n        #reddit-downloader-app #result-container {\r\n            display: none;\r\n            width: 100%;\r\n            margin-top: 2rem;\r\n            animation: slide-in-fwd-center 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;\r\n        }\r\n\r\n        #reddit-downloader-app .result-card {\r\n            background: var(--glass-bg);\r\n            border: 1px solid var(--glass-border);\r\n            border-radius: var(--radius-lg);\r\n            overflow: hidden;\r\n            backdrop-filter: blur(16px) saturate(180%);\r\n            -webkit-backdrop-filter: blur(16px) saturate(180%);\r\n        }\r\n\r\n        \/* Image Result Styles *\/\r\n        #reddit-downloader-app .image-preview-container {\r\n            width: 100%;\r\n            background-color: var(--gray-100);\r\n            border-radius: var(--radius-lg) var(--radius-lg) 0 0;\r\n            display: flex;\r\n            justify-content: center;\r\n            align-items: center;\r\n            max-height: 70vh;\r\n        }\r\n\r\n        #reddit-downloader-app .result-image {\r\n            max-width: 100%;\r\n            max-height: 70vh;\r\n            object-fit: contain;\r\n            display: block;\r\n        }\r\n\r\n        #reddit-downloader-app .result-card .info {\r\n            padding: 1.5rem;\r\n        }\r\n\r\n        #reddit-downloader-app .result-card .title {\r\n            font-size: 1.375rem;\r\n            font-weight: 700;\r\n            margin-bottom: 0.25rem;\r\n            color: var(--gray-900);\r\n            line-height: 1.4;\r\n            white-space: nowrap;\r\n            overflow: hidden;\r\n            text-overflow: ellipsis;\r\n        }\r\n\r\n        #reddit-downloader-app .result-card .author {\r\n            font-size: 1rem;\r\n            color: var(--gray-600);\r\n            margin-bottom: 1.5rem;\r\n        }\r\n\r\n        #reddit-downloader-app .download-section {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 0.75rem;\r\n        }\r\n\r\n        #reddit-downloader-app .download-button {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            background: var(--gray-100);\r\n            padding: 1rem 1.25rem;\r\n            border-radius: var(--radius-md);\r\n            border: 1px solid var(--gray-200);\r\n            width: 100%;\r\n            cursor: pointer;\r\n            text-align: left;\r\n            font-size: 1rem;\r\n            font-weight: 500;\r\n            color: var(--gray-800);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        #reddit-downloader-app .download-button:hover {\r\n            background: var(--gray-200);\r\n            border-color: var(--gray-300);\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        #reddit-downloader-app .download-button .icon-text {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 0.75rem;\r\n        }\r\n\r\n        #reddit-downloader-app .download-button .fa-download {\r\n            color: var(--primary);\r\n        }\r\n\r\n        #reddit-downloader-app .file-info {\r\n            background: var(--primary);\r\n            color: white;\r\n            padding: 0.25rem 0.6rem;\r\n            border-radius: 6px;\r\n            font-size: 0.75rem;\r\n            font-weight: 600;\r\n            text-transform: uppercase;\r\n        }\r\n\r\n        \/* Toast Notifications *\/\r\n        #reddit-downloader-app #toast-container {\r\n            position: fixed;\r\n            bottom: 1.5rem;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            display: flex;\r\n            flex-direction: column-reverse;\r\n            align-items: center;\r\n            gap: 1rem;\r\n            z-index: 9999;\r\n            pointer-events: none;\r\n            width: 90%;\r\n            max-width: 420px;\r\n        }\r\n\r\n        #reddit-downloader-app .toast {\r\n            color: white;\r\n            padding: 1rem 1.5rem;\r\n            border-radius: var(--radius-md);\r\n            box-shadow: var(--shadow-lg);\r\n            font-weight: 500;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 0.75rem;\r\n            pointer-events: auto;\r\n            width: 100%;\r\n            min-height: 50px;\r\n            border: 1px solid rgba(255, 255, 255, 0.2);\r\n            backdrop-filter: blur(10px);\r\n            animation: slide-in-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.progress .toast-content {\r\n            flex-grow: 1;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.progress .progress-toast-bar {\r\n            width: 100%;\r\n            height: 6px;\r\n            background-color: rgba(0, 0, 0, 0.2);\r\n            border-radius: 3px;\r\n            margin-top: 0.5rem;\r\n            overflow: hidden;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.progress .progress-toast-filled {\r\n            width: 0%;\r\n            height: 100%;\r\n            background-color: var(--white);\r\n            border-radius: 3px;\r\n            transition: width 0.1s linear;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.progress .cancel-download-btn {\r\n            background: none;\r\n            border: none;\r\n            color: white;\r\n            font-size: 1.2rem;\r\n            cursor: pointer;\r\n            margin-left: 0.5rem;\r\n            opacity: 0.8;\r\n            transition: opacity 0.2s;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.progress .cancel-download-btn:hover {\r\n            opacity: 1;\r\n        }\r\n\r\n        #reddit-downloader-app .toast.info {\r\n            background: rgba(2, 132, 199, 0.9);\r\n        }\r\n\r\n        #reddit-downloader-app .toast.success {\r\n            background: rgba(16, 185, 129, 0.9);\r\n        }\r\n\r\n        #reddit-downloader-app .toast.error {\r\n            background: rgba(239, 68, 68, 0.9);\r\n        }\r\n\r\n        \/* Responsive *\/\r\n        @media (max-width: 992px) {\r\n            #reddit-downloader-app .container {\r\n                padding: clamp(1.5rem, 4vh, 3rem) 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .logo {\r\n                font-size: 3.5rem;\r\n                margin-bottom: 1.2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header h1 {\r\n                font-size: clamp(1.6rem, 4.5vw, 2.8rem);\r\n                margin-bottom: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header p {\r\n                font-size: 1rem;\r\n                max-width: 500px;\r\n            }\r\n\r\n            #reddit-downloader-app .main-card {\r\n                padding: 2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .url-input {\r\n                height: 55px;\r\n                padding: 0 3.5rem 0 1.25rem;\r\n            }\r\n\r\n            #reddit-downloader-app #pasteBtn {\r\n                height: 40px;\r\n                width: 40px;\r\n                font-size: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .submit-btn,\r\n            #reddit-downloader-app #searchAnotherBtn {\r\n                height: 55px;\r\n                font-size: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app #result-container {\r\n                margin-top: 1.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .info {\r\n                padding: 1.25rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .title {\r\n                font-size: 1.25rem;\r\n                margin-bottom: 0.2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .author {\r\n                font-size: 0.9rem;\r\n                margin-bottom: 1.2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button {\r\n                padding: 0.9rem 1.1rem;\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            #reddit-downloader-app .file-info {\r\n                padding: 0.2rem 0.5rem;\r\n                font-size: 0.7rem;\r\n            }\r\n\r\n            #reddit-downloader-app #toast-container {\r\n                bottom: 1.2rem;\r\n                width: 95%;\r\n                max-width: 380px;\r\n            }\r\n\r\n            #reddit-downloader-app .toast {\r\n                padding: 0.9rem 1.2rem;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            #reddit-downloader-app .container {\r\n                padding: clamp(1rem, 3vh, 2.5rem) 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header {\r\n                margin-bottom: 2.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .logo {\r\n                font-size: 3rem;\r\n                margin-bottom: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header h1 {\r\n                font-size: clamp(1.4rem, 4vw, 2.2rem);\r\n            }\r\n\r\n            #reddit-downloader-app .header p {\r\n                font-size: 0.95rem;\r\n                max-width: 450px;\r\n            }\r\n\r\n            #reddit-downloader-app .main-card {\r\n                padding: 1.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .url-input {\r\n                height: 50px;\r\n                padding: 0 3rem 0 1rem;\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            #reddit-downloader-app #pasteBtn {\r\n                right: 0.8rem;\r\n                height: 36px;\r\n                width: 36px;\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            #reddit-downloader-app .submit-btn,\r\n            #reddit-downloader-app #searchAnotherBtn {\r\n                height: 50px;\r\n                font-size: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .loader {\r\n                width: 35px;\r\n                height: 35px;\r\n                margin: 1.5rem auto;\r\n            }\r\n\r\n            #reddit-downloader-app .error-message {\r\n                padding: 0.9rem 1.2rem;\r\n                margin-top: 1.2rem;\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .title {\r\n                font-size: 1.15rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .author {\r\n                font-size: 0.85rem;\r\n                margin-bottom: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-section {\r\n                gap: 0.6rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button {\r\n                padding: 0.8rem 1rem;\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            #reddit-downloader-app #toast-container {\r\n                bottom: 1rem;\r\n                max-width: 350px;\r\n            }\r\n\r\n            #reddit-downloader-app .toast {\r\n                padding: 0.8rem 1rem;\r\n                font-size: 0.95rem;\r\n                min-height: 45px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 600px) {\r\n            #reddit-downloader-app .container {\r\n                padding: 1.5rem 0.7rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header {\r\n                margin-bottom: 2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .logo {\r\n                font-size: 2.8rem;\r\n                margin-bottom: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header h1 {\r\n                font-size: clamp(1.2rem, 5vw, 2rem);\r\n            }\r\n\r\n            #reddit-downloader-app .header p {\r\n                font-size: 0.9rem;\r\n                max-width: 350px;\r\n            }\r\n\r\n            #reddit-downloader-app .main-card {\r\n                padding: 1.5rem;\r\n                border-radius: var(--radius-lg);\r\n            }\r\n\r\n            #reddit-downloader-app .url-input {\r\n                height: 48px;\r\n                padding: 0 2.8rem 0 0.9rem;\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            #reddit-downloader-app #pasteBtn {\r\n                right: 0.7rem;\r\n                height: 34px;\r\n                width: 34px;\r\n                font-size: 0.85rem;\r\n                border-radius: 6px;\r\n            }\r\n\r\n            #reddit-downloader-app .submit-btn,\r\n            #reddit-downloader-app #searchAnotherBtn {\r\n                height: 48px;\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-section {\r\n                gap: 0.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button {\r\n                padding: 0.7rem 0.9rem;\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button .icon-text {\r\n                gap: 0.6rem;\r\n            }\r\n\r\n            #reddit-downloader-app .file-info {\r\n                padding: 0.15rem 0.45rem;\r\n                font-size: 0.65rem;\r\n            }\r\n\r\n            #reddit-downloader-app #toast-container {\r\n                bottom: 0.8rem;\r\n                max-width: 300px;\r\n            }\r\n\r\n            #reddit-downloader-app .toast {\r\n                padding: 0.7rem 0.9rem;\r\n                font-size: 0.9rem;\r\n                min-height: 40px;\r\n            }\r\n\t\t\t\t\t#reddit-downloader-app .download-button .icon-text {\r\n\tgap: 0.6rem;\r\n\tflex-direction: column;\r\n}\r\n        }\r\n\r\n        @media (max-width: 400px) {\r\n            #reddit-downloader-app .container {\r\n                padding: 1.2rem 0.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header {\r\n                margin-bottom: 1.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .logo {\r\n                font-size: 2.5rem;\r\n                margin-bottom: 0.7rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header h1 {\r\n                font-size: clamp(1.1rem, 6vw, 1.8rem);\r\n            }\r\n\r\n            #reddit-downloader-app .header p {\r\n                font-size: 0.85rem;\r\n                max-width: 300px;\r\n            }\r\n\r\n            #reddit-downloader-app .main-card {\r\n                padding: 1.2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .url-input {\r\n                height: 45px;\r\n                padding: 0 2.5rem 0 0.8rem;\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            #reddit-downloader-app #pasteBtn {\r\n                right: 0.6rem;\r\n                height: 32px;\r\n                width: 32px;\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .submit-btn,\r\n            #reddit-downloader-app #searchAnotherBtn {\r\n                height: 45px;\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .info {\r\n                padding: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .title {\r\n                font-size: 1.05rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .author {\r\n                font-size: 0.8rem;\r\n                margin-bottom: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button {\r\n                padding: 0.6rem 0.8rem;\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app #toast-container {\r\n                bottom: 0.7rem;\r\n                max-width: 280px;\r\n            }\r\n\r\n            #reddit-downloader-app .toast {\r\n                padding: 0.6rem 0.8rem;\r\n                font-size: 0.85rem;\r\n                min-height: 38px;\r\n            }\r\n\t\t\t\t\t#reddit-downloader-app .download-button .icon-text {\r\n\tgap: 0.6rem;\r\n\tflex-direction: column;\r\n}\r\n        }\r\n\r\n        @media (max-width: 375px) {\r\n            #reddit-downloader-app .container {\r\n                padding: 1rem 0.4rem;\r\n            }\r\n\r\n            #reddit-downloader-app .logo {\r\n                font-size: 2.2rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header h1 {\r\n                font-size: 1.5rem;\r\n            }\r\n\r\n            #reddit-downloader-app .header p {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app .main-card {\r\n                padding: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .url-input {\r\n                height: 42px;\r\n                padding: 0 2.2rem 0 0.7rem;\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            #reddit-downloader-app #pasteBtn {\r\n                right: 0.5rem;\r\n                height: 30px;\r\n                width: 30px;\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            #reddit-downloader-app .submit-btn,\r\n            #reddit-downloader-app #searchAnotherBtn {\r\n                height: 42px;\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .title {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            #reddit-downloader-app .result-card .author {\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            #reddit-downloader-app .download-button {\r\n                padding: 0.5rem 0.7rem;\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            #reddit-downloader-app .file-info {\r\n                font-size: 0.6rem;\r\n            }\r\n\r\n            #reddit-downloader-app #toast-container {\r\n                max-width: 260px;\r\n            }\r\n\r\n            #reddit-downloader-app .toast {\r\n                padding: 0.5rem 0.7rem;\r\n                font-size: 0.8rem;\r\n                min-height: 35px;\r\n            }\r\n\t\t\t\t\t#reddit-downloader-app .download-button .icon-text {\r\n\tgap: 0.6rem;\r\n\tflex-direction: column;\r\n}\r\n        }\r\n    <\/style>\r\n\r\n    <!-- Main application wrapper to isolate styles -->\r\n    <div id=\"reddit-downloader-app\">\r\n\r\n        <div class=\"container\">\r\n            <header class=\"header\">\r\n                <div class=\"logo\"><i class=\"fa-brands fa-reddit-alien\"><\/i><\/div>\r\n                <h1>Reddit Gallery Viewer<\/h1>\r\n                <p>Paste a link to view high-quality images and GIFs from Reddit posts. Fast, secure, and always free.<\/p>\r\n            <\/header>\r\n\r\n            <div class=\"main-card\">\r\n                <form class=\"downloader-form\" id=\"downloaderForm\">\r\n                    <div class=\"input-wrapper\">\r\n                        <input type=\"url\" id=\"redditUrlInput\" class=\"url-input\" placeholder=\"Paste your Reddit image post URL here...\" required>\r\n                        <button type=\"button\" id=\"pasteBtn\" title=\"Paste from clipboard\"><i class=\"fa-regular fa-clipboard\"><\/i><\/button>\r\n                    <\/div>\r\n                    <button type=\"submit\" id=\"submitBtn\" class=\"submit-btn\">\r\n                        <i class=\"fa-solid fa-magnifying-glass\"><\/i>\r\n                        <span>Get Image<\/span>\r\n                    <\/button>\r\n                <\/form>\r\n\r\n                <div class=\"loader\" id=\"loader\"><\/div>\r\n                <div class=\"error-message\" id=\"errorMessage\"><\/div>\r\n                <div id=\"result-container\"><\/div>\r\n\r\n                <button id=\"searchAnotherBtn\">\r\n                    <i class=\"fa-solid fa-rotate-right\"><\/i> Search Another\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div id=\"toast-container\"><\/div>\r\n\r\n    <\/div><!-- End of #reddit-downloader-app -->\r\n\r\n\t\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n\t\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n\r\n    <script>\r\n        document.addEventListener('DOMContentLoaded', () => {\r\n            \/\/ Main elements\r\n            const form = document.getElementById('downloaderForm');\r\n            const redditUrlInput = document.getElementById('redditUrlInput');\r\n            const pasteBtn = document.getElementById('pasteBtn');\r\n            const submitBtn = document.getElementById('submitBtn');\r\n            const loader = document.getElementById('loader');\r\n            const errorMessage = document.getElementById('errorMessage');\r\n            const resultContainer = document.getElementById('result-container');\r\n            const searchAnotherBtn = document.getElementById('searchAnotherBtn');\r\n            const toastContainer = document.getElementById('toast-container');\r\n\r\n            \/\/ Form state elements\r\n            const submitBtnText = submitBtn.querySelector('span');\r\n            const submitBtnIcon = submitBtn.querySelector('i');\r\n\r\n            \/\/ API and state variables\r\n            const apiUrl = 'https:\/\/tools.xrespond.com\/api\/social\/all\/downloader';\r\n            let currentTitle = 'reddit-image';\r\n            let downloadXHR = null; \/\/ To hold the XMLHttpRequest object for cancellation\r\n\r\n            \/\/ --- EVENT LISTENERS ---\r\n\r\n            \/\/ Form submission\r\n            form.addEventListener('submit', async (e) => {\r\n                e.preventDefault();\r\n                const redditUrl = redditUrlInput.value.trim();\r\n                if (!redditUrl) {\r\n                    showError('Please enter a Reddit URL.');\r\n                    return;\r\n                }\r\n\r\n                if (!isValidRedditUrl(redditUrl)) {\r\n                    showError('Please enter a valid Reddit URL. The URL should be from reddit.com or redd.it');\r\n                    return;\r\n                }\r\n\r\n                resetUI();\r\n                setLoadingState(true);\r\n                try {\r\n                    const formData = new FormData();\r\n                    formData.append('url', redditUrl);\r\n                    const response = await fetch(apiUrl, { method: 'POST', body: formData });\r\n                    if (!response.ok) throw new Error(`API error: ${response.statusText}`);\r\n\r\n                    const data = await response.json();\r\n                    if (data.error || !data.data.medias || data.data.medias.length === 0) {\r\n                        throw new Error(data.message || 'Could not find a downloadable image for this URL.');\r\n                    }\r\n                    displayResults(data);\r\n                } catch (error) {\r\n                    showError(error.message);\r\n                } finally {\r\n                    setLoadingState(false);\r\n                }\r\n            });\r\n\r\n            \/\/ Paste button functionality\r\n            pasteBtn.addEventListener('click', async () => {\r\n                try {\r\n                    const text = await navigator.clipboard.readText();\r\n                    redditUrlInput.value = text;\r\n                    redditUrlInput.focus();\r\n                    showToast('Pasted from clipboard!', 'info');\r\n                } catch (err) {\r\n                    showToast('Failed to read clipboard.', 'error');\r\n                    console.error('Failed to read clipboard: ', err);\r\n                }\r\n            });\r\n\r\n            \/\/ Search Another button functionality\r\n            searchAnotherBtn.addEventListener('click', () => {\r\n                resultContainer.style.display = 'none';\r\n                searchAnotherBtn.style.display = 'none';\r\n                redditUrlInput.value = '';\r\n                redditUrlInput.focus();\r\n            });\r\n\r\n            \/\/ Dynamic event listener for download buttons\r\n            resultContainer.addEventListener('click', (e) => {\r\n                const downloadBtn = e.target.closest('.download-button');\r\n                if (downloadBtn) {\r\n                    const url = downloadBtn.dataset.url;\r\n                    const extension = downloadBtn.dataset.extension;\r\n                    triggerDownloadWithProgress(url, extension);\r\n                }\r\n            });\r\n\r\n            \/\/ --- UI & STATE FUNCTIONS ---\r\n\r\n            function isValidRedditUrl(url) {\r\n                try {\r\n                    const urlObj = new URL(url);\r\n                    const hostname = urlObj.hostname.toLowerCase();\r\n                    const validRedditDomains = ['reddit.com', 'www.reddit.com', 'old.reddit.com', 'redd.it', 'www.redd.it'];\r\n                    if (!validRedditDomains.includes(hostname)) return false;\r\n                    const pathname = urlObj.pathname;\r\n                    return pathname.includes('\/r\/') || pathname.includes('\/u\/') || pathname.includes('\/comments\/') || pathname.includes('\/user\/');\r\n                } catch (error) {\r\n                    return false;\r\n                }\r\n            }\r\n\r\n            function setLoadingState(isLoading) {\r\n                if (isLoading) {\r\n                    submitBtn.disabled = true;\r\n                    submitBtnIcon.className = 'fa-solid fa-spinner';\r\n                    submitBtnText.textContent = 'Processing...';\r\n                    loader.style.display = 'block';\r\n                } else {\r\n                    loader.style.display = 'none';\r\n                    submitBtn.disabled = false;\r\n                    submitBtnIcon.className = 'fa-solid fa-magnifying-glass';\r\n                    submitBtnText.textContent = 'Get Image';\r\n                }\r\n            }\r\n\r\n            function resetUI() {\r\n                errorMessage.style.display = 'none';\r\n                resultContainer.style.display = 'none';\r\n                searchAnotherBtn.style.display = 'none';\r\n            }\r\n\r\n            function showError(message) {\r\n                errorMessage.textContent = `Error: ${message}`;\r\n                errorMessage.style.display = 'block';\r\n            }\r\n\r\n            function sanitizeFilename(name) {\r\n                return name.replace(\/[\\\/\\\\?%*:|\"<>]\/g, '-').replace(\/\\s+\/g, ' ').trim().substring(0, 80) || 'download';\r\n            }\r\n\r\n            \/\/ --- RESULT DISPLAY ---\r\n\r\n            function displayResults(data) {\r\n                const { title, author, medias } = data.data;\r\n                currentTitle = title || 'reddit-image';\r\n\r\n                \/\/ Find the first available image\/gif\r\n                const imageMedia = medias.find(m => m.url && ['jpg', 'jpeg', 'png', 'gif', 'webp'].includes(m.extension));\r\n\r\n                if (!imageMedia) {\r\n                    showError(\"No downloadable image found in this post. This tool does not support videos.\");\r\n                    return;\r\n                }\r\n\r\n                const imageUrl = imageMedia.url;\r\n                const extension = imageMedia.extension || 'jpg';\r\n                const quality = imageMedia.quality || 'High Quality';\r\n\r\n                resultContainer.innerHTML = `\r\n                    <div class=\"result-card\">\r\n                        <div class=\"image-preview-container\">\r\n                             <img decoding=\"async\" src=\"${imageUrl}\" alt=\"${title || 'Reddit Image Preview'}\" class=\"result-image\">\r\n                        <\/div>\r\n                        <div class=\"info\">\r\n                            <h3 class=\"title\" title=\"${title || 'Untitled Post'}\">${title || 'Untitled Post'}<\/h3>\r\n                            <p class=\"author\">By: ${author || 'Unknown Author'}<\/p>\r\n                            <div class=\"download-section\">\r\n                                <button class=\"download-button\" data-url=\"${imageUrl}\" data-extension=\"${extension}\">\r\n                                    <span class=\"icon-text\"><i class=\"fa-solid fa-download\"><\/i> Download ${quality} Image<\/span>\r\n                                    <span class=\"file-info\">${extension.toUpperCase()}<\/span>\r\n                                <\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>`;\r\n\r\n                resultContainer.style.display = 'block';\r\n                searchAnotherBtn.style.display = 'block';\r\n            }\r\n\r\n            \/\/ --- DOWNLOAD WITH PROGRESS ---\r\n\r\n            function triggerDownloadWithProgress(url, extension) {\r\n                if (downloadXHR && downloadXHR.readyState < 4) {\r\n                    showToast('Another download is already in progress.', 'error');\r\n                    return;\r\n                }\r\n\r\n                const toastId = `toast-${Date.now()}`;\r\n                const toast = showToast(\r\n                    `<div class=\"toast-content\">\r\n                        <span>Starting download... 0%<\/span>\r\n                        <div class=\"progress-toast-bar\"><div class=\"progress-toast-filled\"><\/div><\/div>\r\n                    <\/div>\r\n                    <button class=\"cancel-download-btn\" data-toast-id=\"${toastId}\"><i class=\"fas fa-times\"><\/i><\/button>`,\r\n                    'info progress', null, toastId\r\n                );\r\n                attemptDirectDownload(url, extension, toast, toastId);\r\n            }\r\n\r\n            function attemptDirectDownload(url, extension, toast, toastId) {\r\n                downloadXHR = new XMLHttpRequest();\r\n                downloadXHR.open('GET', url, true);\r\n                downloadXHR.responseType = 'blob';\r\n\r\n                downloadXHR.onprogress = (event) => {\r\n                    if (event.lengthComputable) {\r\n                        const percentComplete = Math.round((event.loaded \/ event.total) * 100);\r\n                        const toastContent = toast.querySelector('.toast-content span');\r\n                        const toastProgress = toast.querySelector('.progress-toast-filled');\r\n                        if (toastContent) {\r\n                            const downloadedMB = (event.loaded \/ (1024 * 1024)).toFixed(1);\r\n                            const totalMB = (event.total \/ (1024 * 1024)).toFixed(1);\r\n                            toastContent.textContent = `Downloading... ${percentComplete}% (${downloadedMB}MB \/ ${totalMB}MB)`;\r\n                        }\r\n                        if (toastProgress) toastProgress.style.width = `${percentComplete}%`;\r\n                    }\r\n                };\r\n\r\n                downloadXHR.onload = () => {\r\n                    if (downloadXHR.status === 200) {\r\n                        const blob = downloadXHR.response;\r\n                        const blobUrl = URL.createObjectURL(blob);\r\n                        const a = document.createElement('a');\r\n                        a.href = blobUrl;\r\n                        a.download = `${sanitizeFilename(currentTitle)}.${extension}`;\r\n                        document.body.appendChild(a);\r\n                        a.click();\r\n                        document.body.removeChild(a);\r\n                        URL.revokeObjectURL(blobUrl);\r\n                        showToast('Download completed successfully!', 'success');\r\n                    } else {\r\n                        showToast(`Download failed: Server error ${downloadXHR.status}. Trying...`, 'error');\r\n                        attemptProxyDownload(url, extension, toast, toastId);\r\n                    }\r\n                    dismissToast(toastId);\r\n                };\r\n\r\n                downloadXHR.onerror = () => {\r\n                    showToast('Download processing...', 'info');\r\n                    attemptProxyDownload(url, extension, toast, toastId);\r\n                };\r\n                downloadXHR.onabort = () => { showToast('Download cancelled.', 'info'); dismissToast(toastId); };\r\n                downloadXHR.send();\r\n            }\r\n\r\n            function attemptProxyDownload(url, extension, toast, toastId) {\r\n                const toastContent = toast.querySelector('.toast-content span');\r\n                if (toastContent) toastContent.textContent = 'Preparing download ...';\r\n                const toastProgress = toast.querySelector('.progress-toast-filled');\r\n                if (toastProgress) toastProgress.style.width = `0%`;\r\n\r\n\r\n                \/\/ Using a generic proxy that might work for images\r\n                const proxyApiUrl = `https:\/\/tools.xrespond.com\/api\/reddit\/proxy-media-base64?url=${encodeURIComponent(url)}`;\r\n                downloadXHR = new XMLHttpRequest();\r\n                downloadXHR.open('GET', proxyApiUrl, true);\r\n                downloadXHR.responseType = 'json';\r\n\r\n                downloadXHR.onload = () => {\r\n                    if (downloadXHR.status === 200) {\r\n                        const data = downloadXHR.response;\r\n                        if (data.error || !data.base64) {\r\n                            showToast(`download failed: ${data.message || 'Could not retrieve media.'}`, 'error');\r\n                        } else {\r\n                            const blobUrl = `data:${data.contentType};base64,${data.base64}`;\r\n                            const a = document.createElement('a');\r\n                            a.href = blobUrl;\r\n                            a.download = `${sanitizeFilename(currentTitle)}.${extension}`;\r\n                            document.body.appendChild(a);\r\n                            a.click();\r\n                            document.body.removeChild(a);\r\n                            showToast('Download completed successfully!', 'success');\r\n                        }\r\n                    } else {\r\n                        showToast(`download failed: Server error ${downloadXHR.status}`, 'error');\r\n                    }\r\n                    dismissToast(toastId);\r\n                };\r\n\r\n                downloadXHR.onerror = () => { showToast('download failed: Network error.', 'error'); dismissToast(toastId); };\r\n                downloadXHR.onabort = () => { showToast('Download cancelled.', 'info'); dismissToast(toastId); };\r\n                downloadXHR.send();\r\n            }\r\n\r\n            toastContainer.addEventListener('click', e => {\r\n                const cancelBtn = e.target.closest('.cancel-download-btn');\r\n                if (cancelBtn && downloadXHR) { downloadXHR.abort(); }\r\n            });\r\n\r\n            \/\/ --- TOAST NOTIFICATIONS ---\r\n            function showToast(message, type = 'info', duration = 3500, id = null) {\r\n                const icons = { info: 'fa-circle-info', success: 'fa-circle-check', error: 'fa-circle-xmark', progress: 'fa-solid fa-download' };\r\n                const toast = document.createElement('div');\r\n                toast.className = `toast ${type}`;\r\n                if (id) toast.id = id;\r\n                const iconClass = type.includes('progress') ? icons['progress'] : icons[type];\r\n                toast.innerHTML = `<i class=\"fa-solid ${iconClass}\"><\/i> ${message}`;\r\n                toastContainer.appendChild(toast);\r\n                if (duration !== null) { setTimeout(() => dismissToast(toast), duration); }\r\n                return toast;\r\n            }\r\n\r\n            function dismissToast(toastOrId) {\r\n                const toast = typeof toastOrId === 'string' ? document.getElementById(toastOrId) : toastOrId;\r\n                if (toast) {\r\n                    toast.style.animation = 'slideOut 0.5s ease forwards';\r\n                    setTimeout(() => { if (toast.parentNode) { toast.parentNode.removeChild(toast); } }, 500);\r\n                }\r\n            }\r\n        });\r\n    <\/script><style>       \r\n  :root{\r\n    --grad: linear-gradient(45deg,#FF4500 0%,#FF5700 50%,#FF6347 100%);\r\n    --brand:#FF4500;\r\n    --ink:#333;\r\n    --muted:#666;\r\n    --muted-2:#9498a1;\r\n    --light:#f8f9fa;\r\n    --card:#fff;\r\n    --radius:15px;\r\n    --sh:0 4px 12px rgba(0,0,0,.08);\r\n    --sh-lg:0 8px 24px rgba(0,0,0,.12);\r\n    --t:.3s ease;\r\n  }\r\n\r\n  \/* ---------- Titles ---------- *\/\r\n  .rd-gv-section-title{text-align:center; margin-bottom:60px;}\r\n  .rd-gv-section-title h2{font-weight:700; font-size:2.5rem; color:var(--brand); margin:0 0 12px;}\r\n  .rd-gv-section-title p{color:var(--muted); max-width:700px; margin:0 auto; font-size:1.05rem;}\r\n \r\n  \/* ---------- Cards ---------- *\/\r\n  .cv-card{\r\n    background:var(--card); border-radius:var(--radius); box-shadow:var(--sh);\r\n    height:100%; transition:var(--t); padding:30px;\r\n  }\r\n  .cv-card:hover{transform:translateY(-10px); box-shadow:var(--sh-lg);}\r\n\r\n  \/* Steps *\/\r\n  .rd-gv-step{ position:relative; text-align:center; }\r\n  .rd-gv-step .rd-gv-step-icon{\r\n    width:80px; height:80px; margin:0 auto 22px; border-radius:50%; display:flex; align-items:center; justify-content:center;\r\n    background:var(--grad); color:#fff; font-size:2rem; box-shadow:0 5px 15px rgba(0,0,0,.1); transition:var(--t);\r\n  }\r\n  .rd-gv-step:hover .rd-gv-step-icon{ transform:scale(1.08); }\r\n  .rd-gv-step h3{font-size:1.25rem; font-weight:700; color:var(--brand); margin:0 0 10px;}\r\n  .rd-gv-step p{color:var(--muted); margin:0;}\r\n\r\n  \/* Features *\/\r\n  .rd-gv-feature-card .rd-gv-feature-icon{font-size:2rem; display:block; margin-bottom:14px;}\r\n  .rd-gv-feature-card h3{font-size:1.2rem; font-weight:700; color:var(--brand); margin:0 0 10px;}\r\n  .rd-gv-feature-card p{color:var(--muted); margin:0;}\r\n\r\n  \/* FAQ *\/\r\n  .vr-tool-faq{ margin: 30px auto; }\r\n  .rd-gv-faq-item{ border-radius:12px; overflow:hidden; box-shadow:var(--sh); transition:var(--t); background:#fff; }\r\n  .rd-gv-faq-item:hover{ box-shadow:var(--sh-lg); }\r\n  .rd-gv-faq-question{\r\n    width:100%; padding:20px 24px; display:flex; justify-content:space-between; align-items:center;\r\n    background:#fff; border:none; text-align:left; font-weight:700; font-size:1.05rem; color:var(--brand); transition:var(--t);\r\n  }\r\n  .rd-gv-faq-question:hover{ background:rgba(255,69,0,.05); }\r\n  .rd-gv-faq-question:not(.collapsed){ background:rgba(255,69,0,.1); }\r\n  .rd-gv-faq-question:not(.collapsed)::after{ transform:rotate(180deg); }\r\n  .rd-gv-faq-answer{ padding:0 24px 22px; color:var(--muted); line-height:1.7; }\r\n\r\n  \/* CTA *\/\r\n  .vr-tool-cta{\r\n    background:var(--grad);\r\n    color:#fff;\r\n    text-align:center;\r\n    padding:50px 0;\r\n  }\r\n  .vr-tool-cta .rd-gv-cta-title{\r\n    font-size:2.4rem;\r\n    font-weight:700;\r\n    margin:0 0 20px;\r\n    line-height:1.2;\r\n  }\r\n  .vr-tool-cta .rd-gv-cta-sub{\r\n    max-width:800px;\r\n    margin:0 auto 30px;\r\n    font-size:1.1rem;\r\n    color:rgba(255,255,255,.92);\r\n  }\r\n  .vr-tool-cta .rd-gv-cta-group .btn{\r\n    background:#fff;\r\n    color:var(--brand);\r\n    font-weight:600;\r\n    padding:14px 32px;\r\n    border-radius:50px;\r\n    box-shadow:var(--sh);\r\n    transition:var(--t);\r\n    text-decoration:none;\r\n    display:inline-block;\r\n  }\r\n  .vr-tool-cta .rd-gv-cta-group .btn:hover{\r\n    transform:translateY(-3px);\r\n    box-shadow:var(--sh-lg);\r\n  }\r\n  .vr-tool-cta .rd-gv-cta-note{\r\n    margin-top:14px;\r\n    font-size:.95rem;\r\n    color:rgba(255,255,255,.85);\r\n  }\r\n\r\n  @keyframes fadeUp{ from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none} }\r\n  .animate-in{ animation: fadeUp .6s ease both; }\r\n\r\n  @media (max-width:991px){\r\n    .rd-gv-section-title h2{font-size:2.1rem}\r\n    .vr-tool-cta .rd-gv-cta-title{font-size:2.1rem}\r\n  }\r\n  @media (max-width:767px){\r\n    .rd-gv-section-title h2{font-size:1.8rem}\r\n    .cv-card{margin-bottom:20px}\r\n    .vr-tool-cta{padding:60px 0}\r\n    .vr-tool-cta .rd-gv-cta-title{font-size:1.8rem}\r\n    .vr-tool-cta .rd-gv-cta-sub{font-size:1rem}\r\n  }\r\n<\/style>\r\n\r\n<!-- How It Works -->\r\n<section class=\"vr-tool-how\">\r\n  <div class=\"container\">\r\n    <div class=\"rd-gv-section-title\">\r\n      <h2>How to Use the Reddit Gallery Viewer<\/h2>\r\n      <p>Follow these steps to browse Reddit gallery content anonymously.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"row g-4\">\r\n      <div class=\"col-md-3\">\r\n        <div class=\"cv-card rd-gv-step\">\r\n          <div class=\"rd-gv-step-icon\"><i class=\"fas fa-link\"><\/i><\/div>\r\n          <h3>Enter Gallery URL<\/h3>\r\n          <p>Copy the Reddit gallery or post URL to view.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-3\">\r\n        <div class=\"cv-card rd-gv-step\">\r\n          <div class=\"rd-gv-step-icon\"><i class=\"fas fa-search\"><\/i><\/div>\r\n          <h3>Load Gallery<\/h3>\r\n          <p>Click \u201cView Now\u201d to access public Reddit gallery content.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-3\">\r\n        <div class=\"cv-card rd-gv-step\">\r\n          <div class=\"rd-gv-step-icon\"><i class=\"fas fa-eye\"><\/i><\/div>\r\n          <h3>Browse Anonymously<\/h3>\r\n          <p>View public gallery images and posts privately.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-3\">\r\n        <div class=\"cv-card rd-gv-step\">\r\n          <div class=\"rd-gv-step-icon\"><i class=\"fas fa-user-secret\"><\/i><\/div>\r\n          <h3>No Login Required<\/h3>\r\n          <p>Access galleries without a Reddit account.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- Features -->\r\n<section class=\"vr-tool-features\">\r\n  <div class=\"container\">\r\n    <div class=\"rd-gv-section-title\">\r\n      <h2>Reddit Gallery Viewer Features<\/h2>\r\n      <p>Tools for seamless and private browsing of Reddit gallery content.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"row g-4\">\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\ud83d\udd12<\/span>\r\n          <h3>Anonymous Browsing<\/h3>\r\n          <p>Browse Reddit galleries without revealing your identity.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\ud83d\udcf8<\/span>\r\n          <h3>Public Gallery Access<\/h3>\r\n          <p>View public gallery images and posts effortlessly.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\ud83d\uddbc\ufe0f<\/span>\r\n          <h3>High-Quality Images<\/h3>\r\n          <p>View gallery images in their original resolution.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\ud83d\udcf1<\/span>\r\n          <h3>Multi-Device Support<\/h3>\r\n          <p>Optimized for phones, tablets, and desktops.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\ud83d\udd11<\/span>\r\n          <h3>No Login Needed<\/h3>\r\n          <p>Browse galleries without Reddit credentials.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"col-md-4\">\r\n        <div class=\"cv-card rd-gv-feature-card\">\r\n          <span class=\"rd-gv-feature-icon\">\u26a1<\/span>\r\n          <h3>Fast Access<\/h3>\r\n          <p>Quickly load Reddit gallery content anonymously.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- FAQ -->\r\n<section class=\"vr-tool-faq\">\r\n  <div class=\"container\">\r\n    <div class=\"rd-gv-section-title\">\r\n      <h2>Frequently Asked Questions<\/h2>\r\n      <p>Learn how to use the Reddit Gallery Viewer effectively.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"row justify-content-center\">\r\n      <div class=\"col-lg-8\">\r\n        <div class=\"accordion\" id=\"faqAccordion\">\r\n          <div class=\"rd-gv-faq-item accordion-item mb-3\">\r\n            <h2 class=\"accordion-header\">\r\n              <button class=\"rd-gv-faq-question accordion-button collapsed\" data-bs-toggle=\"collapse\" data-bs-target=\"#faqCollapse1\">\r\n                Can I view private Reddit galleries?\r\n              <\/button>\r\n            <\/h2>\r\n            <div id=\"faqCollapse1\" class=\"accordion-collapse collapse\" data-bs-parent=\"#faqAccordion\">\r\n              <div class=\"rd-gv-faq-answer accordion-body\">\r\n                No. The Reddit Gallery Viewer only shows public gallery content, respecting privacy settings.\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"rd-gv-faq-item accordion-item mb-3\">\r\n            <h2 class=\"accordion-header\">\r\n              <button class=\"rd-gv-faq-question accordion-button collapsed\" data-bs-toggle=\"collapse\" data-bs-target=\"#faqCollapse2\">\r\n                Do I need a Reddit account to view galleries?\r\n              <\/button>\r\n            <\/h2>\r\n            <div id=\"faqCollapse2\" class=\"accordion-collapse collapse\" data-bs-parent=\"#faqAccordion\">\r\n              <div class=\"rd-gv-faq-answer accordion-body\">\r\n                No. The Reddit Gallery Viewer works without a login.\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"rd-gv-faq-item accordion-item mb-3\">\r\n            <h2 class=\"accordion-header\">\r\n              <button class=\"rd-gv-faq-question accordion-button collapsed\" data-bs-toggle=\"collapse\" data-bs-target=\"#faqCollapse3\">\r\n                Is the Reddit Gallery Viewer free to use?\r\n              <\/button>\r\n            <\/h2>\r\n            <div id=\"faqCollapse3\" class=\"accordion-collapse collapse\" data-bs-parent=\"#faqAccordion\">\r\n              <div class=\"rd-gv-faq-answer accordion-body\">\r\n                Yes. It\u2019s a free tool with no charges or subscriptions.\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"rd-gv-faq-item accordion-item mb-3\">\r\n            <h2 class=\"accordion-header\">\r\n              <button class=\"rd-gv-faq-question accordion-button collapsed\" data-bs-toggle=\"collapse\" data-bs-target=\"#faqCollapse4\">\r\n                Is this tool affiliated with Reddit?\r\n              <\/button>\r\n            <\/h2>\r\n            <div id=\"faqCollapse4\" class=\"accordion-collapse collapse\" data-bs-parent=\"#faqAccordion\">\r\n              <div class=\"rd-gv-faq-answer accordion-body\">\r\n                No. This is an independent Reddit Gallery Viewer, and browsing is anonymous with no user alerts.\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- CTA Section -->\r\n<section class=\"vr-tool-cta\">\r\n  <div class=\"container\" style=\"text-align: center;\">\r\n    <h2 class=\"rd-gv-cta-title text-white\">Try the Reddit Gallery Viewer Now<\/h2>\r\n    <p class=\"rd-gv-cta-sub\">\r\n      Browse public Reddit gallery content anonymously without login. Safe, private, and easy to use.\r\n    <\/p>\r\n    <div class=\"rd-gv-cta-group\">\r\n      <a href=\"#\" class=\"btn btn-lg\">Try It Now<\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n  document.querySelectorAll('.rd-gv-faq-question').forEach(btn=>{\r\n    btn.addEventListener('click', ()=>{\r\n      document.querySelectorAll('.rd-gv-faq-question').forEach(b=>{ if(b!==btn) b.classList.add('collapsed'); });\r\n      btn.classList.toggle('collapsed');\r\n    });\r\n  });\r\n<\/script><\/p>\n","protected":false},"author":4,"featured_media":0,"parent":162,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"1300","footnotes":""},"class_list":["post-589","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewri.com\/ar\/wp-json\/wp\/v2\/pages\/589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viewri.com\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/viewri.com\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/viewri.com\/ar\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/viewri.com\/ar\/wp-json\/wp\/v2\/comments?post=589"}],"version-history":[{"count":6,"href":"https:\/\/viewri.com\/ar\/wp-json\/wp\/v2\/pages\/589\/revisions"}],"predecessor-version":[{"id":1255,"href":"https:\/\/viewri.com\/ar\/wp-json\/wp\/v2\/pages\/589\/revisions\/1255"}],"up":[{"embeddable":true,"href":"https:\/\/viewri.com\/ar\/wp-json\/wp\/v2\/pages\/162"}],"wp:attachment":[{"href":"https:\/\/viewri.com\/ar\/wp-json\/wp\/v2\/media?parent=589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}