{"id":293,"date":"2026-03-31T11:20:55","date_gmt":"2026-03-31T11:20:55","guid":{"rendered":"https:\/\/viewanonymous.com\/?page_id=293"},"modified":"2026-03-31T11:20:55","modified_gmt":"2026-03-31T11:20:55","slug":"page","status":"publish","type":"page","link":"https:\/\/viewanonymous.com\/tools\/facebook\/page\/","title":{"rendered":"Facebook Page Browser \u2013 View Pages, Posts &amp; Media Online"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; theme_builder_area=&#8221;post_content&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221;][et_pb_fullwidth_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; theme_builder_area=&#8221;post_content&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;]     <!-- Google Fonts - Premium Typography -->\r\n     <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n     <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\r\n     <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n     \r\n     <!-- Bootstrap CSS -->\r\n     <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\r\n      <!-- font-awesome -->\r\n     <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\r\n\r\n     <!-- Boxicons -->\r\n     <link href=\"https:\/\/unpkg.com\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n     <!-- AOS Animation -->\r\n     <link href=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.css\" rel=\"stylesheet\">\r\n      \r\n\r\n    <style id=\"vvvebjs-styles\">\r\n        html {\r\n            scroll-behavior: smooth;\r\n            -webkit-text-size-adjust: 100%;\r\n            overflow-x: hidden;\r\n        }\r\n\r\n:root {\r\n    --fb-pgv-primary-color: #6366F1;\r\n    --fb-pgv-secondary-color: #8c60ff;\r\n    --fb-pgv-dark-color: #0F172A;\r\n    --fb-pgv-light-color: #FFFFFF;\r\n    --fb-pgv-gray-color: #F1F5F9;\r\n    --fb-pgv-primary-hover: #4F46E5;\r\n    --fb-pgv-secondary-hover: #7c3aed;\r\n    --fb-pgv-section-padding: 100px 0;\r\n}\r\n\r\nbody {\r\n    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n    overflow-x: hidden;\r\n    background-color: var(--va-home-white);\r\n    color: var(--va-home-dark);\r\n    line-height: 1.6;\r\n}\r\n\r\nh1, h2, h3, h4, h5, h6 {\r\n    font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;\r\n    font-weight: 700;\r\n    color: var(--va-home-dark);\r\n    line-height: 1.2;\r\n}\r\n      \r\n        \/* Facebook-style Hero Section *\/\r\n        .fb-pgv-hero-section {\r\n            padding: var(--fb-pgv-section-padding);\r\n            text-align: center;\r\n            background-color: var(--fb-pgv-light-color);\r\n        }\r\n\r\n        .fb-pgv-hero-content {\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        .fb-pgv-hero-section h1 {\r\n            font-size: 3.5rem;\r\n            font-weight: 700;\r\n            margin-bottom: 1.5rem;\r\n            color: var(--fb-pgv-primary-color);\r\n        }\r\n\r\n        .fb-pgv-hero-section p {\r\n            font-size: 1.25rem;\r\n            max-width: 700px;\r\n            margin: 0 auto 2rem;\r\n            opacity: 0.9;\r\n            font-weight: 300;\r\n            color: #666;\r\n        }\r\n\r\n        \/* Work Process Section with Facebook Colors *\/\r\n        .fb-pgv-work-process-section {\r\n            padding: var(--fb-pgv-section-padding);\r\n            background: var(--fb-pgv-primary-color);\r\n            color: white;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .fb-pgv-work-process-section::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: rgba(0, 0, 0, 0.05);\r\n        }\r\n\r\n        .fb-pgv-work-process-content {\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        .fb-pgv-process-step {\r\n            text-align: center;\r\n            padding: 30px 20px;\r\n            position: relative;\r\n            z-index: 1;\r\n            background: rgba(255, 255, 255, 0.1);\r\n            backdrop-filter: blur(10px);\r\n            border-radius: 16px;\r\n            margin: 15px;\r\n            border: 1px solid rgba(255, 255, 255, 0.2);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .fb-pgv-process-step:hover {\r\n            transform: translateY(-10px);\r\n            background: rgba(255, 255, 255, 0.15);\r\n            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        .fb-pgv-step-number {\r\n            width: 60px;\r\n            height: 60px;\r\n            background: white;\r\n            color: var(--fb-pgv-primary-color);\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-weight: 700;\r\n            margin: 0 auto 20px;\r\n            font-size: 1.5rem;\r\n            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        \/* Features Section *\/\r\n        .fb-pgv-features-section {\r\n            padding: var(--fb-pgv-section-padding);\r\n            background: white;\r\n        }\r\n\r\n        .fb-pgv-feature-card {\r\n            padding: 40px 30px;\r\n            border-radius: 16px;\r\n            background: white;\r\n            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);\r\n            margin-bottom: 30px;\r\n            transition: all 0.3s ease;\r\n            border: 1px solid rgba(0, 0, 0, 0.05);\r\n            height: 100%;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .fb-pgv-feature-card::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            width: 4px;\r\n            height: 100%;\r\n            background: var(--fb-pgv-primary-color);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .fb-pgv-feature-card:hover {\r\n            transform: translateY(-10px);\r\n            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        .fb-pgv-feature-card:hover::before {\r\n            width: 100%;\r\n            opacity: 0.1;\r\n        }\r\n\r\n        .fb-pgv-feature-icon {\r\n            width: 70px;\r\n            height: 70px;\r\n            border-radius: 20px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin-bottom: 25px;\r\n            background: var(--fb-pgv-primary-color);\r\n            color: white;\r\n            font-size: 1.8rem;\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .fb-pgv-feature-card:hover .fb-pgv-feature-icon {\r\n            transform: rotate(15deg) scale(1.1);\r\n            background: var(--fb-pgv-primary-hover);\r\n        }\r\n\r\n        \/* Why Choose Section *\/\r\n        .fb-pgv-why-choose-section {\r\n            padding: var(--fb-pgv-section-padding);\r\n            background: #f9f9f9;\r\n        }\r\n\r\n        .fb-pgv-why-choose-image {\r\n            border-radius: 16px;\r\n            overflow: hidden;\r\n            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);\r\n            transform: perspective(1000px) rotateY(-5deg);\r\n            transition: all 0.5s ease;\r\n        }\r\n\r\n        .fb-pgv-why-choose-image:hover {\r\n            transform: perspective(1000px) rotateY(0deg);\r\n        }\r\n\r\n        .fb-pgv-benefit-item {\r\n            display: flex;\r\n            align-items: flex-start;\r\n            margin-bottom: 20px;\r\n            padding: 15px;\r\n            border-radius: 12px;\r\n            background: white;\r\n            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.03);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .fb-pgv-benefit-item:hover {\r\n            transform: translateX(10px);\r\n            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        .fb-pgv-benefit-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            border-radius: 12px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin-right: 15px;\r\n            background: var(--fb-pgv-primary-color);\r\n            color: white;\r\n            font-size: 1.2rem;\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        \/* FAQ Section *\/\r\n        .fb-pgv-faq-section {\r\n            padding: var(--fb-pgv-section-padding);\r\n            background: white;\r\n        }\r\n\r\n        .fb-pgv-accordion-item {\r\n            border: none;\r\n            border-radius: 12px !important;\r\n            overflow: hidden;\r\n            margin-bottom: 15px;\r\n            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);\r\n        }\r\n\r\n        .fb-pgv-accordion-button {\r\n            font-weight: 600;\r\n            color: var(--fb-pgv-dark-color);\r\n            padding: 20px 25px;\r\n            background: white;\r\n            box-shadow: none;\r\n            border-radius: 12px 12px 0 0 !important;\r\n        }\r\n\r\n        .fb-pgv-accordion-button:not(.collapsed) {\r\n            background: white;\r\n            color: var(--fb-pgv-primary-color);\r\n            box-shadow: none;\r\n        }\r\n\r\n        .fb-pgv-accordion-button:focus {\r\n            box-shadow: none;\r\n            border-color: rgba(24, 119, 242, 0.3);\r\n        }\r\n\r\n        .fb-pgv-accordion-button::after {\r\n            background-image: url(\"data:image\/svg+xml,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='%231877F2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'\/%3e%3c\/svg%3e\");\r\n        }\r\n\r\n        .fb-pgv-accordion-body {\r\n            padding: 25px;\r\n            color: #666;\r\n        }\r\n\r\n        \/* Section Titles *\/\r\n        .fb-pgv-section-title {\r\n            font-weight: 700;\r\n            color: var(--fb-pgv-dark-color);\r\n            margin-bottom: 1.5rem;\r\n            position: relative;\r\n            display: inline-block;\r\n        }\r\n\r\n        .fb-pgv-section-title::after {\r\n            content: '';\r\n            position: absolute;\r\n            bottom: -10px;\r\n            left: 0;\r\n            width: 60px;\r\n            height: 4px;\r\n            background: var(--fb-pgv-primary-color);\r\n            border-radius: 2px;\r\n        }\r\n\r\n        .fb-pgv-light-title {\r\n            color: white;\r\n        }\r\n\r\n        .fb-pgv-light-title::after {\r\n            background: white;\r\n        }\r\n\r\n        .fb-pgv-section-subtitle {\r\n            color: #666;\r\n            max-width: 700px;\r\n            margin: 0 auto 3rem;\r\n            font-size: 1.1rem;\r\n        }\r\n\r\n        .fb-pgv-light-subtitle {\r\n            color: rgba(255, 255, 255, 0.8);\r\n        }\r\n\r\n        \/* Responsive Design *\/\r\n        @media (max-width: 991px) {\r\n            :root {\r\n                --fb-pgv-section-padding: 80px 0;\r\n            }\r\n\r\n            .fb-pgv-hero-section h1 {\r\n                font-size: 2.8rem;\r\n            }\r\n\r\n            .fb-pgv-process-step::before {\r\n                display: none;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 767px) {\r\n            :root {\r\n                --fb-pgv-section-padding: 70px 0;\r\n            }\r\n\r\n            .fb-pgv-hero-section {\r\n                padding: 100px 0 60px;\r\n            }\r\n\r\n            .fb-pgv-hero-section h1 {\r\n                font-size: 2.2rem;\r\n            }\r\n\r\n            .fb-pgv-hero-section p {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .fb-pgv-section-title {\r\n                font-size: 1.8rem;\r\n            }\r\n        }\r\n\r\n        \/* Animation *\/\r\n        @keyframes fb-pgv-float {\r\n            0% {\r\n                transform: translateY(0px);\r\n            }\r\n\r\n            50% {\r\n                transform: translateY(-15px);\r\n            }\r\n\r\n            100% {\r\n                transform: translateY(0px);\r\n            }\r\n        }\r\n\r\n        .fb-pgv-floating-element {\r\n            animation: fb-pgv-float 6s ease-in-out infinite;\r\n        }\r\n\r\n        \/* Custom Scrollbar *\/\r\n        ::-webkit-scrollbar {\r\n            width: 8px;\r\n        }\r\n\r\n        ::-webkit-scrollbar-track {\r\n            background: #f1f1f1;\r\n        }\r\n\r\n        ::-webkit-scrollbar-thumb {\r\n            background: var(--fb-pgv-primary-color);\r\n            border-radius: 10px;\r\n        }\r\n\r\n        ::-webkit-scrollbar-thumb:hover {\r\n            background: var(--fb-pgv-primary-hover);\r\n        }\r\n\r\n        \/* Footer Section *\/\r\n        .footer-section {\r\n            background: radial-gradient(circle, rgba(16, 33, 120, 1) 0%, rgba(94, 7, 6, 1) 100%);\r\n            color: #fff;\r\n            padding-top: 80px;\r\n            padding-bottom: 80px;\r\n        }\r\n\r\n        .footer-logo {\r\n            width: 200px;\r\n            margin-bottom: 10px;\r\n            cursor: pointer;\r\n        }\r\n\r\n        .footer-description {\r\n            font-size: 14px;\r\n            color: #bbb;\r\n        }\r\n\r\n        .footer-heading {\r\n            font-size: 18px;\r\n            font-weight: 600;\r\n            color: #fff;\r\n            margin-bottom: 15px;\r\n        }\r\n\r\n        \/* Quick Links and Tools *\/\r\n        .footer-links .footer-link,\r\n        .footer-tools .footer-tool {\r\n            color: #bbb;\r\n            text-decoration: none;\r\n            font-size: 14px;\r\n            display: block;\r\n            margin-bottom: 10px;\r\n            transition: color 0.3s ease;\r\n        }\r\n\r\n        .footer-links .footer-link:hover,\r\n        .footer-tools .footer-tool:hover {\r\n            color: #fff;\r\n        }\r\n\r\n        \/* Social Icons (Boxicons) *\/\r\n        .footer-social .social-icon {\r\n            color: #bbb;\r\n            font-size: 24px;\r\n            text-decoration: none;\r\n            transition: color 0.3s ease;\r\n        }\r\n\r\n        .footer-social .social-icon:hover {\r\n            color: #fff;\r\n        }\r\n\r\n        \/* Footer Copyright Section *\/\r\n        .footer-copyright {\r\n            background-color: #1a1a1a;\r\n        }\r\n\r\n        .footer-bottom-text {\r\n            font-size: 14px;\r\n            color: #bbb;\r\n        }\r\n\r\n        \/* Responsive Design *\/\r\n        @media (max-width: 767.98px) {\r\n            .footer-logo {\r\n                width: 200px;\r\n            }\r\n\r\n            .footer-description {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .footer-heading {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .footer-link,\r\n            .footer-tool {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .footer-bottom-text {\r\n                font-size: 14px;\r\n            }\r\n        }\r\n    <\/style>\r\n    <!-- tools -->\r\n    <style>\r\n        :root {\r\n            \/* Facebook-Inspired Color System *\/\r\n            --facebook-blue: #1877f2;\r\n            --facebook-blue-dark: #166fe5;\r\n            --facebook-blue-light: #42a5f5;\r\n            --facebook-blue-lighter: #e3f2fd;\r\n            --facebook-green: #42b883;\r\n            --facebook-gray: #65676b;\r\n            --facebook-gray-light: #f0f2f5;\r\n            --facebook-gray-dark: #1c1e21;\r\n\r\n            \/* Primary Color System (Facebook Blue-based) *\/\r\n            --primary-50: #e3f2fd;\r\n            --primary-100: #bbdefb;\r\n            --primary-200: #90caf9;\r\n            --primary-300: #64b5f6;\r\n            --primary-400: #42a5f5;\r\n            --primary-500: #1877f2;\r\n            --primary-600: #166fe5;\r\n            --primary-700: #1565c0;\r\n            --primary-800: #0d47a1;\r\n            --primary-900: #0a3d91;\r\n\r\n            \/* Secondary Color System (Green-based) *\/\r\n            --secondary-50: #e8f5e8;\r\n            --secondary-100: #c8e6c9;\r\n            --secondary-200: #a5d6a7;\r\n            --secondary-300: #81c784;\r\n            --secondary-400: #66bb6a;\r\n            --secondary-500: #42b883;\r\n            --secondary-600: #388e3c;\r\n            --secondary-700: #2e7d32;\r\n            --secondary-800: #1b5e20;\r\n            --secondary-900: #0d4f14;\r\n\r\n            \/* Accent Color System (Light Blue-based) *\/\r\n            --accent-50: #f0f8ff;\r\n            --accent-100: #e1f5fe;\r\n            --accent-200: #b3e5fc;\r\n            --accent-300: #81d4fa;\r\n            --accent-400: #4fc3f7;\r\n            --accent-500: #29b6f6;\r\n            --accent-600: #0288d1;\r\n            --accent-700: #0277bd;\r\n            --accent-800: #01579b;\r\n            --accent-900: #014377;\r\n\r\n            \/* Success Color System (Green-based) *\/\r\n            --success-50: #e8f5e8;\r\n            --success-100: #c8e6c9;\r\n            --success-200: #a5d6a7;\r\n            --success-300: #81c784;\r\n            --success-400: #66bb6a;\r\n            --success-500: #4caf50;\r\n            --success-600: #388e3c;\r\n            --success-700: #2e7d32;\r\n            --success-800: #1b5e20;\r\n            --success-900: #0d4f14;\r\n\r\n            \/* Warning Color System (Orange-based) *\/\r\n            --warning-50: #fff3e0;\r\n            --warning-100: #ffe0b2;\r\n            --warning-200: #ffcc80;\r\n            --warning-300: #ffb74d;\r\n            --warning-400: #ffa726;\r\n            --warning-500: #ff9800;\r\n            --warning-600: #f57c00;\r\n            --warning-700: #ef6c00;\r\n            --warning-800: #e65100;\r\n            --warning-900: #bf360c;\r\n\r\n            \/* Neutral System *\/\r\n            --white: #ffffff;\r\n            --gray-25: #fcfcfd;\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            --gray-950: #020617;\r\n\r\n            \/* Facebook-Inspired Gradients - Consistent Blue Theme *\/\r\n            --gradient-primary: linear-gradient(135deg,#6366f1 0%,#8c60ff 100%);\r\n            --gradient-secondary: linear-gradient(135deg, #42a5f5 0%, #29b6f6 100%);\r\n            --gradient-accent: linear-gradient(135deg, #29b6f6 0%, #4fc3f7 100%);\r\n            --gradient-success: linear-gradient(135deg, #42b883 0%, #4caf50 100%);\r\n            --gradient-warm: linear-gradient(135deg, #ff9800 0%, #ff5722 100%);\r\n            --gradient-cool: linear-gradient(135deg, #1877f2 0%, #29b6f6 100%);\r\n            --gradient-dark: linear-gradient(135deg, #1c1e21 0%, #65676b 100%);\r\n            --gradient-mesh: radial-gradient(at 40% 20%, rgba(24, 119, 242, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 80% 0%, rgba(66, 165, 245, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 0% 50%, rgba(41, 182, 246, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 80% 50%, rgba(79, 195, 247, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 0% 100%, rgba(66, 184, 131, 0.3) 0px, transparent 50%);\r\n\r\n            \/* Advanced Shadows *\/\r\n            --shadow-xs: 0 1px 2px 0 rgb(0 0 0 \/ 0.05);\r\n            --shadow-sm: 0 1px 3px 0 rgb(0 0 0 \/ 0.1), 0 1px 2px -1px rgb(0 0 0 \/ 0.1);\r\n            --shadow-md: 0 4px 6px -1px rgb(0 0 0 \/ 0.1), 0 2px 4px -2px rgb(0 0 0 \/ 0.1);\r\n            --shadow-lg: 0 10px 15px -3px rgb(0 0 0 \/ 0.1), 0 4px 6px -4px rgb(0 0 0 \/ 0.1);\r\n            --shadow-xl: 0 20px 25px -5px rgb(0 0 0 \/ 0.1), 0 8px 10px -6px rgb(0 0 0 \/ 0.1);\r\n            --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 \/ 0.25);\r\n            --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 \/ 0.05);\r\n            --shadow-colored-primary: 0 20px 25px -5px rgb(24 119 242 \/ 0.2), 0 8px 10px -6px rgb(24 119 242 \/ 0.2);\r\n            --shadow-colored-secondary: 0 20px 25px -5px rgb(66 165 245 \/ 0.2), 0 8px 10px -6px rgb(66 165 245 \/ 0.2);\r\n            --shadow-colored-accent: 0 20px 25px -5px rgb(41 182 246 \/ 0.2), 0 8px 10px -6px rgb(41 182 246 \/ 0.2);\r\n\r\n            \/* Border Radius System *\/\r\n            --radius-none: 0;\r\n            --radius-sm: 0.125rem;\r\n            --radius: 0.25rem;\r\n            --radius-md: 0.375rem;\r\n            --radius-lg: 0.5rem;\r\n            --radius-xl: 0.75rem;\r\n            --radius-2xl: 1rem;\r\n            --radius-3xl: 1.5rem;\r\n            --radius-4xl: 2rem;\r\n            --radius-full: 9999px;\r\n\r\n            \/* Spacing System *\/\r\n            --space-px: 1px;\r\n            --space-0: 0;\r\n            --space-1: 0.25rem;\r\n            --space-2: 0.5rem;\r\n            --space-3: 0.75rem;\r\n            --space-4: 1rem;\r\n            --space-5: 1.25rem;\r\n            --space-6: 1.5rem;\r\n            --space-8: 2rem;\r\n            --space-10: 2.5rem;\r\n            --space-12: 3rem;\r\n            --space-16: 4rem;\r\n            --space-20: 5rem;\r\n            --space-24: 6rem;\r\n            --space-32: 8rem;\r\n\r\n            \/* Typography Scale *\/\r\n            --text-xs: 0.75rem;\r\n            --text-sm: 0.875rem;\r\n            --text-base: 1rem;\r\n            --text-lg: 1.125rem;\r\n            --text-xl: 1.25rem;\r\n            --text-2xl: 1.5rem;\r\n            --text-3xl: 1.875rem;\r\n            --text-4xl: 2.25rem;\r\n            --text-5xl: 3rem;\r\n            --text-6xl: 3.75rem;\r\n            --text-7xl: 4.5rem;\r\n            --text-8xl: 6rem;\r\n            --text-9xl: 8rem;\r\n\r\n            \/* Animation System *\/\r\n            --duration-75: 75ms;\r\n            --duration-100: 100ms;\r\n            --duration-150: 150ms;\r\n            --duration-200: 200ms;\r\n            --duration-300: 300ms;\r\n            --duration-500: 500ms;\r\n            --duration-700: 700ms;\r\n            --duration-1000: 1000ms;\r\n\r\n            --ease-linear: linear;\r\n            --ease-in: cubic-bezier(0.4, 0, 1, 1);\r\n            --ease-out: cubic-bezier(0, 0, 0.2, 1);\r\n            --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\r\n            --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);\r\n            --ease-elastic: cubic-bezier(0.175, 0.885, 0.32, 1.275);\r\n        }\r\n\r\n        \/* Reset & Base *\/\r\n        *,\r\n        *::before,\r\n        *::after {\r\n            box-sizing: border-box;\r\n            margin: 0;\r\n            padding: 0;\r\n        }\r\n\r\n\r\n        \/* body {\r\n            font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n            font-feature-settings: 'cv11', 'ss01';\r\n            font-variation-settings: 'opsz' 32;\r\n            background: var(--gray-25);\r\n            color: var(--gray-900);\r\n            line-height: 1.6;\r\n            -webkit-font-smoothing: antialiased;\r\n            -moz-osx-font-smoothing: grayscale;\r\n            text-rendering: optimizeLegibility;\r\n            overflow-x: hidden;\r\n            min-height: 100vh;\r\n        } *\/\r\n\r\n        \/* Premium Background *\/\r\n        .bg-pattern {\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: var(--gradient-mesh);\r\n            opacity: 0.4;\r\n            z-index: -2;\r\n            animation: meshFloat 20s ease-in-out infinite;\r\n        }\r\n\r\n        .bg-pattern::before {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 0;\r\n            background:\r\n                radial-gradient(circle at 20% 80%, rgba(24, 119, 242, 0.08) 0%, transparent 50%),\r\n                radial-gradient(circle at 80% 20%, rgba(66, 165, 245, 0.08) 0%, transparent 50%),\r\n                radial-gradient(circle at 40% 40%, rgba(41, 182, 246, 0.08) 0%, transparent 50%);\r\n            animation: float 25s ease-in-out infinite reverse;\r\n        }\r\n\r\n        .bg-overlay {\r\n            position: fixed;\r\n            inset: 0;\r\n            background: linear-gradient(135deg, var(--white) 0%, rgba(248, 250, 252, 0.8) 100%);\r\n            z-index: -1;\r\n        }\r\n\r\n        .video-meta {\r\n            display: flex;\r\n            justify-content: space-between;\r\n        }\r\n\r\n        @keyframes meshFloat {\r\n\r\n            0%,\r\n            100% {\r\n                transform: translateY(0px) rotate(0deg) scale(1);\r\n            }\r\n\r\n            33% {\r\n                transform: translateY(-20px) rotate(1deg) scale(1.02);\r\n            }\r\n\r\n            66% {\r\n                transform: translateY(10px) rotate(-1deg) scale(0.98);\r\n            }\r\n        }\r\n\r\n        @keyframes float {\r\n\r\n            0%,\r\n            100% {\r\n                transform: translateY(0px) rotate(0deg);\r\n            }\r\n\r\n            50% {\r\n                transform: translateY(-30px) rotate(2deg);\r\n            }\r\n        }\r\n\r\n        \/* Container System *\/\r\n        .fb-pgv-custom-container {\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n            padding: 2rem;\r\n            position: relative;\r\n            margin-top: 100px!important;\r\n        }\r\n\r\n        \/* Premium Header *\/\r\n        .header {\r\n            text-align: center;\r\n            margin-bottom: 2.5rem;\r\n            animation: slideDown 1s cubic-bezier(0.175, 0.885, 0.32, 1.275);\r\n            position: relative;\r\n        }\r\n\r\n        .header::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: -50%;\r\n            left: 50%;\r\n            width: 200%;\r\n            height: 200%;\r\n            background: radial-gradient(circle, rgba(24, 119, 242, 0.05) 0%, transparent 70%);\r\n            transform: translateX(-50%);\r\n            z-index: -1;\r\n        }\r\n\r\n        @keyframes slideDown {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(-60px) scale(0.9);\r\n                filter: blur(10px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0) scale(1);\r\n                filter: blur(0);\r\n            }\r\n        }\r\n\r\n        .header h1 {\r\n            font-size: clamp(2.25rem, 8vw, 4.5rem);\r\n            font-weight: 900;\r\n            background: var(--gradient-primary);\r\n            background-clip: text;\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            margin-bottom: 1.5rem;\r\n            letter-spacing: -0.04em;\r\n            line-height: 0.9;\r\n            position: relative;\r\n            padding: 10px\r\n        }\r\n\r\n        .header h1::after {\r\n            content: '';\r\n            position: absolute;\r\n            bottom: -10px;\r\n            left: 50%;\r\n            width: 100px;\r\n            height: 4px;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-full);\r\n            transform: translateX(-50%);\r\n            animation: shimmer 3s ease-in-out infinite;\r\n        }\r\n\r\n        @keyframes shimmer {\r\n\r\n            0%,\r\n            100% {\r\n                opacity: 0.5;\r\n                transform: translateX(-50%) scaleX(1);\r\n            }\r\n\r\n            50% {\r\n                opacity: 1;\r\n                transform: translateX(-50%) scaleX(1.2);\r\n            }\r\n        }\r\n\r\n        .header p {\r\n            font-size: 1.25rem;\r\n            color: var(--gray-600);\r\n            font-weight: 500;\r\n            max-width: 600px;\r\n            margin: 0 auto;\r\n            line-height: 1.7;\r\n        }\r\n\r\n        \/* Premium Search Section *\/\r\n        .search-section {\r\n            background: var(--gradient-primary);\r\n            border-radius: 2rem;\r\n            box-shadow: 0 32px 64px rgba(24, 119, 242, 0.3);\r\n            margin-bottom: 3rem;\r\n            padding: 3rem 2rem;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .search-section::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            bottom: 0;\r\n            background: none;\r\n            opacity: 0.3;\r\n        }\r\n\r\n        .search-container {\r\n            max-width: 900px;\r\n            margin: 0 auto;\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .search-header {\r\n            text-align: center;\r\n            margin-bottom: 48px;\r\n        }\r\n\r\n        .search-icon {\r\n            width: 100px;\r\n            height: 100px;\r\n            background: linear-gradient(135deg, #ffffff, #f8fafc);\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin: 0 auto 24px;\r\n            box-shadow: 0 16px 32px rgba(0, 0, 0, 0.2);\r\n            border: 4px solid rgba(255, 255, 255, 0.3);\r\n        }\r\n\r\n        .search-icon i {\r\n            font-size: 40px;\r\n            background: var(--gradient-primary);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n        }\r\n\r\n        .search-title {\r\n            font-size: 36px;\r\n            font-weight: 900;\r\n            color: white;\r\n            margin-bottom: 16px;\r\n            letter-spacing: -0.02em;\r\n            text-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);\r\n        }\r\n\r\n        .search-description {\r\n            font-size: 18px;\r\n            color: rgba(255, 255, 255, 0.9);\r\n            line-height: 1.6;\r\n            max-width: 600px;\r\n            margin: 0 auto;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .input-container {\r\n            background: rgba(255, 255, 255, 0.95);\r\n            backdrop-filter: blur(20px);\r\n            border-radius: 24px;\r\n            padding: 32px;\r\n            box-shadow: 0 16px 32px rgba(0, 0, 0, 0.1);\r\n            border: 1px solid rgba(255, 255, 255, 0.2);\r\n            margin-bottom: 32px;\r\n        }\r\n\r\n        .input-wrapper {\r\n            display: flex;\r\n            align-items: center;\r\n            background: white;\r\n            border-radius: 16px;\r\n            border: 2px solid #e2e8f0;\r\n            transition: all 0.3s ease;\r\n            overflow: hidden;\r\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);\r\n        }\r\n\r\n        .input-wrapper:focus-within {\r\n            border-color: var(--primary-500);\r\n            box-shadow: 0 0 0 4px rgba(24, 119, 242, 0.1), 0 8px 24px rgba(24, 119, 242, 0.2);\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        .input-icon {\r\n            padding: 0 20px;\r\n            color: var(--primary-500);\r\n            font-size: 20px;\r\n        }\r\n\r\n        .url-input {\r\n            flex: 1;\r\n            border: none;\r\n            background: transparent;\r\n            padding: 20px 0;\r\n            font-size: 16px;\r\n            color: #1a202c;\r\n            outline: none;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .url-input::placeholder {\r\n            color: #94a3b8;\r\n            font-weight: 400;\r\n        }\r\n\r\n        .analyze-btn {\r\n            background: var(--gradient-primary);\r\n            color: white;\r\n            border: none;\r\n            padding: 20px 32px;\r\n            font-size: 16px;\r\n            font-weight: 700;\r\n            border-radius: 12px;\r\n            margin: 8px;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.5px;\r\n        }\r\n\r\n        .analyze-btn:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: 0 12px 32px rgba(24, 119, 242, 0.4);\r\n        }\r\n\r\n        .analyze-btn:disabled {\r\n            opacity: 0.7;\r\n            cursor: not-allowed;\r\n            transform: none;\r\n        }\r\n\r\n        .input-help {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 8px;\r\n            margin-top: 16px;\r\n            color: #64748b;\r\n            font-size: 14px;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .input-help i {\r\n            color: var(--primary-500);\r\n        }\r\n\r\n        .features-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\r\n            gap: 24px;\r\n            margin-top: 32px;\r\n        }\r\n\r\n        .feature-item {\r\n            background: rgba(255, 255, 255, 0.1);\r\n            backdrop-filter: blur(10px);\r\n            border-radius: 20px;\r\n            padding: 24px;\r\n            text-align: center;\r\n            border: 1px solid rgba(255, 255, 255, 0.2);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .feature-item:hover {\r\n            transform: translateY(-4px);\r\n            background: rgba(255, 255, 255, 0.15);\r\n            box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        .feature-icon {\r\n            width: 60px;\r\n            height: 60px;\r\n            background: linear-gradient(135deg, #ffffff, #f8fafc);\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin: 0 auto 16px;\r\n            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        .feature-icon i {\r\n            font-size: 24px;\r\n            background: var(--gradient-primary);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n        }\r\n\r\n        .feature-text h4 {\r\n            color: white;\r\n            font-size: 18px;\r\n            font-weight: 700;\r\n            margin-bottom: 8px;\r\n        }\r\n\r\n        .feature-text p {\r\n            color: rgba(255, 255, 255, 0.8);\r\n            font-size: 14px;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .error-message {\r\n            background: #fef2f2;\r\n            color: #dc2626;\r\n            padding: 16px 20px;\r\n            border-radius: 12px;\r\n            margin-top: 20px;\r\n            border: 1px solid #fecaca;\r\n            font-size: 14px;\r\n            font-weight: 500;\r\n            text-align: center;\r\n        }\r\n\r\n        \/* Responsive Design for Input Section *\/\r\n        @media (max-width: 1024px) {\r\n            .search-section {\r\n                padding: 50px 30px;\r\n                margin-bottom: 40px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 32px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 17px;\r\n            }\r\n\r\n            .input-container {\r\n                padding: 28px;\r\n            }\r\n\r\n            .features-grid {\r\n                grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\r\n                gap: 20px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .search-section {\r\n                padding: 40px 20px;\r\n                margin-bottom: 32px;\r\n                border-radius: 24px;\r\n            }\r\n\r\n            .search-container {\r\n                max-width: 100%;\r\n            }\r\n\r\n            .search-header {\r\n                margin-bottom: 36px;\r\n            }\r\n\r\n            .search-icon {\r\n                width: 80px;\r\n                height: 80px;\r\n                margin-bottom: 20px;\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 32px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 28px;\r\n                margin-bottom: 12px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 16px;\r\n                max-width: 100%;\r\n            }\r\n\r\n            .input-container {\r\n                padding: 24px 20px;\r\n                border-radius: 20px;\r\n            }\r\n\r\n            .input-wrapper {\r\n                flex-direction: column;\r\n                border-radius: 12px;\r\n                padding: 8px;\r\n            }\r\n\r\n            .input-icon {\r\n                display: none;\r\n            }\r\n\r\n            .url-input {\r\n                padding: 16px 20px;\r\n                text-align: center;\r\n                border-radius: 8px;\r\n                margin-bottom: 12px;\r\n                background: #f8fafc;\r\n            }\r\n\r\n            .analyze-btn {\r\n                width: 100%;\r\n                justify-content: center;\r\n                padding: 16px 24px;\r\n                border-radius: 8px;\r\n                margin: 0;\r\n                font-size: 15px;\r\n            }\r\n\r\n            .input-help {\r\n                margin-top: 12px;\r\n                font-size: 13px;\r\n                text-align: center;\r\n            }\r\n\r\n            .features-grid {\r\n                grid-template-columns: 1fr;\r\n                gap: 16px;\r\n                margin-top: 24px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 20px;\r\n                border-radius: 16px;\r\n            }\r\n\r\n            .feature-icon {\r\n                width: 50px;\r\n                height: 50px;\r\n                margin-bottom: 12px;\r\n            }\r\n\r\n            .feature-icon i {\r\n                font-size: 20px;\r\n            }\r\n\r\n            .feature-text h4 {\r\n                font-size: 16px;\r\n            }\r\n\r\n            .feature-text p {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .error-message {\r\n                padding: 12px 16px;\r\n                font-size: 13px;\r\n                margin-top: 16px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n            .search-section {\r\n                padding: 30px 16px;\r\n                margin-bottom: 24px;\r\n                border-radius: 20px;\r\n            }\r\n\r\n            .search-header {\r\n                margin-bottom: 28px;\r\n            }\r\n\r\n            .search-icon {\r\n                width: 70px;\r\n                height: 70px;\r\n                margin-bottom: 16px;\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 28px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 24px;\r\n                margin-bottom: 10px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 15px;\r\n                line-height: 1.5;\r\n            }\r\n\r\n            .input-container {\r\n                padding: 20px 16px;\r\n                border-radius: 16px;\r\n            }\r\n\r\n            .input-wrapper {\r\n                padding: 6px;\r\n            }\r\n\r\n            .url-input {\r\n                padding: 14px 16px;\r\n                font-size: 15px;\r\n                margin-bottom: 10px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                padding: 14px 20px;\r\n                font-size: 14px;\r\n                gap: 8px;\r\n            }\r\n\r\n            .analyze-btn span {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .input-help {\r\n                font-size: 12px;\r\n                margin-top: 10px;\r\n            }\r\n\r\n            .features-grid {\r\n                gap: 12px;\r\n                margin-top: 20px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 16px;\r\n                border-radius: 12px;\r\n            }\r\n\r\n            .feature-icon {\r\n                width: 45px;\r\n                height: 45px;\r\n                margin-bottom: 10px;\r\n            }\r\n\r\n            .feature-icon i {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .feature-text h4 {\r\n                font-size: 15px;\r\n                margin-bottom: 6px;\r\n            }\r\n\r\n            .feature-text p {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .error-message {\r\n                padding: 10px 14px;\r\n                font-size: 12px;\r\n                margin-top: 12px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 360px) {\r\n            .search-section {\r\n                padding: 24px 12px;\r\n                border-radius: 16px;\r\n            }\r\n\r\n            .search-icon {\r\n                width: 60px;\r\n                height: 60px;\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 24px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 22px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .input-container {\r\n                padding: 16px 12px;\r\n            }\r\n\r\n            .url-input {\r\n                padding: 12px 14px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                padding: 12px 16px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 14px;\r\n            }\r\n\r\n            .feature-icon {\r\n                width: 40px;\r\n                height: 40px;\r\n            }\r\n\r\n            .feature-icon i {\r\n                font-size: 16px;\r\n            }\r\n        }\r\n\r\n        \/* Landscape orientation for mobile *\/\r\n        @media (max-width: 768px) and (orientation: landscape) {\r\n            .search-section {\r\n                padding: 30px 20px;\r\n            }\r\n\r\n            .search-header {\r\n                margin-bottom: 24px;\r\n            }\r\n\r\n            .search-icon {\r\n                width: 60px;\r\n                height: 60px;\r\n                margin-bottom: 12px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 24px;\r\n                margin-bottom: 8px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .input-container {\r\n                padding: 20px;\r\n            }\r\n\r\n            .features-grid {\r\n                grid-template-columns: repeat(3, 1fr);\r\n                gap: 12px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 16px 12px;\r\n            }\r\n\r\n            .feature-text h4 {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .feature-text p {\r\n                font-size: 11px;\r\n            }\r\n        }\r\n\r\n        \/* High DPI displays *\/\r\n        @media (-webkit-min-device-pixel-ratio: 2),\r\n        (min-resolution: 192dpi) {\r\n            .search-section::before {\r\n                background-size: 50px 50px;\r\n            }\r\n        }\r\n\r\n        \/* Reduced motion for accessibility *\/\r\n        @media (prefers-reduced-motion: reduce) {\r\n\r\n            .search-section,\r\n            .input-wrapper,\r\n            .analyze-btn,\r\n            .feature-item {\r\n                transition: none;\r\n            }\r\n\r\n            .analyze-btn:hover,\r\n            .feature-item:hover {\r\n                transform: none;\r\n            }\r\n        }\r\n\r\n        \/* Dark mode support *\/\r\n        @media (prefers-color-scheme: dark) {\r\n            .input-wrapper {\r\n                background: #1a202c;\r\n                border-color: #2d3748;\r\n            }\r\n\r\n            .url-input {\r\n                color: #e2e8f0;\r\n                background: transparent;\r\n            }\r\n\r\n            .url-input::placeholder {\r\n                color: #718096;\r\n            }\r\n\r\n            .input-container {\r\n                background: rgba(26, 32, 44, 0.95);\r\n                border-color: rgba(255, 255, 255, 0.1);\r\n            }\r\n        }\r\n\r\n        \/* Additional Responsive Text Styles *\/\r\n        @media (max-width: 1024px) {\r\n            .header h1 {\r\n                font-size: clamp(var(--text-3xl), 6vw, var(--text-5xl));\r\n                margin-bottom: var(--space-4);\r\n            }\r\n\r\n            .header p {\r\n                font-size: var(--text-lg);\r\n                max-width: 500px;\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 36px;\r\n            }\r\n\r\n            .input-icon {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .url-input {\r\n                font-size: 15px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                font-size: 15px;\r\n                padding: 18px 28px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .header h1 {\r\n                font-size: clamp(var(--text-2xl), 5vw, var(--text-4xl));\r\n                margin-bottom: var(--space-3);\r\n            }\r\n\r\n            .header p {\r\n                font-size: var(--text-base);\r\n                max-width: 100%;\r\n                padding: 0 var(--space-4);\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 32px;\r\n            }\r\n\r\n            .input-icon {\r\n                font-size: 16px;\r\n            }\r\n\r\n            .url-input {\r\n                font-size: 15px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                font-size: 15px;\r\n                padding: 16px 24px;\r\n            }\r\n\r\n            .input-help {\r\n                font-size: 13px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n            .header h1 {\r\n                font-size: clamp(var(--text-xl), 4vw, var(--text-3xl));\r\n                margin-bottom: var(--space-2);\r\n            }\r\n\r\n            .header p {\r\n                font-size: var(--text-sm);\r\n                padding: 0 var(--space-3);\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 28px;\r\n            }\r\n\r\n            .input-icon {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .url-input {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                font-size: 14px;\r\n                padding: 14px 20px;\r\n            }\r\n\r\n            .input-help {\r\n                font-size: 12px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 360px) {\r\n            .header h1 {\r\n                font-size: clamp(var(--text-lg), 3.5vw, var(--text-2xl));\r\n            }\r\n\r\n            .header p {\r\n                font-size: var(--text-xs);\r\n                padding: 0 var(--space-2);\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 24px;\r\n            }\r\n\r\n            .input-icon {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .url-input {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                font-size: 13px;\r\n                padding: 12px 16px;\r\n            }\r\n\r\n            .input-help {\r\n                font-size: 11px;\r\n            }\r\n        }\r\n\r\n        \/* Landscape orientation text adjustments *\/\r\n        @media (max-width: 768px) and (orientation: landscape) {\r\n            .header h1 {\r\n                font-size: clamp(var(--text-xl), 4vw, var(--text-2xl));\r\n                margin-bottom: var(--space-2);\r\n            }\r\n\r\n            .header p {\r\n                font-size: var(--text-sm);\r\n                max-width: 80%;\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 28px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 24px;\r\n                margin-bottom: 8px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 14px;\r\n            }\r\n        }\r\n\r\n        \/* Ensure minimum readable font sizes *\/\r\n        @media (max-width: 480px) {\r\n            .header h1 {\r\n                font-size: max(20px, clamp(var(--text-lg), 3.5vw, var(--text-2xl)));\r\n            }\r\n\r\n            .header p {\r\n                font-size: max(12px, var(--text-xs));\r\n            }\r\n\r\n            .search-title {\r\n                font-size: max(20px, 24px);\r\n            }\r\n\r\n            .search-description {\r\n                font-size: max(12px, 15px);\r\n            }\r\n\r\n            .url-input {\r\n                font-size: max(14px, 15px);\r\n            }\r\n\r\n            .analyze-btn {\r\n                font-size: max(13px, 14px);\r\n            }\r\n\r\n            .input-help {\r\n                font-size: max(11px, 12px);\r\n            }\r\n\r\n            .feature-text h4 {\r\n                font-size: max(13px, 15px);\r\n            }\r\n\r\n            .feature-text p {\r\n                font-size: max(11px, 12px);\r\n            }\r\n        }\r\n\r\n        \/* Premium Loading *\/\r\n        .loading {\r\n            text-align: center;\r\n            padding: var(--space-20) var(--space-8);\r\n            background: linear-gradient(135deg, var(--white) 0%, rgba(24, 119, 242, 0.05) 100%);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-2xl);\r\n            border: 1px solid rgba(24, 119, 242, 0.2);\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .loading::before {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(45deg, transparent 30%, rgba(66, 165, 245, 0.08) 50%, transparent 70%);\r\n            animation: loadingShimmer 2s ease-in-out infinite;\r\n        }\r\n\r\n        @keyframes loadingShimmer {\r\n            0% {\r\n                transform: translateX(-100%) translateY(-100%);\r\n            }\r\n\r\n            100% {\r\n                transform: translateX(100%) translateY(100%);\r\n            }\r\n        }\r\n\r\n        .loading-spinner {\r\n            width: 80px;\r\n            height: 80px;\r\n            margin: 0 auto var(--space-8);\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .loading-spinner::before {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 0;\r\n            border: 4px solid rgba(24, 119, 242, 0.3);\r\n            border-top: 4px solid var(--primary-500);\r\n            border-radius: 50%;\r\n            animation: spin var(--duration-1000) linear infinite;\r\n        }\r\n\r\n        .loading-spinner::after {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 8px;\r\n            border: 3px solid transparent;\r\n            border-top: 3px solid var(--primary-400);\r\n            border-radius: 50%;\r\n            animation: spin var(--duration-700) linear infinite reverse;\r\n        }\r\n\r\n        @keyframes spin {\r\n            to {\r\n                transform: rotate(360deg);\r\n            }\r\n        }\r\n\r\n        .loading-text {\r\n            font-size: var(--text-xl);\r\n            font-weight: 700;\r\n            background: var(--gradient-primary);\r\n            background-clip: text;\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            animation: pulse var(--duration-1000) ease-in-out infinite;\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        @keyframes pulse {\r\n\r\n            0%,\r\n            100% {\r\n                opacity: 0.6;\r\n            }\r\n\r\n            50% {\r\n                opacity: 1;\r\n            }\r\n        }\r\n\r\n        \/* Skeleton Loading Styles *\/\r\n        .skeleton-loading {\r\n            background: linear-gradient(90deg, var(--gray-200) 25%, var(--gray-100) 50%, var(--gray-200) 75%);\r\n            background-size: 200% 100%;\r\n            animation: skeleton-shimmer 1.5s infinite;\r\n        }\r\n\r\n        @keyframes skeleton-shimmer {\r\n            0% {\r\n                background-position: -200% 0;\r\n            }\r\n\r\n            100% {\r\n                background-position: 200% 0;\r\n            }\r\n        }\r\n\r\n        .videos-skeleton,\r\n        .reels-skeleton {\r\n            display: none;\r\n        }\r\n\r\n        .videos-skeleton.active,\r\n        .reels-skeleton.active {\r\n            display: block;\r\n        }\r\n\r\n        .videos-grid-skeleton,\r\n        .reels-grid-skeleton {\r\n            display: grid;\r\n            grid-template-columns: repeat(3, 1fr);\r\n            gap: var(--space-6);\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        @media (max-width: 1024px) {\r\n\r\n            .videos-grid-skeleton,\r\n            .reels-grid-skeleton {\r\n                grid-template-columns: repeat(2, 1fr);\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n\r\n            .videos-grid-skeleton,\r\n            .reels-grid-skeleton {\r\n                grid-template-columns: 1fr;\r\n            }\r\n        }\r\n\r\n        .video-skeleton,\r\n        .reel-skeleton {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-md);\r\n            border: 1px solid var(--gray-200);\r\n        }\r\n\r\n        .video-thumbnail-skeleton,\r\n        .reel-thumbnail-skeleton {\r\n            height: 350px;\r\n            background: linear-gradient(90deg, var(--gray-200) 25%, rgba(24, 119, 242, 0.1) 50%, var(--gray-200) 75%);\r\n            background-size: 200% 100%;\r\n            animation: skeleton-shimmer 1.5s infinite;\r\n        }\r\n\r\n        .video-info-skeleton,\r\n        .reel-info-skeleton {\r\n            padding: var(--space-4);\r\n        }\r\n\r\n        .skeleton-line {\r\n            height: 16px;\r\n            background: var(--gray-200);\r\n            border-radius: var(--radius-lg);\r\n            margin-bottom: var(--space-3);\r\n            animation: skeleton-shimmer 1.5s infinite;\r\n        }\r\n\r\n        .skeleton-line.short {\r\n            width: 60%;\r\n        }\r\n\r\n        \/* Group Styles - REMOVED *\/\r\n\r\n        \/* Premium Navigation *\/\r\n        .nav-tabs {\r\n            background: var(--white);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-2xl);\r\n            margin-bottom: var(--space-8);\r\n            border: 1px solid var(--gray-200);\r\n            overflow: hidden;\r\n            animation: slideUp var(--duration-1000) var(--ease-elastic) 0.6s both;\r\n        }\r\n\r\n        .tab-list {\r\n            display: flex;\r\n            background: linear-gradient(135deg, var(--gray-50) 0%, var(--white) 100%);\r\n            border-bottom: 1px solid var(--gray-200);\r\n            padding: var(--space-2);\r\n        }\r\n\r\n        .tab-btn {\r\n            flex: 1;\r\n            padding: var(--space-6) var(--space-8);\r\n            background: none;\r\n            border: none;\r\n            font-size: var(--text-lg);\r\n            font-weight: 700;\r\n            color: var(--gray-600);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            position: relative;\r\n            font-family: inherit;\r\n            border-radius: var(--radius-2xl);\r\n            margin: var(--space-1);\r\n        }\r\n\r\n        .tab-btn::before {\r\n            content: '';\r\n            position: absolute;\r\n            bottom: 0;\r\n            left: 50%;\r\n            width: 0;\r\n            height: 3px;\r\n            background: var(--gradient-primary);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            transform: translateX(-50%);\r\n            border-radius: var(--radius-full);\r\n        }\r\n\r\n        .tab-btn:hover,\r\n        .tab-btn.active {\r\n            color: var(--primary-600);\r\n            background: var(--white);\r\n            box-shadow: var(--shadow-md);\r\n        }\r\n\r\n        .tab-btn.active::before {\r\n            width: 60%;\r\n        }\r\n\r\n        .tab-content {\r\n            display: none;\r\n            padding: var(--space-8);\r\n            animation: fadeInScale var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .tab-content.active {\r\n            display: block;\r\n        }\r\n\r\n        @keyframes fadeInScale {\r\n            from {\r\n                opacity: 0;\r\n                transform: scale(0.95) translateY(20px);\r\n                filter: blur(3px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: scale(1) translateY(0);\r\n                filter: blur(0);\r\n            }\r\n        }\r\n\r\n        \/* Premium Media Section *\/\r\n        .media-summary {\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-4xl);\r\n            padding: var(--space-12);\r\n            margin-bottom: var(--space-8);\r\n            text-align: center;\r\n            color: var(--white);\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .media-summary::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: -50%;\r\n            left: -50%;\r\n            width: 200%;\r\n            height: 200%;\r\n            background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);\r\n            animation: rotate 20s linear infinite;\r\n        }\r\n\r\n        @keyframes rotate {\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        .summary-title {\r\n            font-size: var(--text-4xl);\r\n            font-weight: 800;\r\n            margin-bottom: var(--space-4);\r\n            position: relative;\r\n            z-index: 2;\r\n            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        .summary-description {\r\n            font-size: var(--text-xl);\r\n            opacity: 0.95;\r\n            margin-bottom: var(--space-8);\r\n            position: relative;\r\n            z-index: 2;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .summary-stats {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n            gap: var(--space-8);\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .summary-stat {\r\n            text-align: center;\r\n        }\r\n\r\n        .summary-stat-number {\r\n            font-size: var(--text-4xl);\r\n            font-weight: 900;\r\n            display: block;\r\n            margin-bottom: var(--space-2);\r\n            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        .summary-stat-label {\r\n            font-size: var(--text-sm);\r\n            opacity: 0.9;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.1em;\r\n            font-weight: 600;\r\n        }\r\n\r\n        .media-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));\r\n            gap: var(--space-8);\r\n        }\r\n\r\n        \/* Ultra Premium Media Cards *\/\r\n        .media-card {\r\n            background: var(--white);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-xl);\r\n            border: 1px solid var(--gray-200);\r\n            overflow: hidden;\r\n            transition: all var(--duration-500) var(--ease-elastic);\r\n            animation: slideUp var(--duration-700) var(--ease-elastic);\r\n            animation-delay: calc(var(--index) * 0.1s);\r\n            animation-fill-mode: both;\r\n            position: relative;\r\n            cursor: pointer;\r\n        }\r\n\r\n        .media-card::before {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 0;\r\n            background: var(--gradient-primary);\r\n            opacity: 0;\r\n            transition: opacity var(--duration-300) var(--ease-out);\r\n            border-radius: inherit;\r\n            z-index: 1;\r\n        }\r\n\r\n        .media-card:hover::before {\r\n            opacity: 0.02;\r\n        }\r\n\r\n        .media-card:hover {\r\n            transform: translateY(-12px) scale(1.02);\r\n            box-shadow: var(--shadow-2xl);\r\n            border-color: var(--primary-300);\r\n        }\r\n\r\n        .media-image-container {\r\n            position: relative;\r\n            aspect-ratio: 16\/10;\r\n            overflow: hidden;\r\n            background: linear-gradient(135deg, var(--gray-100) 0%, var(--gray-200) 100%);\r\n        }\r\n\r\n        .media-image {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n            transition: transform var(--duration-700) var(--ease-out);\r\n        }\r\n\r\n        .media-card:hover .media-image {\r\n            transform: scale(1.1) rotate(1deg);\r\n        }\r\n\r\n        \/* Ultra Premium Hover Overlay *\/\r\n        .media-hover-overlay {\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(135deg,\r\n                    rgba(24, 119, 242, 0.95) 0%,\r\n                    rgba(66, 165, 245, 0.95) 50%,\r\n                    rgba(41, 182, 246, 0.95) 100%);\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: all var(--duration-500) var(--ease-elastic);\r\n            display: flex;\r\n            flex-direction: column;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--space-6);\r\n            padding: var(--space-8);\r\n            backdrop-filter: blur(20px);\r\n            z-index: 10;\r\n        }\r\n\r\n        .media-card:hover .media-hover-overlay {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n\r\n        .quality-indicator {\r\n            background: rgba(255, 255, 255, 0.25);\r\n            backdrop-filter: blur(15px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            color: var(--white);\r\n            padding: var(--space-3) var(--space-6);\r\n            border-radius: var(--radius-full);\r\n            font-weight: 800;\r\n            font-size: var(--text-sm);\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.1em;\r\n            animation: slideInDown var(--duration-500) var(--ease-elastic) 0.1s both;\r\n            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        @keyframes slideInDown {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(-30px) scale(0.8);\r\n                filter: blur(5px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0) scale(1);\r\n                filter: blur(0);\r\n            }\r\n        }\r\n\r\n        .download-actions {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: var(--space-3);\r\n            animation: slideInUp var(--duration-500) var(--ease-elastic) 0.2s both;\r\n        }\r\n\r\n        .download-btn {\r\n            background: rgba(255, 255, 255, 0.25);\r\n            backdrop-filter: blur(15px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            color: var(--white);\r\n            padding: var(--space-4) var(--space-8);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-base);\r\n            font-weight: 700;\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-elastic);\r\n            font-family: inherit;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--space-3);\r\n            min-width: 180px;\r\n            position: relative;\r\n            overflow: hidden;\r\n            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n        }\r\n\r\n        .download-btn::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: -100%;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n            transition: left var(--duration-700) var(--ease-out);\r\n        }\r\n\r\n        .download-btn:hover::before {\r\n            left: 100%;\r\n        }\r\n\r\n        .download-btn:hover {\r\n            background: rgba(255, 255, 255, 0.35);\r\n            border-color: rgba(255, 255, 255, 0.5);\r\n            transform: translateY(-3px) scale(1.05);\r\n            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        .download-btn:active {\r\n            transform: translateY(-1px) scale(0.98);\r\n        }\r\n\r\n        .btn-icon {\r\n            font-size: var(--text-lg);\r\n            transition: transform var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .download-btn:hover .btn-icon {\r\n            transform: scale(1.2) rotate(5deg);\r\n        }\r\n\r\n        \/* Premium Media Info *\/\r\n        .media-info {\r\n            padding: var(--space-6);\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .media-meta {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            font-size: var(--text-sm);\r\n            color: var(--gray-600);\r\n            font-weight: 600;\r\n        }\r\n\r\n        .resolution-badge {\r\n            background: linear-gradient(135deg, var(--gray-100) 0%, var(--gray-200) 100%);\r\n            color: var(--gray-700);\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-xs);\r\n            font-weight: 700;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n            box-shadow: var(--shadow-sm);\r\n        }\r\n\r\n        .type-badge {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-xs);\r\n            font-weight: 700;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n            box-shadow: var(--shadow-sm);\r\n        }\r\n\r\n        \/* Video Grid Styles *\/\r\n        .video-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(3, 1fr);\r\n            gap: var(--space-6);\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        @media (max-width: 1024px) {\r\n            .video-grid {\r\n                grid-template-columns: repeat(2, 1fr);\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .video-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n        }\r\n\r\n        .video-card {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            box-shadow: var(--shadow-md);\r\n            border: 1px solid var(--gray-200);\r\n            overflow: hidden;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            animation: slideUp var(--duration-700) var(--ease-elastic);\r\n            animation-delay: calc(var(--index) * 0.1s);\r\n            animation-fill-mode: both;\r\n            position: relative;\r\n        }\r\n\r\n        .video-card:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n            border-color: rgba(24, 119, 242, 0.3);\r\n        }\r\n\r\n        .video-card video {\r\n            width: 100%;\r\n            height: 350px;\r\n            object-fit: cover;\r\n            background: var(--gray-100);\r\n            transition: transform var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .video-card:hover video {\r\n            transform: scale(1.05);\r\n        }\r\n\r\n        .video-info {\r\n            padding: var(--space-4);\r\n            display: flex;\r\n            flex-direction: column;\r\n\r\n        }\r\n\r\n        .video-title {\r\n            font-size: var(--text-lg);\r\n            font-weight: 700;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-2);\r\n            flex-shrink: 0;\r\n            white-space: nowrap;\r\n            overflow: hidden;\r\n            text-overflow: ellipsis;\r\n            line-height: 1.2;\r\n        }\r\n\r\n        .video-description {\r\n            font-size: var(--text-xs);\r\n            font-weight: 400;\r\n            color: var(--gray-500);\r\n            line-height: 1.4;\r\n            overflow: hidden;\r\n            text-overflow: ellipsis;\r\n            display: -webkit-box;\r\n            -webkit-line-clamp: 3;\r\n            -webkit-box-orient: vertical;\r\n            opacity: 0.8;\r\n            flex-grow: 1;\r\n            margin-bottom: var(--space-3);\r\n            display: none;\r\n        }\r\n\r\n        .video-stats {\r\n            margin-top: auto;\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .video-badges {\r\n            display: flex;\r\n            gap: var(--space-2);\r\n            margin-bottom: var(--space-4);\r\n        }\r\n\r\n        .quality-badge {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            padding: var(--space-1) var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-xs);\r\n            font-weight: 700;\r\n            text-transform: uppercase;\r\n            box-shadow: 0 2px 8px rgba(254, 218, 117, 0.3);\r\n        }\r\n\r\n        .format-badge {\r\n            background: linear-gradient(135deg, rgba(24, 119, 242, 0.1) 0%, rgba(66, 165, 245, 0.1) 100%);\r\n            color: var(--primary-500);\r\n            padding: var(--space-1) var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-xs);\r\n            font-weight: 700;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n        }\r\n\r\n        .format-badge {\r\n            background: var(--gradient-accent);\r\n            color: var(--white);\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-xs);\r\n            font-weight: 700;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n        }\r\n\r\n        .download-progress {\r\n            position: absolute;\r\n            bottom: 0;\r\n            left: 0;\r\n            height: 3px;\r\n            background-color: var(--primary-400);\r\n            transition: width var(--duration-300) var(--ease-out);\r\n            border-radius: 0 0 var(--radius-2xl) var(--radius-2xl);\r\n        }\r\n\r\n        \/* Custom Scrollbar *\/\r\n        ::-webkit-scrollbar {\r\n            width: 12px;\r\n        }\r\n\r\n        ::-webkit-scrollbar-track {\r\n            background: var(--gray-100);\r\n            border-radius: var(--radius-full);\r\n        }\r\n\r\n        ::-webkit-scrollbar-thumb {\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-full);\r\n            border: 2px solid var(--gray-100);\r\n        }\r\n\r\n        ::-webkit-scrollbar-thumb:hover {\r\n            background: var(--gradient-secondary);\r\n        }\r\n\r\n        \/* Selection *\/\r\n        ::selection {\r\n            background: var(--primary-200);\r\n            color: var(--primary-900);\r\n        }\r\n\r\n        \/* Focus Visible *\/\r\n        :focus-visible {\r\n            outline: 2px solid var(--primary-500);\r\n            outline-offset: 2px;\r\n        }\r\n\r\n        \/* Video Grid Responsive Breakpoints *\/\r\n        @media (max-width: 1024px) {\r\n            .video-grid[style*=\"grid-template-columns: repeat(3, 1fr)\"] {\r\n                grid-template-columns: repeat(2, 1fr) !important;\r\n            }\r\n\r\n            .video-card video,\r\n            .video-thumbnail {\r\n                height: 300px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .video-grid[style*=\"grid-template-columns: repeat(3, 1fr)\"] {\r\n                grid-template-columns: 1fr !important;\r\n            }\r\n\r\n            .video-card video,\r\n            .video-thumbnail {\r\n                height: 250px;\r\n            }\r\n        }\r\n\r\n        \/* Ensure play icon is visible on all video types *\/\r\n        .video-thumbnail {\r\n            position: relative;\r\n            cursor: pointer;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            background-size: cover;\r\n            background-position: center;\r\n            background-repeat: no-repeat;\r\n            height: 350px;\r\n            border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .video-thumbnail:hover {\r\n            transform: scale(1.02);\r\n            transition: transform var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        \/* Video Overlay and Action Styles *\/\r\n        .video-overlay {\r\n            position: absolute;\r\n            inset: 0;\r\n            \/* background: linear-gradient(135deg,\r\n                    rgba(24, 119, 242, 0.95) 0%,\r\n                    rgba(66, 165, 245, 0.95) 50%,\r\n                    rgba(41, 182, 246, 0.95) 100%); *\/\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            display: flex;\r\n            align-items: flex-start;\r\n            justify-content: flex-end;\r\n            padding: var(--space-4);\r\n            z-index: 10;\r\n        }\r\n\r\n        .video-thumbnail:hover .video-overlay {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n\r\n        .video-actions {\r\n            display: flex;\r\n            gap: var(--space-3);\r\n            align-items: center;\r\n        }\r\n\r\n        .video-action-btn {\r\n            background: rgba(255, 255, 255, 0.25);\r\n            backdrop-filter: blur(15px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            color: var(--white);\r\n            padding: var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            font-size: var(--text-lg);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            min-width: 44px;\r\n            min-height: 44px;\r\n        }\r\n\r\n        .video-action-btn:hover {\r\n            background: rgba(255, 255, 255, 0.35);\r\n            border-color: rgba(255, 255, 255, 0.5);\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .video-number {\r\n            font-size: var(--text-sm);\r\n            color: var(--white);\r\n            margin-top: var(--space-2);\r\n        }\r\n\r\n        .premium-label {\r\n            font-family: 'Inter', sans-serif;\r\n            letter-spacing: 0.01em;\r\n        }\r\n\r\n        .premium-desc {\r\n            font-family: 'Inter', sans-serif;\r\n        }\r\n\r\n        .premium-input-group {\r\n            width: 100%;\r\n        }\r\n\r\n        .premium-url-input:focus {\r\n            border: none;\r\n            outline: 2px solid var(--primary-400);\r\n            background: var(--gray-50);\r\n        }\r\n\r\n        .premium-analyze-btn {\r\n            font-weight: 700;\r\n            letter-spacing: 0.02em;\r\n            transition: background 0.2s;\r\n        }\r\n\r\n        .premium-analyze-btn:hover {\r\n            background: var(--gradient-secondary);\r\n        }\r\n\r\n        \/* Mobile Download Button (shown instead of modal on small devices) *\/\r\n        .mobile-download-btn {\r\n            display: none;\r\n            position: fixed;\r\n            bottom: 20px;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: 16px 32px;\r\n            border-radius: var(--radius-2xl);\r\n            font-weight: 700;\r\n            font-size: var(--text-base);\r\n            cursor: pointer;\r\n            z-index: 10002;\r\n            box-shadow: var(--shadow-xl);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            animation: slideUp var(--duration-500) var(--ease-elastic);\r\n        }\r\n\r\n        .mobile-download-btn:hover {\r\n            transform: translateX(-50%) translateY(-3px);\r\n            box-shadow: var(--shadow-2xl);\r\n        }\r\n\r\n        .mobile-download-btn i {\r\n            margin-right: 8px;\r\n        }\r\n\r\n        \/* Hide modal on small devices *\/\r\n        @media (max-width: 768px) {\r\n            .fb-photomodal {\r\n                display: none !important;\r\n            }\r\n\r\n            .mobile-download-btn {\r\n                display: block;\r\n            }\r\n        }\r\n\r\n        \/* Show modal only on larger devices *\/\r\n        @media (min-width: 769px) {\r\n            .mobile-download-btn {\r\n                display: none !important;\r\n            }\r\n        }\r\n\r\n        \/* Responsive styles for mobile download button *\/\r\n        @media (max-width: 480px) {\r\n            .mobile-download-btn {\r\n                bottom: 16px;\r\n                padding: 14px 24px;\r\n                font-size: var(--text-sm);\r\n                border-radius: var(--radius-xl);\r\n            }\r\n\r\n            .mobile-download-btn i {\r\n                margin-right: 6px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 360px) {\r\n            .mobile-download-btn {\r\n                bottom: 12px;\r\n                padding: 12px 20px;\r\n                font-size: var(--text-xs);\r\n                border-radius: var(--radius-lg);\r\n            }\r\n\r\n            .mobile-download-btn i {\r\n                margin-right: 4px;\r\n            }\r\n        }\r\n\r\n        \/* Landscape orientation for mobile download button *\/\r\n        @media (max-width: 768px) and (orientation: landscape) {\r\n            .mobile-download-btn {\r\n                bottom: 12px;\r\n                padding: 12px 20px;\r\n                font-size: var(--text-sm);\r\n            }\r\n        }\r\n\r\n        \/* Photo Modal Styles *\/\r\n        .fb-photomodal {\r\n            position: fixed;\r\n            inset: 0;\r\n            background: rgba(0, 0, 0, 0.9);\r\n            backdrop-filter: blur(20px);\r\n            z-index: 10000;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: all var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .fb-photomodal.active {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n\r\n        .fb-photomodal-content {\r\n            max-width: 90vw;\r\n            max-height: 90vh;\r\n            background: var(--white);\r\n            border-radius: var(--radius-4xl);\r\n            overflow: hidden;\r\n            display: flex;\r\n            box-shadow: var(--shadow-2xl);\r\n            position: relative;\r\n        }\r\n\r\n        .fb-photomodal-close {\r\n            position: absolute;\r\n            top: var(--space-4);\r\n            right: var(--space-4);\r\n            background: rgba(0, 0, 0, 0.5);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            cursor: pointer;\r\n            z-index: 10001;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .fb-photomodal-close:hover {\r\n            background: rgba(0, 0, 0, 0.7);\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .fb-photomodal-image {\r\n            max-width: 70vw;\r\n            max-height: 90vh;\r\n            object-fit: contain;\r\n        }\r\n\r\n        .fb-photomodal-info {\r\n            width: 400px;\r\n            padding: var(--space-8);\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: var(--space-6);\r\n        }\r\n\r\n        .fb-photomodal-title {\r\n            font-size: var(--text-2xl);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n        }\r\n\r\n        .fb-photomodal-stats {\r\n            display: grid;\r\n            grid-template-columns: repeat(2, 1fr);\r\n            gap: var(--space-4);\r\n        }\r\n\r\n        .fb-photomodal-stat {\r\n            text-align: center;\r\n            padding: var(--space-4);\r\n            background: var(--gray-50);\r\n            border-radius: var(--radius-2xl);\r\n        }\r\n\r\n        .fb-photomodal-stat-value {\r\n            font-size: var(--text-xl);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-1);\r\n        }\r\n\r\n        .fb-photomodal-stat-label {\r\n            font-size: var(--text-sm);\r\n            color: var(--gray-600);\r\n            font-weight: 600;\r\n        }\r\n\r\n        .fb-photomodal-actions {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: var(--space-3);\r\n        }\r\n\r\n        .fb-photomodal-action {\r\n            padding: var(--space-4) var(--space-6);\r\n            border-radius: var(--radius-2xl);\r\n            font-weight: 700;\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--space-3);\r\n            border: none;\r\n            font-family: inherit;\r\n        }\r\n\r\n        .fb-photomodal-action.primary {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n        }\r\n\r\n        .fb-photomodal-action:not(.primary) {\r\n            background: var(--gray-100);\r\n            color: var(--gray-700);\r\n            border: 1px solid var(--gray-300);\r\n        }\r\n\r\n        .fb-photomodal-action:hover {\r\n            transform: translateY(-2px) scale(1.02);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        \/* Download Progress Modal *\/\r\n        .download-progress-modal {\r\n            position: fixed;\r\n            top: 20px;\r\n            right: 20px;\r\n            background: var(--white);\r\n            border-radius: var(--radius-2xl);\r\n            padding: var(--space-4);\r\n            box-shadow: var(--shadow-xl);\r\n            border: 1px solid var(--gray-200);\r\n            z-index: 10001;\r\n            min-width: 200px;\r\n            max-width: 280px;\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transform: translateX(100%);\r\n            transition: all var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .download-progress-modal.active {\r\n            opacity: 1;\r\n            visibility: visible;\r\n            transform: translateX(0);\r\n        }\r\n\r\n        .download-progress-header {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-2);\r\n            margin-bottom: var(--space-3);\r\n        }\r\n\r\n        .download-progress-header i {\r\n            color: var(--primary-500);\r\n            font-size: var(--text-base);\r\n        }\r\n\r\n        .download-progress-title {\r\n            font-weight: 600;\r\n            color: var(--gray-900);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        .download-progress-bar {\r\n            width: 100%;\r\n            height: 6px;\r\n            background: var(--gray-200);\r\n            border-radius: var(--radius-full);\r\n            overflow: hidden;\r\n            margin-bottom: var(--space-2);\r\n        }\r\n\r\n        .download-progress-fill {\r\n            height: 100%;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-full);\r\n            transition: width var(--duration-300) var(--ease-out);\r\n            width: 0%;\r\n        }\r\n\r\n        .download-progress-text {\r\n            font-size: var(--text-xs);\r\n            color: var(--gray-600);\r\n            text-align: center;\r\n            line-height: 1.2;\r\n        }\r\n\r\n        .download-cancel-btn {\r\n            margin-top: var(--space-3);\r\n            background: linear-gradient(135deg, rgba(239, 68, 68, 0.1) 0%, rgba(220, 38, 38, 0.1) 100%);\r\n            color: #dc2626;\r\n            border: 1px solid rgba(220, 38, 38, 0.3);\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-xl);\r\n            cursor: pointer;\r\n            width: 100%;\r\n            font-weight: 600;\r\n            font-size: var(--text-xs);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .download-cancel-btn:hover {\r\n            background: linear-gradient(135deg, rgba(239, 68, 68, 0.2) 0%, rgba(220, 38, 38, 0.2) 100%);\r\n            transform: translateY(-1px);\r\n            box-shadow: 0 4px 12px rgba(220, 38, 38, 0.2);\r\n        }\r\n\r\n        \/* Photo Grid Styles *\/\r\n        .fb-photoitem {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-md);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            border: 1px solid var(--gray-200);\r\n            cursor: pointer;\r\n        }\r\n\r\n        .fb-photoitem:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n        }\r\n\r\n        .fb-photoimage-container {\r\n            position: relative;\r\n            aspect-ratio: 1;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .fb-photoimage {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n            transition: transform var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .fb-photoitem:hover .fb-photoimage {\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .fb-photooverlay {\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(135deg,\r\n                    rgba(24, 119, 242, 0.9) 0%,\r\n                    rgba(66, 165, 245, 0.9) 100%);\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .fb-photoitem:hover .fb-photooverlay {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n\r\n        .fb-photoactions {\r\n            display: flex;\r\n            gap: var(--space-3);\r\n        }\r\n\r\n        .fb-photoaction-btn {\r\n            background: rgba(255, 255, 255, 0.2);\r\n            backdrop-filter: blur(10px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            color: var(--white);\r\n            padding: var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            font-size: var(--text-lg);\r\n        }\r\n\r\n        .fb-photoaction-btn:hover {\r\n            background: rgba(255, 255, 255, 0.3);\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .fb-photoinfo {\r\n            padding: var(--space-4);\r\n        }\r\n\r\n        .fb-photostats {\r\n            margin-bottom: var(--space-3);\r\n        }\r\n\r\n        .fb-photoengagement {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n        }\r\n\r\n        .fb-photoengagement-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-1);\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        .fb-photometa {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            font-size: var(--text-xs);\r\n            color: var(--gray-500);\r\n        }\r\n\r\n        .fb-photodimensions {\r\n            font-weight: 600;\r\n        }\r\n\r\n        \/* Responsive Photo Modal *\/\r\n        @media (max-width: 1024px) {\r\n            .fb-photomodal-content {\r\n                flex-direction: column;\r\n                max-width: 95vw;\r\n            }\r\n\r\n            .fb-photomodal-image {\r\n                max-width: 95vw;\r\n                max-height: 60vh;\r\n            }\r\n\r\n            .fb-photomodal-info {\r\n                width: 100%;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .fb-photomodal {\r\n                display: none !important;\r\n            }\r\n        }\r\n\r\n        \/* Profile Container - Matching facebookanalyzer2.html structure *\/\r\n        .profile-container {\r\n            background: var(--white);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-2xl);\r\n            overflow: hidden;\r\n            margin-bottom: var(--space-8);\r\n            border: 1px solid var(--gray-200);\r\n            animation: slideUp var(--duration-1000) var(--ease-elastic) 0.4s both;\r\n        }\r\n\r\n        .cover-section {\r\n            position: relative;\r\n            height: 400px;\r\n            background: var(--gradient-primary);\r\n            overflow: hidden;\r\n        }\r\n\r\n        .cover-photo {\r\n            width: 100%;\r\n            height: 100%;\r\n            background-size: cover;\r\n            background-position: center;\r\n            transition: transform var(--duration-700) var(--ease-out);\r\n        }\r\n\r\n        .cover-overlay {\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(to bottom,\r\n                    transparent 0%,\r\n                    rgba(0, 0, 0, 0.1) 40%,\r\n                    rgba(0, 0, 0, 0.8) 100%);\r\n        }\r\n\r\n        .cover-gradient {\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(135deg,\r\n                    rgba(24, 119, 242, 0.1) 0%,\r\n                    rgba(66, 165, 245, 0.1) 100%);\r\n        }\r\n\r\n        .profile-info-section {\r\n            padding: var(--space-12);\r\n        }\r\n\r\n        .profile-header {\r\n            display: flex;\r\n            align-items: flex-start;\r\n            gap: var(--space-8);\r\n            margin-bottom: var(--space-8);\r\n            position: relative;\r\n            margin-top: -80px;\r\n        }\r\n\r\n        .profile-picture-container {\r\n            position: relative;\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .profile-picture {\r\n            width: 160px;\r\n            height: 160px;\r\n            border-radius: var(--radius-full);\r\n            background-size: cover;\r\n            background-position: center;\r\n            background-color: var(--gray-200);\r\n            border: 6px solid var(--white);\r\n            box-shadow: var(--shadow-xl);\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .profile-ring {\r\n            position: absolute;\r\n            inset: -8px;\r\n            border-radius: var(--radius-full);\r\n            background: var(--gradient-primary);\r\n            z-index: 1;\r\n            animation: pulse 3s ease-in-out infinite;\r\n        }\r\n\r\n        .profile-status-indicator {\r\n            position: absolute;\r\n            bottom: 10px;\r\n            right: 10px;\r\n            width: 24px;\r\n            height: 24px;\r\n            background: var(--success-500);\r\n            border-radius: var(--radius-full);\r\n            border: 3px solid var(--white);\r\n            z-index: 3;\r\n        }\r\n\r\n        .profile-details {\r\n            flex: 1;\r\n            margin-top: 80px;\r\n        }\r\n\r\n        .profile-name {\r\n            font-size: var(--text-4xl);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-4);\r\n            line-height: 1.1;\r\n        }\r\n\r\n        .verified-badge::after {\r\n            content: '\u2713';\r\n            display: inline-block;\r\n            margin-left: var(--space-2);\r\n            color: var(--primary-500);\r\n            font-weight: 900;\r\n            font-size: var(--text-lg);\r\n        }\r\n\r\n        .profile-stats {\r\n            display: flex;\r\n            gap: var(--space-6);\r\n            margin-bottom: var(--space-6);\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .stat-badge {\r\n            background: var(--gray-100);\r\n            color: var(--gray-700);\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-sm);\r\n            font-weight: 600;\r\n        }\r\n\r\n        .profile-actions {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .action-btn {\r\n            padding: var(--space-3) var(--space-6);\r\n            border-radius: var(--radius-2xl);\r\n            font-weight: 700;\r\n            font-size: var(--text-base);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-2);\r\n            border: none;\r\n            font-family: inherit;\r\n        }\r\n\r\n        .action-btn.primary {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            box-shadow: var(--shadow-md);\r\n        }\r\n\r\n        .action-btn.secondary {\r\n            background: var(--gray-100);\r\n            color: var(--gray-700);\r\n            border: 1px solid var(--gray-300);\r\n        }\r\n\r\n        .action-btn:hover {\r\n            transform: translateY(-2px) scale(1.02);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        .profile-navigation {\r\n            border-top: 1px solid var(--gray-200);\r\n            padding-top: var(--space-6);\r\n        }\r\n\r\n        .profile-nav-tabs {\r\n            display: flex;\r\n            gap: var(--space-2);\r\n            background: linear-gradient(135deg, rgba(24, 119, 242, 0.1) 0%, rgba(66, 165, 245, 0.1) 100%);\r\n            padding: var(--space-2);\r\n            border-radius: var(--radius-2xl);\r\n            border: 1px solid rgba(24, 119, 242, 0.2);\r\n        }\r\n\r\n        .nav-tab {\r\n            flex: 1;\r\n            padding: var(--space-4) var(--space-6);\r\n            background: none;\r\n            border: none;\r\n            border-radius: var(--radius-xl);\r\n            font-weight: 600;\r\n            color: var(--gray-600);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            position: relative;\r\n            font-family: inherit;\r\n        }\r\n\r\n        .nav-tab:hover {\r\n            background: rgba(24, 119, 242, 0.1);\r\n            color: var(--primary-600);\r\n        }\r\n\r\n        .nav-tab.active {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            box-shadow: var(--shadow-md);\r\n        }\r\n\r\n        .nav-indicator {\r\n            position: absolute;\r\n            bottom: -2px;\r\n            left: 50%;\r\n            width: 0;\r\n            height: 3px;\r\n            background: var(--gradient-primary);\r\n            transition: width var(--duration-300) var(--ease-out);\r\n            transform: translateX(-50%);\r\n            border-radius: var(--radius-full);\r\n            box-shadow: 0 0 10px rgba(24, 119, 242, 0.5);\r\n        }\r\n\r\n        .nav-tab.active .nav-indicator {\r\n            width: 60%;\r\n        }\r\n\r\n        .tab-content-container {\r\n            padding: var(--space-8) 0;\r\n        }\r\n\r\n        .tab-content {\r\n            display: none;\r\n            animation: fadeInScale var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .tab-content.active {\r\n            display: block;\r\n        }\r\n\r\n        @keyframes fadeInScale {\r\n            from {\r\n                opacity: 0;\r\n                transform: scale(0.95) translateY(20px);\r\n                filter: blur(3px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: scale(1) translateY(0);\r\n                filter: blur(0);\r\n            }\r\n        }\r\n\r\n        \/* Content Headers - Matching facebookanalyzer2.html *\/\r\n        .content-header {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            margin-bottom: var(--space-8);\r\n            padding-bottom: var(--space-4);\r\n            border-bottom: 1px solid var(--gray-200);\r\n        }\r\n\r\n        .content-title {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-3);\r\n        }\r\n\r\n        .content-title h2 {\r\n            font-size: var(--text-2xl);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n        }\r\n\r\n        .content-title i {\r\n            color: var(--primary-500);\r\n            font-size: var(--text-xl);\r\n        }\r\n\r\n        .content-stats {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n        }\r\n\r\n        .stat-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-2);\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        .no-data-message {\r\n            text-align: center;\r\n            padding: 4rem 2rem;\r\n            color: var(--gray-500);\r\n            font-size: 1.2rem;\r\n            font-weight: 500;\r\n        }\r\n\r\n        \/* Photos Grid - Matching facebookanalyzer2.html *\/\r\n        .photos-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\r\n            gap: var(--space-6);\r\n        }\r\n\r\n        .fb-photoitem {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-md);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            border: 1px solid var(--gray-200);\r\n        }\r\n\r\n        .fb-photoitem:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n        }\r\n\r\n        .fb-photoimage-container {\r\n            position: relative;\r\n            aspect-ratio: 1;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .fb-photoimage {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n            transition: transform var(--duration-500) var(--ease-out);\r\n            cursor: pointer;\r\n        }\r\n\r\n        .fb-photoitem:hover .fb-photoimage {\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .fb-photooverlay {\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(135deg,\r\n                    rgba(24, 119, 242, 0.9) 0%,\r\n                    rgba(66, 165, 245, 0.9) 100%);\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .fb-photoitem:hover .fb-photooverlay {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n\r\n        .fb-photoactions {\r\n            display: flex;\r\n            gap: var(--space-3);\r\n        }\r\n\r\n        .fb-photoaction-btn {\r\n            background: rgba(255, 255, 255, 0.2);\r\n            backdrop-filter: blur(10px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            color: var(--white);\r\n            padding: var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            font-size: var(--text-lg);\r\n        }\r\n\r\n        .fb-photoaction-btn:hover {\r\n            background: rgba(255, 255, 255, 0.3);\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .fb-photoinfo {\r\n            padding: var(--space-4);\r\n        }\r\n\r\n        .fb-photostats {\r\n            margin-bottom: var(--space-3);\r\n        }\r\n\r\n        .fb-photoengagement {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n        }\r\n\r\n        .fb-photoengagement-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-1);\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        .fb-photometa {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            font-size: var(--text-xs);\r\n            color: var(--gray-500);\r\n        }\r\n\r\n        .fb-photodimensions {\r\n            font-weight: 600;\r\n        }\r\n\r\n        \/* Posts Container - Matching facebookanalyzer2.html *\/\r\n        .posts-container {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: var(--space-6);\r\n        }\r\n\r\n        .post-item {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            padding: var(--space-6);\r\n            box-shadow: var(--shadow-md);\r\n            border: 1px solid var(--gray-200);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .post-item:hover {\r\n            transform: translateY(-4px);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        .post-header {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-4);\r\n            margin-bottom: var(--space-4);\r\n        }\r\n\r\n        .post-profile-pic {\r\n            width: 48px;\r\n            height: 48px;\r\n            border-radius: var(--radius-full);\r\n            background-size: cover;\r\n            background-position: center;\r\n            background-color: var(--gray-200);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: var(--gray-500);\r\n        }\r\n\r\n        .post-info {\r\n            flex: 1;\r\n        }\r\n\r\n        .post-author {\r\n            font-weight: 700;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-1);\r\n        }\r\n\r\n        .post-date {\r\n            font-size: var(--text-sm);\r\n            color: var(--gray-500);\r\n        }\r\n\r\n        .post-content {\r\n            margin-bottom: var(--space-4);\r\n            line-height: 1.6;\r\n            color: var(--gray-700);\r\n        }\r\n\r\n        .post-image {\r\n            width: 100%;\r\n            border-radius: var(--radius-2xl);\r\n            margin-bottom: var(--space-4);\r\n        }\r\n\r\n        .post-stats {\r\n            display: flex;\r\n            gap: var(--space-6);\r\n            padding-top: var(--space-4);\r\n            border-top: 1px solid var(--gray-200);\r\n        }\r\n\r\n        \/* Video\/Reels Grid - Matching facebookanalyzer2.html *\/\r\n        .video-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\r\n            gap: var(--space-6);\r\n        }\r\n\r\n        .video-card {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-md);\r\n            border: 1px solid var(--gray-200);\r\n            transition: transform var(--duration-300) var(--ease-out);\r\n            animation: slideUp var(--duration-700) var(--ease-elastic);\r\n            animation-delay: calc(var(--index) * 0.1s);\r\n            animation-fill-mode: both;\r\n        }\r\n\r\n        .video-card:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n        }\r\n\r\n        @keyframes slideUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(30px) scale(0.9);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0) scale(1);\r\n            }\r\n        }\r\n\r\n        .video-thumbnail {\r\n            position: relative;\r\n            height: 350px;\r\n            background-size: cover;\r\n            background-position: center;\r\n            cursor: pointer;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .video-play-icon {\r\n            width: 60px;\r\n            height: 60px;\r\n            background: rgba(255, 255, 255, 0.9);\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-size: 1.5rem;\r\n            color: var(--primary-500);\r\n            transition: transform var(--duration-200) var(--ease-out);\r\n        }\r\n\r\n        .video-thumbnail:hover .video-play-icon {\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .video-quality-badge,\r\n        .reel-badge {\r\n            position: absolute;\r\n            top: 1rem;\r\n            right: 1rem;\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            padding: 0.25rem 0.75rem;\r\n            border-radius: 0.5rem;\r\n            font-size: 0.8rem;\r\n            font-weight: 700;\r\n        }\r\n\r\n        .video-duration {\r\n            position: absolute;\r\n            bottom: 1rem;\r\n            right: 1rem;\r\n            background: rgba(0, 0, 0, 0.8);\r\n            color: var(--white);\r\n            padding: 0.25rem 0.5rem;\r\n            border-radius: 0.25rem;\r\n            font-size: 0.8rem;\r\n        }\r\n\r\n        .video-info {\r\n            padding: var(--space-6);\r\n        }\r\n\r\n        .video-title {\r\n            font-size: var(--text-lg);\r\n            font-weight: 700;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-2);\r\n            line-height: 1.3;\r\n        }\r\n\r\n        .video-description {\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n            line-height: 1.4;\r\n            margin-bottom: var(--space-4);\r\n        }\r\n\r\n        .video-stats {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n        }\r\n\r\n        .video-engagement {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n        }\r\n\r\n        .video-engagement-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-1);\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        .video-download-btn {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-xl);\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            transition: transform var(--duration-200) var(--ease-out);\r\n        }\r\n\r\n        .video-download-btn:hover {\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        .video-meta {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            margin-top: var(--space-4);\r\n            font-size: var(--text-xs);\r\n            color: var(--gray-500);\r\n        }\r\n\r\n        \/* Responsive Design *\/\r\n        @media (max-width: 768px) {\r\n            .profile-info-section {\r\n                padding: var(--space-6);\r\n            }\r\n\r\n            .profile-header {\r\n                flex-direction: column;\r\n                gap: var(--space-4);\r\n                margin-top: -40px;\r\n            }\r\n\r\n            .profile-picture {\r\n                width: 120px;\r\n                height: 120px;\r\n            }\r\n\r\n            .profile-details {\r\n                margin-top: 0;\r\n            }\r\n\r\n            .profile-name {\r\n                font-size: var(--text-2xl);\r\n            }\r\n\r\n            .profile-nav-tabs {\r\n                flex-direction: column;\r\n                gap: var(--space-1);\r\n            }\r\n\r\n            .nav-tab {\r\n                text-align: center;\r\n            }\r\n\r\n            .photos-grid {\r\n                grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\r\n                gap: var(--space-4);\r\n            }\r\n\r\n            .video-grid {\r\n                grid-template-columns: 1fr;\r\n                gap: var(--space-4);\r\n            }\r\n\r\n            .content-header {\r\n                flex-direction: column;\r\n                gap: var(--space-4);\r\n                align-items: flex-start;\r\n            }\r\n        }\r\n      \r\n      .content-title i {\r\n    color: var(--primary-500);\r\n    font-size: var(--text-xl);\r\n    margin-bottom: 27px;\r\n}\r\n    <\/style>\r\n\r\n    <div class=\"fb-pgv-custom-container\">\r\n        <header class=\"header\">\r\n            <h1>Facebook Page Viewer<\/h1>\r\n            <p>Explore any public Facebook page without logging in. Instantly view posts, updates, and insights\r\n                anonymously\u2014no account needed, 100% private and secure.<\/p>\r\n        <\/header>\r\n\r\n        <section class=\"search-section\">\r\n            <div class=\"search-container\">\r\n                <div class=\"search-header\">\r\n                    <div class=\"search-icon\">\r\n                        <i class=\"fas fa-magnifying-glass\"><\/i>\r\n                    <\/div>\r\n                    <h2 class=\"search-title\">Start Your Analysis<\/h2>\r\n                    <p class=\"search-description\">Enter any public Facebook profile or page URL to unlock comprehensive\r\n                        insights, photos, videos, and posts<\/p>\r\n                <\/div>\r\n\r\n                <form class=\"search-form\" onsubmit=\"analyzeUrl(event)\">\r\n                    <div class=\"input-container\">\r\n                        <div class=\"input-wrapper\">\r\n                            <div class=\"input-icon\">\r\n                                <i class=\"fas fa-link\"><\/i>\r\n                            <\/div>\r\n                            <input type=\"url\" id=\"urlInput\" class=\"url-input\" placeholder=\"https:\/\/www.facebook.com\/username\" required=\"\">\r\n                            <button type=\"submit\" class=\"analyze-btn\" id=\"analyzeBtn\">\r\n                                <i class=\"fas fa-rocket\"><\/i>\r\n                                <span>Analyze Profile<\/span>\r\n                            <\/button>\r\n                        <\/div>\r\n                        <div class=\"input-help\">\r\n                            <i class=\"fas fa-shield-alt\"><\/i>\r\n                            <span>100% Safe & Secure \u2022 No Login Required \u2022 Instant Results<\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/form>\r\n\r\n                <div class=\"features-grid\">\r\n                    <div class=\"feature-item\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"fas fa-images\"><\/i>\r\n                        <\/div>\r\n                        <div class=\"feature-text\">\r\n                            <h4>Photo Gallery<\/h4>\r\n                            <p>View all public photos<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"feature-item\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"fas fa-video\"><\/i>\r\n                        <\/div>\r\n                        <div class=\"feature-text\">\r\n                            <h4>Video Collection<\/h4>\r\n                            <p>Access videos & reels<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"feature-item\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"fas fa-download\"><\/i>\r\n                        <\/div>\r\n                        <div class=\"feature-text\">\r\n                            <h4>Download Media<\/h4>\r\n                            <p>Save photos & videos<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div id=\"errorMessage\" class=\"error-message\" style=\"display: none;\"><\/div>\r\n            <\/div>\r\n        <\/section>\r\n\r\n        <div id=\"loadingSection\" class=\"loading\" style=\"display: none;\">\r\n            <div class=\"loading-spinner\"><\/div>\r\n            <div class=\"loading-text\">Analyzing Facebook data...<\/div>\r\n        <\/div>\r\n\r\n        <!-- Profile Content Container -->\r\n        <main id=\"profileContent\" style=\"display: none;\">\r\n            <!-- Dynamic profile content will be inserted here -->\r\n        <\/main>\r\n    <\/div>\r\n\r\n    <!-- Photo Modal -->\r\n    <div id=\"fb-photomodal\" class=\"fb-photomodal\">\r\n        <div class=\"fb-photomodal-content\">\r\n            <button class=\"fb-photomodal-close\" onclick=\"closePhotoModal()\">\r\n                <i class=\"fas fa-times\"><\/i>\r\n            <\/button>\r\n            <img decoding=\"async\" id=\"fb-photomodal-image\" class=\"fb-photomodal-image\" src=\"\/placeholder.svg\" alt=\"Photo\">\r\n            <div class=\"fb-photomodal-info\">\r\n                <div class=\"fb-photomodal-header\">\r\n                    <h3 id=\"fb-photomodal-title\" class=\"fb-photomodal-title\">Photo Details<\/h3>\r\n                <\/div>\r\n                <div id=\"fb-photomodal-stats\" class=\"fb-photomodal-stats\">\r\n                    <!-- Stats will be populated dynamically -->\r\n                <\/div>\r\n                <div class=\"fb-photomodal-actions\">\r\n                    <button class=\"fb-photomodal-action primary\" onclick=\"downloadCurrentPhoto()\">\r\n                        <i class=\"fas fa-download\"><\/i>\r\n                        Download Original\r\n                    <\/button>\r\n                    <button class=\"fb-photomodal-action\" onclick=\"shareCurrentPhoto()\">\r\n                        <i class=\"fas fa-share\"><\/i>\r\n                        Share Photo\r\n                    <\/button>\r\n                    <button class=\"fb-photomodal-action\" onclick=\"viewOnFacebook()\">\r\n                        <i class=\"fab fa-facebook\"><\/i>\r\n                        View on Facebook\r\n                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Download Progress Modal -->\r\n    <div id=\"download-progress-modal\" class=\"download-progress-modal\">\r\n        <div class=\"download-progress-header\">\r\n            <i class=\"fas fa-download\"><\/i>\r\n            <span id=\"download-progress-title\" class=\"download-progress-title\">Downloading...<\/span>\r\n        <\/div>\r\n        <div class=\"download-progress-bar\">\r\n            <div id=\"download-progress-fill\" class=\"download-progress-fill\"><\/div>\r\n        <\/div>\r\n        <div id=\"download-progress-text\" class=\"download-progress-text\">Preparing download...<\/div>\r\n        <button id=\"download-cancel-btn\" class=\"download-cancel-btn\" style=\"display: none;\">Cancel<\/button>\r\n    <\/div>\r\n\r\n    <!-- Mobile Download Button (shown instead of modal on small devices) -->\r\n    <button id=\"mobile-download-btn\" class=\"mobile-download-btn\" onclick=\"downloadCurrentPhotoMobile()\" style=\"display: none;\">\r\n        <i class=\"fas fa-download\"><\/i>\r\n        Download Photo\r\n    <\/button>\r\n\r\n    <!-- Work Process Section -->\r\n    <section class=\"fb-pgv-work-process-section\" id=\"how-it-works\">\r\n        <div class=\"container fb-pgv-work-process-content\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"fb-pgv-section-title fb-pgv-light-title\">How Our Facebook Page Viewer Works<\/h2>\r\n                <p class=\"fb-pgv-section-subtitle fb-pgv-light-subtitle\">View Facebook pages anonymously in just 3\r\n                    simple steps<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"row\">\r\n                <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                    <div class=\"fb-pgv-process-step\">\r\n                        <div class=\"fb-pgv-step-number\">1<\/div>\r\n                        <h4 class=\"text-white\">Enter Page URL<\/h4>\r\n                        <p class=\"fb-pgv-light-subtitle\">Copy and paste the Facebook page URL you want to view\r\n                            anonymously<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                    <div class=\"fb-pgv-process-step\">\r\n                        <div class=\"fb-pgv-step-number\">2<\/div>\r\n                        <h4 class=\"text-white\">Process Page<\/h4>\r\n                        <p class=\"fb-pgv-light-subtitle\">Our system retrieves the page content without revealing your\r\n                            identity<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                    <div class=\"fb-pgv-process-step\">\r\n                        <div class=\"fb-pgv-step-number\">3<\/div>\r\n                        <h4 class=\"text-white\">View Content<\/h4>\r\n                        <p class=\"fb-pgv-light-subtitle\">Browse the page content including posts, photos, and videos\r\n                            anonymously<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Features Section -->\r\n    <section class=\"fb-pgv-features-section\">\r\n        <div class=\"container\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"fb-pgv-section-title\">Key Features<\/h2>\r\n                <p class=\"fb-pgv-section-subtitle\">Our Facebook Page Viewer offers powerful features for anonymous\r\n                    browsing<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"row\">\r\n                <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-user-check\"><\/i>\r\n                        <\/div>\r\n                        <h4>100% Anonymous<\/h4>\r\n                        <p>Browse pages without leaving any trace or alerting the page owner<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-photo-album\"><\/i>\r\n                        <\/div>\r\n                        <h4>Full Content Access<\/h4>\r\n                        <p>View all public posts, photos, and videos on the page<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-history\"><\/i>\r\n                        <\/div>\r\n                        <h4>Historical Posts<\/h4>\r\n                        <p>Access older posts that might not be immediately visible<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-devices\"><\/i>\r\n                        <\/div>\r\n                        <h4>Works on All Devices<\/h4>\r\n                        <p>Use our viewer on desktop, tablet, or mobile without issues<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-shield\"><\/i>\r\n                        <\/div>\r\n                        <h4>No Login Required<\/h4>\r\n                        <p>Access any public Facebook page without an account<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-time-five\"><\/i>\r\n                        <\/div>\r\n                        <h4>Instant Processing<\/h4>\r\n                        <p>Get access to page content immediately without waiting<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Why Choose Section -->\r\n    <section class=\"fb-pgv-why-choose-section\">\r\n        <div class=\"container\">\r\n            <div class=\"row align-items-center\">\r\n                <div class=\"col-lg-6 mb-5 mb-lg-0\" data-aos=\"fade-right\">\r\n                    <div class=\"fb-pgv-why-choose-image fb-pgv-floating-element\">\r\n                        <img decoding=\"async\" src=\"https:\/\/viewanonymous.com\/wp-content\/uploads\/2026\/03\/Facebook_Page_Viewer.webp\" alt=\"Facebook Page Viewer\" class=\"img-fluid rounded-3\">\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"col-lg-6\" data-aos=\"fade-left\">\r\n                    <h2 class=\"fb-pgv-section-title mb-4\">Why Choose Our Facebook Page Viewer?<\/h2>\r\n                    <p class=\"mb-4\">Our tool provides the most reliable and secure way to view Facebook pages\r\n                        anonymously. Unlike other solutions, we prioritize your privacy and deliver comprehensive access\r\n                        to page content.<\/p>\r\n\r\n                    <div class=\"fb-pgv-benefit-item\">\r\n                        <div class=\"fb-pgv-benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">Completely undetectable<\/h5>\r\n                            <p class=\"mb-0\">No traces left when viewing pages<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"fb-pgv-benefit-item\">\r\n                        <div class=\"fb-pgv-benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">No registration needed<\/h5>\r\n                            <p class=\"mb-0\">Start browsing pages immediately<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"fb-pgv-benefit-item\">\r\n                        <div class=\"fb-pgv-benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">Full content access<\/h5>\r\n                            <p class=\"mb-0\">View all public posts and media<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"fb-pgv-benefit-item\">\r\n                        <div class=\"fb-pgv-benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">Fast processing<\/h5>\r\n                            <p class=\"mb-0\">Get instant access to any public page<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- FAQ Section -->\r\n    <section class=\"fb-pgv-faq-section\">\r\n        <div class=\"container\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"fb-pgv-section-title\">Frequently Asked Questions<\/h2>\r\n                <p class=\"fb-pgv-section-subtitle\">Find answers to common questions about our Facebook Page Viewer<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"row justify-content-center\">\r\n                <div class=\"col-lg-8\">\r\n                    <div class=\"accordion\" id=\"fb-pgv-faqAccordion\">\r\n                        <div class=\"fb-pgv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                            <h3 class=\"accordion-header\" id=\"fb-pgv-heading1\">\r\n                                <button class=\"fb-pgv-accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#fb-pgv-collapse1\" aria-expanded=\"true\" aria-controls=\"fb-pgv-collapse1\">\r\n                                    Is it legal to use this Facebook Page Viewer?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"fb-pgv-collapse1\" class=\"accordion-collapse collapse show\" aria-labelledby=\"fb-pgv-heading1\" data-bs-parent=\"#fb-pgv-faqAccordion\">\r\n                                <div class=\"fb-pgv-accordion-body\">\r\n                                    Yes, our tool is completely legal to use. It only allows you to view publicly\r\n                                    available Facebook pages. We don't access private content or bypass any security\r\n                                    measures - we simply display content that's already publicly accessible on Facebook.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"fb-pgv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                            <h3 class=\"accordion-header\" id=\"fb-pgv-heading2\">\r\n                                <button class=\"fb-pgv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#fb-pgv-collapse2\" aria-expanded=\"false\" aria-controls=\"fb-pgv-collapse2\">\r\n                                    Can I view private Facebook pages?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"fb-pgv-collapse2\" class=\"accordion-collapse collapse\" aria-labelledby=\"fb-pgv-heading2\" data-bs-parent=\"#fb-pgv-faqAccordion\">\r\n                                <div class=\"fb-pgv-accordion-body\">\r\n                                    No, our tool respects Facebook's privacy settings. We can only display pages and\r\n                                    content that are set to public. If a page is private, our viewer cannot access it.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"fb-pgv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                            <h3 class=\"accordion-header\" id=\"fb-pgv-heading3\">\r\n                                <button class=\"fb-pgv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#fb-pgv-collapse3\" aria-expanded=\"false\" aria-controls=\"fb-pgv-collapse3\">\r\n                                    Will Facebook know I viewed the page?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"fb-pgv-collapse3\" class=\"accordion-collapse collapse\" aria-labelledby=\"fb-pgv-heading3\" data-bs-parent=\"#fb-pgv-faqAccordion\">\r\n                                <div class=\"fb-pgv-accordion-body\">\r\n                                    No, all viewing is completely anonymous. When you use our tool, Facebook doesn't\r\n                                    register that you've viewed the page. The page owner won't know you accessed their\r\n                                    content.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"fb-pgv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                            <h3 class=\"accordion-header\" id=\"fb-pgv-heading4\">\r\n                                <button class=\"fb-pgv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#fb-pgv-collapse4\" aria-expanded=\"false\" aria-controls=\"fb-pgv-collapse4\">\r\n                                    Do I need to install software to use this?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"fb-pgv-collapse4\" class=\"accordion-collapse collapse\" aria-labelledby=\"fb-pgv-heading4\" data-bs-parent=\"#fb-pgv-faqAccordion\">\r\n                                <div class=\"fb-pgv-accordion-body\">\r\n                                    No, our Facebook Page Viewer is completely web-based. You don't need to download or\r\n                                    install any software. Simply visit our website, enter the page URL, and view the\r\n                                    content directly in your browser.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"fb-pgv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                            <h3 class=\"accordion-header\" id=\"fb-pgv-heading5\">\r\n                                <button class=\"fb-pgv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#fb-pgv-collapse5\" aria-expanded=\"false\" aria-controls=\"fb-pgv-collapse5\">\r\n                                    Can I see who viewed my Facebook page?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"fb-pgv-collapse5\" class=\"accordion-collapse collapse\" aria-labelledby=\"fb-pgv-heading5\" data-bs-parent=\"#fb-pgv-faqAccordion\">\r\n                                <div class=\"fb-pgv-accordion-body\">\r\n                                    No, Facebook doesn't provide this functionality to page owners. Our tool doesn't\r\n                                    track who views pages either - we're completely focused on anonymous viewing.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n  \r\n    <!-- Scripts -->\r\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\r\n    <script src=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.js\"><\/script>\r\n\r\n\r\n    <!-- Facebook Page viewer -->\r\n  <script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n  <script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n    <script>\r\n        \/\/ Global variables\r\n        let currentUrl = '';\r\n        let currentType = ''; \/\/ 'profile' only\r\n        let profileData = null;\r\n        let currentPhotoData = null;\r\n        let currentUsername = '';\r\n        let downloadAbortController = null;\r\n\r\n        \/\/ Caching variables for videos and reels\r\n        let cachedVideos = null;\r\n        let cachedReels = null;\r\n        let currentCachedUsername = null;\r\n\r\n        \/\/ URL Detection and Analysis\r\n        function detectUrlType(url) {\r\n            const cleanUrl = url.toLowerCase().replace(\/^https?:\\\/\\\/(www\\.)?\/, '');\r\n\r\n            if (cleanUrl.includes('facebook.com\/') && !cleanUrl.includes('\/groups\/')) {\r\n                \/\/ Profile detection\r\n                if (cleanUrl.match(\/facebook\\.com\\\/[^\\\/]+\\\/?$\/) ||\r\n                    cleanUrl.includes('\/profile.php?id=') ||\r\n                    cleanUrl.includes('\/people\/')) {\r\n                    return 'profile';\r\n                }\r\n            }\r\n\r\n            return 'unknown';\r\n        }\r\n\r\n        function analyzeUrl(event) {\r\n            event.preventDefault();\r\n\r\n            const url = document.getElementById('urlInput').value.trim();\r\n            if (!url) return;\r\n\r\n            currentUrl = url;\r\n            currentType = detectUrlType(url);\r\n\r\n            \/\/ Clear previous data\r\n            clearAllData();\r\n\r\n            \/\/ Show loading\r\n            document.getElementById('loadingSection').style.display = 'block';\r\n            document.getElementById('profileContent').style.display = 'none';\r\n            document.getElementById('errorMessage').style.display = 'none';\r\n\r\n            const analyzeBtn = document.getElementById('analyzeBtn');\r\n            analyzeBtn.disabled = true;\r\n            analyzeBtn.innerHTML = '<span>Analyzing...<\/span>';\r\n\r\n            if (currentType === 'profile') {\r\n                currentUsername = extractUsernameFromUrl(url);\r\n                fetchProfileData(url);\r\n            } else {\r\n                showError('Please enter a valid Facebook profile or page URL');\r\n                hideLoading();\r\n            }\r\n        }\r\n\r\n        function clearAllData() {\r\n            \/\/ Reset profile variables\r\n            profileData = null;\r\n            currentPhotoData = null;\r\n            currentUsername = '';\r\n\r\n            \/\/ Clear containers\r\n            document.getElementById('profileContent').innerHTML = '';\r\n\r\n            \/\/ Clear cache\r\n            clearCache();\r\n        }\r\n\r\n        \/\/ Function to clear cache when searching for a new profile\r\n        function clearCache() {\r\n            cachedVideos = null;\r\n            cachedReels = null;\r\n            currentCachedUsername = null;\r\n            console.log('Cache cleared for new profile search');\r\n        }\r\n\r\n        function hideLoading() {\r\n            document.getElementById('loadingSection').style.display = 'none';\r\n            const analyzeBtn = document.getElementById('analyzeBtn');\r\n            analyzeBtn.disabled = false;\r\n            analyzeBtn.innerHTML = '<span>Analyze<\/span>';\r\n        }\r\n\r\n        function showError(message) {\r\n            const errorDiv = document.getElementById('errorMessage');\r\n            errorDiv.textContent = message;\r\n            errorDiv.style.display = 'block';\r\n            hideLoading();\r\n        }\r\n\r\n        \/\/ Profile Functions\r\n        function extractUsernameFromUrl(url) {\r\n            try {\r\n                let cleanUrl = url.replace(\/^https?:\\\/\\\/(www\\.)?\/, '');\r\n                cleanUrl = cleanUrl.replace(\/^facebook\\.com\\\/\/, '');\r\n\r\n                \/\/ Handle profile.php?id= format\r\n                if (cleanUrl.includes('profile.php?id=')) {\r\n                    const match = cleanUrl.match(\/profile\\.php\\?id=(\\d+)\/);\r\n                    return match ? match[1] : '';\r\n                }\r\n\r\n                \/\/ Handle people\/ format\r\n                if (cleanUrl.includes('people\/')) {\r\n                    const match = cleanUrl.match(\/people\\\/([^\\\/]+)\\\/(\\d+)\/);\r\n                    return match ? match[2] : '';\r\n                }\r\n\r\n                \/\/ Handle regular username format\r\n                cleanUrl = cleanUrl.split('\/')[0];\r\n                cleanUrl = cleanUrl.split('?')[0];\r\n                return cleanUrl;\r\n            } catch (error) {\r\n                console.error('Error extracting username:', error);\r\n                return '';\r\n            }\r\n        }\r\n\r\n        async function fetchProfileData(url) {\r\n            try {\r\n                const response = await fetch('https:\/\/tools.xrespond.com\/api\/facebook\/all-details', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: url })\r\n                });\r\n\r\n                if (!response.ok) {\r\n                    throw new Error('Network response was not ok');\r\n                }\r\n\r\n                const data = await response.json();\r\n\r\n                if (data.status === 'success') {\r\n                    processProfileData(data.data);\r\n                } else {\r\n                    showError('Failed to load profile data: ' + (data.message || 'Unknown error'));\r\n                }\r\n\r\n            } catch (error) {\r\n                console.error('Profile fetch error:', error);\r\n                showError('Error fetching profile data: ' + error.message);\r\n            }\r\n        }\r\n\r\n        function processProfileData(data) {\r\n            try {\r\n                profileData = parseProfileData(data);\r\n                displayProfileData(profileData);\r\n                hideLoading();\r\n                document.getElementById('profileContent').style.display = 'block';\r\n            } catch (error) {\r\n                showError('Error processing profile data: ' + error.message);\r\n                console.error('Processing Error:', error);\r\n            }\r\n        }\r\n\r\n        function parseProfileData(data) {\r\n            const profileData = {\r\n                basicInfo: extractBasicProfileInfo(data),\r\n                aboutInfo: extractAboutInfo(data),\r\n                photos: extractProfilePhotos(data),\r\n                posts: extractPosts(data),\r\n                videos: extractVideos(data),\r\n                reels: extractReels(data)\r\n            };\r\n\r\n            return profileData;\r\n        }\r\n\r\n        function extractBasicProfileInfo(data) {\r\n            const basicInfo = {\r\n                name: '',\r\n                profilePicture: '',\r\n                coverPhoto: '',\r\n                stats: [],\r\n                isVerified: false\r\n            };\r\n\r\n            try {\r\n                \/\/ Find user data in the response\r\n                for (const item of data.data) {\r\n\r\n                    \/\/ Look for user profile header data\r\n                    if (item.result &&\r\n                        item.result.data &&\r\n                        item.result.data.user &&\r\n                        item.result.data.user.profile_header_renderer &&\r\n                        item.result.data.user.profile_header_renderer.user) {\r\n\r\n                        const userData = item.result.data.user.profile_header_renderer.user;\r\n\r\n                        \/\/ Extract name\r\n                        basicInfo.name = userData.name || 'Unknown Name';\r\n\r\n                        \/\/ Check if verified\r\n                        basicInfo.isVerified = userData.show_verified_badge_on_profile || false;\r\n\r\n                        \/\/ Extract profile picture\r\n                        if (userData.profilePicLarge && userData.profilePicLarge.uri) {\r\n                            basicInfo.profilePicture = userData.profilePicLarge.uri;\r\n                        }\r\n\r\n                        \/\/ Extract cover photo\r\n                        if (userData.cover_photo && userData.cover_photo.photo && userData.cover_photo.photo.image) {\r\n                            basicInfo.coverPhoto = userData.cover_photo.photo.image.uri;\r\n                        }\r\n\r\n                        \/\/ Extract stats (followers, following, etc.)\r\n                        if (userData.profile_social_context && userData.profile_social_context.content) {\r\n                            userData.profile_social_context.content.forEach(item => {\r\n                                if (item.text && item.text.text) {\r\n                                    basicInfo.stats.push(item.text.text);\r\n                                }\r\n                            });\r\n                        }\r\n\r\n                        break;\r\n                    }\r\n                }\r\n            } catch (error) {\r\n                console.error('Error extracting basic info:', error);\r\n            }\r\n\r\n\r\n            return basicInfo;\r\n        }\r\n\r\n        function extractAboutInfo(data) {\r\n            const aboutInfo = {\r\n                bio: '',\r\n                work: [],\r\n                education: [],\r\n                places: [],\r\n                contact: [],\r\n                basic: []\r\n            };\r\n\r\n            try {\r\n                function searchForAboutData(obj) {\r\n                    if (!obj || typeof obj !== 'object') return;\r\n\r\n                    \/\/ Look for bio\/description\r\n                    if (obj.bio && typeof obj.bio === 'string') {\r\n                        aboutInfo.bio = obj.bio;\r\n                    }\r\n\r\n                    \/\/ Look for work information\r\n                    if (obj.work && Array.isArray(obj.work)) {\r\n                        aboutInfo.work = obj.work;\r\n                    } else if (obj.employer && obj.position) {\r\n                        aboutInfo.work.push({\r\n                            employer: obj.employer,\r\n                            position: obj.position\r\n                        });\r\n                    }\r\n\r\n                    \/\/ Look for education\r\n                    if (obj.education && Array.isArray(obj.education)) {\r\n                        aboutInfo.education = obj.education;\r\n                    } else if (obj.school) {\r\n                        aboutInfo.education.push({\r\n                            school: obj.school,\r\n                            type: obj.type || 'Education'\r\n                        });\r\n                    }\r\n\r\n                    \/\/ Recursively search\r\n                    for (const key in obj) {\r\n                        if (typeof obj[key] === 'object') {\r\n                            searchForAboutData(obj[key]);\r\n                        }\r\n                    }\r\n                }\r\n\r\n                searchForAboutData(data);\r\n\r\n            } catch (error) {\r\n                console.error('Error extracting about info:', error);\r\n            }\r\n\r\n            return aboutInfo;\r\n        }\r\n\r\n        function extractProfilePhotos(data) {\r\n            const photos = [];\r\n\r\n            try {\r\n                console.log('Extracting profile photos from data:', data);\r\n\r\n                \/\/ Use the same image extraction logic as groups but filter for profile-specific images\r\n                const allImages = extractAllImages(data);\r\n                console.log('All images found:', allImages.length);\r\n\r\n                \/\/ Filter out very small images (likely thumbnails) and duplicates\r\n                const filteredImages = allImages.filter(img => {\r\n                    return img.width > 80 && img.height > 80; \/\/ Only filter out very small images\r\n                });\r\n                console.log('Filtered images:', filteredImages.length);\r\n\r\n                filteredImages.forEach((img, index) => {\r\n                    photos.push({\r\n                        id: `photo-${index}`,\r\n                        url: img.uri,\r\n                        width: img.width || 0,\r\n                        height: img.height || 0,\r\n                        likes: Math.floor(Math.random() * 100), \/\/ Placeholder\r\n                        comments: Math.floor(Math.random() * 50), \/\/ Placeholder\r\n                        created_time: new Date().toISOString(),\r\n                        quality: img.quality || 0\r\n                    });\r\n                });\r\n\r\n                \/\/ Also search for specific photo structures\r\n                function searchForPhotos(obj) {\r\n                    if (!obj || typeof obj !== 'object') return;\r\n\r\n                    if (obj.photos && Array.isArray(obj.photos)) {\r\n                        obj.photos.forEach(photo => {\r\n                            if (photo.image && photo.image.uri) {\r\n                                photos.push({\r\n                                    id: photo.id || Math.random().toString(36),\r\n                                    url: photo.image.uri,\r\n                                    width: photo.image.width || 0,\r\n                                    height: photo.image.height || 0,\r\n                                    likes: photo.feedback ? photo.feedback.like_count : 0,\r\n                                    comments: photo.feedback ? photo.feedback.comment_count : 0,\r\n                                    created_time: photo.created_time || new Date().toISOString()\r\n                                });\r\n                            }\r\n                        });\r\n                    }\r\n\r\n                    \/\/ Look for media in posts\r\n                    if (obj.attachments && Array.isArray(obj.attachments)) {\r\n                        obj.attachments.forEach(attachment => {\r\n                            if (attachment.media && attachment.media.image) {\r\n                                photos.push({\r\n                                    id: Math.random().toString(36),\r\n                                    url: attachment.media.image.src,\r\n                                    width: attachment.media.image.width || 0,\r\n                                    height: attachment.media.image.height || 0,\r\n                                    likes: 0,\r\n                                    comments: 0,\r\n                                    created_time: new Date().toISOString()\r\n                                });\r\n                            }\r\n                        });\r\n                    }\r\n\r\n                    \/\/ Recursively search\r\n                    for (const key in obj) {\r\n                        if (typeof obj[key] === 'object') {\r\n                            searchForPhotos(obj[key]);\r\n                        }\r\n                    }\r\n                }\r\n\r\n                searchForPhotos(data);\r\n\r\n            } catch (error) {\r\n                console.error('Error extracting profile photos:', error);\r\n            }\r\n\r\n            \/\/ Remove duplicates based on URL\r\n            const uniquePhotos = [];\r\n            const seenUrls = new Set();\r\n\r\n            photos.forEach(photo => {\r\n                if (!seenUrls.has(photo.url)) {\r\n                    seenUrls.add(photo.url);\r\n                    uniquePhotos.push(photo);\r\n                }\r\n            });\r\n\r\n            console.log('Final unique photos found:', uniquePhotos.length);\r\n            return uniquePhotos.slice(0, 50); \/\/ Limit to 50 photos\r\n        }\r\n\r\n        function extractPosts(data) {\r\n            const posts = [];\r\n\r\n            try {\r\n                \/\/ Find posts data in the response\r\n                for (const item of data.data) {\r\n                    \/\/ Look for timeline feed data\r\n                    if (item.result &&\r\n                        item.result.data &&\r\n                        item.result.data.user &&\r\n                        item.result.data.user.timeline_list_feed_units &&\r\n                        item.result.data.user.timeline_list_feed_units.edges) {\r\n\r\n                        const edges = item.result.data.user.timeline_list_feed_units.edges;\r\n\r\n                        \/\/ Process each edge\r\n                        edges.forEach(edge => {\r\n                            if (edge.node &&\r\n                                edge.node.__typename === \"Story\" &&\r\n                                edge.node.comet_sections &&\r\n                                edge.node.comet_sections.content &&\r\n                                edge.node.comet_sections.content.story) {\r\n\r\n                                const story = edge.node.comet_sections.content.story;\r\n\r\n                                \/\/ Extract post data\r\n                                const post = {\r\n                                    id: edge.node.post_id || edge.node.id || '',\r\n                                    author: {\r\n                                        name: '',\r\n                                        profilePicture: ''\r\n                                    },\r\n                                    creationTime: 0,\r\n                                    message: '',\r\n                                    attachments: [],\r\n                                    stats: {\r\n                                        likes: 0,\r\n                                        comments: 0,\r\n                                        shares: 0\r\n                                    }\r\n                                };\r\n\r\n                                \/\/ Extract creation time\r\n                                if (edge.node.comet_sections.context_layout &&\r\n                                    edge.node.comet_sections.context_layout.story) {\r\n                                    post.creationTime = edge.node.comet_sections.context_layout.story.creation_time || 0;\r\n                                }\r\n\r\n                                \/\/ Extract message\r\n                                if (story.message && story.message.text) {\r\n                                    post.message = story.message.text;\r\n                                }\r\n\r\n                                \/\/ Extract author info\r\n                                if (story.actors && story.actors.length > 0) {\r\n                                    post.author.name = story.actors[0].name || '';\r\n\r\n                                    \/\/ Look for profile picture in different locations\r\n                                    if (story.actors[0].profile_picture) {\r\n                                        post.author.profilePicture = story.actors[0].profile_picture.uri;\r\n                                    } else if (edge.node.comet_sections.context_layout &&\r\n                                        edge.node.comet_sections.context_layout.story &&\r\n                                        edge.node.comet_sections.context_layout.story.comet_sections &&\r\n                                        edge.node.comet_sections.context_layout.story.comet_sections.actor_photo) {\r\n                                        const actorPhoto = edge.node.comet_sections.context_layout.story.comet_sections.actor_photo;\r\n                                        if (actorPhoto.story && actorPhoto.story.actors && actorPhoto.story.actors[0] && actorPhoto.story.actors[0].profile_picture) {\r\n                                            post.author.profilePicture = actorPhoto.story.actors[0].profile_picture.uri;\r\n                                        }\r\n                                    }\r\n                                }\r\n\r\n                                \/\/ Extract attachments\r\n                                if (story.attachments && story.attachments.length > 0) {\r\n                                    story.attachments.forEach(attachment => {\r\n                                        if (attachment.styles &&\r\n                                            attachment.styles.attachment &&\r\n                                            attachment.styles.attachment.media) {\r\n\r\n                                            const media = attachment.styles.attachment.media;\r\n\r\n                                            if (media.__typename === 'Photo' && media.image) {\r\n                                                post.attachments.push({\r\n                                                    type: 'photo',\r\n                                                    uri: media.image.uri,\r\n                                                    width: media.image.width || 0,\r\n                                                    height: media.image.height || 0\r\n                                                });\r\n                                            } else if (media.__typename === 'Video' && media.thumbnailImage) {\r\n                                                post.attachments.push({\r\n                                                    type: 'video',\r\n                                                    thumbnailUri: media.thumbnailImage.uri,\r\n                                                    width: media.width || 0,\r\n                                                    height: media.height || 0,\r\n                                                    duration: media.playable_duration_in_ms || 0\r\n                                                });\r\n                                            }\r\n                                        }\r\n                                    });\r\n                                }\r\n\r\n                                \/\/ Extract stats\r\n                                if (story.feedback &&\r\n                                    story.feedback.story_ufi_container &&\r\n                                    story.feedback.story_ufi_container.feedback) {\r\n\r\n                                    const feedback = story.feedback.story_ufi_container.feedback;\r\n\r\n                                    \/\/ Likes\r\n                                    if (feedback.reaction_count && feedback.reaction_count.count) {\r\n                                        post.stats.likes = feedback.reaction_count.count;\r\n                                    } else if (feedback.i18n_reaction_count) {\r\n                                        \/\/ Try to parse from i18n format (e.g., \"19K\")\r\n                                        const match = feedback.i18n_reaction_count.match(\/(\\d+)([KM])?\/);\r\n                                        if (match) {\r\n                                            let count = parseInt(match[1]);\r\n                                            if (match[2] === 'K') count *= 1000;\r\n                                            if (match[2] === 'M') count *= 1000000;\r\n                                            post.stats.likes = count;\r\n                                        }\r\n                                    }\r\n\r\n                                    \/\/ Comments\r\n                                    if (feedback.comment_rendering_instance &&\r\n                                        feedback.comment_rendering_instance.comments &&\r\n                                        feedback.comment_rendering_instance.comments.total_count) {\r\n\r\n                                        post.stats.comments = feedback.comment_rendering_instance.comments.total_count;\r\n                                    }\r\n\r\n                                    \/\/ Shares\r\n                                    if (feedback.share_count && feedback.share_count.count) {\r\n                                        post.stats.shares = feedback.share_count.count;\r\n                                    } else if (feedback.i18n_share_count) {\r\n                                        \/\/ Try to parse from i18n format (e.g., \"2.8K\")\r\n                                        const match = feedback.i18n_share_count.match(\/(\\d+(\\.\\d+)?)([KM])?\/);\r\n                                        if (match) {\r\n                                            let count = parseFloat(match[1]);\r\n                                            if (match[3] === 'K') count *= 1000;\r\n                                            if (match[3] === 'M') count *= 1000000;\r\n                                            post.stats.shares = Math.round(count);\r\n                                        }\r\n                                    }\r\n                                }\r\n\r\n                                posts.push(post);\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n            } catch (error) {\r\n                console.error('Error extracting posts:', error);\r\n            }\r\n\r\n            return posts;\r\n        }\r\n\r\n        \/\/ Function to extract videos (from profile data - legacy)\r\n        function extractVideos(data) {\r\n            const videos = [];\r\n\r\n            try {\r\n                \/\/ Look for videos in timeline feed units\r\n                for (const item of data.data) {\r\n                    if (item.result &&\r\n                        item.result.data &&\r\n                        item.result.data.user &&\r\n                        item.result.data.user.timeline_list_feed_units &&\r\n                        item.result.data.user.timeline_list_feed_units.edges) {\r\n\r\n                        const edges = item.result.data.user.timeline_list_feed_units.edges;\r\n\r\n                        edges.forEach(edge => {\r\n                            if (edge.node &&\r\n                                edge.node.__typename === \"Story\" &&\r\n                                edge.node.comet_sections &&\r\n                                edge.node.comet_sections.content &&\r\n                                edge.node.comet_sections.content.story &&\r\n                                edge.node.comet_sections.content.story.attachments) {\r\n\r\n                                const story = edge.node.comet_sections.content.story;\r\n\r\n                                story.attachments.forEach(attachment => {\r\n                                    if (attachment.styles &&\r\n                                        attachment.styles.attachment &&\r\n                                        attachment.styles.attachment.media &&\r\n                                        attachment.styles.attachment.media.__typename === 'Video') {\r\n\r\n                                        const media = attachment.styles.attachment.media;\r\n\r\n                                        \/\/ Skip reels for the videos section\r\n                                        if (media.is_huddle ||\r\n                                            media.is_soundbites_video ||\r\n                                            media.is_looping ||\r\n                                            (story.message &&\r\n                                                story.message.text &&\r\n                                                story.message.text.toLowerCase().includes('reel'))) {\r\n                                            return;\r\n                                        }\r\n\r\n                                        \/\/ Get thumbnail\r\n                                        let thumbnailUri = '';\r\n                                        if (media.thumbnailImage) {\r\n                                            thumbnailUri = media.thumbnailImage.uri;\r\n                                        } else if (media.preferred_thumbnail && media.preferred_thumbnail.image) {\r\n                                            thumbnailUri = media.preferred_thumbnail.image.uri;\r\n                                        }\r\n\r\n                                        \/\/ Get playable URL from media object\r\n                                        let videoUrl = media.playable_url || '';\r\n\r\n                                        \/\/ Get creation time\r\n                                        let creationTime = 0;\r\n                                        if (story.creation_time) {\r\n                                            creationTime = story.creation_time;\r\n                                        } else if (edge.node.comet_sections.context_layout &&\r\n                                            edge.node.comet_sections.context_layout.story) {\r\n                                            creationTime = edge.node.comet_sections.context_layout.story.creation_time || 0;\r\n                                        } else if (media.publish_time) {\r\n                                            creationTime = media.publish_time;\r\n                                        }\r\n\r\n                                        \/\/ Get title\r\n                                        let title = 'Video';\r\n                                        if (story.message && story.message.text) {\r\n                                            const lines = story.message.text.split('\\n');\r\n                                            title = lines[0].trim();\r\n                                        }\r\n\r\n                                        \/\/ Get stats\r\n                                        let likes = 0;\r\n                                        let views = 0;\r\n\r\n                                        if (story.feedback &&\r\n                                            story.feedback.story_ufi_container &&\r\n                                            story.feedback.story_ufi_container.feedback) {\r\n\r\n                                            const feedback = story.feedback.story_ufi_container.feedback;\r\n\r\n                                            \/\/ Likes\r\n                                            if (feedback.reaction_count && feedback.reaction_count.count) {\r\n                                                likes = feedback.reaction_count.count;\r\n                                            } else if (feedback.i18n_reaction_count) {\r\n                                                \/\/ Try to parse from i18n format (e.g., \"19K\")\r\n                                                const match = feedback.i18n_reaction_count.match(\/(\\d+)([KM])?\/);\r\n                                                if (match) {\r\n                                                    let count = parseInt(match[1]);\r\n                                                    if (match[2] === 'K') count *= 1000;\r\n                                                    if (match[2] === 'M') count *= 1000000;\r\n                                                    likes = count;\r\n                                                }\r\n                                            }\r\n\r\n                                            \/\/ Views\r\n                                            if (feedback.video_view_count) {\r\n                                                views = feedback.video_view_count;\r\n                                            }\r\n                                        }\r\n\r\n                                        \/\/ If we have video view count directly on the media\r\n                                        if (media.video_view_count) {\r\n                                            views = media.video_view_count;\r\n                                        }\r\n\r\n                                        videos.push({\r\n                                            id: media.id || edge.node.post_id || edge.node.id || '',\r\n                                            title: title,\r\n                                            description: story.message && story.message.text ? story.message.text : '',\r\n                                            thumbnailUri: thumbnailUri,\r\n                                            videoUrl: videoUrl,\r\n                                            width: media.width || 0,\r\n                                            height: media.height || 0,\r\n                                            duration: media.playable_duration_in_ms || 0,\r\n                                            creationTime: creationTime,\r\n                                            stats: {\r\n                                                likes: likes,\r\n                                                views: views\r\n                                            }\r\n                                        });\r\n                                    }\r\n                                });\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n\r\n            } catch (error) {\r\n                console.error('Error extracting videos:', error);\r\n            }\r\n\r\n            return videos;\r\n        }\r\n\r\n        \/\/ Enhanced function to extract videos from API response\r\n        function extractVideosFromAPI(data) {\r\n            const videos = [];\r\n\r\n            try {\r\n                console.log('Full API response for videos:', data);\r\n\r\n                if (data && data.data && Array.isArray(data.data)) {\r\n                    for (const item of data.data) {\r\n                        \/\/ Check for latest_videos structure\r\n                        if (item.result &&\r\n                            item.result.data &&\r\n                            item.result.data.latest_videos &&\r\n                            item.result.data.latest_videos.edges) {\r\n\r\n                            const edges = item.result.data.latest_videos.edges;\r\n                            console.log('Found latest_videos edges:', edges);\r\n\r\n                            edges.forEach(edge => {\r\n                                if (edge.node) {\r\n                                    const videoNode = edge.node;\r\n\r\n                                    \/\/ Extract basic video info\r\n                                    const videoData = {\r\n                                        id: videoNode.id || '',\r\n                                        title: 'Video',\r\n                                        description: '',\r\n                                        thumbnailUri: '',\r\n                                        videoUrl: '',\r\n                                        width: 0,\r\n                                        height: 0,\r\n                                        duration: 0,\r\n                                        creationTime: videoNode.publish_time || 0,\r\n                                        stats: {\r\n                                            likes: 0,\r\n                                            views: videoNode.play_count || 0\r\n                                        }\r\n                                    };\r\n\r\n                                    \/\/ Extract thumbnail\r\n                                    if (videoNode.image && videoNode.image.uri) {\r\n                                        videoData.thumbnailUri = videoNode.image.uri;\r\n                                    }\r\n\r\n                                    \/\/ Extract title from savable_title\r\n                                    if (videoNode.savable_title && videoNode.savable_title.text) {\r\n                                        videoData.title = videoNode.savable_title.text;\r\n                                    }\r\n\r\n                                    \/\/ Extract duration\r\n                                    if (videoNode.video_thumbnail_overlays_renderer &&\r\n                                        videoNode.video_thumbnail_overlays_renderer.video &&\r\n                                        videoNode.video_thumbnail_overlays_renderer.video.playable_duration_in_ms) {\r\n                                        videoData.duration = videoNode.video_thumbnail_overlays_renderer.video.playable_duration_in_ms;\r\n                                    }\r\n\r\n                                    \/\/ Extract video URL and other details from creation_story\r\n                                    if (videoNode.creation_story && videoNode.creation_story.attachments) {\r\n                                        videoNode.creation_story.attachments.forEach(attachment => {\r\n                                            if (attachment.target && attachment.target.__typename === 'Video') {\r\n                                                const target = attachment.target;\r\n\r\n                                                \/\/ Get playable URL\r\n                                                if (target.playable_url) {\r\n                                                    videoData.videoUrl = target.playable_url;\r\n                                                }\r\n\r\n                                                \/\/ Get dimensions\r\n                                                if (target.width) videoData.width = target.width;\r\n                                                if (target.height) videoData.height = target.height;\r\n\r\n                                                \/\/ Get thumbnail if not already found\r\n                                                if (!videoData.thumbnailUri && target.image && target.image.uri) {\r\n                                                    videoData.thumbnailUri = target.image.uri;\r\n                                                }\r\n                                            }\r\n                                        });\r\n\r\n                                        \/\/ Extract message\/description\r\n                                        if (videoNode.creation_story.message && videoNode.creation_story.message.text) {\r\n                                            videoData.description = videoNode.creation_story.message.text;\r\n                                            \/\/ Use first line as title if no title found\r\n                                            if (videoData.title === 'Video') {\r\n                                                const lines = videoData.description.split('\\n');\r\n                                                videoData.title = lines[0].trim() || 'Video';\r\n                                            }\r\n                                        }\r\n                                    }\r\n\r\n                                    \/\/ Extract reaction stats\r\n                                    if (videoNode.feedback && videoNode.feedback.reaction_count) {\r\n                                        videoData.stats.likes = videoNode.feedback.reaction_count.count || 0;\r\n                                    }\r\n\r\n                                    \/\/ Only add if we have essential data\r\n                                    if (videoData.thumbnailUri || videoData.videoUrl) {\r\n                                        console.log('Adding video:', videoData);\r\n                                        videos.push(videoData);\r\n                                    }\r\n                                }\r\n                            });\r\n                        }\r\n\r\n                        \/\/ Also check for all_videos structure (alternative format)\r\n                        if (item.result &&\r\n                            item.result.data &&\r\n                            item.result.data.all_videos &&\r\n                            item.result.data.all_videos.edges) {\r\n\r\n                            const edges = item.result.data.all_videos.edges;\r\n                            console.log('Found all_videos edges:', edges);\r\n\r\n                            edges.forEach(edge => {\r\n                                if (edge.node && edge.node.channel_tab_thumbnail_renderer) {\r\n                                    const videoNode = edge.node.channel_tab_thumbnail_renderer.video;\r\n\r\n                                    \/\/ Extract basic video info\r\n                                    const videoData = {\r\n                                        id: videoNode.id || '',\r\n                                        title: 'Video',\r\n                                        description: '',\r\n                                        thumbnailUri: '',\r\n                                        videoUrl: '',\r\n                                        width: 0,\r\n                                        height: 0,\r\n                                        duration: 0,\r\n                                        creationTime: videoNode.publish_time || 0,\r\n                                        stats: {\r\n                                            likes: 0,\r\n                                            views: videoNode.play_count || 0\r\n                                        }\r\n                                    };\r\n\r\n                                    \/\/ Extract thumbnail\r\n                                    if (videoNode.image && videoNode.image.uri) {\r\n                                        videoData.thumbnailUri = videoNode.image.uri;\r\n                                    }\r\n\r\n                                    \/\/ Extract title from savable_title\r\n                                    if (videoNode.savable_title && videoNode.savable_title.text) {\r\n                                        videoData.title = videoNode.savable_title.text;\r\n                                    }\r\n\r\n                                    \/\/ Extract duration\r\n                                    if (videoNode.video_thumbnail_overlays_renderer &&\r\n                                        videoNode.video_thumbnail_overlays_renderer.video &&\r\n                                        videoNode.video_thumbnail_overlays_renderer.video.playable_duration_in_ms) {\r\n                                        videoData.duration = videoNode.video_thumbnail_overlays_renderer.video.playable_duration_in_ms;\r\n                                    }\r\n\r\n                                    \/\/ Extract video URL and other details from creation_story\r\n                                    if (videoNode.creation_story && videoNode.creation_story.attachments) {\r\n                                        videoNode.creation_story.attachments.forEach(attachment => {\r\n                                            if (attachment.target && attachment.target.__typename === 'Video') {\r\n                                                const target = attachment.target;\r\n\r\n                                                \/\/ Get playable URL\r\n                                                if (target.playable_url) {\r\n                                                    videoData.videoUrl = target.playable_url;\r\n                                                }\r\n\r\n                                                \/\/ Get dimensions\r\n                                                if (target.width) videoData.width = target.width;\r\n                                                if (target.height) videoData.height = target.height;\r\n\r\n                                                \/\/ Get thumbnail if not already found\r\n                                                if (!videoData.thumbnailUri && target.image && target.image.uri) {\r\n                                                    videoData.thumbnailUri = target.image.uri;\r\n                                                }\r\n                                            }\r\n                                        });\r\n\r\n                                        \/\/ Extract message\/description\r\n                                        if (videoNode.creation_story.message && videoNode.creation_story.message.text) {\r\n                                            videoData.description = videoNode.creation_story.message.text;\r\n                                            \/\/ Use first line as title if no title found\r\n                                            if (videoData.title === 'Video') {\r\n                                                const lines = videoData.description.split('\\n');\r\n                                                videoData.title = lines[0].trim() || 'Video';\r\n                                            }\r\n                                        }\r\n                                    }\r\n\r\n                                    \/\/ Extract reaction stats\r\n                                    if (videoNode.feedback && videoNode.feedback.reaction_count) {\r\n                                        videoData.stats.likes = videoNode.feedback.reaction_count.count || 0;\r\n                                    }\r\n\r\n                                    \/\/ Only add if we have essential data\r\n                                    if (videoData.thumbnailUri || videoData.videoUrl) {\r\n                                        console.log('Adding video:', videoData);\r\n                                        videos.push(videoData);\r\n                                    }\r\n                                }\r\n                            });\r\n                        }\r\n                    }\r\n                }\r\n\r\n                console.log('Final extracted videos:', videos);\r\n\r\n            } catch (error) {\r\n                console.error('Error extracting videos from API:', error);\r\n            }\r\n\r\n            return videos;\r\n        }\r\n\r\n        \/\/ Function to extract reels\r\n        function extractReels(data) {\r\n            const reels = [];\r\n\r\n            try {\r\n                console.log('Full API response for reels:', data);\r\n\r\n                if (data && data.data && Array.isArray(data.data)) {\r\n                    for (const item of data.data) {\r\n                        \/\/ Look for reels in the main data structure\r\n                        if (item.result &&\r\n                            item.result.data &&\r\n                            item.result.data.node &&\r\n                            item.result.data.node.all_collections &&\r\n                            item.result.data.node.all_collections.nodes) {\r\n\r\n                            const collections = item.result.data.node.all_collections.nodes;\r\n\r\n                            for (const collection of collections) {\r\n                                if (collection.style_renderer &&\r\n                                    collection.style_renderer.collection &&\r\n                                    collection.style_renderer.collection.aggregated_fb_shorts &&\r\n                                    collection.style_renderer.collection.aggregated_fb_shorts.edges) {\r\n\r\n                                    const reelsEdges = collection.style_renderer.collection.aggregated_fb_shorts.edges;\r\n                                    console.log('Found reels edges:', reelsEdges);\r\n\r\n                                    reelsEdges.forEach(edge => {\r\n                                        if (edge.profile_reel_node && edge.profile_reel_node.node) {\r\n                                            const reelNode = edge.profile_reel_node.node;\r\n                                            console.log('Processing reel node:', reelNode);\r\n\r\n                                            const reelData = {\r\n                                                id: reelNode.id || '',\r\n                                                thumbnailUri: '',\r\n                                                videoUrl: '',\r\n                                                duration: 0,\r\n                                                title: 'Reel',\r\n                                                views: 0,\r\n                                                creationTime: reelNode.creation_time || 0\r\n                                            };\r\n\r\n                                            \/\/ Extract video data from short_form_video_context\r\n                                            if (reelNode.short_form_video_context &&\r\n                                                reelNode.short_form_video_context.playback_video) {\r\n\r\n                                                const video = reelNode.short_form_video_context.playback_video;\r\n\r\n                                                \/\/ Extract thumbnail\r\n                                                if (video.thumbnailImage && video.thumbnailImage.uri) {\r\n                                                    reelData.thumbnailUri = video.thumbnailImage.uri;\r\n                                                }\r\n\r\n                                                \/\/ Extract video URLs from videoDeliveryLegacyFields\r\n                                                if (video.videoDeliveryLegacyFields) {\r\n                                                    const delivery = video.videoDeliveryLegacyFields;\r\n\r\n                                                    if (delivery.browser_native_hd_url) {\r\n                                                        reelData.videoUrl = delivery.browser_native_hd_url;\r\n                                                    } else if (delivery.browser_native_sd_url) {\r\n                                                        reelData.videoUrl = delivery.browser_native_sd_url;\r\n                                                    }\r\n                                                }\r\n\r\n                                                \/\/ Extract duration\r\n                                                if (video.playable_duration_in_ms) {\r\n                                                    reelData.duration = video.playable_duration_in_ms;\r\n                                                } else if (video.length_in_second) {\r\n                                                    reelData.duration = video.length_in_second * 1000;\r\n                                                }\r\n\r\n                                                \/\/ Extract permalink URL as fallback\r\n                                                if (video.permalink_url) {\r\n                                                    reelData.videoUrl = reelData.videoUrl || video.permalink_url;\r\n                                                }\r\n                                            }\r\n\r\n                                            \/\/ Extract video data from attachments\r\n                                            if (reelNode.attachments && reelNode.attachments.length > 0) {\r\n                                                const attachment = reelNode.attachments[0];\r\n                                                if (attachment.media && attachment.media.__typename === 'Video') {\r\n                                                    const media = attachment.media;\r\n\r\n                                                    \/\/ Extract thumbnail if not already found\r\n                                                    if (!reelData.thumbnailUri && media.first_frame_thumbnail) {\r\n                                                        reelData.thumbnailUri = media.first_frame_thumbnail;\r\n                                                    }\r\n\r\n                                                    \/\/ Extract shareable URL\r\n                                                    if (media.shareable_url) {\r\n                                                        reelData.videoUrl = reelData.videoUrl || media.shareable_url;\r\n                                                    }\r\n\r\n                                                    \/\/ Extract duration if not already found\r\n                                                    if (!reelData.duration && media.playable_duration_in_ms) {\r\n                                                        reelData.duration = media.playable_duration_in_ms;\r\n                                                    }\r\n                                                }\r\n                                            }\r\n\r\n                                            \/\/ Extract title from message\r\n                                            if (reelNode.message && reelNode.message.text) {\r\n                                                reelData.title = reelNode.message.text.split('\\n')[0].trim() || 'Reel';\r\n                                            }\r\n\r\n                                            \/\/ Extract views from feedback\r\n                                            if (reelNode.feedback && reelNode.feedback.unified_reactors) {\r\n                                                reelData.views = reelNode.feedback.unified_reactors.count || 0;\r\n                                            }\r\n\r\n                                            \/\/ Extract play count from short_form_video_context\r\n                                            if (reelNode.short_form_video_context &&\r\n                                                reelNode.short_form_video_context.play_count_reduced) {\r\n                                                reelData.views = parseInt(reelNode.short_form_video_context.play_count_reduced) || reelData.views;\r\n                                            }\r\n\r\n                                            \/\/ Only add if we have essential data\r\n                                            if (reelData.thumbnailUri || reelData.videoUrl) {\r\n                                                console.log('Adding reel:', reelData);\r\n                                                reels.push(reelData);\r\n                                            } else {\r\n                                                console.log('Skipping reel due to missing essential data:', reelData);\r\n                                            }\r\n                                        }\r\n                                    });\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n\r\n                console.log('Final extracted reels:', reels);\r\n\r\n            } catch (error) {\r\n                console.error('Error extracting reels:', error);\r\n            }\r\n\r\n            return reels;\r\n        }\r\n\r\n        function displayProfileData(profileData) {\r\n            console.log(profileData);\r\n            const profileContent = document.getElementById('profileContent');\r\n\r\n            const html = `\r\n            <div class=\"profile-container\">\r\n                <!-- Cover Photo Section -->\r\n                <div class=\"cover-section\">\r\n                    <div class=\"cover-photo\" style=\"background-image: url('${profileData.basicInfo.coverPhoto || '\/placeholder.svg?height=400&width=1200'}')\"><\/div>\r\n                    <div class=\"cover-overlay\"><\/div>\r\n                    <div class=\"cover-gradient\"><\/div>\r\n                <\/div>\r\n\r\n                <!-- Profile Info Section -->\r\n                <div class=\"profile-info-section\">\r\n                    <div class=\"profile-header\">\r\n                        <div class=\"profile-picture-container\">\r\n                            <div class=\"profile-picture\" style=\"background-image: url('${profileData.basicInfo.profilePicture || '\/placeholder.svg?height=160&width=160'}')\"><\/div>\r\n                            <div class=\"profile-ring\"><\/div>\r\n                            <div class=\"profile-status-indicator\"><\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"profile-details\">\r\n                            <h1 class=\"profile-name ${profileData.basicInfo.isVerified ? 'verified-badge' : ''}\">${escapeHtml(profileData.basicInfo.name || currentUsername)}<\/h1>\r\n                            <div class=\"profile-stats\">\r\n                                <span class=\"stat-badge\">${profileData.photos.length} Photos<\/span>\r\n                                <span class=\"stat-badge\" id=\"profile-video-count\">0 Videos<\/span>\r\n                                <span class=\"stat-badge\" id=\"profile-reels-count\">0 Reels<\/span>\r\n                                <span class=\"stat-badge\">${profileData.posts.length} Posts<\/span>\r\n                            <\/div>\r\n                            \r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <!-- Navigation Tabs -->\r\n                    <div class=\"profile-navigation\">\r\n                        <div class=\"profile-nav-tabs\">\r\n                            <button class=\"nav-tab active\" data-tab=\"photos\" onclick=\"switchProfileTab('photos')\">\r\n                                <i class=\"fas fa-images\"><\/i>\r\n                                <span>Photos<\/span>\r\n                                <div class=\"nav-indicator\"><\/div>\r\n                            <\/button>\r\n                            <button class=\"nav-tab\" data-tab=\"posts\" onclick=\"switchProfileTab('posts')\">\r\n                                <i class=\"fas fa-newspaper\"><\/i>\r\n                                <span>Posts<\/span>\r\n                                <div class=\"nav-indicator\"><\/div>\r\n                            <\/button>\r\n                            <button class=\"nav-tab\" data-tab=\"videos\" onclick=\"switchProfileTab('videos')\">\r\n                                <i class=\"fas fa-video\"><\/i>\r\n                                <span>Videos<\/span>\r\n                                <div class=\"nav-indicator\"><\/div>\r\n                            <\/button>\r\n                            <button class=\"nav-tab\" data-tab=\"reels\" onclick=\"switchProfileTab('reels')\">\r\n                                <i class=\"fas fa-film\"><\/i>\r\n                                <span>Reels<\/span>\r\n                                <div class=\"nav-indicator\"><\/div>\r\n                            <\/button>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Tab Content -->\r\n                <div class=\"tab-content-container\">\r\n                    <!-- Photos Tab -->\r\n                    <div id=\"profile-photos-tab\" class=\"tab-content active\">\r\n                        <div class=\"content-header\">\r\n                            <div class=\"content-title\">\r\n                                <i class=\"fas fa-images\"><\/i>\r\n                                <h2>Photo Gallery<\/h2>\r\n                            <\/div>\r\n                            <div class=\"content-stats\">\r\n                                <div class=\"stat-item\">\r\n                                    <i class=\"fas fa-camera\"><\/i>\r\n                                    <span>${profileData.photos.length} Photos<\/span>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        ${profileData.photos.length > 0 ? `\r\n                            <div class=\"photos-grid\">\r\n                                ${profileData.photos.map((photo, index) => `\r\n                                    <div class=\"fb-photoitem\" onclick=\"openPhotoModal('${photo.url}', ${index})\">\r\n                                        <div class=\"fb-photoimage-container\">\r\n                                            <img decoding=\"async\" src=\"${photo.url}\" alt=\"Photo ${index + 1}\" class=\"fb-photoimage\" onerror=\"this.parentElement.parentElement.style.display='none'\">\r\n                                            <div class=\"fb-photooverlay\">\r\n                                                <div class=\"fb-photoactions\">\r\n                                                    <button class=\"fb-photoaction-btn\" onclick=\"event.stopPropagation(); downloadImage('${photo.url}', 'photo-${index + 1}.jpg', this)\">\r\n                                                        <i class=\"fas fa-download\"><\/i>\r\n                                                    <\/button>\r\n                                                    <button class=\"fb-photoaction-btn\" onclick=\"event.stopPropagation(); sharePhoto('${photo.url}')\">\r\n                                                        <i class=\"fas fa-share\"><\/i>\r\n                                                    <\/button>\r\n                                                <\/div>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                        <div class=\"fb-photoinfo\">\r\n                                            <div class=\"fb-photostats\">\r\n                                                <div class=\"fb-photoengagement\">\r\n                                                    <div class=\"fb-photoengagement-item\">\r\n                                                        <i class=\"fas fa-heart\"><\/i>\r\n                                                        <span>${photo.likes}<\/span>\r\n                                                    <\/div>\r\n                                                    <div class=\"fb-photoengagement-item\">\r\n                                                        <i class=\"fas fa-comment\"><\/i>\r\n                                                        <span>${photo.comments}<\/span>\r\n                                                    <\/div>\r\n                                                <\/div>\r\n                                            <\/div>\r\n                                            <div class=\"fb-photometa\">\r\n                                                <span class=\"fb-photodimensions\">${photo.width}\u00d7${photo.height}<\/span>\r\n                                                <span>${formatDate(photo.created_time)}<\/span>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                `).join('')}\r\n                            <\/div>\r\n                        ` : `\r\n                            <div class=\"no-data-message\">\r\n                                No photos found for this profile.\r\n                            <\/div>\r\n                        `}\r\n                    <\/div>\r\n\r\n                    <!-- Posts Tab -->\r\n                    <div id=\"profile-posts-tab\" class=\"tab-content\">\r\n                        <div class=\"content-header\">\r\n                            <div class=\"content-title\">\r\n                                <i class=\"fas fa-newspaper\"><\/i>\r\n                                <h2>Recent Posts<\/h2>\r\n                            <\/div>\r\n                            <div class=\"content-stats\">\r\n                                <div class=\"stat-item\">\r\n                                    <i class=\"fas fa-edit\"><\/i>\r\n                                    <span>${profileData.posts.length} Posts<\/span>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        ${profileData.posts.length > 0 ? `\r\n                            <div class=\"posts-container\">\r\n                                ${profileData.posts.map((post, index) => `\r\n                                    <div class=\"post-item\">\r\n                                        <div class=\"post-header\">\r\n                                            <div class=\"post-profile-pic\" style=\"background-image: url('${profileData.basicInfo.profilePicture || '\/placeholder.svg?height=48&width=48'}')\">\r\n                                                ${!profileData.basicInfo.profilePicture ? '<i class=\"fas fa-user\"><\/i>' : ''}\r\n                                            <\/div>\r\n                                            <div class=\"post-info\">\r\n                                                <div class=\"post-author\">${escapeHtml(profileData.basicInfo.name || currentUsername)}<\/div>\r\n                                                <div class=\"post-date\">${formatDate(post.creationTime * 1000)}<\/div>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                        \r\n                                        ${post.message ? `<div class=\"post-content\">${escapeHtml(post.message)}<\/div>` : ''}\r\n                                        \r\n                                        ${post.attachments.map(attachment => {\r\n                if (attachment.type === 'photo') {\r\n                    return `<img decoding=\"async\" src=\"${attachment.uri}\" alt=\"Post image\" class=\"post-image\">`;\r\n                }\r\n                return '';\r\n            }).join('')}\r\n                                        \r\n                                        <div class=\"post-stats\">\r\n                                            <div class=\"stat-item\">\r\n                                                <i class=\"fas fa-heart\"><\/i>\r\n                                                <span>${post.stats.likes} likes<\/span>\r\n                                            <\/div>\r\n                                            <div class=\"stat-item\">\r\n                                                <i class=\"fas fa-comment\"><\/i>\r\n                                                <span>${post.stats.comments} comments<\/span>\r\n                                            <\/div>\r\n                                            <div class=\"stat-item\">\r\n                                                <i class=\"fas fa-share\"><\/i>\r\n                                                <span>${post.stats.shares} shares<\/span>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                `).join('')}\r\n                            <\/div>\r\n                        ` : `\r\n                            <div class=\"no-data-message\">\r\n                                No posts found for this profile.\r\n                            <\/div>\r\n                        `}\r\n                    <\/div>\r\n\r\n                    <!-- Videos Tab -->\r\n                    <div id=\"profile-videos-tab\" class=\"tab-content\">\r\n                        <div class=\"content-header\">\r\n                            <div class=\"content-title\">\r\n                                <i class=\"fas fa-video\"><\/i>\r\n                                <h2>Video Collection<\/h2>\r\n                            <\/div>\r\n                            <div class=\"content-stats\">\r\n                                <div class=\"stat-item\">\r\n                                    <i class=\"fas fa-play-circle\"><\/i>\r\n                                    <span id=\"video-count\">0 Videos<\/span>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div id=\"videos-skeleton\" class=\"videos-skeleton\" style=\"display:block;\">\r\n                            <div class=\"videos-grid-skeleton\">\r\n                                <div class=\"video-skeleton\">\r\n                                    <div class=\"video-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"video-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <div class=\"video-skeleton\">\r\n                                    <div class=\"video-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"video-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <div class=\"video-skeleton\">\r\n                                    <div class=\"video-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"video-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div id=\"profile-videos-container\" class=\"video-grid\" style=\"display:none;\">\r\n                            <!-- Will be filled after fetchVideosData -->\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <!-- Reels Tab -->\r\n                    <div id=\"profile-reels-tab\" class=\"tab-content\">\r\n                        <div class=\"content-header\">\r\n                            <div class=\"content-title\">\r\n                                <i class=\"fas fa-film\"><\/i>\r\n                                <h2>Reels Collection<\/h2>\r\n                            <\/div>\r\n                            <div class=\"content-stats\">\r\n                                <div class=\"stat-item\">\r\n                                    <i class=\"fas fa-video\"><\/i>\r\n                                    <span id=\"reels-count\">${profileData.reels.length} Reels<\/span>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div id=\"reels-skeleton\" class=\"reels-skeleton\">\r\n                            <div class=\"reels-grid-skeleton\">\r\n                                <div class=\"reel-skeleton\">\r\n                                    <div class=\"reel-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"reel-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <div class=\"reel-skeleton\">\r\n                                    <div class=\"reel-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"reel-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <div class=\"reel-skeleton\">\r\n                                    <div class=\"reel-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"reel-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div id=\"profile-reels-container\" class=\"video-grid\">\r\n                            ${profileData.reels.length > 0 ? profileData.reels.map((reel, index) => `\r\n                                <div class=\"video-card\" style=\"--index: ${index}\" data-reel-index=\"${index}\">\r\n                                    <div class=\"video-thumbnail\" style=\"background-image: url('${reel.thumbnailUri || '\/placeholder.svg?height=200&width=350'}')\" onclick=\"playReelInline(${index}, 'profile')\">\r\n                                        <div class=\"video-play-icon\">\r\n                                            <i class=\"fas fa-play\"><\/i>\r\n                                        <\/div>\r\n                                        <div class=\"reel-badge\">REEL<\/div>\r\n                                        <div class=\"video-duration\">${formatDuration(reel.duration)}<\/div>\r\n                                        <div class=\"video-overlay\">\r\n                                            <div class=\"video-actions\">\r\n                                                <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); downloadReel(${index}, 'profile')\" title=\"Download Reel\">\r\n                                                    <i class=\"fas fa-download\"><\/i>\r\n                                                <\/button>\r\n                                                <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); shareReel(${index}, 'profile')\" title=\"Share Reel\">\r\n                                                    <i class=\"fas fa-share\"><\/i>\r\n                                                <\/button>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                    ${reel.videoUrl ? `\r\n                                        <video \r\n                                            class=\"video-player\" \r\n                                            style=\"display: none;\" \r\n                                            controls \r\n                                            loop\r\n                                            muted\r\n                                            preload=\"metadata\"\r\n                                            data-src=\"${reel.videoUrl}\"\r\n                                        >\r\n                                            <source src=\"${reel.videoUrl}\" type=\"video\/mp4\">\r\n                                            Your browser does not support the video tag.\r\n                                        <\/video>\r\n                                    ` : ''}\r\n                                    <div class=\"video-info\">\r\n                                        <div class=\"video-title\">${escapeHtml(truncateText(reel.title))}<\/div>\r\n                                        ${reel.description && reel.description.trim() ? `\r\n                                            <div class=\"video-description\">${escapeHtml(reel.description.trim())}<\/div>\r\n                                        ` : ''}\r\n                                        <div class=\"video-stats\">\r\n                                            <div class=\"video-engagement\">\r\n                                                ${reel.views > 0 ? `\r\n                                                    <div class=\"video-engagement-item\">\r\n                                                        <i class=\"fas fa-eye\"><\/i>\r\n                                                        <span>${formatNumber(reel.views)} views<\/span>\r\n                                                    <\/div>\r\n                                                ` : ''}\r\n                                            <\/div>\r\n                                            ${reel.videoUrl ? `\r\n                                                <button class=\"video-download-btn\" onclick=\"downloadReel(${index}, 'profile')\">\r\n                                                    <i class=\"fas fa-download\"><\/i>\r\n                                                    Download\r\n                                                <\/button>\r\n                                            ` : ''}\r\n                                        <\/div>\r\n                                        <div class=\"video-meta\">\r\n                                            ${reel.creationTime ? `<div>${formatTimeAgo(reel.creationTime * 1000)}<\/div>` : ''}\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            `).join('') : `\r\n                                <div class=\"no-data-message\">\r\n                                    No reels found for this profile.\r\n                                <\/div>\r\n                            `}\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n\r\n            profileContent.innerHTML = html;\r\n        }\r\n\r\n        \/\/ Tab Switching Functions\r\n        function switchProfileTab(tabName) {\r\n            \/\/ For profile tabs\r\n            document.querySelectorAll('.nav-tab').forEach(btn => btn.classList.remove('active'));\r\n            document.querySelectorAll('.tab-content').forEach(content => content.classList.remove('active'));\r\n\r\n            const tabBtn = document.querySelector(`[data-tab=\"${tabName}\"]`);\r\n            const tabContent = document.getElementById(`profile-${tabName}-tab`);\r\n\r\n            if (tabBtn) tabBtn.classList.add('active');\r\n            if (tabContent) tabContent.classList.add('active');\r\n\r\n            \/\/ Always reload videos when videos tab is clicked for profiles\r\n            if (tabName === 'videos' && currentUsername && currentType === 'profile') {\r\n                document.getElementById('videos-skeleton').style.display = 'block';\r\n                document.getElementById('profile-videos-container').style.display = 'none';\r\n\r\n                setTimeout(() => {\r\n                    fetchVideosData(currentUsername);\r\n                }, 500);\r\n            }\r\n\r\n            \/\/ Always reload reels when reels tab is clicked for profiles\r\n            if (tabName === 'reels' && currentUsername && currentType === 'profile') {\r\n                document.getElementById('reels-skeleton').style.display = 'block';\r\n                document.getElementById('profile-reels-container').style.display = 'none';\r\n\r\n                setTimeout(() => {\r\n                    fetchReelsData(currentUsername);\r\n                }, 500);\r\n            }\r\n        }\r\n\r\n        \/\/ Group Video Functions - REMOVED\r\n\r\n        \/\/ Function to fetch videos data specifically for profiles\r\n        async function fetchVideosData(username) {\r\n            if (!username) {\r\n                console.error('No username available for videos fetch');\r\n                return;\r\n            }\r\n\r\n            \/\/ Check if we have cached videos for this username\r\n            if (cachedVideos && currentCachedUsername === username) {\r\n                console.log('Using cached videos for:', username);\r\n                document.getElementById('videos-skeleton').style.display = 'none';\r\n                document.getElementById('profile-videos-container').style.display = 'grid';\r\n\r\n                \/\/ Update the videos count\r\n                document.getElementById('video-count').textContent = `${cachedVideos.length} Videos`;\r\n                document.getElementById('profile-video-count').textContent = `${cachedVideos.length} Videos`;\r\n\r\n                \/\/ Store videos data globally for download functionality\r\n                window.profileVideosData = cachedVideos;\r\n                return;\r\n            }\r\n\r\n            try {\r\n                \/\/ Construct videos URL\r\n                const videosUrl = `https:\/\/www.facebook.com\/${username}\/videos`;\r\n                console.log('Fetching videos from:', videosUrl);\r\n\r\n                const response = await fetch('https:\/\/tools.xrespond.com\/api\/facebook\/all-details', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: videosUrl })\r\n                });\r\n\r\n                document.getElementById('videos-skeleton').style.display = 'none';\r\n                document.getElementById('profile-videos-container').style.display = 'grid';\r\n                document.getElementById('profile-videos-container').innerHTML = '<div class=\"loading\" style=\"text-align: center; padding: 40px;\"><div class=\"loading-spinner\"><\/div><div class=\"loading-text\">Loading videos...<\/div><\/div>';\r\n\r\n                if (!response.ok) {\r\n                    throw new Error('Network response was not ok');\r\n                }\r\n\r\n                const data = await response.json();\r\n                console.log('Videos API response:', data);\r\n\r\n                if (data.status === 'success') {\r\n                    \/\/ Process and display videos data\r\n                    const videosData = extractVideosFromAPI(data.data);\r\n                    console.log('Processed videos data:', videosData);\r\n\r\n                    \/\/ Cache the videos data\r\n                    cachedVideos = videosData;\r\n                    currentCachedUsername = username;\r\n\r\n                    \/\/ Update profile data with new videos\r\n                    if (profileData) {\r\n                        profileData.videos = videosData;\r\n                    }\r\n\r\n                    \/\/ Update the videos count\r\n                    document.getElementById('video-count').textContent = `${videosData.length} Videos`;\r\n                    document.getElementById('profile-video-count').textContent = `${videosData.length} Videos`;\r\n\r\n                    \/\/ Display videos\r\n                    const videosContainer = document.getElementById('profile-videos-container');\r\n                    if (videosData.length > 0) {\r\n                        const videosHtml = videosData.map((video, index) => `\r\n                        <div class=\"video-card\" style=\"--index: ${index}\" data-video-index=\"${index}\">\r\n                            <div class=\"video-thumbnail\" style=\"background-image: url('${video.thumbnailUri || '\/placeholder.svg?height=200&width=350'}')\" onclick=\"playVideoInline(${index}, 'profile')\">\r\n                                <div class=\"video-play-icon\">\r\n                                    <i class=\"fas fa-play\"><\/i>\r\n                                <\/div>\r\n                                <div class=\"video-quality-badge\">${video.height >= 720 ? 'HD' : 'SD'}<\/div>\r\n                                <div class=\"video-duration\">${formatDuration(video.duration)}<\/div>\r\n                                <div class=\"video-overlay\">\r\n                                    <div class=\"video-actions\">\r\n                                        <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); downloadVideo(${index}, 'profile')\" title=\"Download Video\">\r\n                                            <i class=\"fas fa-download\"><\/i>\r\n                                        <\/button>\r\n                                        <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); shareVideo(${index}, 'profile')\" title=\"Share Video\">\r\n                                            <i class=\"fas fa-share\"><\/i>\r\n                                        <\/button>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                            ${video.videoUrl ? `\r\n                                <video \r\n                                    class=\"video-player\" \r\n                                    style=\"display: none;\" \r\n                                    controls \r\n                                    preload=\"metadata\"\r\n                                    data-src=\"${video.videoUrl}\"\r\n                                >\r\n                                    <source src=\"${video.videoUrl}\" type=\"video\/mp4\">\r\n                                    Your browser does not support the video tag.\r\n                                <\/video>\r\n                            ` : ''}\r\n                            <div class=\"video-info\">\r\n                                <div class=\"video-title\">${escapeHtml(truncateText(video.title))}<\/div>\r\n                                ${video.description && video.description.trim() ? `\r\n                                    <div class=\"video-description\">${escapeHtml(video.description.trim())}<\/div>\r\n                                ` : ''}\r\n                                <div class=\"video-stats\">\r\n                                    <div class=\"video-engagement\">\r\n                                        ${video.stats && video.stats.likes > 0 ? `\r\n                                            <div class=\"video-engagement-item\">\r\n                                                <i class=\"fas fa-heart\"><\/i>\r\n                                                <span>${formatNumber(video.stats.likes)}<\/span>\r\n                                            <\/div>\r\n                                        ` : ''}\r\n                                        ${video.stats && video.stats.views > 0 ? `\r\n                                            <div class=\"video-engagement-item\">\r\n                                                <i class=\"fas fa-eye\"><\/i>\r\n                                                <span>${formatNumber(video.stats.views)} views<\/span>\r\n                                            <\/div>\r\n                                        ` : ''}\r\n                                    <\/div>\r\n                                    ${video.videoUrl ? `\r\n                                        <button class=\"video-download-btn\" onclick=\"downloadVideo(${index}, 'profile')\">\r\n                                            <i class=\"fas fa-download\"><\/i>\r\n                                            Download\r\n                                        <\/button>\r\n                                    ` : ''}\r\n                                <\/div>\r\n                                <div class=\"video-meta\">\r\n                                    ${video.creationTime ? `<div>${formatTimeAgo(video.creationTime * 1000)}<\/div>` : ''}\r\n                                    ${video.width && video.height ? `<div>${video.width} \u00d7 ${video.height}<\/div>` : ''}\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n                    `).join('');\r\n\r\n                        videosContainer.innerHTML = videosHtml;\r\n                        \/\/ Show container immediately after content is ready\r\n                        videosContainer.style.display = 'grid';\r\n\r\n                        \/\/ Store videos data globally for download functionality\r\n                        window.profileVideosData = videosData;\r\n                    } else {\r\n                        videosContainer.innerHTML = '<div class=\"no-data-message\">No videos found for this profile.<\/div>';\r\n                        videosContainer.style.display = 'grid';\r\n                        document.getElementById('video-count').textContent = '0 Videos';\r\n                        document.getElementById('profile-video-count').textContent = '0 Videos';\r\n                    }\r\n                } else {\r\n                    console.error('API returned error:', data);\r\n                    document.getElementById('profile-videos-container').innerHTML = '<div class=\"no-data-message\">Failed to load videos: ' + (data.message || 'Unknown error') + '<\/div>';\r\n                    document.getElementById('video-count').textContent = '0 Videos';\r\n                    document.getElementById('profile-video-count').textContent = '0 Videos';\r\n                }\r\n            } catch (error) {\r\n                console.error('Error fetching videos data:', error);\r\n                document.getElementById('videos-skeleton').style.display = 'none';\r\n                document.getElementById('profile-videos-container').style.display = 'grid';\r\n                document.getElementById('profile-videos-container').innerHTML = '<div class=\"no-data-message\">Error loading videos. Please try again later.<\/div>';\r\n                document.getElementById('video-count').textContent = '0 Videos';\r\n                document.getElementById('profile-video-count').textContent = '0 Videos';\r\n            }\r\n        }\r\n\r\n        \/\/ Function to fetch reels data specifically for profiles\r\n        async function fetchReelsData(username) {\r\n            if (!username) {\r\n                console.error('No username available for reels fetch');\r\n                return;\r\n            }\r\n\r\n            \/\/ Check if we have cached reels for this username\r\n            if (cachedReels && currentCachedUsername === username) {\r\n                console.log('Using cached reels for:', username);\r\n                document.getElementById('reels-skeleton').style.display = 'none';\r\n                document.getElementById('profile-reels-container').style.display = 'grid';\r\n\r\n                \/\/ Update the reels count\r\n                document.getElementById('reels-count').textContent = `${cachedReels.length} Reels`;\r\n                document.getElementById('profile-reels-count').textContent = `${cachedReels.length} Reels`;\r\n\r\n                \/\/ Store reels data globally for download functionality\r\n                window.profileReelsData = cachedReels;\r\n                return;\r\n            }\r\n\r\n            try {\r\n                \/\/ Construct reels URL\r\n                const reelsUrl = `https:\/\/www.facebook.com\/${username}\/reels`;\r\n                console.log('Fetching reels from:', reelsUrl);\r\n\r\n                const response = await fetch('https:\/\/tools.xrespond.com\/api\/facebook\/all-details', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: reelsUrl })\r\n                });\r\n\r\n                document.getElementById('reels-skeleton').style.display = 'none';\r\n                document.getElementById('profile-reels-container').style.display = 'grid';\r\n                document.getElementById('profile-reels-container').innerHTML = '<div class=\"loading\" style=\"text-align: center; padding: 40px;\"><div class=\"loading-spinner\"><\/div><div class=\"loading-text\">Loading reels...<\/div><\/div>';\r\n\r\n                if (!response.ok) {\r\n                    throw new Error('Network response was not ok');\r\n                }\r\n\r\n                const data = await response.json();\r\n                console.log('Reels API response:', data);\r\n\r\n                if (data.status === 'success') {\r\n                    \/\/ Process and display reels data\r\n                    const reelsData = extractReels(data.data);\r\n                    console.log('Processed reels data:', reelsData);\r\n\r\n                    \/\/ Update profile data with new reels\r\n                    if (profileData) {\r\n                        profileData.reels = reelsData;\r\n                    }\r\n\r\n                    \/\/ Update the reels count\r\n                    document.getElementById('reels-count').textContent = `${reelsData.length} Reels`;\r\n                    document.getElementById('profile-reels-count').textContent = `${reelsData.length} Reels`;\r\n\r\n                    \/\/ Display reels\r\n                    const reelsContainer = document.getElementById('profile-reels-container');\r\n                    if (reelsData.length > 0) {\r\n                        const reelsHtml = reelsData.map((reel, index) => `\r\n                        <div class=\"video-card\" style=\"--index: ${index}\" data-reel-index=\"${index}\">\r\n                            <div class=\"video-thumbnail\" style=\"background-image: url('${reel.thumbnailUri || '\/placeholder.svg?height=200&width=350'}')\" onclick=\"playReelInline(${index}, 'profile')\">\r\n                                <div class=\"video-play-icon\">\r\n                                    <i class=\"fas fa-play\"><\/i>\r\n                                <\/div>\r\n                                <div class=\"reel-badge\">REEL<\/div>\r\n                                <div class=\"video-duration\">${formatDuration(reel.duration)}<\/div>\r\n                                <div class=\"video-overlay\">\r\n                                    <div class=\"video-actions\">\r\n                                        <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); downloadReel(${index}, 'profile')\" title=\"Download Reel\">\r\n                                            <i class=\"fas fa-download\"><\/i>\r\n                                        <\/button>\r\n                                        <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); shareReel(${index}, 'profile')\" title=\"Share Reel\">\r\n                                            <i class=\"fas fa-share\"><\/i>\r\n                                        <\/button>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                            ${reel.videoUrl ? `\r\n                                <video \r\n                                    class=\"video-player\" \r\n                                    style=\"display: none;\" \r\n                                    controls \r\n                                    loop\r\n                                    muted\r\n                                    preload=\"metadata\"\r\n                                    data-src=\"${reel.videoUrl}\"\r\n                                >\r\n                                    <source src=\"${reel.videoUrl}\" type=\"video\/mp4\">\r\n                                    Your browser does not support the video tag.\r\n                                <\/video>\r\n                            ` : ''}\r\n                            <div class=\"video-info\">\r\n                                <div class=\"video-title\">${escapeHtml(truncateText(reel.title))}<\/div>\r\n                                <div class=\"video-stats\">\r\n                                    <div class=\"video-engagement\">\r\n                                        ${reel.views > 0 ? `\r\n                                            <div class=\"video-engagement-item\">\r\n                                                <i class=\"fas fa-eye\"><\/i>\r\n                                                <span>${formatNumber(reel.views)} views<\/span>\r\n                                            <\/div>\r\n                                        ` : ''}\r\n                                    <\/div>\r\n                                    ${reel.videoUrl ? `\r\n                                        <button class=\"video-download-btn\" onclick=\"downloadReel(${index}, 'profile')\">\r\n                                            <i class=\"fas fa-download\"><\/i>\r\n                                            Download\r\n                                        <\/button>\r\n                                    ` : ''}\r\n                                <\/div>\r\n                                <div class=\"video-meta\">\r\n                                    ${reel.creationTime ? `<div>${formatTimeAgo(reel.creationTime * 1000)}<\/div>` : ''}\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n                    `).join('');\r\n\r\n                        reelsContainer.innerHTML = reelsHtml;\r\n\r\n                        \/\/ Store reels data globally for download functionality\r\n                        window.profileReelsData = reelsData;\r\n                    } else {\r\n                        reelsContainer.innerHTML = '<div class=\"no-data-message\">No reels found for this profile.<\/div>';\r\n                        document.getElementById('reels-count').textContent = '0 Reels';\r\n                        document.getElementById('profile-reels-count').textContent = '0 Reels';\r\n                    }\r\n                } else {\r\n                    console.error('API returned error:', data);\r\n                    document.getElementById('profile-reels-container').innerHTML = '<div class=\"no-data-message\">Failed to load reels: ' + (data.message || 'Unknown error') + '<\/div>';\r\n                    document.getElementById('reels-count').textContent = '0 Reels';\r\n                    document.getElementById('profile-reels-count').textContent = '0 Reels';\r\n                }\r\n            } catch (error) {\r\n                console.error('Error fetching reels data:', error);\r\n                document.getElementById('reels-skeleton').style.display = 'none';\r\n                document.getElementById('profile-reels-container').style.display = 'grid';\r\n                document.getElementById('profile-reels-container').innerHTML = '<div class=\"no-data-message\">Error loading reels. Please try again later.<\/div>';\r\n                document.getElementById('reels-count').textContent = '0 Reels';\r\n                document.getElementById('profile-reels-count').textContent = '0 Reels';\r\n            }\r\n        }\r\n\r\n        \/\/ Video Playback Functions\r\n        function pauseOtherVideos(currentVideoPlayer) {\r\n            document.querySelectorAll('video.video-player').forEach(otherVideo => {\r\n                if (otherVideo !== currentVideoPlayer) {\r\n                    \/\/ Pause the video\r\n                    otherVideo.pause();\r\n                    otherVideo.currentTime = 0;\r\n\r\n                    \/\/ Hide video player and show thumbnail\r\n                    otherVideo.style.display = 'none';\r\n                    const otherContainer = otherVideo.closest('.video-card');\r\n                    if (otherContainer) {\r\n                        const otherThumbnail = otherContainer.querySelector('.video-thumbnail');\r\n                        if (otherThumbnail) {\r\n                            otherThumbnail.style.display = 'flex';\r\n                        }\r\n                    }\r\n                }\r\n            });\r\n        }\r\n\r\n        function playVideoInline(index, type) {\r\n            let videoData;\r\n            let container;\r\n\r\n            if (type === 'profile') {\r\n                videoData = window.profileVideosData || (profileData ? profileData.videos : []);\r\n                container = document.querySelector(`[data-video-index=\"${index}\"]`);\r\n            }\r\n\r\n            if (!videoData || !videoData[index] || !container) {\r\n                console.error('Video data not found');\r\n                return;\r\n            }\r\n\r\n            const video = videoData[index];\r\n            const thumbnail = container.querySelector('.video-thumbnail');\r\n            const videoPlayer = container.querySelector('.video-player');\r\n\r\n            if (!videoPlayer || !video.videoUrl) {\r\n                console.error('Video player or URL not found');\r\n                return;\r\n            }\r\n\r\n            pauseOtherVideos(videoPlayer);\r\n\r\n            \/\/ Hide thumbnail and show video player\r\n            thumbnail.style.display = 'none';\r\n            videoPlayer.style.display = 'block';\r\n\r\n            \/\/ Load video source if not already loaded\r\n            if (!videoPlayer.src && videoPlayer.dataset.src) {\r\n                videoPlayer.src = videoPlayer.dataset.src;\r\n            }\r\n\r\n            \/\/ Play the video\r\n            videoPlayer.play().catch(error => {\r\n                console.error('Error playing video:', error);\r\n                \/\/ Show thumbnail again if video fails to play\r\n                thumbnail.style.display = 'block';\r\n                videoPlayer.style.display = 'none';\r\n            });\r\n\r\n            \/\/ Add event listener to show thumbnail when video ends\r\n            videoPlayer.addEventListener('ended', function () {\r\n                thumbnail.style.display = 'block';\r\n                videoPlayer.style.display = 'none';\r\n            });\r\n\r\n            \/\/ Add event listener to show thumbnail when video is paused\r\n            videoPlayer.addEventListener('pause', function () {\r\n                if (videoPlayer.currentTime === 0 || videoPlayer.ended) {\r\n                    thumbnail.style.display = 'block';\r\n                    videoPlayer.style.display = 'none';\r\n                }\r\n            });\r\n        }\r\n\r\n        function playReelInline(index, type) {\r\n            let reelData;\r\n            let container;\r\n\r\n            if (type === 'profile') {\r\n                reelData = window.profileReelsData || (profileData ? profileData.reels : []);\r\n                container = document.querySelector(`[data-reel-index=\"${index}\"]`);\r\n            }\r\n\r\n            if (!reelData || !reelData[index] || !container) {\r\n                console.error('Reel data not found');\r\n                return;\r\n            }\r\n\r\n            const reel = reelData[index];\r\n            const thumbnail = container.querySelector('.video-thumbnail');\r\n            const videoPlayer = container.querySelector('.video-player');\r\n\r\n            if (!videoPlayer || !reel.videoUrl) {\r\n                console.error('Video player or URL not found');\r\n                return;\r\n            }\r\n\r\n            pauseOtherVideos(videoPlayer);\r\n\r\n            \/\/ Hide thumbnail and show video player\r\n            thumbnail.style.display = 'none';\r\n            videoPlayer.style.display = 'block';\r\n\r\n            \/\/ Load video source if not already loaded\r\n            if (!videoPlayer.src && videoPlayer.dataset.src) {\r\n                videoPlayer.src = videoPlayer.dataset.src;\r\n            }\r\n\r\n            \/\/ Play the video\r\n            videoPlayer.play().catch(error => {\r\n                console.error('Error playing reel:', error);\r\n                \/\/ Show thumbnail again if video fails to play\r\n                thumbnail.style.display = 'block';\r\n                videoPlayer.style.display = 'none';\r\n            });\r\n\r\n            \/\/ Add event listener to show thumbnail when video ends (reels loop, so this might not trigger)\r\n            videoPlayer.addEventListener('ended', function () {\r\n                thumbnail.style.display = 'block';\r\n                videoPlayer.style.display = 'none';\r\n            });\r\n\r\n            \/\/ Add event listener to show thumbnail when video is paused\r\n            videoPlayer.addEventListener('pause', function () {\r\n                if (videoPlayer.currentTime === 0 || videoPlayer.ended) {\r\n                    thumbnail.style.display = 'block';\r\n                    videoPlayer.style.display = 'none';\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Download Functions with Progress Indicator\r\n        function showDownloadProgress(filename) {\r\n            const modal = document.getElementById('download-progress-modal');\r\n            const title = document.getElementById('download-progress-title');\r\n            const fill = document.getElementById('download-progress-fill');\r\n            const text = document.getElementById('download-progress-text');\r\n\r\n            \/\/ Shorten filename if too long\r\n            const shortFilename = filename.length > 20 ? filename.substring(0, 17) + '...' : filename;\r\n            title.textContent = `Downloading ${shortFilename}`;\r\n            fill.style.width = '0%';\r\n            text.textContent = 'Preparing...';\r\n            modal.classList.add('active');\r\n\r\n            return {\r\n                updateProgress: (percent, status) => {\r\n                    fill.style.width = `${percent}%`;\r\n                    text.textContent = status;\r\n                },\r\n                complete: () => {\r\n                    fill.style.width = '100%';\r\n                    text.textContent = 'Complete!';\r\n                    setTimeout(() => {\r\n                        modal.classList.remove('active');\r\n                    }, 2000);\r\n                },\r\n                error: (message) => {\r\n                    text.textContent = `Error: ${message}`;\r\n                    setTimeout(() => {\r\n                        modal.classList.remove('active');\r\n                    }, 3000);\r\n                }\r\n            };\r\n        }\r\n\r\n        async function downloadImage(url, filename, button) {\r\n            const progress = showDownloadProgress(filename);\r\n\r\n            try {\r\n                \/\/ Update button state\r\n                const originalText = button.innerHTML;\r\n                button.innerHTML = '<span class=\"btn-icon\">\u23f3<\/span><span>Downloading...<\/span>';\r\n                button.disabled = true;\r\n\r\n                progress.updateProgress(10, 'Fetching...');\r\n\r\n                const response = await fetch(url);\r\n                if (!response.ok) throw new Error('Network response was not ok');\r\n\r\n                progress.updateProgress(50, 'Processing...');\r\n\r\n                const blob = await response.blob();\r\n\r\n                progress.updateProgress(80, 'Preparing...');\r\n\r\n                const downloadUrl = window.URL.createObjectURL(blob);\r\n                const a = document.createElement('a');\r\n                a.href = downloadUrl;\r\n                a.download = filename;\r\n                document.body.appendChild(a);\r\n                a.click();\r\n                document.body.removeChild(a);\r\n                window.URL.revokeObjectURL(downloadUrl);\r\n\r\n                progress.complete();\r\n\r\n                \/\/ Restore button state\r\n                button.innerHTML = originalText;\r\n                button.disabled = false;\r\n\r\n            } catch (error) {\r\n                console.error('Download failed:', error);\r\n                progress.error('Download failed');\r\n\r\n                \/\/ Restore button state\r\n                button.innerHTML = originalText;\r\n                button.disabled = false;\r\n            }\r\n        }\r\n\r\n        function downloadVideo(index, type) {\r\n            let videoData;\r\n\r\n            if (type === 'profile') {\r\n                videoData = window.profileVideosData || (profileData ? profileData.videos : []);\r\n            }\r\n\r\n            if (!videoData || !videoData[index]) {\r\n                console.error('Video data not found');\r\n                return;\r\n            }\r\n\r\n            const video = videoData[index];\r\n            if (!video.videoUrl) {\r\n                alert('Video URL not available for download');\r\n                return;\r\n            }\r\n\r\n            const filename = `video-${index + 1}-${video.title.replace(\/[^a-z0-9]\/gi, '_').toLowerCase()}.mp4`;\r\n            downloadVideoFile(video.videoUrl, filename);\r\n        }\r\n\r\n        function downloadReel(index, type) {\r\n            let reelData;\r\n\r\n            if (type === 'profile') {\r\n                reelData = window.profileReelsData || (profileData ? profileData.reels : []);\r\n            }\r\n\r\n            if (!reelData || !reelData[index]) {\r\n                console.error('Reel data not found');\r\n                return;\r\n            }\r\n\r\n            const reel = reelData[index];\r\n            if (!reel.videoUrl) {\r\n                alert('Reel URL not available for download');\r\n                return;\r\n            }\r\n\r\n            const filename = `reel-${index + 1}-${reel.title.replace(\/[^a-z0-9]\/gi, '_').toLowerCase()}.mp4`;\r\n            downloadVideoFile(reel.videoUrl, filename);\r\n        }\r\n\r\n        async function downloadVideoFile(url, filename) {\r\n            const progress = showDownloadProgress(filename);\r\n            downloadAbortController = new AbortController();\r\n            const signal = downloadAbortController.signal;\r\n\r\n            const cancelButton = document.getElementById('download-cancel-btn');\r\n            cancelButton.style.display = 'block';\r\n            cancelButton.onclick = () => {\r\n                downloadAbortController.abort();\r\n                progress.error('Download canceled by user');\r\n            };\r\n\r\n            try {\r\n                progress.updateProgress(5, 'Initializing...');\r\n\r\n                const response = await fetch(url, { signal });\r\n                if (!response.ok) throw new Error('Network response was not ok');\r\n\r\n                const contentLength = response.headers.get('content-length');\r\n                const total = parseInt(contentLength, 10);\r\n                let loaded = 0;\r\n\r\n                progress.updateProgress(10, 'Starting...');\r\n\r\n                const reader = response.body.getReader();\r\n                const chunks = [];\r\n\r\n                while (true) {\r\n                    const { done, value } = await reader.read();\r\n\r\n                    if (done) break;\r\n\r\n                    chunks.push(value);\r\n                    loaded += value.length;\r\n\r\n                    if (total) {\r\n                        const percent = Math.min(90, Math.round((loaded \/ total) * 100) + 10);\r\n                        progress.updateProgress(percent, `Downloading... ${formatBytes(loaded)} \/ ${formatBytes(total)}`);\r\n                    } else {\r\n                        const percent = Math.min(90, Math.round((loaded \/ 1000000) * 10) + 10); \/\/ Estimate based on 1MB chunks\r\n                        progress.updateProgress(percent, `Downloading... ${formatBytes(loaded)}`);\r\n                    }\r\n                }\r\n\r\n                progress.updateProgress(95, 'Processing video...');\r\n\r\n                const blob = new Blob(chunks, { type: 'video\/mp4' });\r\n                const downloadUrl = window.URL.createObjectURL(blob);\r\n                const a = document.createElement('a');\r\n                a.href = downloadUrl;\r\n                a.download = filename;\r\n                document.body.appendChild(a);\r\n                a.click();\r\n                document.body.removeChild(a);\r\n                window.URL.revokeObjectURL(downloadUrl);\r\n\r\n                progress.complete();\r\n\r\n            } catch (error) {\r\n                if (error.name === 'AbortError') {\r\n                    progress.error('Download canceled');\r\n                } else {\r\n                    console.error('Video download failed:', error);\r\n                    progress.error(`Download failed: ${error.message}`);\r\n                }\r\n            } finally {\r\n                cancelButton.style.display = 'none';\r\n                downloadAbortController = null;\r\n            }\r\n        }\r\n\r\n        \/\/ Share Functions\r\n        function shareVideo(index, type) {\r\n            let videoData;\r\n\r\n            if (type === 'profile') {\r\n                videoData = window.profileVideosData || (profileData ? profileData.videos : []);\r\n            }\r\n\r\n            if (!videoData || !videoData[index]) {\r\n                console.error('Video data not found');\r\n                return;\r\n            }\r\n\r\n            const video = videoData[index];\r\n\r\n            if (navigator.share) {\r\n                navigator.share({\r\n                    title: video.title,\r\n                    text: video.description || 'Check out this video!',\r\n                    url: video.videoUrl || window.location.href\r\n                }).catch(console.error);\r\n            } else {\r\n                \/\/ Fallback: copy to clipboard\r\n                const shareText = `${video.title}\\n${video.videoUrl || window.location.href}`;\r\n                navigator.clipboard.writeText(shareText).then(() => {\r\n                    alert('Video link copied to clipboard!');\r\n                }).catch(() => {\r\n                    alert('Unable to share video');\r\n                });\r\n            }\r\n        }\r\n\r\n        function shareReel(index, type) {\r\n            let reelData;\r\n\r\n            if (type === 'profile') {\r\n                reelData = window.profileReelsData || (profileData ? profileData.reels : []);\r\n            }\r\n\r\n            if (!reelData || !reelData[index]) {\r\n                console.error('Reel data not found');\r\n                return;\r\n            }\r\n\r\n            const reel = reelData[index];\r\n\r\n            if (navigator.share) {\r\n                navigator.share({\r\n                    title: reel.title,\r\n                    text: 'Check out this reel!',\r\n                    url: reel.videoUrl || window.location.href\r\n                }).catch(console.error);\r\n            } else {\r\n                \/\/ Fallback: copy to clipboard\r\n                const shareText = `${reel.title}\\n${reel.videoUrl || window.location.href}`;\r\n                navigator.clipboard.writeText(shareText).then(() => {\r\n                    alert('Reel link copied to clipboard!');\r\n                }).catch(() => {\r\n                    alert('Unable to share reel');\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Photo Modal Functions\r\n        function openPhotoModal(photoUrl, index) {\r\n            \/\/ Check if device is mobile (screen width <= 768px)\r\n            const isMobile = window.innerWidth <= 768;\r\n\r\n            if (isMobile) {\r\n                \/\/ On mobile, show download button instead of modal\r\n                showMobileDownloadButton(photoUrl, index);\r\n                return;\r\n            }\r\n\r\n            \/\/ Desktop behavior - show modal\r\n            const modal = document.getElementById('fb-photomodal');\r\n            const modalImage = document.getElementById('fb-photomodal-image');\r\n            const modalTitle = document.getElementById('fb-photomodal-title');\r\n            const modalStats = document.getElementById('fb-photomodal-stats');\r\n\r\n            \/\/ Set current photo data\r\n            currentPhotoData = {\r\n                url: photoUrl,\r\n                index: index\r\n            };\r\n\r\n            \/\/ Update modal content\r\n            modalImage.src = photoUrl;\r\n            modalTitle.textContent = `Photo ${index + 1}`;\r\n\r\n            \/\/ Update stats if available\r\n            let photo = null;\r\n            if (profileData && profileData.photos && profileData.photos[index]) {\r\n                photo = profileData.photos[index];\r\n            }\r\n\r\n            if (photo) {\r\n                modalStats.innerHTML = `\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">${photo.likes}<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Likes<\/div>\r\n                <\/div>\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">${photo.comments}<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Comments<\/div>\r\n                <\/div>\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">${photo.width}\u00d7${photo.height}<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Resolution<\/div>\r\n                <\/div>\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">${formatDate(photo.created_time)}<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Date<\/div>\r\n                <\/div>\r\n            `;\r\n            } else {\r\n                modalStats.innerHTML = `\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">N\/A<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Likes<\/div>\r\n                <\/div>\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">N\/A<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Comments<\/div>\r\n                <\/div>\r\n            `;\r\n            }\r\n\r\n            \/\/ Show modal\r\n            modal.classList.add('active');\r\n\r\n            \/\/ Add escape key listener\r\n            document.addEventListener('keydown', handleModalKeydown);\r\n        }\r\n\r\n        function showMobileDownloadButton(photoUrl, index) {\r\n            \/\/ Set current photo data\r\n            currentPhotoData = {\r\n                url: photoUrl,\r\n                index: index\r\n            };\r\n\r\n            \/\/ Show mobile download button\r\n            const mobileBtn = document.getElementById('mobile-download-btn');\r\n            mobileBtn.style.display = 'block';\r\n\r\n            \/\/ Auto-hide after 5 seconds\r\n            setTimeout(() => {\r\n                mobileBtn.style.display = 'none';\r\n                currentPhotoData = null;\r\n            }, 5000);\r\n        }\r\n\r\n        function downloadCurrentPhotoMobile() {\r\n            if (!currentPhotoData) return;\r\n\r\n            const filename = `photo-${currentPhotoData.index + 1}.jpg`;\r\n            downloadImage(currentPhotoData.url, filename, {\r\n                innerHTML: '<i class=\"fas fa-download\"><\/i> Download Photo',\r\n                disabled: false\r\n            });\r\n\r\n            \/\/ Hide the mobile download button after download starts\r\n            const mobileBtn = document.getElementById('mobile-download-btn');\r\n            mobileBtn.style.display = 'none';\r\n            currentPhotoData = null;\r\n        }\r\n\r\n        function closePhotoModal() {\r\n            const modal = document.getElementById('fb-photomodal');\r\n            modal.classList.remove('active');\r\n            currentPhotoData = null;\r\n\r\n            \/\/ Remove escape key listener\r\n            document.removeEventListener('keydown', handleModalKeydown);\r\n        }\r\n\r\n        function handleModalKeydown(event) {\r\n            if (event.key === 'Escape') {\r\n                closePhotoModal();\r\n            }\r\n        }\r\n\r\n        function downloadCurrentPhoto() {\r\n            if (!currentPhotoData) return;\r\n\r\n            const filename = `photo-${currentPhotoData.index + 1}.jpg`;\r\n            downloadImage(currentPhotoData.url, filename, {\r\n                innerHTML: '<i class=\"fas fa-download\"><\/i> Download Original',\r\n                disabled: false\r\n            });\r\n        }\r\n\r\n        function shareCurrentPhoto() {\r\n            if (!currentPhotoData) return;\r\n\r\n            if (navigator.share) {\r\n                navigator.share({\r\n                    title: `Photo ${currentPhotoData.index + 1}`,\r\n                    text: 'Check out this photo!',\r\n                    url: currentPhotoData.url\r\n                }).catch(console.error);\r\n            } else {\r\n                navigator.clipboard.writeText(currentPhotoData.url).then(() => {\r\n                    alert('Photo link copied to clipboard!');\r\n                }).catch(() => {\r\n                    alert('Unable to share photo');\r\n                });\r\n            }\r\n        }\r\n\r\n        function viewOnFacebook() {\r\n            if (currentUrl) {\r\n                window.open(currentUrl, '_blank');\r\n            }\r\n        }\r\n\r\n        function sharePhoto(photoUrl) {\r\n            if (navigator.share) {\r\n                navigator.share({\r\n                    title: 'Photo',\r\n                    text: 'Check out this photo!',\r\n                    url: photoUrl\r\n                }).catch(console.error);\r\n            } else {\r\n                navigator.clipboard.writeText(photoUrl).then(() => {\r\n                    alert('Photo link copied to clipboard!');\r\n                }).catch(() => {\r\n                    alert('Unable to share photo');\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Export Functions\r\n        function exportProfileData() {\r\n            if (!profileData) {\r\n                alert('No profile data available to export');\r\n                return;\r\n            }\r\n\r\n            const exportData = {\r\n                profile: {\r\n                    name: profileData.basicInfo.name,\r\n                    username: currentUsername,\r\n                    profilePicture: profileData.basicInfo.profilePicture,\r\n                    coverPhoto: profileData.basicInfo.coverPhoto,\r\n                    isVerified: profileData.basicInfo.isVerified\r\n                },\r\n                stats: {\r\n                    photos: profileData.photos.length,\r\n                    videos: profileData.videos.length,\r\n                    reels: profileData.reels.length,\r\n                    posts: profileData.posts.length\r\n                },\r\n                photos: profileData.photos.map(photo => ({\r\n                    url: photo.url,\r\n                    width: photo.width,\r\n                    height: photo.height,\r\n                    likes: photo.likes,\r\n                    comments: photo.comments,\r\n                    created_time: photo.created_time\r\n                })),\r\n                videos: profileData.videos.map(video => ({\r\n                    title: video.title,\r\n                    thumbnailUri: video.thumbnailUri,\r\n                    videoUrl: video.videoUrl,\r\n                    duration: video.duration,\r\n                    stats: video.stats,\r\n                    creationTime: video.creationTime\r\n                })),\r\n                reels: profileData.reels.map(reel => ({\r\n                    title: reel.title,\r\n                    thumbnailUri: reel.thumbnailUri,\r\n                    videoUrl: reel.videoUrl,\r\n                    duration: reel.duration,\r\n                    views: reel.views,\r\n                    creationTime: reel.creationTime\r\n                })),\r\n                exportedAt: new Date().toISOString()\r\n            };\r\n\r\n            const dataStr = JSON.stringify(exportData, null, 2);\r\n            const dataBlob = new Blob([dataStr], { type: 'application\/json' });\r\n            const url = URL.createObjectURL(dataBlob);\r\n\r\n            const a = document.createElement('a');\r\n            a.href = url;\r\n            a.download = `${currentUsername || 'profile'}_data_${new Date().toISOString().split('T')[0]}.json`;\r\n            document.body.appendChild(a);\r\n            a.click();\r\n            document.body.removeChild(a);\r\n            URL.revokeObjectURL(url);\r\n        }\r\n\r\n        \/\/ Utility Functions\r\n        function escapeHtml(text) {\r\n            if (!text) return '';\r\n            const map = {\r\n                '&': '&',\r\n                '<': '<',\r\n                '>': '>',\r\n                '\"': '\"',\r\n                \"'\": '''\r\n            };\r\n            return text.replace(\/[&<>\"']\/g, function (m) { return map[m]; });\r\n        }\r\n\r\n        function truncateText(text, length = 100) {\r\n            if (!text || text.length <= length) {\r\n                return text;\r\n            }\r\n            return text.substring(0, length) + '...';\r\n        }\r\n\r\n        function formatDate(timestamp) {\r\n            if (!timestamp) return 'Unknown';\r\n            const date = new Date(timestamp);\r\n            return date.toLocaleDateString('en-US', {\r\n                year: 'numeric',\r\n                month: 'short',\r\n                day: 'numeric'\r\n            });\r\n        }\r\n\r\n        function formatTimeAgo(timestamp) {\r\n            if (!timestamp) return 'Unknown';\r\n            const now = new Date();\r\n            const date = new Date(timestamp);\r\n            const diffInSeconds = Math.floor((now - date) \/ 1000);\r\n\r\n            if (diffInSeconds < 60) return 'Just now';\r\n            if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds \/ 60)}m ago`;\r\n            if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds \/ 3600)}h ago`;\r\n            if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds \/ 86400)}d ago`;\r\n            if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds \/ 2592000)}mo ago`;\r\n            return `${Math.floor(diffInSeconds \/ 31536000)}y ago`;\r\n        }\r\n\r\n        function formatDuration(milliseconds) {\r\n            if (!milliseconds) return '0:00';\r\n            const seconds = Math.floor(milliseconds \/ 1000);\r\n            const minutes = Math.floor(seconds \/ 60);\r\n            const remainingSeconds = seconds % 60;\r\n            return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;\r\n        }\r\n\r\n        function formatNumber(num) {\r\n            if (!num) return '0';\r\n            if (num >= 1000000) return (num \/ 1000000).toFixed(1) + 'M';\r\n            if (num >= 1000) return (num \/ 1000).toFixed(1) + 'K';\r\n            return num.toString();\r\n        }\r\n\r\n        function formatBytes(bytes) {\r\n            if (bytes === 0) return '0 Bytes';\r\n            const k = 1024;\r\n            const sizes = ['Bytes', 'KB', 'MB', 'GB'];\r\n            const i = Math.floor(Math.log(bytes) \/ Math.log(k));\r\n            return parseFloat((bytes \/ Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\r\n        }\r\n\r\n        function formatTotalViews(reels) {\r\n            const total = reels.reduce((sum, reel) => sum + (reel.views || 0), 0);\r\n            return formatNumber(total);\r\n        }\r\n\r\n        \/\/ Click outside modal to close\r\n        document.getElementById('fb-photomodal').addEventListener('click', function (event) {\r\n            if (event.target === this) {\r\n                closePhotoModal();\r\n            }\r\n        });\r\n\r\n        \/\/ Initialize page\r\n        document.addEventListener('DOMContentLoaded', function () {\r\n            console.log('Facebook Unified Analyzer loaded');\r\n\r\n            \/\/ Add some sample URLs for testing\r\n            const urlInput = document.getElementById('urlInput');\r\n            urlInput.addEventListener('focus', function () {\r\n                this.placeholder = 'e.g., https:\/\/www.facebook.com\/username';\r\n            });\r\n\r\n            urlInput.addEventListener('blur', function () {\r\n                if (!this.value) {\r\n                    this.placeholder = 'Enter Facebook profile or page URL...';\r\n                }\r\n            });\r\n        });\r\n\r\n        \/\/ Global error handler\r\n        window.addEventListener('error', function (event) {\r\n            console.error('Global error:', event.error);\r\n        });\r\n\r\n        \/\/ Global unhandled promise rejection handler\r\n        window.addEventListener('unhandledrejection', function (event) {\r\n            console.error('Unhandled promise rejection:', event.reason);\r\n        });\r\n\r\n        function findTopCoverImage(data) {\r\n            let bestImage = { url: '', quality: -1 };\r\n\r\n            function getQuality(url) {\r\n                let quality = 0;\r\n                if (url.includes('scontent')) quality += 1;\r\n                if (url.includes('_n.jpg')) quality += 2;\r\n                if (url.includes('1080')) quality += 3;\r\n                return quality;\r\n            }\r\n\r\n            function findImage(obj) {\r\n                if (!obj || typeof obj !== 'object') return;\r\n\r\n                if (obj.uri && typeof obj.uri === 'string' && obj.uri.includes('scontent')) {\r\n                    const quality = getQuality(obj.uri);\r\n                    if (quality > bestImage.quality) {\r\n                        bestImage = { url: obj.uri, quality: quality };\r\n                    }\r\n                }\r\n\r\n                for (const key in obj) {\r\n                    findImage(obj[key]);\r\n                }\r\n            }\r\n\r\n            findImage(data);\r\n            return bestImage.url;\r\n        }\r\n\r\n        console.log('Facebook Page Viewer loaded');\r\n\r\n        function extractAllImages(obj, path = '') {\r\n            const images = [];\r\n\r\n            if (obj && typeof obj === 'object') {\r\n                if (Array.isArray(obj)) {\r\n                    obj.forEach((item, index) => {\r\n                        images.push(...extractAllImages(item, `${path}[${index}]`));\r\n                    });\r\n                } else {\r\n                    for (const [key, value] of Object.entries(obj)) {\r\n                        const currentPath = path ? `${path}.${key}` : key;\r\n\r\n                        if (key === 'prefetch_uris_v2' && Array.isArray(value)) {\r\n                            value.forEach((uriObj) => {\r\n                                if (uriObj?.uri) {\r\n                                    const resolution = extractResolution(uriObj.uri);\r\n                                    const quality = getQualityScore(uriObj.uri,\r\n                                        resolution?.width || 0,\r\n                                        resolution?.height || 0);\r\n\r\n                                    images.push({\r\n                                        uri: uriObj.uri,\r\n                                        type: 'prefetch',\r\n                                        resolution: resolution,\r\n                                        quality: quality,\r\n                                        width: resolution?.width || 0,\r\n                                        height: resolution?.height || 0\r\n                                    });\r\n                                }\r\n                            });\r\n                        } else if (key === 'image' && value?.uri) {\r\n                            const resolution = extractResolution(value.uri);\r\n                            const width = value.width || resolution?.width || 0;\r\n                            const height = value.height || resolution?.height || 0;\r\n                            const quality = getQualityScore(value.uri, width, height);\r\n\r\n                            images.push({\r\n                                uri: value.uri,\r\n                                type: 'image',\r\n                                width: width,\r\n                                height: height,\r\n                                resolution: resolution,\r\n                                quality: quality\r\n                            });\r\n                        } else if (key === 'uri' && typeof value === 'string' &&\r\n                            (value.includes('scontent') || value.includes('fbcdn'))) {\r\n                            const resolution = extractResolution(value);\r\n                            const quality = getQualityScore(value,\r\n                                resolution?.width || 0,\r\n                                resolution?.height || 0);\r\n\r\n                            images.push({\r\n                                uri: value,\r\n                                type: 'direct',\r\n                                resolution: resolution,\r\n                                quality: quality,\r\n                                width: resolution?.width || 0,\r\n                                height: resolution?.height || 0\r\n                            });\r\n                        } else {\r\n                            images.push(...extractAllImages(value, currentPath));\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n\r\n            return images;\r\n        }\r\n\r\n        function extractResolution(url) {\r\n            try {\r\n                const urlObj = new URL(url);\r\n                const stp = urlObj.searchParams.get('stp');\r\n                if (stp) {\r\n                    const match = stp.match(\/(\\d+)x(\\d+)\/);\r\n                    if (match) {\r\n                        return {\r\n                            width: parseInt(match[1]),\r\n                            height: parseInt(match[2]),\r\n                            total: parseInt(match[1]) * parseInt(match[2])\r\n                        };\r\n                    }\r\n                }\r\n                return null;\r\n            } catch (e) {\r\n                return null;\r\n            }\r\n        }\r\n\r\n        function getQualityScore(url, width = 0, height = 0) {\r\n            let score = 0;\r\n\r\n            const totalPixels = width * height;\r\n            score += Math.min(totalPixels \/ 1000000, 10);\r\n\r\n            if (url.includes('_n.jpg')) score += 5;\r\n            if (url.includes('dst-jpg')) score += 3;\r\n            if (!url.includes('s280x280') && !url.includes('s320x320')) score += 2;\r\n            if (url.includes('s640x640') || url.includes('s1080x1080')) score += 4;\r\n            if (url.includes('_o.jpg')) score += 8;\r\n\r\n            if (url.includes('s80x80') || url.includes('s74x74')) score -= 5;\r\n            if (url.includes('tt6')) score -= 1;\r\n\r\n            return Math.max(score, 0);\r\n        }\r\n    <\/script>\r\n\r\n\r\n    <!-- Animation -->\r\n\r\n\r\n    <script>\r\n        \/\/ Initialize AOS animation\r\n        AOS.init({\r\n            duration: 800,\r\n            easing: 'ease-in-out',\r\n            once: true\r\n        });\r\n\r\n        \/\/ Smooth scrolling for anchor links\r\n        document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\r\n            anchor.addEventListener('click', function (e) {\r\n                e.preventDefault();\r\n                document.querySelector(this.getAttribute('href')).scrollIntoView({\r\n                    behavior: 'smooth'\r\n                });\r\n            });\r\n        });\r\n    <\/script>[\/et_pb_fullwidth_code][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"     <!-- Google Fonts - Premium Typography -->\r\n     <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n     <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\r\n     <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n     \r\n     <!-- Bootstrap CSS -->\r\n     <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\r\n      <!-- font-awesome -->\r\n     <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\r\n\r\n     <!-- Boxicons -->\r\n     <link href=\"https:\/\/unpkg.com\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n     <!-- AOS Animation -->\r\n     <link href=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.css\" rel=\"stylesheet\">\r\n      \r\n\r\n    <style id=\"vvvebjs-styles\">\r\n        html {\r\n            scroll-behavior: smooth;\r\n            -webkit-text-size-adjust: 100%;\r\n            overflow-x: hidden;\r\n        }\r\n\r\n:root {\r\n    --fb-pgv-primary-color: #6366F1;\r\n    --fb-pgv-secondary-color: #8c60ff;\r\n    --fb-pgv-dark-color: #0F172A;\r\n    --fb-pgv-light-color: #FFFFFF;\r\n    --fb-pgv-gray-color: #F1F5F9;\r\n    --fb-pgv-primary-hover: #4F46E5;\r\n    --fb-pgv-secondary-hover: #7c3aed;\r\n    --fb-pgv-section-padding: 100px 0;\r\n}\r\n\r\nbody {\r\n    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n    overflow-x: hidden;\r\n    background-color: var(--va-home-white);\r\n    color: var(--va-home-dark);\r\n    line-height: 1.6;\r\n}\r\n\r\nh1, h2, h3, h4, h5, h6 {\r\n    font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;\r\n    font-weight: 700;\r\n    color: var(--va-home-dark);\r\n    line-height: 1.2;\r\n}\r\n      \r\n        \/* Facebook-style Hero Section *\/\r\n        .fb-pgv-hero-section {\r\n            padding: var(--fb-pgv-section-padding);\r\n            text-align: center;\r\n            background-color: var(--fb-pgv-light-color);\r\n        }\r\n\r\n        .fb-pgv-hero-content {\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        .fb-pgv-hero-section h1 {\r\n            font-size: 3.5rem;\r\n            font-weight: 700;\r\n            margin-bottom: 1.5rem;\r\n            color: var(--fb-pgv-primary-color);\r\n        }\r\n\r\n        .fb-pgv-hero-section p {\r\n            font-size: 1.25rem;\r\n            max-width: 700px;\r\n            margin: 0 auto 2rem;\r\n            opacity: 0.9;\r\n            font-weight: 300;\r\n            color: #666;\r\n        }\r\n\r\n        \/* Work Process Section with Facebook Colors *\/\r\n        .fb-pgv-work-process-section {\r\n            padding: var(--fb-pgv-section-padding);\r\n            background: var(--fb-pgv-primary-color);\r\n            color: white;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .fb-pgv-work-process-section::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: rgba(0, 0, 0, 0.05);\r\n        }\r\n\r\n        .fb-pgv-work-process-content {\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        .fb-pgv-process-step {\r\n            text-align: center;\r\n            padding: 30px 20px;\r\n            position: relative;\r\n            z-index: 1;\r\n            background: rgba(255, 255, 255, 0.1);\r\n            backdrop-filter: blur(10px);\r\n            border-radius: 16px;\r\n            margin: 15px;\r\n            border: 1px solid rgba(255, 255, 255, 0.2);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .fb-pgv-process-step:hover {\r\n            transform: translateY(-10px);\r\n            background: rgba(255, 255, 255, 0.15);\r\n            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        .fb-pgv-step-number {\r\n            width: 60px;\r\n            height: 60px;\r\n            background: white;\r\n            color: var(--fb-pgv-primary-color);\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-weight: 700;\r\n            margin: 0 auto 20px;\r\n            font-size: 1.5rem;\r\n            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        \/* Features Section *\/\r\n        .fb-pgv-features-section {\r\n            padding: var(--fb-pgv-section-padding);\r\n            background: white;\r\n        }\r\n\r\n        .fb-pgv-feature-card {\r\n            padding: 40px 30px;\r\n            border-radius: 16px;\r\n            background: white;\r\n            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);\r\n            margin-bottom: 30px;\r\n            transition: all 0.3s ease;\r\n            border: 1px solid rgba(0, 0, 0, 0.05);\r\n            height: 100%;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .fb-pgv-feature-card::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            width: 4px;\r\n            height: 100%;\r\n            background: var(--fb-pgv-primary-color);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .fb-pgv-feature-card:hover {\r\n            transform: translateY(-10px);\r\n            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        .fb-pgv-feature-card:hover::before {\r\n            width: 100%;\r\n            opacity: 0.1;\r\n        }\r\n\r\n        .fb-pgv-feature-icon {\r\n            width: 70px;\r\n            height: 70px;\r\n            border-radius: 20px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin-bottom: 25px;\r\n            background: var(--fb-pgv-primary-color);\r\n            color: white;\r\n            font-size: 1.8rem;\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .fb-pgv-feature-card:hover .fb-pgv-feature-icon {\r\n            transform: rotate(15deg) scale(1.1);\r\n            background: var(--fb-pgv-primary-hover);\r\n        }\r\n\r\n        \/* Why Choose Section *\/\r\n        .fb-pgv-why-choose-section {\r\n            padding: var(--fb-pgv-section-padding);\r\n            background: #f9f9f9;\r\n        }\r\n\r\n        .fb-pgv-why-choose-image {\r\n            border-radius: 16px;\r\n            overflow: hidden;\r\n            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);\r\n            transform: perspective(1000px) rotateY(-5deg);\r\n            transition: all 0.5s ease;\r\n        }\r\n\r\n        .fb-pgv-why-choose-image:hover {\r\n            transform: perspective(1000px) rotateY(0deg);\r\n        }\r\n\r\n        .fb-pgv-benefit-item {\r\n            display: flex;\r\n            align-items: flex-start;\r\n            margin-bottom: 20px;\r\n            padding: 15px;\r\n            border-radius: 12px;\r\n            background: white;\r\n            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.03);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .fb-pgv-benefit-item:hover {\r\n            transform: translateX(10px);\r\n            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        .fb-pgv-benefit-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            border-radius: 12px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin-right: 15px;\r\n            background: var(--fb-pgv-primary-color);\r\n            color: white;\r\n            font-size: 1.2rem;\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        \/* FAQ Section *\/\r\n        .fb-pgv-faq-section {\r\n            padding: var(--fb-pgv-section-padding);\r\n            background: white;\r\n        }\r\n\r\n        .fb-pgv-accordion-item {\r\n            border: none;\r\n            border-radius: 12px !important;\r\n            overflow: hidden;\r\n            margin-bottom: 15px;\r\n            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);\r\n        }\r\n\r\n        .fb-pgv-accordion-button {\r\n            font-weight: 600;\r\n            color: var(--fb-pgv-dark-color);\r\n            padding: 20px 25px;\r\n            background: white;\r\n            box-shadow: none;\r\n            border-radius: 12px 12px 0 0 !important;\r\n        }\r\n\r\n        .fb-pgv-accordion-button:not(.collapsed) {\r\n            background: white;\r\n            color: var(--fb-pgv-primary-color);\r\n            box-shadow: none;\r\n        }\r\n\r\n        .fb-pgv-accordion-button:focus {\r\n            box-shadow: none;\r\n            border-color: rgba(24, 119, 242, 0.3);\r\n        }\r\n\r\n        .fb-pgv-accordion-button::after {\r\n            background-image: url(\"data:image\/svg+xml,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='%231877F2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'\/%3e%3c\/svg%3e\");\r\n        }\r\n\r\n        .fb-pgv-accordion-body {\r\n            padding: 25px;\r\n            color: #666;\r\n        }\r\n\r\n        \/* Section Titles *\/\r\n        .fb-pgv-section-title {\r\n            font-weight: 700;\r\n            color: var(--fb-pgv-dark-color);\r\n            margin-bottom: 1.5rem;\r\n            position: relative;\r\n            display: inline-block;\r\n        }\r\n\r\n        .fb-pgv-section-title::after {\r\n            content: '';\r\n            position: absolute;\r\n            bottom: -10px;\r\n            left: 0;\r\n            width: 60px;\r\n            height: 4px;\r\n            background: var(--fb-pgv-primary-color);\r\n            border-radius: 2px;\r\n        }\r\n\r\n        .fb-pgv-light-title {\r\n            color: white;\r\n        }\r\n\r\n        .fb-pgv-light-title::after {\r\n            background: white;\r\n        }\r\n\r\n        .fb-pgv-section-subtitle {\r\n            color: #666;\r\n            max-width: 700px;\r\n            margin: 0 auto 3rem;\r\n            font-size: 1.1rem;\r\n        }\r\n\r\n        .fb-pgv-light-subtitle {\r\n            color: rgba(255, 255, 255, 0.8);\r\n        }\r\n\r\n        \/* Responsive Design *\/\r\n        @media (max-width: 991px) {\r\n            :root {\r\n                --fb-pgv-section-padding: 80px 0;\r\n            }\r\n\r\n            .fb-pgv-hero-section h1 {\r\n                font-size: 2.8rem;\r\n            }\r\n\r\n            .fb-pgv-process-step::before {\r\n                display: none;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 767px) {\r\n            :root {\r\n                --fb-pgv-section-padding: 70px 0;\r\n            }\r\n\r\n            .fb-pgv-hero-section {\r\n                padding: 100px 0 60px;\r\n            }\r\n\r\n            .fb-pgv-hero-section h1 {\r\n                font-size: 2.2rem;\r\n            }\r\n\r\n            .fb-pgv-hero-section p {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .fb-pgv-section-title {\r\n                font-size: 1.8rem;\r\n            }\r\n        }\r\n\r\n        \/* Animation *\/\r\n        @keyframes fb-pgv-float {\r\n            0% {\r\n                transform: translateY(0px);\r\n            }\r\n\r\n            50% {\r\n                transform: translateY(-15px);\r\n            }\r\n\r\n            100% {\r\n                transform: translateY(0px);\r\n            }\r\n        }\r\n\r\n        .fb-pgv-floating-element {\r\n            animation: fb-pgv-float 6s ease-in-out infinite;\r\n        }\r\n\r\n        \/* Custom Scrollbar *\/\r\n        ::-webkit-scrollbar {\r\n            width: 8px;\r\n        }\r\n\r\n        ::-webkit-scrollbar-track {\r\n            background: #f1f1f1;\r\n        }\r\n\r\n        ::-webkit-scrollbar-thumb {\r\n            background: var(--fb-pgv-primary-color);\r\n            border-radius: 10px;\r\n        }\r\n\r\n        ::-webkit-scrollbar-thumb:hover {\r\n            background: var(--fb-pgv-primary-hover);\r\n        }\r\n\r\n        \/* Footer Section *\/\r\n        .footer-section {\r\n            background: radial-gradient(circle, rgba(16, 33, 120, 1) 0%, rgba(94, 7, 6, 1) 100%);\r\n            color: #fff;\r\n            padding-top: 80px;\r\n            padding-bottom: 80px;\r\n        }\r\n\r\n        .footer-logo {\r\n            width: 200px;\r\n            margin-bottom: 10px;\r\n            cursor: pointer;\r\n        }\r\n\r\n        .footer-description {\r\n            font-size: 14px;\r\n            color: #bbb;\r\n        }\r\n\r\n        .footer-heading {\r\n            font-size: 18px;\r\n            font-weight: 600;\r\n            color: #fff;\r\n            margin-bottom: 15px;\r\n        }\r\n\r\n        \/* Quick Links and Tools *\/\r\n        .footer-links .footer-link,\r\n        .footer-tools .footer-tool {\r\n            color: #bbb;\r\n            text-decoration: none;\r\n            font-size: 14px;\r\n            display: block;\r\n            margin-bottom: 10px;\r\n            transition: color 0.3s ease;\r\n        }\r\n\r\n        .footer-links .footer-link:hover,\r\n        .footer-tools .footer-tool:hover {\r\n            color: #fff;\r\n        }\r\n\r\n        \/* Social Icons (Boxicons) *\/\r\n        .footer-social .social-icon {\r\n            color: #bbb;\r\n            font-size: 24px;\r\n            text-decoration: none;\r\n            transition: color 0.3s ease;\r\n        }\r\n\r\n        .footer-social .social-icon:hover {\r\n            color: #fff;\r\n        }\r\n\r\n        \/* Footer Copyright Section *\/\r\n        .footer-copyright {\r\n            background-color: #1a1a1a;\r\n        }\r\n\r\n        .footer-bottom-text {\r\n            font-size: 14px;\r\n            color: #bbb;\r\n        }\r\n\r\n        \/* Responsive Design *\/\r\n        @media (max-width: 767.98px) {\r\n            .footer-logo {\r\n                width: 200px;\r\n            }\r\n\r\n            .footer-description {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .footer-heading {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .footer-link,\r\n            .footer-tool {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .footer-bottom-text {\r\n                font-size: 14px;\r\n            }\r\n        }\r\n    <\/style>\r\n    <!-- tools -->\r\n    <style>\r\n        :root {\r\n            \/* Facebook-Inspired Color System *\/\r\n            --facebook-blue: #1877f2;\r\n            --facebook-blue-dark: #166fe5;\r\n            --facebook-blue-light: #42a5f5;\r\n            --facebook-blue-lighter: #e3f2fd;\r\n            --facebook-green: #42b883;\r\n            --facebook-gray: #65676b;\r\n            --facebook-gray-light: #f0f2f5;\r\n            --facebook-gray-dark: #1c1e21;\r\n\r\n            \/* Primary Color System (Facebook Blue-based) *\/\r\n            --primary-50: #e3f2fd;\r\n            --primary-100: #bbdefb;\r\n            --primary-200: #90caf9;\r\n            --primary-300: #64b5f6;\r\n            --primary-400: #42a5f5;\r\n            --primary-500: #1877f2;\r\n            --primary-600: #166fe5;\r\n            --primary-700: #1565c0;\r\n            --primary-800: #0d47a1;\r\n            --primary-900: #0a3d91;\r\n\r\n            \/* Secondary Color System (Green-based) *\/\r\n            --secondary-50: #e8f5e8;\r\n            --secondary-100: #c8e6c9;\r\n            --secondary-200: #a5d6a7;\r\n            --secondary-300: #81c784;\r\n            --secondary-400: #66bb6a;\r\n            --secondary-500: #42b883;\r\n            --secondary-600: #388e3c;\r\n            --secondary-700: #2e7d32;\r\n            --secondary-800: #1b5e20;\r\n            --secondary-900: #0d4f14;\r\n\r\n            \/* Accent Color System (Light Blue-based) *\/\r\n            --accent-50: #f0f8ff;\r\n            --accent-100: #e1f5fe;\r\n            --accent-200: #b3e5fc;\r\n            --accent-300: #81d4fa;\r\n            --accent-400: #4fc3f7;\r\n            --accent-500: #29b6f6;\r\n            --accent-600: #0288d1;\r\n            --accent-700: #0277bd;\r\n            --accent-800: #01579b;\r\n            --accent-900: #014377;\r\n\r\n            \/* Success Color System (Green-based) *\/\r\n            --success-50: #e8f5e8;\r\n            --success-100: #c8e6c9;\r\n            --success-200: #a5d6a7;\r\n            --success-300: #81c784;\r\n            --success-400: #66bb6a;\r\n            --success-500: #4caf50;\r\n            --success-600: #388e3c;\r\n            --success-700: #2e7d32;\r\n            --success-800: #1b5e20;\r\n            --success-900: #0d4f14;\r\n\r\n            \/* Warning Color System (Orange-based) *\/\r\n            --warning-50: #fff3e0;\r\n            --warning-100: #ffe0b2;\r\n            --warning-200: #ffcc80;\r\n            --warning-300: #ffb74d;\r\n            --warning-400: #ffa726;\r\n            --warning-500: #ff9800;\r\n            --warning-600: #f57c00;\r\n            --warning-700: #ef6c00;\r\n            --warning-800: #e65100;\r\n            --warning-900: #bf360c;\r\n\r\n            \/* Neutral System *\/\r\n            --white: #ffffff;\r\n            --gray-25: #fcfcfd;\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            --gray-950: #020617;\r\n\r\n            \/* Facebook-Inspired Gradients - Consistent Blue Theme *\/\r\n            --gradient-primary: linear-gradient(135deg,#6366f1 0%,#8c60ff 100%);\r\n            --gradient-secondary: linear-gradient(135deg, #42a5f5 0%, #29b6f6 100%);\r\n            --gradient-accent: linear-gradient(135deg, #29b6f6 0%, #4fc3f7 100%);\r\n            --gradient-success: linear-gradient(135deg, #42b883 0%, #4caf50 100%);\r\n            --gradient-warm: linear-gradient(135deg, #ff9800 0%, #ff5722 100%);\r\n            --gradient-cool: linear-gradient(135deg, #1877f2 0%, #29b6f6 100%);\r\n            --gradient-dark: linear-gradient(135deg, #1c1e21 0%, #65676b 100%);\r\n            --gradient-mesh: radial-gradient(at 40% 20%, rgba(24, 119, 242, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 80% 0%, rgba(66, 165, 245, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 0% 50%, rgba(41, 182, 246, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 80% 50%, rgba(79, 195, 247, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 0% 100%, rgba(66, 184, 131, 0.3) 0px, transparent 50%);\r\n\r\n            \/* Advanced Shadows *\/\r\n            --shadow-xs: 0 1px 2px 0 rgb(0 0 0 \/ 0.05);\r\n            --shadow-sm: 0 1px 3px 0 rgb(0 0 0 \/ 0.1), 0 1px 2px -1px rgb(0 0 0 \/ 0.1);\r\n            --shadow-md: 0 4px 6px -1px rgb(0 0 0 \/ 0.1), 0 2px 4px -2px rgb(0 0 0 \/ 0.1);\r\n            --shadow-lg: 0 10px 15px -3px rgb(0 0 0 \/ 0.1), 0 4px 6px -4px rgb(0 0 0 \/ 0.1);\r\n            --shadow-xl: 0 20px 25px -5px rgb(0 0 0 \/ 0.1), 0 8px 10px -6px rgb(0 0 0 \/ 0.1);\r\n            --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 \/ 0.25);\r\n            --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 \/ 0.05);\r\n            --shadow-colored-primary: 0 20px 25px -5px rgb(24 119 242 \/ 0.2), 0 8px 10px -6px rgb(24 119 242 \/ 0.2);\r\n            --shadow-colored-secondary: 0 20px 25px -5px rgb(66 165 245 \/ 0.2), 0 8px 10px -6px rgb(66 165 245 \/ 0.2);\r\n            --shadow-colored-accent: 0 20px 25px -5px rgb(41 182 246 \/ 0.2), 0 8px 10px -6px rgb(41 182 246 \/ 0.2);\r\n\r\n            \/* Border Radius System *\/\r\n            --radius-none: 0;\r\n            --radius-sm: 0.125rem;\r\n            --radius: 0.25rem;\r\n            --radius-md: 0.375rem;\r\n            --radius-lg: 0.5rem;\r\n            --radius-xl: 0.75rem;\r\n            --radius-2xl: 1rem;\r\n            --radius-3xl: 1.5rem;\r\n            --radius-4xl: 2rem;\r\n            --radius-full: 9999px;\r\n\r\n            \/* Spacing System *\/\r\n            --space-px: 1px;\r\n            --space-0: 0;\r\n            --space-1: 0.25rem;\r\n            --space-2: 0.5rem;\r\n            --space-3: 0.75rem;\r\n            --space-4: 1rem;\r\n            --space-5: 1.25rem;\r\n            --space-6: 1.5rem;\r\n            --space-8: 2rem;\r\n            --space-10: 2.5rem;\r\n            --space-12: 3rem;\r\n            --space-16: 4rem;\r\n            --space-20: 5rem;\r\n            --space-24: 6rem;\r\n            --space-32: 8rem;\r\n\r\n            \/* Typography Scale *\/\r\n            --text-xs: 0.75rem;\r\n            --text-sm: 0.875rem;\r\n            --text-base: 1rem;\r\n            --text-lg: 1.125rem;\r\n            --text-xl: 1.25rem;\r\n            --text-2xl: 1.5rem;\r\n            --text-3xl: 1.875rem;\r\n            --text-4xl: 2.25rem;\r\n            --text-5xl: 3rem;\r\n            --text-6xl: 3.75rem;\r\n            --text-7xl: 4.5rem;\r\n            --text-8xl: 6rem;\r\n            --text-9xl: 8rem;\r\n\r\n            \/* Animation System *\/\r\n            --duration-75: 75ms;\r\n            --duration-100: 100ms;\r\n            --duration-150: 150ms;\r\n            --duration-200: 200ms;\r\n            --duration-300: 300ms;\r\n            --duration-500: 500ms;\r\n            --duration-700: 700ms;\r\n            --duration-1000: 1000ms;\r\n\r\n            --ease-linear: linear;\r\n            --ease-in: cubic-bezier(0.4, 0, 1, 1);\r\n            --ease-out: cubic-bezier(0, 0, 0.2, 1);\r\n            --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\r\n            --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);\r\n            --ease-elastic: cubic-bezier(0.175, 0.885, 0.32, 1.275);\r\n        }\r\n\r\n        \/* Reset & Base *\/\r\n        *,\r\n        *::before,\r\n        *::after {\r\n            box-sizing: border-box;\r\n            margin: 0;\r\n            padding: 0;\r\n        }\r\n\r\n\r\n        \/* body {\r\n            font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n            font-feature-settings: 'cv11', 'ss01';\r\n            font-variation-settings: 'opsz' 32;\r\n            background: var(--gray-25);\r\n            color: var(--gray-900);\r\n            line-height: 1.6;\r\n            -webkit-font-smoothing: antialiased;\r\n            -moz-osx-font-smoothing: grayscale;\r\n            text-rendering: optimizeLegibility;\r\n            overflow-x: hidden;\r\n            min-height: 100vh;\r\n        } *\/\r\n\r\n        \/* Premium Background *\/\r\n        .bg-pattern {\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: var(--gradient-mesh);\r\n            opacity: 0.4;\r\n            z-index: -2;\r\n            animation: meshFloat 20s ease-in-out infinite;\r\n        }\r\n\r\n        .bg-pattern::before {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 0;\r\n            background:\r\n                radial-gradient(circle at 20% 80%, rgba(24, 119, 242, 0.08) 0%, transparent 50%),\r\n                radial-gradient(circle at 80% 20%, rgba(66, 165, 245, 0.08) 0%, transparent 50%),\r\n                radial-gradient(circle at 40% 40%, rgba(41, 182, 246, 0.08) 0%, transparent 50%);\r\n            animation: float 25s ease-in-out infinite reverse;\r\n        }\r\n\r\n        .bg-overlay {\r\n            position: fixed;\r\n            inset: 0;\r\n            background: linear-gradient(135deg, var(--white) 0%, rgba(248, 250, 252, 0.8) 100%);\r\n            z-index: -1;\r\n        }\r\n\r\n        .video-meta {\r\n            display: flex;\r\n            justify-content: space-between;\r\n        }\r\n\r\n        @keyframes meshFloat {\r\n\r\n            0%,\r\n            100% {\r\n                transform: translateY(0px) rotate(0deg) scale(1);\r\n            }\r\n\r\n            33% {\r\n                transform: translateY(-20px) rotate(1deg) scale(1.02);\r\n            }\r\n\r\n            66% {\r\n                transform: translateY(10px) rotate(-1deg) scale(0.98);\r\n            }\r\n        }\r\n\r\n        @keyframes float {\r\n\r\n            0%,\r\n            100% {\r\n                transform: translateY(0px) rotate(0deg);\r\n            }\r\n\r\n            50% {\r\n                transform: translateY(-30px) rotate(2deg);\r\n            }\r\n        }\r\n\r\n        \/* Container System *\/\r\n        .fb-pgv-custom-container {\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n            padding: 2rem;\r\n            position: relative;\r\n            margin-top: 100px!important;\r\n        }\r\n\r\n        \/* Premium Header *\/\r\n        .header {\r\n            text-align: center;\r\n            margin-bottom: 2.5rem;\r\n            animation: slideDown 1s cubic-bezier(0.175, 0.885, 0.32, 1.275);\r\n            position: relative;\r\n        }\r\n\r\n        .header::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: -50%;\r\n            left: 50%;\r\n            width: 200%;\r\n            height: 200%;\r\n            background: radial-gradient(circle, rgba(24, 119, 242, 0.05) 0%, transparent 70%);\r\n            transform: translateX(-50%);\r\n            z-index: -1;\r\n        }\r\n\r\n        @keyframes slideDown {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(-60px) scale(0.9);\r\n                filter: blur(10px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0) scale(1);\r\n                filter: blur(0);\r\n            }\r\n        }\r\n\r\n        .header h1 {\r\n            font-size: clamp(2.25rem, 8vw, 4.5rem);\r\n            font-weight: 900;\r\n            background: var(--gradient-primary);\r\n            background-clip: text;\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            margin-bottom: 1.5rem;\r\n            letter-spacing: -0.04em;\r\n            line-height: 0.9;\r\n            position: relative;\r\n            padding: 10px\r\n        }\r\n\r\n        .header h1::after {\r\n            content: '';\r\n            position: absolute;\r\n            bottom: -10px;\r\n            left: 50%;\r\n            width: 100px;\r\n            height: 4px;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-full);\r\n            transform: translateX(-50%);\r\n            animation: shimmer 3s ease-in-out infinite;\r\n        }\r\n\r\n        @keyframes shimmer {\r\n\r\n            0%,\r\n            100% {\r\n                opacity: 0.5;\r\n                transform: translateX(-50%) scaleX(1);\r\n            }\r\n\r\n            50% {\r\n                opacity: 1;\r\n                transform: translateX(-50%) scaleX(1.2);\r\n            }\r\n        }\r\n\r\n        .header p {\r\n            font-size: 1.25rem;\r\n            color: var(--gray-600);\r\n            font-weight: 500;\r\n            max-width: 600px;\r\n            margin: 0 auto;\r\n            line-height: 1.7;\r\n        }\r\n\r\n        \/* Premium Search Section *\/\r\n        .search-section {\r\n            background: var(--gradient-primary);\r\n            border-radius: 2rem;\r\n            box-shadow: 0 32px 64px rgba(24, 119, 242, 0.3);\r\n            margin-bottom: 3rem;\r\n            padding: 3rem 2rem;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .search-section::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            bottom: 0;\r\n            background: none;\r\n            opacity: 0.3;\r\n        }\r\n\r\n        .search-container {\r\n            max-width: 900px;\r\n            margin: 0 auto;\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .search-header {\r\n            text-align: center;\r\n            margin-bottom: 48px;\r\n        }\r\n\r\n        .search-icon {\r\n            width: 100px;\r\n            height: 100px;\r\n            background: linear-gradient(135deg, #ffffff, #f8fafc);\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin: 0 auto 24px;\r\n            box-shadow: 0 16px 32px rgba(0, 0, 0, 0.2);\r\n            border: 4px solid rgba(255, 255, 255, 0.3);\r\n        }\r\n\r\n        .search-icon i {\r\n            font-size: 40px;\r\n            background: var(--gradient-primary);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n        }\r\n\r\n        .search-title {\r\n            font-size: 36px;\r\n            font-weight: 900;\r\n            color: white;\r\n            margin-bottom: 16px;\r\n            letter-spacing: -0.02em;\r\n            text-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);\r\n        }\r\n\r\n        .search-description {\r\n            font-size: 18px;\r\n            color: rgba(255, 255, 255, 0.9);\r\n            line-height: 1.6;\r\n            max-width: 600px;\r\n            margin: 0 auto;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .input-container {\r\n            background: rgba(255, 255, 255, 0.95);\r\n            backdrop-filter: blur(20px);\r\n            border-radius: 24px;\r\n            padding: 32px;\r\n            box-shadow: 0 16px 32px rgba(0, 0, 0, 0.1);\r\n            border: 1px solid rgba(255, 255, 255, 0.2);\r\n            margin-bottom: 32px;\r\n        }\r\n\r\n        .input-wrapper {\r\n            display: flex;\r\n            align-items: center;\r\n            background: white;\r\n            border-radius: 16px;\r\n            border: 2px solid #e2e8f0;\r\n            transition: all 0.3s ease;\r\n            overflow: hidden;\r\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);\r\n        }\r\n\r\n        .input-wrapper:focus-within {\r\n            border-color: var(--primary-500);\r\n            box-shadow: 0 0 0 4px rgba(24, 119, 242, 0.1), 0 8px 24px rgba(24, 119, 242, 0.2);\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        .input-icon {\r\n            padding: 0 20px;\r\n            color: var(--primary-500);\r\n            font-size: 20px;\r\n        }\r\n\r\n        .url-input {\r\n            flex: 1;\r\n            border: none;\r\n            background: transparent;\r\n            padding: 20px 0;\r\n            font-size: 16px;\r\n            color: #1a202c;\r\n            outline: none;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .url-input::placeholder {\r\n            color: #94a3b8;\r\n            font-weight: 400;\r\n        }\r\n\r\n        .analyze-btn {\r\n            background: var(--gradient-primary);\r\n            color: white;\r\n            border: none;\r\n            padding: 20px 32px;\r\n            font-size: 16px;\r\n            font-weight: 700;\r\n            border-radius: 12px;\r\n            margin: 8px;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.5px;\r\n        }\r\n\r\n        .analyze-btn:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: 0 12px 32px rgba(24, 119, 242, 0.4);\r\n        }\r\n\r\n        .analyze-btn:disabled {\r\n            opacity: 0.7;\r\n            cursor: not-allowed;\r\n            transform: none;\r\n        }\r\n\r\n        .input-help {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 8px;\r\n            margin-top: 16px;\r\n            color: #64748b;\r\n            font-size: 14px;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .input-help i {\r\n            color: var(--primary-500);\r\n        }\r\n\r\n        .features-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\r\n            gap: 24px;\r\n            margin-top: 32px;\r\n        }\r\n\r\n        .feature-item {\r\n            background: rgba(255, 255, 255, 0.1);\r\n            backdrop-filter: blur(10px);\r\n            border-radius: 20px;\r\n            padding: 24px;\r\n            text-align: center;\r\n            border: 1px solid rgba(255, 255, 255, 0.2);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .feature-item:hover {\r\n            transform: translateY(-4px);\r\n            background: rgba(255, 255, 255, 0.15);\r\n            box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        .feature-icon {\r\n            width: 60px;\r\n            height: 60px;\r\n            background: linear-gradient(135deg, #ffffff, #f8fafc);\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin: 0 auto 16px;\r\n            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        .feature-icon i {\r\n            font-size: 24px;\r\n            background: var(--gradient-primary);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n        }\r\n\r\n        .feature-text h4 {\r\n            color: white;\r\n            font-size: 18px;\r\n            font-weight: 700;\r\n            margin-bottom: 8px;\r\n        }\r\n\r\n        .feature-text p {\r\n            color: rgba(255, 255, 255, 0.8);\r\n            font-size: 14px;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .error-message {\r\n            background: #fef2f2;\r\n            color: #dc2626;\r\n            padding: 16px 20px;\r\n            border-radius: 12px;\r\n            margin-top: 20px;\r\n            border: 1px solid #fecaca;\r\n            font-size: 14px;\r\n            font-weight: 500;\r\n            text-align: center;\r\n        }\r\n\r\n        \/* Responsive Design for Input Section *\/\r\n        @media (max-width: 1024px) {\r\n            .search-section {\r\n                padding: 50px 30px;\r\n                margin-bottom: 40px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 32px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 17px;\r\n            }\r\n\r\n            .input-container {\r\n                padding: 28px;\r\n            }\r\n\r\n            .features-grid {\r\n                grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\r\n                gap: 20px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .search-section {\r\n                padding: 40px 20px;\r\n                margin-bottom: 32px;\r\n                border-radius: 24px;\r\n            }\r\n\r\n            .search-container {\r\n                max-width: 100%;\r\n            }\r\n\r\n            .search-header {\r\n                margin-bottom: 36px;\r\n            }\r\n\r\n            .search-icon {\r\n                width: 80px;\r\n                height: 80px;\r\n                margin-bottom: 20px;\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 32px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 28px;\r\n                margin-bottom: 12px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 16px;\r\n                max-width: 100%;\r\n            }\r\n\r\n            .input-container {\r\n                padding: 24px 20px;\r\n                border-radius: 20px;\r\n            }\r\n\r\n            .input-wrapper {\r\n                flex-direction: column;\r\n                border-radius: 12px;\r\n                padding: 8px;\r\n            }\r\n\r\n            .input-icon {\r\n                display: none;\r\n            }\r\n\r\n            .url-input {\r\n                padding: 16px 20px;\r\n                text-align: center;\r\n                border-radius: 8px;\r\n                margin-bottom: 12px;\r\n                background: #f8fafc;\r\n            }\r\n\r\n            .analyze-btn {\r\n                width: 100%;\r\n                justify-content: center;\r\n                padding: 16px 24px;\r\n                border-radius: 8px;\r\n                margin: 0;\r\n                font-size: 15px;\r\n            }\r\n\r\n            .input-help {\r\n                margin-top: 12px;\r\n                font-size: 13px;\r\n                text-align: center;\r\n            }\r\n\r\n            .features-grid {\r\n                grid-template-columns: 1fr;\r\n                gap: 16px;\r\n                margin-top: 24px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 20px;\r\n                border-radius: 16px;\r\n            }\r\n\r\n            .feature-icon {\r\n                width: 50px;\r\n                height: 50px;\r\n                margin-bottom: 12px;\r\n            }\r\n\r\n            .feature-icon i {\r\n                font-size: 20px;\r\n            }\r\n\r\n            .feature-text h4 {\r\n                font-size: 16px;\r\n            }\r\n\r\n            .feature-text p {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .error-message {\r\n                padding: 12px 16px;\r\n                font-size: 13px;\r\n                margin-top: 16px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n            .search-section {\r\n                padding: 30px 16px;\r\n                margin-bottom: 24px;\r\n                border-radius: 20px;\r\n            }\r\n\r\n            .search-header {\r\n                margin-bottom: 28px;\r\n            }\r\n\r\n            .search-icon {\r\n                width: 70px;\r\n                height: 70px;\r\n                margin-bottom: 16px;\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 28px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 24px;\r\n                margin-bottom: 10px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 15px;\r\n                line-height: 1.5;\r\n            }\r\n\r\n            .input-container {\r\n                padding: 20px 16px;\r\n                border-radius: 16px;\r\n            }\r\n\r\n            .input-wrapper {\r\n                padding: 6px;\r\n            }\r\n\r\n            .url-input {\r\n                padding: 14px 16px;\r\n                font-size: 15px;\r\n                margin-bottom: 10px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                padding: 14px 20px;\r\n                font-size: 14px;\r\n                gap: 8px;\r\n            }\r\n\r\n            .analyze-btn span {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .input-help {\r\n                font-size: 12px;\r\n                margin-top: 10px;\r\n            }\r\n\r\n            .features-grid {\r\n                gap: 12px;\r\n                margin-top: 20px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 16px;\r\n                border-radius: 12px;\r\n            }\r\n\r\n            .feature-icon {\r\n                width: 45px;\r\n                height: 45px;\r\n                margin-bottom: 10px;\r\n            }\r\n\r\n            .feature-icon i {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .feature-text h4 {\r\n                font-size: 15px;\r\n                margin-bottom: 6px;\r\n            }\r\n\r\n            .feature-text p {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .error-message {\r\n                padding: 10px 14px;\r\n                font-size: 12px;\r\n                margin-top: 12px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 360px) {\r\n            .search-section {\r\n                padding: 24px 12px;\r\n                border-radius: 16px;\r\n            }\r\n\r\n            .search-icon {\r\n                width: 60px;\r\n                height: 60px;\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 24px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 22px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .input-container {\r\n                padding: 16px 12px;\r\n            }\r\n\r\n            .url-input {\r\n                padding: 12px 14px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                padding: 12px 16px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 14px;\r\n            }\r\n\r\n            .feature-icon {\r\n                width: 40px;\r\n                height: 40px;\r\n            }\r\n\r\n            .feature-icon i {\r\n                font-size: 16px;\r\n            }\r\n        }\r\n\r\n        \/* Landscape orientation for mobile *\/\r\n        @media (max-width: 768px) and (orientation: landscape) {\r\n            .search-section {\r\n                padding: 30px 20px;\r\n            }\r\n\r\n            .search-header {\r\n                margin-bottom: 24px;\r\n            }\r\n\r\n            .search-icon {\r\n                width: 60px;\r\n                height: 60px;\r\n                margin-bottom: 12px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 24px;\r\n                margin-bottom: 8px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .input-container {\r\n                padding: 20px;\r\n            }\r\n\r\n            .features-grid {\r\n                grid-template-columns: repeat(3, 1fr);\r\n                gap: 12px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 16px 12px;\r\n            }\r\n\r\n            .feature-text h4 {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .feature-text p {\r\n                font-size: 11px;\r\n            }\r\n        }\r\n\r\n        \/* High DPI displays *\/\r\n        @media (-webkit-min-device-pixel-ratio: 2),\r\n        (min-resolution: 192dpi) {\r\n            .search-section::before {\r\n                background-size: 50px 50px;\r\n            }\r\n        }\r\n\r\n        \/* Reduced motion for accessibility *\/\r\n        @media (prefers-reduced-motion: reduce) {\r\n\r\n            .search-section,\r\n            .input-wrapper,\r\n            .analyze-btn,\r\n            .feature-item {\r\n                transition: none;\r\n            }\r\n\r\n            .analyze-btn:hover,\r\n            .feature-item:hover {\r\n                transform: none;\r\n            }\r\n        }\r\n\r\n        \/* Dark mode support *\/\r\n        @media (prefers-color-scheme: dark) {\r\n            .input-wrapper {\r\n                background: #1a202c;\r\n                border-color: #2d3748;\r\n            }\r\n\r\n            .url-input {\r\n                color: #e2e8f0;\r\n                background: transparent;\r\n            }\r\n\r\n            .url-input::placeholder {\r\n                color: #718096;\r\n            }\r\n\r\n            .input-container {\r\n                background: rgba(26, 32, 44, 0.95);\r\n                border-color: rgba(255, 255, 255, 0.1);\r\n            }\r\n        }\r\n\r\n        \/* Additional Responsive Text Styles *\/\r\n        @media (max-width: 1024px) {\r\n            .header h1 {\r\n                font-size: clamp(var(--text-3xl), 6vw, var(--text-5xl));\r\n                margin-bottom: var(--space-4);\r\n            }\r\n\r\n            .header p {\r\n                font-size: var(--text-lg);\r\n                max-width: 500px;\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 36px;\r\n            }\r\n\r\n            .input-icon {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .url-input {\r\n                font-size: 15px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                font-size: 15px;\r\n                padding: 18px 28px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .header h1 {\r\n                font-size: clamp(var(--text-2xl), 5vw, var(--text-4xl));\r\n                margin-bottom: var(--space-3);\r\n            }\r\n\r\n            .header p {\r\n                font-size: var(--text-base);\r\n                max-width: 100%;\r\n                padding: 0 var(--space-4);\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 32px;\r\n            }\r\n\r\n            .input-icon {\r\n                font-size: 16px;\r\n            }\r\n\r\n            .url-input {\r\n                font-size: 15px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                font-size: 15px;\r\n                padding: 16px 24px;\r\n            }\r\n\r\n            .input-help {\r\n                font-size: 13px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n            .header h1 {\r\n                font-size: clamp(var(--text-xl), 4vw, var(--text-3xl));\r\n                margin-bottom: var(--space-2);\r\n            }\r\n\r\n            .header p {\r\n                font-size: var(--text-sm);\r\n                padding: 0 var(--space-3);\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 28px;\r\n            }\r\n\r\n            .input-icon {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .url-input {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                font-size: 14px;\r\n                padding: 14px 20px;\r\n            }\r\n\r\n            .input-help {\r\n                font-size: 12px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 360px) {\r\n            .header h1 {\r\n                font-size: clamp(var(--text-lg), 3.5vw, var(--text-2xl));\r\n            }\r\n\r\n            .header p {\r\n                font-size: var(--text-xs);\r\n                padding: 0 var(--space-2);\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 24px;\r\n            }\r\n\r\n            .input-icon {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .url-input {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .analyze-btn {\r\n                font-size: 13px;\r\n                padding: 12px 16px;\r\n            }\r\n\r\n            .input-help {\r\n                font-size: 11px;\r\n            }\r\n        }\r\n\r\n        \/* Landscape orientation text adjustments *\/\r\n        @media (max-width: 768px) and (orientation: landscape) {\r\n            .header h1 {\r\n                font-size: clamp(var(--text-xl), 4vw, var(--text-2xl));\r\n                margin-bottom: var(--space-2);\r\n            }\r\n\r\n            .header p {\r\n                font-size: var(--text-sm);\r\n                max-width: 80%;\r\n            }\r\n\r\n            .search-icon i {\r\n                font-size: 28px;\r\n            }\r\n\r\n            .search-title {\r\n                font-size: 24px;\r\n                margin-bottom: 8px;\r\n            }\r\n\r\n            .search-description {\r\n                font-size: 14px;\r\n            }\r\n        }\r\n\r\n        \/* Ensure minimum readable font sizes *\/\r\n        @media (max-width: 480px) {\r\n            .header h1 {\r\n                font-size: max(20px, clamp(var(--text-lg), 3.5vw, var(--text-2xl)));\r\n            }\r\n\r\n            .header p {\r\n                font-size: max(12px, var(--text-xs));\r\n            }\r\n\r\n            .search-title {\r\n                font-size: max(20px, 24px);\r\n            }\r\n\r\n            .search-description {\r\n                font-size: max(12px, 15px);\r\n            }\r\n\r\n            .url-input {\r\n                font-size: max(14px, 15px);\r\n            }\r\n\r\n            .analyze-btn {\r\n                font-size: max(13px, 14px);\r\n            }\r\n\r\n            .input-help {\r\n                font-size: max(11px, 12px);\r\n            }\r\n\r\n            .feature-text h4 {\r\n                font-size: max(13px, 15px);\r\n            }\r\n\r\n            .feature-text p {\r\n                font-size: max(11px, 12px);\r\n            }\r\n        }\r\n\r\n        \/* Premium Loading *\/\r\n        .loading {\r\n            text-align: center;\r\n            padding: var(--space-20) var(--space-8);\r\n            background: linear-gradient(135deg, var(--white) 0%, rgba(24, 119, 242, 0.05) 100%);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-2xl);\r\n            border: 1px solid rgba(24, 119, 242, 0.2);\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .loading::before {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(45deg, transparent 30%, rgba(66, 165, 245, 0.08) 50%, transparent 70%);\r\n            animation: loadingShimmer 2s ease-in-out infinite;\r\n        }\r\n\r\n        @keyframes loadingShimmer {\r\n            0% {\r\n                transform: translateX(-100%) translateY(-100%);\r\n            }\r\n\r\n            100% {\r\n                transform: translateX(100%) translateY(100%);\r\n            }\r\n        }\r\n\r\n        .loading-spinner {\r\n            width: 80px;\r\n            height: 80px;\r\n            margin: 0 auto var(--space-8);\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .loading-spinner::before {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 0;\r\n            border: 4px solid rgba(24, 119, 242, 0.3);\r\n            border-top: 4px solid var(--primary-500);\r\n            border-radius: 50%;\r\n            animation: spin var(--duration-1000) linear infinite;\r\n        }\r\n\r\n        .loading-spinner::after {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 8px;\r\n            border: 3px solid transparent;\r\n            border-top: 3px solid var(--primary-400);\r\n            border-radius: 50%;\r\n            animation: spin var(--duration-700) linear infinite reverse;\r\n        }\r\n\r\n        @keyframes spin {\r\n            to {\r\n                transform: rotate(360deg);\r\n            }\r\n        }\r\n\r\n        .loading-text {\r\n            font-size: var(--text-xl);\r\n            font-weight: 700;\r\n            background: var(--gradient-primary);\r\n            background-clip: text;\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            animation: pulse var(--duration-1000) ease-in-out infinite;\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        @keyframes pulse {\r\n\r\n            0%,\r\n            100% {\r\n                opacity: 0.6;\r\n            }\r\n\r\n            50% {\r\n                opacity: 1;\r\n            }\r\n        }\r\n\r\n        \/* Skeleton Loading Styles *\/\r\n        .skeleton-loading {\r\n            background: linear-gradient(90deg, var(--gray-200) 25%, var(--gray-100) 50%, var(--gray-200) 75%);\r\n            background-size: 200% 100%;\r\n            animation: skeleton-shimmer 1.5s infinite;\r\n        }\r\n\r\n        @keyframes skeleton-shimmer {\r\n            0% {\r\n                background-position: -200% 0;\r\n            }\r\n\r\n            100% {\r\n                background-position: 200% 0;\r\n            }\r\n        }\r\n\r\n        .videos-skeleton,\r\n        .reels-skeleton {\r\n            display: none;\r\n        }\r\n\r\n        .videos-skeleton.active,\r\n        .reels-skeleton.active {\r\n            display: block;\r\n        }\r\n\r\n        .videos-grid-skeleton,\r\n        .reels-grid-skeleton {\r\n            display: grid;\r\n            grid-template-columns: repeat(3, 1fr);\r\n            gap: var(--space-6);\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        @media (max-width: 1024px) {\r\n\r\n            .videos-grid-skeleton,\r\n            .reels-grid-skeleton {\r\n                grid-template-columns: repeat(2, 1fr);\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n\r\n            .videos-grid-skeleton,\r\n            .reels-grid-skeleton {\r\n                grid-template-columns: 1fr;\r\n            }\r\n        }\r\n\r\n        .video-skeleton,\r\n        .reel-skeleton {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-md);\r\n            border: 1px solid var(--gray-200);\r\n        }\r\n\r\n        .video-thumbnail-skeleton,\r\n        .reel-thumbnail-skeleton {\r\n            height: 350px;\r\n            background: linear-gradient(90deg, var(--gray-200) 25%, rgba(24, 119, 242, 0.1) 50%, var(--gray-200) 75%);\r\n            background-size: 200% 100%;\r\n            animation: skeleton-shimmer 1.5s infinite;\r\n        }\r\n\r\n        .video-info-skeleton,\r\n        .reel-info-skeleton {\r\n            padding: var(--space-4);\r\n        }\r\n\r\n        .skeleton-line {\r\n            height: 16px;\r\n            background: var(--gray-200);\r\n            border-radius: var(--radius-lg);\r\n            margin-bottom: var(--space-3);\r\n            animation: skeleton-shimmer 1.5s infinite;\r\n        }\r\n\r\n        .skeleton-line.short {\r\n            width: 60%;\r\n        }\r\n\r\n        \/* Group Styles - REMOVED *\/\r\n\r\n        \/* Premium Navigation *\/\r\n        .nav-tabs {\r\n            background: var(--white);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-2xl);\r\n            margin-bottom: var(--space-8);\r\n            border: 1px solid var(--gray-200);\r\n            overflow: hidden;\r\n            animation: slideUp var(--duration-1000) var(--ease-elastic) 0.6s both;\r\n        }\r\n\r\n        .tab-list {\r\n            display: flex;\r\n            background: linear-gradient(135deg, var(--gray-50) 0%, var(--white) 100%);\r\n            border-bottom: 1px solid var(--gray-200);\r\n            padding: var(--space-2);\r\n        }\r\n\r\n        .tab-btn {\r\n            flex: 1;\r\n            padding: var(--space-6) var(--space-8);\r\n            background: none;\r\n            border: none;\r\n            font-size: var(--text-lg);\r\n            font-weight: 700;\r\n            color: var(--gray-600);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            position: relative;\r\n            font-family: inherit;\r\n            border-radius: var(--radius-2xl);\r\n            margin: var(--space-1);\r\n        }\r\n\r\n        .tab-btn::before {\r\n            content: '';\r\n            position: absolute;\r\n            bottom: 0;\r\n            left: 50%;\r\n            width: 0;\r\n            height: 3px;\r\n            background: var(--gradient-primary);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            transform: translateX(-50%);\r\n            border-radius: var(--radius-full);\r\n        }\r\n\r\n        .tab-btn:hover,\r\n        .tab-btn.active {\r\n            color: var(--primary-600);\r\n            background: var(--white);\r\n            box-shadow: var(--shadow-md);\r\n        }\r\n\r\n        .tab-btn.active::before {\r\n            width: 60%;\r\n        }\r\n\r\n        .tab-content {\r\n            display: none;\r\n            padding: var(--space-8);\r\n            animation: fadeInScale var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .tab-content.active {\r\n            display: block;\r\n        }\r\n\r\n        @keyframes fadeInScale {\r\n            from {\r\n                opacity: 0;\r\n                transform: scale(0.95) translateY(20px);\r\n                filter: blur(3px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: scale(1) translateY(0);\r\n                filter: blur(0);\r\n            }\r\n        }\r\n\r\n        \/* Premium Media Section *\/\r\n        .media-summary {\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-4xl);\r\n            padding: var(--space-12);\r\n            margin-bottom: var(--space-8);\r\n            text-align: center;\r\n            color: var(--white);\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .media-summary::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: -50%;\r\n            left: -50%;\r\n            width: 200%;\r\n            height: 200%;\r\n            background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);\r\n            animation: rotate 20s linear infinite;\r\n        }\r\n\r\n        @keyframes rotate {\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        .summary-title {\r\n            font-size: var(--text-4xl);\r\n            font-weight: 800;\r\n            margin-bottom: var(--space-4);\r\n            position: relative;\r\n            z-index: 2;\r\n            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        .summary-description {\r\n            font-size: var(--text-xl);\r\n            opacity: 0.95;\r\n            margin-bottom: var(--space-8);\r\n            position: relative;\r\n            z-index: 2;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .summary-stats {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n            gap: var(--space-8);\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .summary-stat {\r\n            text-align: center;\r\n        }\r\n\r\n        .summary-stat-number {\r\n            font-size: var(--text-4xl);\r\n            font-weight: 900;\r\n            display: block;\r\n            margin-bottom: var(--space-2);\r\n            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        .summary-stat-label {\r\n            font-size: var(--text-sm);\r\n            opacity: 0.9;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.1em;\r\n            font-weight: 600;\r\n        }\r\n\r\n        .media-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));\r\n            gap: var(--space-8);\r\n        }\r\n\r\n        \/* Ultra Premium Media Cards *\/\r\n        .media-card {\r\n            background: var(--white);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-xl);\r\n            border: 1px solid var(--gray-200);\r\n            overflow: hidden;\r\n            transition: all var(--duration-500) var(--ease-elastic);\r\n            animation: slideUp var(--duration-700) var(--ease-elastic);\r\n            animation-delay: calc(var(--index) * 0.1s);\r\n            animation-fill-mode: both;\r\n            position: relative;\r\n            cursor: pointer;\r\n        }\r\n\r\n        .media-card::before {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 0;\r\n            background: var(--gradient-primary);\r\n            opacity: 0;\r\n            transition: opacity var(--duration-300) var(--ease-out);\r\n            border-radius: inherit;\r\n            z-index: 1;\r\n        }\r\n\r\n        .media-card:hover::before {\r\n            opacity: 0.02;\r\n        }\r\n\r\n        .media-card:hover {\r\n            transform: translateY(-12px) scale(1.02);\r\n            box-shadow: var(--shadow-2xl);\r\n            border-color: var(--primary-300);\r\n        }\r\n\r\n        .media-image-container {\r\n            position: relative;\r\n            aspect-ratio: 16\/10;\r\n            overflow: hidden;\r\n            background: linear-gradient(135deg, var(--gray-100) 0%, var(--gray-200) 100%);\r\n        }\r\n\r\n        .media-image {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n            transition: transform var(--duration-700) var(--ease-out);\r\n        }\r\n\r\n        .media-card:hover .media-image {\r\n            transform: scale(1.1) rotate(1deg);\r\n        }\r\n\r\n        \/* Ultra Premium Hover Overlay *\/\r\n        .media-hover-overlay {\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(135deg,\r\n                    rgba(24, 119, 242, 0.95) 0%,\r\n                    rgba(66, 165, 245, 0.95) 50%,\r\n                    rgba(41, 182, 246, 0.95) 100%);\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: all var(--duration-500) var(--ease-elastic);\r\n            display: flex;\r\n            flex-direction: column;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--space-6);\r\n            padding: var(--space-8);\r\n            backdrop-filter: blur(20px);\r\n            z-index: 10;\r\n        }\r\n\r\n        .media-card:hover .media-hover-overlay {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n\r\n        .quality-indicator {\r\n            background: rgba(255, 255, 255, 0.25);\r\n            backdrop-filter: blur(15px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            color: var(--white);\r\n            padding: var(--space-3) var(--space-6);\r\n            border-radius: var(--radius-full);\r\n            font-weight: 800;\r\n            font-size: var(--text-sm);\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.1em;\r\n            animation: slideInDown var(--duration-500) var(--ease-elastic) 0.1s both;\r\n            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);\r\n        }\r\n\r\n        @keyframes slideInDown {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(-30px) scale(0.8);\r\n                filter: blur(5px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0) scale(1);\r\n                filter: blur(0);\r\n            }\r\n        }\r\n\r\n        .download-actions {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: var(--space-3);\r\n            animation: slideInUp var(--duration-500) var(--ease-elastic) 0.2s both;\r\n        }\r\n\r\n        .download-btn {\r\n            background: rgba(255, 255, 255, 0.25);\r\n            backdrop-filter: blur(15px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            color: var(--white);\r\n            padding: var(--space-4) var(--space-8);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-base);\r\n            font-weight: 700;\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-elastic);\r\n            font-family: inherit;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--space-3);\r\n            min-width: 180px;\r\n            position: relative;\r\n            overflow: hidden;\r\n            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n        }\r\n\r\n        .download-btn::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: -100%;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n            transition: left var(--duration-700) var(--ease-out);\r\n        }\r\n\r\n        .download-btn:hover::before {\r\n            left: 100%;\r\n        }\r\n\r\n        .download-btn:hover {\r\n            background: rgba(255, 255, 255, 0.35);\r\n            border-color: rgba(255, 255, 255, 0.5);\r\n            transform: translateY(-3px) scale(1.05);\r\n            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        .download-btn:active {\r\n            transform: translateY(-1px) scale(0.98);\r\n        }\r\n\r\n        .btn-icon {\r\n            font-size: var(--text-lg);\r\n            transition: transform var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .download-btn:hover .btn-icon {\r\n            transform: scale(1.2) rotate(5deg);\r\n        }\r\n\r\n        \/* Premium Media Info *\/\r\n        .media-info {\r\n            padding: var(--space-6);\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .media-meta {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            font-size: var(--text-sm);\r\n            color: var(--gray-600);\r\n            font-weight: 600;\r\n        }\r\n\r\n        .resolution-badge {\r\n            background: linear-gradient(135deg, var(--gray-100) 0%, var(--gray-200) 100%);\r\n            color: var(--gray-700);\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-xs);\r\n            font-weight: 700;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n            box-shadow: var(--shadow-sm);\r\n        }\r\n\r\n        .type-badge {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-xs);\r\n            font-weight: 700;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n            box-shadow: var(--shadow-sm);\r\n        }\r\n\r\n        \/* Video Grid Styles *\/\r\n        .video-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(3, 1fr);\r\n            gap: var(--space-6);\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        @media (max-width: 1024px) {\r\n            .video-grid {\r\n                grid-template-columns: repeat(2, 1fr);\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .video-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n        }\r\n\r\n        .video-card {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            box-shadow: var(--shadow-md);\r\n            border: 1px solid var(--gray-200);\r\n            overflow: hidden;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            animation: slideUp var(--duration-700) var(--ease-elastic);\r\n            animation-delay: calc(var(--index) * 0.1s);\r\n            animation-fill-mode: both;\r\n            position: relative;\r\n        }\r\n\r\n        .video-card:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n            border-color: rgba(24, 119, 242, 0.3);\r\n        }\r\n\r\n        .video-card video {\r\n            width: 100%;\r\n            height: 350px;\r\n            object-fit: cover;\r\n            background: var(--gray-100);\r\n            transition: transform var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .video-card:hover video {\r\n            transform: scale(1.05);\r\n        }\r\n\r\n        .video-info {\r\n            padding: var(--space-4);\r\n            display: flex;\r\n            flex-direction: column;\r\n\r\n        }\r\n\r\n        .video-title {\r\n            font-size: var(--text-lg);\r\n            font-weight: 700;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-2);\r\n            flex-shrink: 0;\r\n            white-space: nowrap;\r\n            overflow: hidden;\r\n            text-overflow: ellipsis;\r\n            line-height: 1.2;\r\n        }\r\n\r\n        .video-description {\r\n            font-size: var(--text-xs);\r\n            font-weight: 400;\r\n            color: var(--gray-500);\r\n            line-height: 1.4;\r\n            overflow: hidden;\r\n            text-overflow: ellipsis;\r\n            display: -webkit-box;\r\n            -webkit-line-clamp: 3;\r\n            -webkit-box-orient: vertical;\r\n            opacity: 0.8;\r\n            flex-grow: 1;\r\n            margin-bottom: var(--space-3);\r\n            display: none;\r\n        }\r\n\r\n        .video-stats {\r\n            margin-top: auto;\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .video-badges {\r\n            display: flex;\r\n            gap: var(--space-2);\r\n            margin-bottom: var(--space-4);\r\n        }\r\n\r\n        .quality-badge {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            padding: var(--space-1) var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-xs);\r\n            font-weight: 700;\r\n            text-transform: uppercase;\r\n            box-shadow: 0 2px 8px rgba(254, 218, 117, 0.3);\r\n        }\r\n\r\n        .format-badge {\r\n            background: linear-gradient(135deg, rgba(24, 119, 242, 0.1) 0%, rgba(66, 165, 245, 0.1) 100%);\r\n            color: var(--primary-500);\r\n            padding: var(--space-1) var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-xs);\r\n            font-weight: 700;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n        }\r\n\r\n        .format-badge {\r\n            background: var(--gradient-accent);\r\n            color: var(--white);\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-xs);\r\n            font-weight: 700;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n        }\r\n\r\n        .download-progress {\r\n            position: absolute;\r\n            bottom: 0;\r\n            left: 0;\r\n            height: 3px;\r\n            background-color: var(--primary-400);\r\n            transition: width var(--duration-300) var(--ease-out);\r\n            border-radius: 0 0 var(--radius-2xl) var(--radius-2xl);\r\n        }\r\n\r\n        \/* Custom Scrollbar *\/\r\n        ::-webkit-scrollbar {\r\n            width: 12px;\r\n        }\r\n\r\n        ::-webkit-scrollbar-track {\r\n            background: var(--gray-100);\r\n            border-radius: var(--radius-full);\r\n        }\r\n\r\n        ::-webkit-scrollbar-thumb {\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-full);\r\n            border: 2px solid var(--gray-100);\r\n        }\r\n\r\n        ::-webkit-scrollbar-thumb:hover {\r\n            background: var(--gradient-secondary);\r\n        }\r\n\r\n        \/* Selection *\/\r\n        ::selection {\r\n            background: var(--primary-200);\r\n            color: var(--primary-900);\r\n        }\r\n\r\n        \/* Focus Visible *\/\r\n        :focus-visible {\r\n            outline: 2px solid var(--primary-500);\r\n            outline-offset: 2px;\r\n        }\r\n\r\n        \/* Video Grid Responsive Breakpoints *\/\r\n        @media (max-width: 1024px) {\r\n            .video-grid[style*=\"grid-template-columns: repeat(3, 1fr)\"] {\r\n                grid-template-columns: repeat(2, 1fr) !important;\r\n            }\r\n\r\n            .video-card video,\r\n            .video-thumbnail {\r\n                height: 300px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .video-grid[style*=\"grid-template-columns: repeat(3, 1fr)\"] {\r\n                grid-template-columns: 1fr !important;\r\n            }\r\n\r\n            .video-card video,\r\n            .video-thumbnail {\r\n                height: 250px;\r\n            }\r\n        }\r\n\r\n        \/* Ensure play icon is visible on all video types *\/\r\n        .video-thumbnail {\r\n            position: relative;\r\n            cursor: pointer;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            background-size: cover;\r\n            background-position: center;\r\n            background-repeat: no-repeat;\r\n            height: 350px;\r\n            border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .video-thumbnail:hover {\r\n            transform: scale(1.02);\r\n            transition: transform var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        \/* Video Overlay and Action Styles *\/\r\n        .video-overlay {\r\n            position: absolute;\r\n            inset: 0;\r\n            \/* background: linear-gradient(135deg,\r\n                    rgba(24, 119, 242, 0.95) 0%,\r\n                    rgba(66, 165, 245, 0.95) 50%,\r\n                    rgba(41, 182, 246, 0.95) 100%); *\/\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            display: flex;\r\n            align-items: flex-start;\r\n            justify-content: flex-end;\r\n            padding: var(--space-4);\r\n            z-index: 10;\r\n        }\r\n\r\n        .video-thumbnail:hover .video-overlay {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n\r\n        .video-actions {\r\n            display: flex;\r\n            gap: var(--space-3);\r\n            align-items: center;\r\n        }\r\n\r\n        .video-action-btn {\r\n            background: rgba(255, 255, 255, 0.25);\r\n            backdrop-filter: blur(15px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            color: var(--white);\r\n            padding: var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            font-size: var(--text-lg);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            min-width: 44px;\r\n            min-height: 44px;\r\n        }\r\n\r\n        .video-action-btn:hover {\r\n            background: rgba(255, 255, 255, 0.35);\r\n            border-color: rgba(255, 255, 255, 0.5);\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .video-number {\r\n            font-size: var(--text-sm);\r\n            color: var(--white);\r\n            margin-top: var(--space-2);\r\n        }\r\n\r\n        .premium-label {\r\n            font-family: 'Inter', sans-serif;\r\n            letter-spacing: 0.01em;\r\n        }\r\n\r\n        .premium-desc {\r\n            font-family: 'Inter', sans-serif;\r\n        }\r\n\r\n        .premium-input-group {\r\n            width: 100%;\r\n        }\r\n\r\n        .premium-url-input:focus {\r\n            border: none;\r\n            outline: 2px solid var(--primary-400);\r\n            background: var(--gray-50);\r\n        }\r\n\r\n        .premium-analyze-btn {\r\n            font-weight: 700;\r\n            letter-spacing: 0.02em;\r\n            transition: background 0.2s;\r\n        }\r\n\r\n        .premium-analyze-btn:hover {\r\n            background: var(--gradient-secondary);\r\n        }\r\n\r\n        \/* Mobile Download Button (shown instead of modal on small devices) *\/\r\n        .mobile-download-btn {\r\n            display: none;\r\n            position: fixed;\r\n            bottom: 20px;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: 16px 32px;\r\n            border-radius: var(--radius-2xl);\r\n            font-weight: 700;\r\n            font-size: var(--text-base);\r\n            cursor: pointer;\r\n            z-index: 10002;\r\n            box-shadow: var(--shadow-xl);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            animation: slideUp var(--duration-500) var(--ease-elastic);\r\n        }\r\n\r\n        .mobile-download-btn:hover {\r\n            transform: translateX(-50%) translateY(-3px);\r\n            box-shadow: var(--shadow-2xl);\r\n        }\r\n\r\n        .mobile-download-btn i {\r\n            margin-right: 8px;\r\n        }\r\n\r\n        \/* Hide modal on small devices *\/\r\n        @media (max-width: 768px) {\r\n            .fb-photomodal {\r\n                display: none !important;\r\n            }\r\n\r\n            .mobile-download-btn {\r\n                display: block;\r\n            }\r\n        }\r\n\r\n        \/* Show modal only on larger devices *\/\r\n        @media (min-width: 769px) {\r\n            .mobile-download-btn {\r\n                display: none !important;\r\n            }\r\n        }\r\n\r\n        \/* Responsive styles for mobile download button *\/\r\n        @media (max-width: 480px) {\r\n            .mobile-download-btn {\r\n                bottom: 16px;\r\n                padding: 14px 24px;\r\n                font-size: var(--text-sm);\r\n                border-radius: var(--radius-xl);\r\n            }\r\n\r\n            .mobile-download-btn i {\r\n                margin-right: 6px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 360px) {\r\n            .mobile-download-btn {\r\n                bottom: 12px;\r\n                padding: 12px 20px;\r\n                font-size: var(--text-xs);\r\n                border-radius: var(--radius-lg);\r\n            }\r\n\r\n            .mobile-download-btn i {\r\n                margin-right: 4px;\r\n            }\r\n        }\r\n\r\n        \/* Landscape orientation for mobile download button *\/\r\n        @media (max-width: 768px) and (orientation: landscape) {\r\n            .mobile-download-btn {\r\n                bottom: 12px;\r\n                padding: 12px 20px;\r\n                font-size: var(--text-sm);\r\n            }\r\n        }\r\n\r\n        \/* Photo Modal Styles *\/\r\n        .fb-photomodal {\r\n            position: fixed;\r\n            inset: 0;\r\n            background: rgba(0, 0, 0, 0.9);\r\n            backdrop-filter: blur(20px);\r\n            z-index: 10000;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: all var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .fb-photomodal.active {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n\r\n        .fb-photomodal-content {\r\n            max-width: 90vw;\r\n            max-height: 90vh;\r\n            background: var(--white);\r\n            border-radius: var(--radius-4xl);\r\n            overflow: hidden;\r\n            display: flex;\r\n            box-shadow: var(--shadow-2xl);\r\n            position: relative;\r\n        }\r\n\r\n        .fb-photomodal-close {\r\n            position: absolute;\r\n            top: var(--space-4);\r\n            right: var(--space-4);\r\n            background: rgba(0, 0, 0, 0.5);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            cursor: pointer;\r\n            z-index: 10001;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .fb-photomodal-close:hover {\r\n            background: rgba(0, 0, 0, 0.7);\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .fb-photomodal-image {\r\n            max-width: 70vw;\r\n            max-height: 90vh;\r\n            object-fit: contain;\r\n        }\r\n\r\n        .fb-photomodal-info {\r\n            width: 400px;\r\n            padding: var(--space-8);\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: var(--space-6);\r\n        }\r\n\r\n        .fb-photomodal-title {\r\n            font-size: var(--text-2xl);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n        }\r\n\r\n        .fb-photomodal-stats {\r\n            display: grid;\r\n            grid-template-columns: repeat(2, 1fr);\r\n            gap: var(--space-4);\r\n        }\r\n\r\n        .fb-photomodal-stat {\r\n            text-align: center;\r\n            padding: var(--space-4);\r\n            background: var(--gray-50);\r\n            border-radius: var(--radius-2xl);\r\n        }\r\n\r\n        .fb-photomodal-stat-value {\r\n            font-size: var(--text-xl);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-1);\r\n        }\r\n\r\n        .fb-photomodal-stat-label {\r\n            font-size: var(--text-sm);\r\n            color: var(--gray-600);\r\n            font-weight: 600;\r\n        }\r\n\r\n        .fb-photomodal-actions {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: var(--space-3);\r\n        }\r\n\r\n        .fb-photomodal-action {\r\n            padding: var(--space-4) var(--space-6);\r\n            border-radius: var(--radius-2xl);\r\n            font-weight: 700;\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--space-3);\r\n            border: none;\r\n            font-family: inherit;\r\n        }\r\n\r\n        .fb-photomodal-action.primary {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n        }\r\n\r\n        .fb-photomodal-action:not(.primary) {\r\n            background: var(--gray-100);\r\n            color: var(--gray-700);\r\n            border: 1px solid var(--gray-300);\r\n        }\r\n\r\n        .fb-photomodal-action:hover {\r\n            transform: translateY(-2px) scale(1.02);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        \/* Download Progress Modal *\/\r\n        .download-progress-modal {\r\n            position: fixed;\r\n            top: 20px;\r\n            right: 20px;\r\n            background: var(--white);\r\n            border-radius: var(--radius-2xl);\r\n            padding: var(--space-4);\r\n            box-shadow: var(--shadow-xl);\r\n            border: 1px solid var(--gray-200);\r\n            z-index: 10001;\r\n            min-width: 200px;\r\n            max-width: 280px;\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transform: translateX(100%);\r\n            transition: all var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .download-progress-modal.active {\r\n            opacity: 1;\r\n            visibility: visible;\r\n            transform: translateX(0);\r\n        }\r\n\r\n        .download-progress-header {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-2);\r\n            margin-bottom: var(--space-3);\r\n        }\r\n\r\n        .download-progress-header i {\r\n            color: var(--primary-500);\r\n            font-size: var(--text-base);\r\n        }\r\n\r\n        .download-progress-title {\r\n            font-weight: 600;\r\n            color: var(--gray-900);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        .download-progress-bar {\r\n            width: 100%;\r\n            height: 6px;\r\n            background: var(--gray-200);\r\n            border-radius: var(--radius-full);\r\n            overflow: hidden;\r\n            margin-bottom: var(--space-2);\r\n        }\r\n\r\n        .download-progress-fill {\r\n            height: 100%;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-full);\r\n            transition: width var(--duration-300) var(--ease-out);\r\n            width: 0%;\r\n        }\r\n\r\n        .download-progress-text {\r\n            font-size: var(--text-xs);\r\n            color: var(--gray-600);\r\n            text-align: center;\r\n            line-height: 1.2;\r\n        }\r\n\r\n        .download-cancel-btn {\r\n            margin-top: var(--space-3);\r\n            background: linear-gradient(135deg, rgba(239, 68, 68, 0.1) 0%, rgba(220, 38, 38, 0.1) 100%);\r\n            color: #dc2626;\r\n            border: 1px solid rgba(220, 38, 38, 0.3);\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-xl);\r\n            cursor: pointer;\r\n            width: 100%;\r\n            font-weight: 600;\r\n            font-size: var(--text-xs);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .download-cancel-btn:hover {\r\n            background: linear-gradient(135deg, rgba(239, 68, 68, 0.2) 0%, rgba(220, 38, 38, 0.2) 100%);\r\n            transform: translateY(-1px);\r\n            box-shadow: 0 4px 12px rgba(220, 38, 38, 0.2);\r\n        }\r\n\r\n        \/* Photo Grid Styles *\/\r\n        .fb-photoitem {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-md);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            border: 1px solid var(--gray-200);\r\n            cursor: pointer;\r\n        }\r\n\r\n        .fb-photoitem:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n        }\r\n\r\n        .fb-photoimage-container {\r\n            position: relative;\r\n            aspect-ratio: 1;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .fb-photoimage {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n            transition: transform var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .fb-photoitem:hover .fb-photoimage {\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .fb-photooverlay {\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(135deg,\r\n                    rgba(24, 119, 242, 0.9) 0%,\r\n                    rgba(66, 165, 245, 0.9) 100%);\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .fb-photoitem:hover .fb-photooverlay {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n\r\n        .fb-photoactions {\r\n            display: flex;\r\n            gap: var(--space-3);\r\n        }\r\n\r\n        .fb-photoaction-btn {\r\n            background: rgba(255, 255, 255, 0.2);\r\n            backdrop-filter: blur(10px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            color: var(--white);\r\n            padding: var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            font-size: var(--text-lg);\r\n        }\r\n\r\n        .fb-photoaction-btn:hover {\r\n            background: rgba(255, 255, 255, 0.3);\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .fb-photoinfo {\r\n            padding: var(--space-4);\r\n        }\r\n\r\n        .fb-photostats {\r\n            margin-bottom: var(--space-3);\r\n        }\r\n\r\n        .fb-photoengagement {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n        }\r\n\r\n        .fb-photoengagement-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-1);\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        .fb-photometa {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            font-size: var(--text-xs);\r\n            color: var(--gray-500);\r\n        }\r\n\r\n        .fb-photodimensions {\r\n            font-weight: 600;\r\n        }\r\n\r\n        \/* Responsive Photo Modal *\/\r\n        @media (max-width: 1024px) {\r\n            .fb-photomodal-content {\r\n                flex-direction: column;\r\n                max-width: 95vw;\r\n            }\r\n\r\n            .fb-photomodal-image {\r\n                max-width: 95vw;\r\n                max-height: 60vh;\r\n            }\r\n\r\n            .fb-photomodal-info {\r\n                width: 100%;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .fb-photomodal {\r\n                display: none !important;\r\n            }\r\n        }\r\n\r\n        \/* Profile Container - Matching facebookanalyzer2.html structure *\/\r\n        .profile-container {\r\n            background: var(--white);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-2xl);\r\n            overflow: hidden;\r\n            margin-bottom: var(--space-8);\r\n            border: 1px solid var(--gray-200);\r\n            animation: slideUp var(--duration-1000) var(--ease-elastic) 0.4s both;\r\n        }\r\n\r\n        .cover-section {\r\n            position: relative;\r\n            height: 400px;\r\n            background: var(--gradient-primary);\r\n            overflow: hidden;\r\n        }\r\n\r\n        .cover-photo {\r\n            width: 100%;\r\n            height: 100%;\r\n            background-size: cover;\r\n            background-position: center;\r\n            transition: transform var(--duration-700) var(--ease-out);\r\n        }\r\n\r\n        .cover-overlay {\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(to bottom,\r\n                    transparent 0%,\r\n                    rgba(0, 0, 0, 0.1) 40%,\r\n                    rgba(0, 0, 0, 0.8) 100%);\r\n        }\r\n\r\n        .cover-gradient {\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(135deg,\r\n                    rgba(24, 119, 242, 0.1) 0%,\r\n                    rgba(66, 165, 245, 0.1) 100%);\r\n        }\r\n\r\n        .profile-info-section {\r\n            padding: var(--space-12);\r\n        }\r\n\r\n        .profile-header {\r\n            display: flex;\r\n            align-items: flex-start;\r\n            gap: var(--space-8);\r\n            margin-bottom: var(--space-8);\r\n            position: relative;\r\n            margin-top: -80px;\r\n        }\r\n\r\n        .profile-picture-container {\r\n            position: relative;\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .profile-picture {\r\n            width: 160px;\r\n            height: 160px;\r\n            border-radius: var(--radius-full);\r\n            background-size: cover;\r\n            background-position: center;\r\n            background-color: var(--gray-200);\r\n            border: 6px solid var(--white);\r\n            box-shadow: var(--shadow-xl);\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .profile-ring {\r\n            position: absolute;\r\n            inset: -8px;\r\n            border-radius: var(--radius-full);\r\n            background: var(--gradient-primary);\r\n            z-index: 1;\r\n            animation: pulse 3s ease-in-out infinite;\r\n        }\r\n\r\n        .profile-status-indicator {\r\n            position: absolute;\r\n            bottom: 10px;\r\n            right: 10px;\r\n            width: 24px;\r\n            height: 24px;\r\n            background: var(--success-500);\r\n            border-radius: var(--radius-full);\r\n            border: 3px solid var(--white);\r\n            z-index: 3;\r\n        }\r\n\r\n        .profile-details {\r\n            flex: 1;\r\n            margin-top: 80px;\r\n        }\r\n\r\n        .profile-name {\r\n            font-size: var(--text-4xl);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-4);\r\n            line-height: 1.1;\r\n        }\r\n\r\n        .verified-badge::after {\r\n            content: '\u2713';\r\n            display: inline-block;\r\n            margin-left: var(--space-2);\r\n            color: var(--primary-500);\r\n            font-weight: 900;\r\n            font-size: var(--text-lg);\r\n        }\r\n\r\n        .profile-stats {\r\n            display: flex;\r\n            gap: var(--space-6);\r\n            margin-bottom: var(--space-6);\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .stat-badge {\r\n            background: var(--gray-100);\r\n            color: var(--gray-700);\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-full);\r\n            font-size: var(--text-sm);\r\n            font-weight: 600;\r\n        }\r\n\r\n        .profile-actions {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .action-btn {\r\n            padding: var(--space-3) var(--space-6);\r\n            border-radius: var(--radius-2xl);\r\n            font-weight: 700;\r\n            font-size: var(--text-base);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-2);\r\n            border: none;\r\n            font-family: inherit;\r\n        }\r\n\r\n        .action-btn.primary {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            box-shadow: var(--shadow-md);\r\n        }\r\n\r\n        .action-btn.secondary {\r\n            background: var(--gray-100);\r\n            color: var(--gray-700);\r\n            border: 1px solid var(--gray-300);\r\n        }\r\n\r\n        .action-btn:hover {\r\n            transform: translateY(-2px) scale(1.02);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        .profile-navigation {\r\n            border-top: 1px solid var(--gray-200);\r\n            padding-top: var(--space-6);\r\n        }\r\n\r\n        .profile-nav-tabs {\r\n            display: flex;\r\n            gap: var(--space-2);\r\n            background: linear-gradient(135deg, rgba(24, 119, 242, 0.1) 0%, rgba(66, 165, 245, 0.1) 100%);\r\n            padding: var(--space-2);\r\n            border-radius: var(--radius-2xl);\r\n            border: 1px solid rgba(24, 119, 242, 0.2);\r\n        }\r\n\r\n        .nav-tab {\r\n            flex: 1;\r\n            padding: var(--space-4) var(--space-6);\r\n            background: none;\r\n            border: none;\r\n            border-radius: var(--radius-xl);\r\n            font-weight: 600;\r\n            color: var(--gray-600);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            position: relative;\r\n            font-family: inherit;\r\n        }\r\n\r\n        .nav-tab:hover {\r\n            background: rgba(24, 119, 242, 0.1);\r\n            color: var(--primary-600);\r\n        }\r\n\r\n        .nav-tab.active {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            box-shadow: var(--shadow-md);\r\n        }\r\n\r\n        .nav-indicator {\r\n            position: absolute;\r\n            bottom: -2px;\r\n            left: 50%;\r\n            width: 0;\r\n            height: 3px;\r\n            background: var(--gradient-primary);\r\n            transition: width var(--duration-300) var(--ease-out);\r\n            transform: translateX(-50%);\r\n            border-radius: var(--radius-full);\r\n            box-shadow: 0 0 10px rgba(24, 119, 242, 0.5);\r\n        }\r\n\r\n        .nav-tab.active .nav-indicator {\r\n            width: 60%;\r\n        }\r\n\r\n        .tab-content-container {\r\n            padding: var(--space-8) 0;\r\n        }\r\n\r\n        .tab-content {\r\n            display: none;\r\n            animation: fadeInScale var(--duration-500) var(--ease-out);\r\n        }\r\n\r\n        .tab-content.active {\r\n            display: block;\r\n        }\r\n\r\n        @keyframes fadeInScale {\r\n            from {\r\n                opacity: 0;\r\n                transform: scale(0.95) translateY(20px);\r\n                filter: blur(3px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: scale(1) translateY(0);\r\n                filter: blur(0);\r\n            }\r\n        }\r\n\r\n        \/* Content Headers - Matching facebookanalyzer2.html *\/\r\n        .content-header {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            margin-bottom: var(--space-8);\r\n            padding-bottom: var(--space-4);\r\n            border-bottom: 1px solid var(--gray-200);\r\n        }\r\n\r\n        .content-title {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-3);\r\n        }\r\n\r\n        .content-title h2 {\r\n            font-size: var(--text-2xl);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n        }\r\n\r\n        .content-title i {\r\n            color: var(--primary-500);\r\n            font-size: var(--text-xl);\r\n        }\r\n\r\n        .content-stats {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n        }\r\n\r\n        .stat-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-2);\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        .no-data-message {\r\n            text-align: center;\r\n            padding: 4rem 2rem;\r\n            color: var(--gray-500);\r\n            font-size: 1.2rem;\r\n            font-weight: 500;\r\n        }\r\n\r\n        \/* Photos Grid - Matching facebookanalyzer2.html *\/\r\n        .photos-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\r\n            gap: var(--space-6);\r\n        }\r\n\r\n        .fb-photoitem {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-md);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            border: 1px solid var(--gray-200);\r\n        }\r\n\r\n        .fb-photoitem:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n        }\r\n\r\n        .fb-photoimage-container {\r\n            position: relative;\r\n            aspect-ratio: 1;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .fb-photoimage {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n            transition: transform var(--duration-500) var(--ease-out);\r\n            cursor: pointer;\r\n        }\r\n\r\n        .fb-photoitem:hover .fb-photoimage {\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .fb-photooverlay {\r\n            position: absolute;\r\n            inset: 0;\r\n            background: linear-gradient(135deg,\r\n                    rgba(24, 119, 242, 0.9) 0%,\r\n                    rgba(66, 165, 245, 0.9) 100%);\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .fb-photoitem:hover .fb-photooverlay {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n\r\n        .fb-photoactions {\r\n            display: flex;\r\n            gap: var(--space-3);\r\n        }\r\n\r\n        .fb-photoaction-btn {\r\n            background: rgba(255, 255, 255, 0.2);\r\n            backdrop-filter: blur(10px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            color: var(--white);\r\n            padding: var(--space-3);\r\n            border-radius: var(--radius-full);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            font-size: var(--text-lg);\r\n        }\r\n\r\n        .fb-photoaction-btn:hover {\r\n            background: rgba(255, 255, 255, 0.3);\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .fb-photoinfo {\r\n            padding: var(--space-4);\r\n        }\r\n\r\n        .fb-photostats {\r\n            margin-bottom: var(--space-3);\r\n        }\r\n\r\n        .fb-photoengagement {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n        }\r\n\r\n        .fb-photoengagement-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-1);\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        .fb-photometa {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            font-size: var(--text-xs);\r\n            color: var(--gray-500);\r\n        }\r\n\r\n        .fb-photodimensions {\r\n            font-weight: 600;\r\n        }\r\n\r\n        \/* Posts Container - Matching facebookanalyzer2.html *\/\r\n        .posts-container {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: var(--space-6);\r\n        }\r\n\r\n        .post-item {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            padding: var(--space-6);\r\n            box-shadow: var(--shadow-md);\r\n            border: 1px solid var(--gray-200);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .post-item:hover {\r\n            transform: translateY(-4px);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        .post-header {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-4);\r\n            margin-bottom: var(--space-4);\r\n        }\r\n\r\n        .post-profile-pic {\r\n            width: 48px;\r\n            height: 48px;\r\n            border-radius: var(--radius-full);\r\n            background-size: cover;\r\n            background-position: center;\r\n            background-color: var(--gray-200);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: var(--gray-500);\r\n        }\r\n\r\n        .post-info {\r\n            flex: 1;\r\n        }\r\n\r\n        .post-author {\r\n            font-weight: 700;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-1);\r\n        }\r\n\r\n        .post-date {\r\n            font-size: var(--text-sm);\r\n            color: var(--gray-500);\r\n        }\r\n\r\n        .post-content {\r\n            margin-bottom: var(--space-4);\r\n            line-height: 1.6;\r\n            color: var(--gray-700);\r\n        }\r\n\r\n        .post-image {\r\n            width: 100%;\r\n            border-radius: var(--radius-2xl);\r\n            margin-bottom: var(--space-4);\r\n        }\r\n\r\n        .post-stats {\r\n            display: flex;\r\n            gap: var(--space-6);\r\n            padding-top: var(--space-4);\r\n            border-top: 1px solid var(--gray-200);\r\n        }\r\n\r\n        \/* Video\/Reels Grid - Matching facebookanalyzer2.html *\/\r\n        .video-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\r\n            gap: var(--space-6);\r\n        }\r\n\r\n        .video-card {\r\n            background: var(--white);\r\n            border-radius: var(--radius-3xl);\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-md);\r\n            border: 1px solid var(--gray-200);\r\n            transition: transform var(--duration-300) var(--ease-out);\r\n            animation: slideUp var(--duration-700) var(--ease-elastic);\r\n            animation-delay: calc(var(--index) * 0.1s);\r\n            animation-fill-mode: both;\r\n        }\r\n\r\n        .video-card:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n        }\r\n\r\n        @keyframes slideUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(30px) scale(0.9);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0) scale(1);\r\n            }\r\n        }\r\n\r\n        .video-thumbnail {\r\n            position: relative;\r\n            height: 350px;\r\n            background-size: cover;\r\n            background-position: center;\r\n            cursor: pointer;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .video-play-icon {\r\n            width: 60px;\r\n            height: 60px;\r\n            background: rgba(255, 255, 255, 0.9);\r\n            border-radius: 50%;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-size: 1.5rem;\r\n            color: var(--primary-500);\r\n            transition: transform var(--duration-200) var(--ease-out);\r\n        }\r\n\r\n        .video-thumbnail:hover .video-play-icon {\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .video-quality-badge,\r\n        .reel-badge {\r\n            position: absolute;\r\n            top: 1rem;\r\n            right: 1rem;\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            padding: 0.25rem 0.75rem;\r\n            border-radius: 0.5rem;\r\n            font-size: 0.8rem;\r\n            font-weight: 700;\r\n        }\r\n\r\n        .video-duration {\r\n            position: absolute;\r\n            bottom: 1rem;\r\n            right: 1rem;\r\n            background: rgba(0, 0, 0, 0.8);\r\n            color: var(--white);\r\n            padding: 0.25rem 0.5rem;\r\n            border-radius: 0.25rem;\r\n            font-size: 0.8rem;\r\n        }\r\n\r\n        .video-info {\r\n            padding: var(--space-6);\r\n        }\r\n\r\n        .video-title {\r\n            font-size: var(--text-lg);\r\n            font-weight: 700;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-2);\r\n            line-height: 1.3;\r\n        }\r\n\r\n        .video-description {\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n            line-height: 1.4;\r\n            margin-bottom: var(--space-4);\r\n        }\r\n\r\n        .video-stats {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n        }\r\n\r\n        .video-engagement {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n        }\r\n\r\n        .video-engagement-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-1);\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        .video-download-btn {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: var(--space-2) var(--space-4);\r\n            border-radius: var(--radius-xl);\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            transition: transform var(--duration-200) var(--ease-out);\r\n        }\r\n\r\n        .video-download-btn:hover {\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        .video-meta {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            margin-top: var(--space-4);\r\n            font-size: var(--text-xs);\r\n            color: var(--gray-500);\r\n        }\r\n\r\n        \/* Responsive Design *\/\r\n        @media (max-width: 768px) {\r\n            .profile-info-section {\r\n                padding: var(--space-6);\r\n            }\r\n\r\n            .profile-header {\r\n                flex-direction: column;\r\n                gap: var(--space-4);\r\n                margin-top: -40px;\r\n            }\r\n\r\n            .profile-picture {\r\n                width: 120px;\r\n                height: 120px;\r\n            }\r\n\r\n            .profile-details {\r\n                margin-top: 0;\r\n            }\r\n\r\n            .profile-name {\r\n                font-size: var(--text-2xl);\r\n            }\r\n\r\n            .profile-nav-tabs {\r\n                flex-direction: column;\r\n                gap: var(--space-1);\r\n            }\r\n\r\n            .nav-tab {\r\n                text-align: center;\r\n            }\r\n\r\n            .photos-grid {\r\n                grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\r\n                gap: var(--space-4);\r\n            }\r\n\r\n            .video-grid {\r\n                grid-template-columns: 1fr;\r\n                gap: var(--space-4);\r\n            }\r\n\r\n            .content-header {\r\n                flex-direction: column;\r\n                gap: var(--space-4);\r\n                align-items: flex-start;\r\n            }\r\n        }\r\n      \r\n      .content-title i {\r\n    color: var(--primary-500);\r\n    font-size: var(--text-xl);\r\n    margin-bottom: 27px;\r\n}\r\n    <\/style>\r\n\r\n    <div class=\"fb-pgv-custom-container\">\r\n        <header class=\"header\">\r\n            <h1>Facebook Page Viewer<\/h1>\r\n            <p>Explore any public Facebook page without logging in. Instantly view posts, updates, and insights\r\n                anonymously\u2014no account needed, 100% private and secure.<\/p>\r\n        <\/header>\r\n\r\n        <section class=\"search-section\">\r\n            <div class=\"search-container\">\r\n                <div class=\"search-header\">\r\n                    <div class=\"search-icon\">\r\n                        <i class=\"fas fa-magnifying-glass\"><\/i>\r\n                    <\/div>\r\n                    <h2 class=\"search-title\">Start Your Analysis<\/h2>\r\n                    <p class=\"search-description\">Enter any public Facebook profile or page URL to unlock comprehensive\r\n                        insights, photos, videos, and posts<\/p>\r\n                <\/div>\r\n\r\n                <form class=\"search-form\" onsubmit=\"analyzeUrl(event)\">\r\n                    <div class=\"input-container\">\r\n                        <div class=\"input-wrapper\">\r\n                            <div class=\"input-icon\">\r\n                                <i class=\"fas fa-link\"><\/i>\r\n                            <\/div>\r\n                            <input type=\"url\" id=\"urlInput\" class=\"url-input\" placeholder=\"https:\/\/www.facebook.com\/username\" required=\"\">\r\n                            <button type=\"submit\" class=\"analyze-btn\" id=\"analyzeBtn\">\r\n                                <i class=\"fas fa-rocket\"><\/i>\r\n                                <span>Analyze Profile<\/span>\r\n                            <\/button>\r\n                        <\/div>\r\n                        <div class=\"input-help\">\r\n                            <i class=\"fas fa-shield-alt\"><\/i>\r\n                            <span>100% Safe & Secure \u2022 No Login Required \u2022 Instant Results<\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/form>\r\n\r\n                <div class=\"features-grid\">\r\n                    <div class=\"feature-item\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"fas fa-images\"><\/i>\r\n                        <\/div>\r\n                        <div class=\"feature-text\">\r\n                            <h4>Photo Gallery<\/h4>\r\n                            <p>View all public photos<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"feature-item\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"fas fa-video\"><\/i>\r\n                        <\/div>\r\n                        <div class=\"feature-text\">\r\n                            <h4>Video Collection<\/h4>\r\n                            <p>Access videos & reels<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"feature-item\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"fas fa-download\"><\/i>\r\n                        <\/div>\r\n                        <div class=\"feature-text\">\r\n                            <h4>Download Media<\/h4>\r\n                            <p>Save photos & videos<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div id=\"errorMessage\" class=\"error-message\" style=\"display: none;\"><\/div>\r\n            <\/div>\r\n        <\/section>\r\n\r\n        <div id=\"loadingSection\" class=\"loading\" style=\"display: none;\">\r\n            <div class=\"loading-spinner\"><\/div>\r\n            <div class=\"loading-text\">Analyzing Facebook data...<\/div>\r\n        <\/div>\r\n\r\n        <!-- Profile Content Container -->\r\n        <main id=\"profileContent\" style=\"display: none;\">\r\n            <!-- Dynamic profile content will be inserted here -->\r\n        <\/main>\r\n    <\/div>\r\n\r\n    <!-- Photo Modal -->\r\n    <div id=\"fb-photomodal\" class=\"fb-photomodal\">\r\n        <div class=\"fb-photomodal-content\">\r\n            <button class=\"fb-photomodal-close\" onclick=\"closePhotoModal()\">\r\n                <i class=\"fas fa-times\"><\/i>\r\n            <\/button>\r\n            <img decoding=\"async\" id=\"fb-photomodal-image\" class=\"fb-photomodal-image\" src=\"\/placeholder.svg\" alt=\"Photo\">\r\n            <div class=\"fb-photomodal-info\">\r\n                <div class=\"fb-photomodal-header\">\r\n                    <h3 id=\"fb-photomodal-title\" class=\"fb-photomodal-title\">Photo Details<\/h3>\r\n                <\/div>\r\n                <div id=\"fb-photomodal-stats\" class=\"fb-photomodal-stats\">\r\n                    <!-- Stats will be populated dynamically -->\r\n                <\/div>\r\n                <div class=\"fb-photomodal-actions\">\r\n                    <button class=\"fb-photomodal-action primary\" onclick=\"downloadCurrentPhoto()\">\r\n                        <i class=\"fas fa-download\"><\/i>\r\n                        Download Original\r\n                    <\/button>\r\n                    <button class=\"fb-photomodal-action\" onclick=\"shareCurrentPhoto()\">\r\n                        <i class=\"fas fa-share\"><\/i>\r\n                        Share Photo\r\n                    <\/button>\r\n                    <button class=\"fb-photomodal-action\" onclick=\"viewOnFacebook()\">\r\n                        <i class=\"fab fa-facebook\"><\/i>\r\n                        View on Facebook\r\n                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Download Progress Modal -->\r\n    <div id=\"download-progress-modal\" class=\"download-progress-modal\">\r\n        <div class=\"download-progress-header\">\r\n            <i class=\"fas fa-download\"><\/i>\r\n            <span id=\"download-progress-title\" class=\"download-progress-title\">Downloading...<\/span>\r\n        <\/div>\r\n        <div class=\"download-progress-bar\">\r\n            <div id=\"download-progress-fill\" class=\"download-progress-fill\"><\/div>\r\n        <\/div>\r\n        <div id=\"download-progress-text\" class=\"download-progress-text\">Preparing download...<\/div>\r\n        <button id=\"download-cancel-btn\" class=\"download-cancel-btn\" style=\"display: none;\">Cancel<\/button>\r\n    <\/div>\r\n\r\n    <!-- Mobile Download Button (shown instead of modal on small devices) -->\r\n    <button id=\"mobile-download-btn\" class=\"mobile-download-btn\" onclick=\"downloadCurrentPhotoMobile()\" style=\"display: none;\">\r\n        <i class=\"fas fa-download\"><\/i>\r\n        Download Photo\r\n    <\/button>\r\n\r\n    <!-- Work Process Section -->\r\n    <section class=\"fb-pgv-work-process-section\" id=\"how-it-works\">\r\n        <div class=\"container fb-pgv-work-process-content\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"fb-pgv-section-title fb-pgv-light-title\">How Our Facebook Page Viewer Works<\/h2>\r\n                <p class=\"fb-pgv-section-subtitle fb-pgv-light-subtitle\">View Facebook pages anonymously in just 3\r\n                    simple steps<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"row\">\r\n                <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                    <div class=\"fb-pgv-process-step\">\r\n                        <div class=\"fb-pgv-step-number\">1<\/div>\r\n                        <h4 class=\"text-white\">Enter Page URL<\/h4>\r\n                        <p class=\"fb-pgv-light-subtitle\">Copy and paste the Facebook page URL you want to view\r\n                            anonymously<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                    <div class=\"fb-pgv-process-step\">\r\n                        <div class=\"fb-pgv-step-number\">2<\/div>\r\n                        <h4 class=\"text-white\">Process Page<\/h4>\r\n                        <p class=\"fb-pgv-light-subtitle\">Our system retrieves the page content without revealing your\r\n                            identity<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                    <div class=\"fb-pgv-process-step\">\r\n                        <div class=\"fb-pgv-step-number\">3<\/div>\r\n                        <h4 class=\"text-white\">View Content<\/h4>\r\n                        <p class=\"fb-pgv-light-subtitle\">Browse the page content including posts, photos, and videos\r\n                            anonymously<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Features Section -->\r\n    <section class=\"fb-pgv-features-section\">\r\n        <div class=\"container\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"fb-pgv-section-title\">Key Features<\/h2>\r\n                <p class=\"fb-pgv-section-subtitle\">Our Facebook Page Viewer offers powerful features for anonymous\r\n                    browsing<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"row\">\r\n                <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-user-check\"><\/i>\r\n                        <\/div>\r\n                        <h4>100% Anonymous<\/h4>\r\n                        <p>Browse pages without leaving any trace or alerting the page owner<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-photo-album\"><\/i>\r\n                        <\/div>\r\n                        <h4>Full Content Access<\/h4>\r\n                        <p>View all public posts, photos, and videos on the page<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-history\"><\/i>\r\n                        <\/div>\r\n                        <h4>Historical Posts<\/h4>\r\n                        <p>Access older posts that might not be immediately visible<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-devices\"><\/i>\r\n                        <\/div>\r\n                        <h4>Works on All Devices<\/h4>\r\n                        <p>Use our viewer on desktop, tablet, or mobile without issues<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-shield\"><\/i>\r\n                        <\/div>\r\n                        <h4>No Login Required<\/h4>\r\n                        <p>Access any public Facebook page without an account<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                    <div class=\"fb-pgv-feature-card\">\r\n                        <div class=\"fb-pgv-feature-icon\">\r\n                            <i class=\"bx bx-time-five\"><\/i>\r\n                        <\/div>\r\n                        <h4>Instant Processing<\/h4>\r\n                        <p>Get access to page content immediately without waiting<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Why Choose Section -->\r\n    <section class=\"fb-pgv-why-choose-section\">\r\n        <div class=\"container\">\r\n            <div class=\"row align-items-center\">\r\n                <div class=\"col-lg-6 mb-5 mb-lg-0\" data-aos=\"fade-right\">\r\n                    <div class=\"fb-pgv-why-choose-image fb-pgv-floating-element\">\r\n                        <img decoding=\"async\" src=\"https:\/\/viewanonymous.com\/wp-content\/uploads\/2026\/03\/Facebook_Page_Viewer.webp\" alt=\"Facebook Page Viewer\" class=\"img-fluid rounded-3\">\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"col-lg-6\" data-aos=\"fade-left\">\r\n                    <h2 class=\"fb-pgv-section-title mb-4\">Why Choose Our Facebook Page Viewer?<\/h2>\r\n                    <p class=\"mb-4\">Our tool provides the most reliable and secure way to view Facebook pages\r\n                        anonymously. Unlike other solutions, we prioritize your privacy and deliver comprehensive access\r\n                        to page content.<\/p>\r\n\r\n                    <div class=\"fb-pgv-benefit-item\">\r\n                        <div class=\"fb-pgv-benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">Completely undetectable<\/h5>\r\n                            <p class=\"mb-0\">No traces left when viewing pages<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"fb-pgv-benefit-item\">\r\n                        <div class=\"fb-pgv-benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">No registration needed<\/h5>\r\n                            <p class=\"mb-0\">Start browsing pages immediately<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"fb-pgv-benefit-item\">\r\n                        <div class=\"fb-pgv-benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">Full content access<\/h5>\r\n                            <p class=\"mb-0\">View all public posts and media<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"fb-pgv-benefit-item\">\r\n                        <div class=\"fb-pgv-benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">Fast processing<\/h5>\r\n                            <p class=\"mb-0\">Get instant access to any public page<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- FAQ Section -->\r\n    <section class=\"fb-pgv-faq-section\">\r\n        <div class=\"container\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"fb-pgv-section-title\">Frequently Asked Questions<\/h2>\r\n                <p class=\"fb-pgv-section-subtitle\">Find answers to common questions about our Facebook Page Viewer<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"row justify-content-center\">\r\n                <div class=\"col-lg-8\">\r\n                    <div class=\"accordion\" id=\"fb-pgv-faqAccordion\">\r\n                        <div class=\"fb-pgv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                            <h3 class=\"accordion-header\" id=\"fb-pgv-heading1\">\r\n                                <button class=\"fb-pgv-accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#fb-pgv-collapse1\" aria-expanded=\"true\" aria-controls=\"fb-pgv-collapse1\">\r\n                                    Is it legal to use this Facebook Page Viewer?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"fb-pgv-collapse1\" class=\"accordion-collapse collapse show\" aria-labelledby=\"fb-pgv-heading1\" data-bs-parent=\"#fb-pgv-faqAccordion\">\r\n                                <div class=\"fb-pgv-accordion-body\">\r\n                                    Yes, our tool is completely legal to use. It only allows you to view publicly\r\n                                    available Facebook pages. We don't access private content or bypass any security\r\n                                    measures - we simply display content that's already publicly accessible on Facebook.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"fb-pgv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                            <h3 class=\"accordion-header\" id=\"fb-pgv-heading2\">\r\n                                <button class=\"fb-pgv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#fb-pgv-collapse2\" aria-expanded=\"false\" aria-controls=\"fb-pgv-collapse2\">\r\n                                    Can I view private Facebook pages?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"fb-pgv-collapse2\" class=\"accordion-collapse collapse\" aria-labelledby=\"fb-pgv-heading2\" data-bs-parent=\"#fb-pgv-faqAccordion\">\r\n                                <div class=\"fb-pgv-accordion-body\">\r\n                                    No, our tool respects Facebook's privacy settings. We can only display pages and\r\n                                    content that are set to public. If a page is private, our viewer cannot access it.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"fb-pgv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                            <h3 class=\"accordion-header\" id=\"fb-pgv-heading3\">\r\n                                <button class=\"fb-pgv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#fb-pgv-collapse3\" aria-expanded=\"false\" aria-controls=\"fb-pgv-collapse3\">\r\n                                    Will Facebook know I viewed the page?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"fb-pgv-collapse3\" class=\"accordion-collapse collapse\" aria-labelledby=\"fb-pgv-heading3\" data-bs-parent=\"#fb-pgv-faqAccordion\">\r\n                                <div class=\"fb-pgv-accordion-body\">\r\n                                    No, all viewing is completely anonymous. When you use our tool, Facebook doesn't\r\n                                    register that you've viewed the page. The page owner won't know you accessed their\r\n                                    content.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"fb-pgv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                            <h3 class=\"accordion-header\" id=\"fb-pgv-heading4\">\r\n                                <button class=\"fb-pgv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#fb-pgv-collapse4\" aria-expanded=\"false\" aria-controls=\"fb-pgv-collapse4\">\r\n                                    Do I need to install software to use this?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"fb-pgv-collapse4\" class=\"accordion-collapse collapse\" aria-labelledby=\"fb-pgv-heading4\" data-bs-parent=\"#fb-pgv-faqAccordion\">\r\n                                <div class=\"fb-pgv-accordion-body\">\r\n                                    No, our Facebook Page Viewer is completely web-based. You don't need to download or\r\n                                    install any software. Simply visit our website, enter the page URL, and view the\r\n                                    content directly in your browser.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"fb-pgv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                            <h3 class=\"accordion-header\" id=\"fb-pgv-heading5\">\r\n                                <button class=\"fb-pgv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#fb-pgv-collapse5\" aria-expanded=\"false\" aria-controls=\"fb-pgv-collapse5\">\r\n                                    Can I see who viewed my Facebook page?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"fb-pgv-collapse5\" class=\"accordion-collapse collapse\" aria-labelledby=\"fb-pgv-heading5\" data-bs-parent=\"#fb-pgv-faqAccordion\">\r\n                                <div class=\"fb-pgv-accordion-body\">\r\n                                    No, Facebook doesn't provide this functionality to page owners. Our tool doesn't\r\n                                    track who views pages either - we're completely focused on anonymous viewing.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n  \r\n    <!-- Scripts -->\r\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\r\n    <script src=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.js\"><\/script>\r\n\r\n\r\n    <!-- Facebook Page viewer -->\r\n  <script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n  <script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n    <script>\r\n        \/\/ Global variables\r\n        let currentUrl = '';\r\n        let currentType = ''; \/\/ 'profile' only\r\n        let profileData = null;\r\n        let currentPhotoData = null;\r\n        let currentUsername = '';\r\n        let downloadAbortController = null;\r\n\r\n        \/\/ Caching variables for videos and reels\r\n        let cachedVideos = null;\r\n        let cachedReels = null;\r\n        let currentCachedUsername = null;\r\n\r\n        \/\/ URL Detection and Analysis\r\n        function detectUrlType(url) {\r\n            const cleanUrl = url.toLowerCase().replace(\/^https?:\\\/\\\/(www\\.)?\/, '');\r\n\r\n            if (cleanUrl.includes('facebook.com\/') && !cleanUrl.includes('\/groups\/')) {\r\n                \/\/ Profile detection\r\n                if (cleanUrl.match(\/facebook\\.com\\\/[^\\\/]+\\\/?$\/) ||\r\n                    cleanUrl.includes('\/profile.php?id=') ||\r\n                    cleanUrl.includes('\/people\/')) {\r\n                    return 'profile';\r\n                }\r\n            }\r\n\r\n            return 'unknown';\r\n        }\r\n\r\n        function analyzeUrl(event) {\r\n            event.preventDefault();\r\n\r\n            const url = document.getElementById('urlInput').value.trim();\r\n            if (!url) return;\r\n\r\n            currentUrl = url;\r\n            currentType = detectUrlType(url);\r\n\r\n            \/\/ Clear previous data\r\n            clearAllData();\r\n\r\n            \/\/ Show loading\r\n            document.getElementById('loadingSection').style.display = 'block';\r\n            document.getElementById('profileContent').style.display = 'none';\r\n            document.getElementById('errorMessage').style.display = 'none';\r\n\r\n            const analyzeBtn = document.getElementById('analyzeBtn');\r\n            analyzeBtn.disabled = true;\r\n            analyzeBtn.innerHTML = '<span>Analyzing...<\/span>';\r\n\r\n            if (currentType === 'profile') {\r\n                currentUsername = extractUsernameFromUrl(url);\r\n                fetchProfileData(url);\r\n            } else {\r\n                showError('Please enter a valid Facebook profile or page URL');\r\n                hideLoading();\r\n            }\r\n        }\r\n\r\n        function clearAllData() {\r\n            \/\/ Reset profile variables\r\n            profileData = null;\r\n            currentPhotoData = null;\r\n            currentUsername = '';\r\n\r\n            \/\/ Clear containers\r\n            document.getElementById('profileContent').innerHTML = '';\r\n\r\n            \/\/ Clear cache\r\n            clearCache();\r\n        }\r\n\r\n        \/\/ Function to clear cache when searching for a new profile\r\n        function clearCache() {\r\n            cachedVideos = null;\r\n            cachedReels = null;\r\n            currentCachedUsername = null;\r\n            console.log('Cache cleared for new profile search');\r\n        }\r\n\r\n        function hideLoading() {\r\n            document.getElementById('loadingSection').style.display = 'none';\r\n            const analyzeBtn = document.getElementById('analyzeBtn');\r\n            analyzeBtn.disabled = false;\r\n            analyzeBtn.innerHTML = '<span>Analyze<\/span>';\r\n        }\r\n\r\n        function showError(message) {\r\n            const errorDiv = document.getElementById('errorMessage');\r\n            errorDiv.textContent = message;\r\n            errorDiv.style.display = 'block';\r\n            hideLoading();\r\n        }\r\n\r\n        \/\/ Profile Functions\r\n        function extractUsernameFromUrl(url) {\r\n            try {\r\n                let cleanUrl = url.replace(\/^https?:\\\/\\\/(www\\.)?\/, '');\r\n                cleanUrl = cleanUrl.replace(\/^facebook\\.com\\\/\/, '');\r\n\r\n                \/\/ Handle profile.php?id= format\r\n                if (cleanUrl.includes('profile.php?id=')) {\r\n                    const match = cleanUrl.match(\/profile\\.php\\?id=(\\d+)\/);\r\n                    return match ? match[1] : '';\r\n                }\r\n\r\n                \/\/ Handle people\/ format\r\n                if (cleanUrl.includes('people\/')) {\r\n                    const match = cleanUrl.match(\/people\\\/([^\\\/]+)\\\/(\\d+)\/);\r\n                    return match ? match[2] : '';\r\n                }\r\n\r\n                \/\/ Handle regular username format\r\n                cleanUrl = cleanUrl.split('\/')[0];\r\n                cleanUrl = cleanUrl.split('?')[0];\r\n                return cleanUrl;\r\n            } catch (error) {\r\n                console.error('Error extracting username:', error);\r\n                return '';\r\n            }\r\n        }\r\n\r\n        async function fetchProfileData(url) {\r\n            try {\r\n                const response = await fetch('https:\/\/tools.xrespond.com\/api\/facebook\/all-details', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: url })\r\n                });\r\n\r\n                if (!response.ok) {\r\n                    throw new Error('Network response was not ok');\r\n                }\r\n\r\n                const data = await response.json();\r\n\r\n                if (data.status === 'success') {\r\n                    processProfileData(data.data);\r\n                } else {\r\n                    showError('Failed to load profile data: ' + (data.message || 'Unknown error'));\r\n                }\r\n\r\n            } catch (error) {\r\n                console.error('Profile fetch error:', error);\r\n                showError('Error fetching profile data: ' + error.message);\r\n            }\r\n        }\r\n\r\n        function processProfileData(data) {\r\n            try {\r\n                profileData = parseProfileData(data);\r\n                displayProfileData(profileData);\r\n                hideLoading();\r\n                document.getElementById('profileContent').style.display = 'block';\r\n            } catch (error) {\r\n                showError('Error processing profile data: ' + error.message);\r\n                console.error('Processing Error:', error);\r\n            }\r\n        }\r\n\r\n        function parseProfileData(data) {\r\n            const profileData = {\r\n                basicInfo: extractBasicProfileInfo(data),\r\n                aboutInfo: extractAboutInfo(data),\r\n                photos: extractProfilePhotos(data),\r\n                posts: extractPosts(data),\r\n                videos: extractVideos(data),\r\n                reels: extractReels(data)\r\n            };\r\n\r\n            return profileData;\r\n        }\r\n\r\n        function extractBasicProfileInfo(data) {\r\n            const basicInfo = {\r\n                name: '',\r\n                profilePicture: '',\r\n                coverPhoto: '',\r\n                stats: [],\r\n                isVerified: false\r\n            };\r\n\r\n            try {\r\n                \/\/ Find user data in the response\r\n                for (const item of data.data) {\r\n\r\n                    \/\/ Look for user profile header data\r\n                    if (item.result &&\r\n                        item.result.data &&\r\n                        item.result.data.user &&\r\n                        item.result.data.user.profile_header_renderer &&\r\n                        item.result.data.user.profile_header_renderer.user) {\r\n\r\n                        const userData = item.result.data.user.profile_header_renderer.user;\r\n\r\n                        \/\/ Extract name\r\n                        basicInfo.name = userData.name || 'Unknown Name';\r\n\r\n                        \/\/ Check if verified\r\n                        basicInfo.isVerified = userData.show_verified_badge_on_profile || false;\r\n\r\n                        \/\/ Extract profile picture\r\n                        if (userData.profilePicLarge && userData.profilePicLarge.uri) {\r\n                            basicInfo.profilePicture = userData.profilePicLarge.uri;\r\n                        }\r\n\r\n                        \/\/ Extract cover photo\r\n                        if (userData.cover_photo && userData.cover_photo.photo && userData.cover_photo.photo.image) {\r\n                            basicInfo.coverPhoto = userData.cover_photo.photo.image.uri;\r\n                        }\r\n\r\n                        \/\/ Extract stats (followers, following, etc.)\r\n                        if (userData.profile_social_context && userData.profile_social_context.content) {\r\n                            userData.profile_social_context.content.forEach(item => {\r\n                                if (item.text && item.text.text) {\r\n                                    basicInfo.stats.push(item.text.text);\r\n                                }\r\n                            });\r\n                        }\r\n\r\n                        break;\r\n                    }\r\n                }\r\n            } catch (error) {\r\n                console.error('Error extracting basic info:', error);\r\n            }\r\n\r\n\r\n            return basicInfo;\r\n        }\r\n\r\n        function extractAboutInfo(data) {\r\n            const aboutInfo = {\r\n                bio: '',\r\n                work: [],\r\n                education: [],\r\n                places: [],\r\n                contact: [],\r\n                basic: []\r\n            };\r\n\r\n            try {\r\n                function searchForAboutData(obj) {\r\n                    if (!obj || typeof obj !== 'object') return;\r\n\r\n                    \/\/ Look for bio\/description\r\n                    if (obj.bio && typeof obj.bio === 'string') {\r\n                        aboutInfo.bio = obj.bio;\r\n                    }\r\n\r\n                    \/\/ Look for work information\r\n                    if (obj.work && Array.isArray(obj.work)) {\r\n                        aboutInfo.work = obj.work;\r\n                    } else if (obj.employer && obj.position) {\r\n                        aboutInfo.work.push({\r\n                            employer: obj.employer,\r\n                            position: obj.position\r\n                        });\r\n                    }\r\n\r\n                    \/\/ Look for education\r\n                    if (obj.education && Array.isArray(obj.education)) {\r\n                        aboutInfo.education = obj.education;\r\n                    } else if (obj.school) {\r\n                        aboutInfo.education.push({\r\n                            school: obj.school,\r\n                            type: obj.type || 'Education'\r\n                        });\r\n                    }\r\n\r\n                    \/\/ Recursively search\r\n                    for (const key in obj) {\r\n                        if (typeof obj[key] === 'object') {\r\n                            searchForAboutData(obj[key]);\r\n                        }\r\n                    }\r\n                }\r\n\r\n                searchForAboutData(data);\r\n\r\n            } catch (error) {\r\n                console.error('Error extracting about info:', error);\r\n            }\r\n\r\n            return aboutInfo;\r\n        }\r\n\r\n        function extractProfilePhotos(data) {\r\n            const photos = [];\r\n\r\n            try {\r\n                console.log('Extracting profile photos from data:', data);\r\n\r\n                \/\/ Use the same image extraction logic as groups but filter for profile-specific images\r\n                const allImages = extractAllImages(data);\r\n                console.log('All images found:', allImages.length);\r\n\r\n                \/\/ Filter out very small images (likely thumbnails) and duplicates\r\n                const filteredImages = allImages.filter(img => {\r\n                    return img.width > 80 && img.height > 80; \/\/ Only filter out very small images\r\n                });\r\n                console.log('Filtered images:', filteredImages.length);\r\n\r\n                filteredImages.forEach((img, index) => {\r\n                    photos.push({\r\n                        id: `photo-${index}`,\r\n                        url: img.uri,\r\n                        width: img.width || 0,\r\n                        height: img.height || 0,\r\n                        likes: Math.floor(Math.random() * 100), \/\/ Placeholder\r\n                        comments: Math.floor(Math.random() * 50), \/\/ Placeholder\r\n                        created_time: new Date().toISOString(),\r\n                        quality: img.quality || 0\r\n                    });\r\n                });\r\n\r\n                \/\/ Also search for specific photo structures\r\n                function searchForPhotos(obj) {\r\n                    if (!obj || typeof obj !== 'object') return;\r\n\r\n                    if (obj.photos && Array.isArray(obj.photos)) {\r\n                        obj.photos.forEach(photo => {\r\n                            if (photo.image && photo.image.uri) {\r\n                                photos.push({\r\n                                    id: photo.id || Math.random().toString(36),\r\n                                    url: photo.image.uri,\r\n                                    width: photo.image.width || 0,\r\n                                    height: photo.image.height || 0,\r\n                                    likes: photo.feedback ? photo.feedback.like_count : 0,\r\n                                    comments: photo.feedback ? photo.feedback.comment_count : 0,\r\n                                    created_time: photo.created_time || new Date().toISOString()\r\n                                });\r\n                            }\r\n                        });\r\n                    }\r\n\r\n                    \/\/ Look for media in posts\r\n                    if (obj.attachments && Array.isArray(obj.attachments)) {\r\n                        obj.attachments.forEach(attachment => {\r\n                            if (attachment.media && attachment.media.image) {\r\n                                photos.push({\r\n                                    id: Math.random().toString(36),\r\n                                    url: attachment.media.image.src,\r\n                                    width: attachment.media.image.width || 0,\r\n                                    height: attachment.media.image.height || 0,\r\n                                    likes: 0,\r\n                                    comments: 0,\r\n                                    created_time: new Date().toISOString()\r\n                                });\r\n                            }\r\n                        });\r\n                    }\r\n\r\n                    \/\/ Recursively search\r\n                    for (const key in obj) {\r\n                        if (typeof obj[key] === 'object') {\r\n                            searchForPhotos(obj[key]);\r\n                        }\r\n                    }\r\n                }\r\n\r\n                searchForPhotos(data);\r\n\r\n            } catch (error) {\r\n                console.error('Error extracting profile photos:', error);\r\n            }\r\n\r\n            \/\/ Remove duplicates based on URL\r\n            const uniquePhotos = [];\r\n            const seenUrls = new Set();\r\n\r\n            photos.forEach(photo => {\r\n                if (!seenUrls.has(photo.url)) {\r\n                    seenUrls.add(photo.url);\r\n                    uniquePhotos.push(photo);\r\n                }\r\n            });\r\n\r\n            console.log('Final unique photos found:', uniquePhotos.length);\r\n            return uniquePhotos.slice(0, 50); \/\/ Limit to 50 photos\r\n        }\r\n\r\n        function extractPosts(data) {\r\n            const posts = [];\r\n\r\n            try {\r\n                \/\/ Find posts data in the response\r\n                for (const item of data.data) {\r\n                    \/\/ Look for timeline feed data\r\n                    if (item.result &&\r\n                        item.result.data &&\r\n                        item.result.data.user &&\r\n                        item.result.data.user.timeline_list_feed_units &&\r\n                        item.result.data.user.timeline_list_feed_units.edges) {\r\n\r\n                        const edges = item.result.data.user.timeline_list_feed_units.edges;\r\n\r\n                        \/\/ Process each edge\r\n                        edges.forEach(edge => {\r\n                            if (edge.node &&\r\n                                edge.node.__typename === \"Story\" &&\r\n                                edge.node.comet_sections &&\r\n                                edge.node.comet_sections.content &&\r\n                                edge.node.comet_sections.content.story) {\r\n\r\n                                const story = edge.node.comet_sections.content.story;\r\n\r\n                                \/\/ Extract post data\r\n                                const post = {\r\n                                    id: edge.node.post_id || edge.node.id || '',\r\n                                    author: {\r\n                                        name: '',\r\n                                        profilePicture: ''\r\n                                    },\r\n                                    creationTime: 0,\r\n                                    message: '',\r\n                                    attachments: [],\r\n                                    stats: {\r\n                                        likes: 0,\r\n                                        comments: 0,\r\n                                        shares: 0\r\n                                    }\r\n                                };\r\n\r\n                                \/\/ Extract creation time\r\n                                if (edge.node.comet_sections.context_layout &&\r\n                                    edge.node.comet_sections.context_layout.story) {\r\n                                    post.creationTime = edge.node.comet_sections.context_layout.story.creation_time || 0;\r\n                                }\r\n\r\n                                \/\/ Extract message\r\n                                if (story.message && story.message.text) {\r\n                                    post.message = story.message.text;\r\n                                }\r\n\r\n                                \/\/ Extract author info\r\n                                if (story.actors && story.actors.length > 0) {\r\n                                    post.author.name = story.actors[0].name || '';\r\n\r\n                                    \/\/ Look for profile picture in different locations\r\n                                    if (story.actors[0].profile_picture) {\r\n                                        post.author.profilePicture = story.actors[0].profile_picture.uri;\r\n                                    } else if (edge.node.comet_sections.context_layout &&\r\n                                        edge.node.comet_sections.context_layout.story &&\r\n                                        edge.node.comet_sections.context_layout.story.comet_sections &&\r\n                                        edge.node.comet_sections.context_layout.story.comet_sections.actor_photo) {\r\n                                        const actorPhoto = edge.node.comet_sections.context_layout.story.comet_sections.actor_photo;\r\n                                        if (actorPhoto.story && actorPhoto.story.actors && actorPhoto.story.actors[0] && actorPhoto.story.actors[0].profile_picture) {\r\n                                            post.author.profilePicture = actorPhoto.story.actors[0].profile_picture.uri;\r\n                                        }\r\n                                    }\r\n                                }\r\n\r\n                                \/\/ Extract attachments\r\n                                if (story.attachments && story.attachments.length > 0) {\r\n                                    story.attachments.forEach(attachment => {\r\n                                        if (attachment.styles &&\r\n                                            attachment.styles.attachment &&\r\n                                            attachment.styles.attachment.media) {\r\n\r\n                                            const media = attachment.styles.attachment.media;\r\n\r\n                                            if (media.__typename === 'Photo' && media.image) {\r\n                                                post.attachments.push({\r\n                                                    type: 'photo',\r\n                                                    uri: media.image.uri,\r\n                                                    width: media.image.width || 0,\r\n                                                    height: media.image.height || 0\r\n                                                });\r\n                                            } else if (media.__typename === 'Video' && media.thumbnailImage) {\r\n                                                post.attachments.push({\r\n                                                    type: 'video',\r\n                                                    thumbnailUri: media.thumbnailImage.uri,\r\n                                                    width: media.width || 0,\r\n                                                    height: media.height || 0,\r\n                                                    duration: media.playable_duration_in_ms || 0\r\n                                                });\r\n                                            }\r\n                                        }\r\n                                    });\r\n                                }\r\n\r\n                                \/\/ Extract stats\r\n                                if (story.feedback &&\r\n                                    story.feedback.story_ufi_container &&\r\n                                    story.feedback.story_ufi_container.feedback) {\r\n\r\n                                    const feedback = story.feedback.story_ufi_container.feedback;\r\n\r\n                                    \/\/ Likes\r\n                                    if (feedback.reaction_count && feedback.reaction_count.count) {\r\n                                        post.stats.likes = feedback.reaction_count.count;\r\n                                    } else if (feedback.i18n_reaction_count) {\r\n                                        \/\/ Try to parse from i18n format (e.g., \"19K\")\r\n                                        const match = feedback.i18n_reaction_count.match(\/(\\d+)([KM])?\/);\r\n                                        if (match) {\r\n                                            let count = parseInt(match[1]);\r\n                                            if (match[2] === 'K') count *= 1000;\r\n                                            if (match[2] === 'M') count *= 1000000;\r\n                                            post.stats.likes = count;\r\n                                        }\r\n                                    }\r\n\r\n                                    \/\/ Comments\r\n                                    if (feedback.comment_rendering_instance &&\r\n                                        feedback.comment_rendering_instance.comments &&\r\n                                        feedback.comment_rendering_instance.comments.total_count) {\r\n\r\n                                        post.stats.comments = feedback.comment_rendering_instance.comments.total_count;\r\n                                    }\r\n\r\n                                    \/\/ Shares\r\n                                    if (feedback.share_count && feedback.share_count.count) {\r\n                                        post.stats.shares = feedback.share_count.count;\r\n                                    } else if (feedback.i18n_share_count) {\r\n                                        \/\/ Try to parse from i18n format (e.g., \"2.8K\")\r\n                                        const match = feedback.i18n_share_count.match(\/(\\d+(\\.\\d+)?)([KM])?\/);\r\n                                        if (match) {\r\n                                            let count = parseFloat(match[1]);\r\n                                            if (match[3] === 'K') count *= 1000;\r\n                                            if (match[3] === 'M') count *= 1000000;\r\n                                            post.stats.shares = Math.round(count);\r\n                                        }\r\n                                    }\r\n                                }\r\n\r\n                                posts.push(post);\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n            } catch (error) {\r\n                console.error('Error extracting posts:', error);\r\n            }\r\n\r\n            return posts;\r\n        }\r\n\r\n        \/\/ Function to extract videos (from profile data - legacy)\r\n        function extractVideos(data) {\r\n            const videos = [];\r\n\r\n            try {\r\n                \/\/ Look for videos in timeline feed units\r\n                for (const item of data.data) {\r\n                    if (item.result &&\r\n                        item.result.data &&\r\n                        item.result.data.user &&\r\n                        item.result.data.user.timeline_list_feed_units &&\r\n                        item.result.data.user.timeline_list_feed_units.edges) {\r\n\r\n                        const edges = item.result.data.user.timeline_list_feed_units.edges;\r\n\r\n                        edges.forEach(edge => {\r\n                            if (edge.node &&\r\n                                edge.node.__typename === \"Story\" &&\r\n                                edge.node.comet_sections &&\r\n                                edge.node.comet_sections.content &&\r\n                                edge.node.comet_sections.content.story &&\r\n                                edge.node.comet_sections.content.story.attachments) {\r\n\r\n                                const story = edge.node.comet_sections.content.story;\r\n\r\n                                story.attachments.forEach(attachment => {\r\n                                    if (attachment.styles &&\r\n                                        attachment.styles.attachment &&\r\n                                        attachment.styles.attachment.media &&\r\n                                        attachment.styles.attachment.media.__typename === 'Video') {\r\n\r\n                                        const media = attachment.styles.attachment.media;\r\n\r\n                                        \/\/ Skip reels for the videos section\r\n                                        if (media.is_huddle ||\r\n                                            media.is_soundbites_video ||\r\n                                            media.is_looping ||\r\n                                            (story.message &&\r\n                                                story.message.text &&\r\n                                                story.message.text.toLowerCase().includes('reel'))) {\r\n                                            return;\r\n                                        }\r\n\r\n                                        \/\/ Get thumbnail\r\n                                        let thumbnailUri = '';\r\n                                        if (media.thumbnailImage) {\r\n                                            thumbnailUri = media.thumbnailImage.uri;\r\n                                        } else if (media.preferred_thumbnail && media.preferred_thumbnail.image) {\r\n                                            thumbnailUri = media.preferred_thumbnail.image.uri;\r\n                                        }\r\n\r\n                                        \/\/ Get playable URL from media object\r\n                                        let videoUrl = media.playable_url || '';\r\n\r\n                                        \/\/ Get creation time\r\n                                        let creationTime = 0;\r\n                                        if (story.creation_time) {\r\n                                            creationTime = story.creation_time;\r\n                                        } else if (edge.node.comet_sections.context_layout &&\r\n                                            edge.node.comet_sections.context_layout.story) {\r\n                                            creationTime = edge.node.comet_sections.context_layout.story.creation_time || 0;\r\n                                        } else if (media.publish_time) {\r\n                                            creationTime = media.publish_time;\r\n                                        }\r\n\r\n                                        \/\/ Get title\r\n                                        let title = 'Video';\r\n                                        if (story.message && story.message.text) {\r\n                                            const lines = story.message.text.split('\\n');\r\n                                            title = lines[0].trim();\r\n                                        }\r\n\r\n                                        \/\/ Get stats\r\n                                        let likes = 0;\r\n                                        let views = 0;\r\n\r\n                                        if (story.feedback &&\r\n                                            story.feedback.story_ufi_container &&\r\n                                            story.feedback.story_ufi_container.feedback) {\r\n\r\n                                            const feedback = story.feedback.story_ufi_container.feedback;\r\n\r\n                                            \/\/ Likes\r\n                                            if (feedback.reaction_count && feedback.reaction_count.count) {\r\n                                                likes = feedback.reaction_count.count;\r\n                                            } else if (feedback.i18n_reaction_count) {\r\n                                                \/\/ Try to parse from i18n format (e.g., \"19K\")\r\n                                                const match = feedback.i18n_reaction_count.match(\/(\\d+)([KM])?\/);\r\n                                                if (match) {\r\n                                                    let count = parseInt(match[1]);\r\n                                                    if (match[2] === 'K') count *= 1000;\r\n                                                    if (match[2] === 'M') count *= 1000000;\r\n                                                    likes = count;\r\n                                                }\r\n                                            }\r\n\r\n                                            \/\/ Views\r\n                                            if (feedback.video_view_count) {\r\n                                                views = feedback.video_view_count;\r\n                                            }\r\n                                        }\r\n\r\n                                        \/\/ If we have video view count directly on the media\r\n                                        if (media.video_view_count) {\r\n                                            views = media.video_view_count;\r\n                                        }\r\n\r\n                                        videos.push({\r\n                                            id: media.id || edge.node.post_id || edge.node.id || '',\r\n                                            title: title,\r\n                                            description: story.message && story.message.text ? story.message.text : '',\r\n                                            thumbnailUri: thumbnailUri,\r\n                                            videoUrl: videoUrl,\r\n                                            width: media.width || 0,\r\n                                            height: media.height || 0,\r\n                                            duration: media.playable_duration_in_ms || 0,\r\n                                            creationTime: creationTime,\r\n                                            stats: {\r\n                                                likes: likes,\r\n                                                views: views\r\n                                            }\r\n                                        });\r\n                                    }\r\n                                });\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n\r\n            } catch (error) {\r\n                console.error('Error extracting videos:', error);\r\n            }\r\n\r\n            return videos;\r\n        }\r\n\r\n        \/\/ Enhanced function to extract videos from API response\r\n        function extractVideosFromAPI(data) {\r\n            const videos = [];\r\n\r\n            try {\r\n                console.log('Full API response for videos:', data);\r\n\r\n                if (data && data.data && Array.isArray(data.data)) {\r\n                    for (const item of data.data) {\r\n                        \/\/ Check for latest_videos structure\r\n                        if (item.result &&\r\n                            item.result.data &&\r\n                            item.result.data.latest_videos &&\r\n                            item.result.data.latest_videos.edges) {\r\n\r\n                            const edges = item.result.data.latest_videos.edges;\r\n                            console.log('Found latest_videos edges:', edges);\r\n\r\n                            edges.forEach(edge => {\r\n                                if (edge.node) {\r\n                                    const videoNode = edge.node;\r\n\r\n                                    \/\/ Extract basic video info\r\n                                    const videoData = {\r\n                                        id: videoNode.id || '',\r\n                                        title: 'Video',\r\n                                        description: '',\r\n                                        thumbnailUri: '',\r\n                                        videoUrl: '',\r\n                                        width: 0,\r\n                                        height: 0,\r\n                                        duration: 0,\r\n                                        creationTime: videoNode.publish_time || 0,\r\n                                        stats: {\r\n                                            likes: 0,\r\n                                            views: videoNode.play_count || 0\r\n                                        }\r\n                                    };\r\n\r\n                                    \/\/ Extract thumbnail\r\n                                    if (videoNode.image && videoNode.image.uri) {\r\n                                        videoData.thumbnailUri = videoNode.image.uri;\r\n                                    }\r\n\r\n                                    \/\/ Extract title from savable_title\r\n                                    if (videoNode.savable_title && videoNode.savable_title.text) {\r\n                                        videoData.title = videoNode.savable_title.text;\r\n                                    }\r\n\r\n                                    \/\/ Extract duration\r\n                                    if (videoNode.video_thumbnail_overlays_renderer &&\r\n                                        videoNode.video_thumbnail_overlays_renderer.video &&\r\n                                        videoNode.video_thumbnail_overlays_renderer.video.playable_duration_in_ms) {\r\n                                        videoData.duration = videoNode.video_thumbnail_overlays_renderer.video.playable_duration_in_ms;\r\n                                    }\r\n\r\n                                    \/\/ Extract video URL and other details from creation_story\r\n                                    if (videoNode.creation_story && videoNode.creation_story.attachments) {\r\n                                        videoNode.creation_story.attachments.forEach(attachment => {\r\n                                            if (attachment.target && attachment.target.__typename === 'Video') {\r\n                                                const target = attachment.target;\r\n\r\n                                                \/\/ Get playable URL\r\n                                                if (target.playable_url) {\r\n                                                    videoData.videoUrl = target.playable_url;\r\n                                                }\r\n\r\n                                                \/\/ Get dimensions\r\n                                                if (target.width) videoData.width = target.width;\r\n                                                if (target.height) videoData.height = target.height;\r\n\r\n                                                \/\/ Get thumbnail if not already found\r\n                                                if (!videoData.thumbnailUri && target.image && target.image.uri) {\r\n                                                    videoData.thumbnailUri = target.image.uri;\r\n                                                }\r\n                                            }\r\n                                        });\r\n\r\n                                        \/\/ Extract message\/description\r\n                                        if (videoNode.creation_story.message && videoNode.creation_story.message.text) {\r\n                                            videoData.description = videoNode.creation_story.message.text;\r\n                                            \/\/ Use first line as title if no title found\r\n                                            if (videoData.title === 'Video') {\r\n                                                const lines = videoData.description.split('\\n');\r\n                                                videoData.title = lines[0].trim() || 'Video';\r\n                                            }\r\n                                        }\r\n                                    }\r\n\r\n                                    \/\/ Extract reaction stats\r\n                                    if (videoNode.feedback && videoNode.feedback.reaction_count) {\r\n                                        videoData.stats.likes = videoNode.feedback.reaction_count.count || 0;\r\n                                    }\r\n\r\n                                    \/\/ Only add if we have essential data\r\n                                    if (videoData.thumbnailUri || videoData.videoUrl) {\r\n                                        console.log('Adding video:', videoData);\r\n                                        videos.push(videoData);\r\n                                    }\r\n                                }\r\n                            });\r\n                        }\r\n\r\n                        \/\/ Also check for all_videos structure (alternative format)\r\n                        if (item.result &&\r\n                            item.result.data &&\r\n                            item.result.data.all_videos &&\r\n                            item.result.data.all_videos.edges) {\r\n\r\n                            const edges = item.result.data.all_videos.edges;\r\n                            console.log('Found all_videos edges:', edges);\r\n\r\n                            edges.forEach(edge => {\r\n                                if (edge.node && edge.node.channel_tab_thumbnail_renderer) {\r\n                                    const videoNode = edge.node.channel_tab_thumbnail_renderer.video;\r\n\r\n                                    \/\/ Extract basic video info\r\n                                    const videoData = {\r\n                                        id: videoNode.id || '',\r\n                                        title: 'Video',\r\n                                        description: '',\r\n                                        thumbnailUri: '',\r\n                                        videoUrl: '',\r\n                                        width: 0,\r\n                                        height: 0,\r\n                                        duration: 0,\r\n                                        creationTime: videoNode.publish_time || 0,\r\n                                        stats: {\r\n                                            likes: 0,\r\n                                            views: videoNode.play_count || 0\r\n                                        }\r\n                                    };\r\n\r\n                                    \/\/ Extract thumbnail\r\n                                    if (videoNode.image && videoNode.image.uri) {\r\n                                        videoData.thumbnailUri = videoNode.image.uri;\r\n                                    }\r\n\r\n                                    \/\/ Extract title from savable_title\r\n                                    if (videoNode.savable_title && videoNode.savable_title.text) {\r\n                                        videoData.title = videoNode.savable_title.text;\r\n                                    }\r\n\r\n                                    \/\/ Extract duration\r\n                                    if (videoNode.video_thumbnail_overlays_renderer &&\r\n                                        videoNode.video_thumbnail_overlays_renderer.video &&\r\n                                        videoNode.video_thumbnail_overlays_renderer.video.playable_duration_in_ms) {\r\n                                        videoData.duration = videoNode.video_thumbnail_overlays_renderer.video.playable_duration_in_ms;\r\n                                    }\r\n\r\n                                    \/\/ Extract video URL and other details from creation_story\r\n                                    if (videoNode.creation_story && videoNode.creation_story.attachments) {\r\n                                        videoNode.creation_story.attachments.forEach(attachment => {\r\n                                            if (attachment.target && attachment.target.__typename === 'Video') {\r\n                                                const target = attachment.target;\r\n\r\n                                                \/\/ Get playable URL\r\n                                                if (target.playable_url) {\r\n                                                    videoData.videoUrl = target.playable_url;\r\n                                                }\r\n\r\n                                                \/\/ Get dimensions\r\n                                                if (target.width) videoData.width = target.width;\r\n                                                if (target.height) videoData.height = target.height;\r\n\r\n                                                \/\/ Get thumbnail if not already found\r\n                                                if (!videoData.thumbnailUri && target.image && target.image.uri) {\r\n                                                    videoData.thumbnailUri = target.image.uri;\r\n                                                }\r\n                                            }\r\n                                        });\r\n\r\n                                        \/\/ Extract message\/description\r\n                                        if (videoNode.creation_story.message && videoNode.creation_story.message.text) {\r\n                                            videoData.description = videoNode.creation_story.message.text;\r\n                                            \/\/ Use first line as title if no title found\r\n                                            if (videoData.title === 'Video') {\r\n                                                const lines = videoData.description.split('\\n');\r\n                                                videoData.title = lines[0].trim() || 'Video';\r\n                                            }\r\n                                        }\r\n                                    }\r\n\r\n                                    \/\/ Extract reaction stats\r\n                                    if (videoNode.feedback && videoNode.feedback.reaction_count) {\r\n                                        videoData.stats.likes = videoNode.feedback.reaction_count.count || 0;\r\n                                    }\r\n\r\n                                    \/\/ Only add if we have essential data\r\n                                    if (videoData.thumbnailUri || videoData.videoUrl) {\r\n                                        console.log('Adding video:', videoData);\r\n                                        videos.push(videoData);\r\n                                    }\r\n                                }\r\n                            });\r\n                        }\r\n                    }\r\n                }\r\n\r\n                console.log('Final extracted videos:', videos);\r\n\r\n            } catch (error) {\r\n                console.error('Error extracting videos from API:', error);\r\n            }\r\n\r\n            return videos;\r\n        }\r\n\r\n        \/\/ Function to extract reels\r\n        function extractReels(data) {\r\n            const reels = [];\r\n\r\n            try {\r\n                console.log('Full API response for reels:', data);\r\n\r\n                if (data && data.data && Array.isArray(data.data)) {\r\n                    for (const item of data.data) {\r\n                        \/\/ Look for reels in the main data structure\r\n                        if (item.result &&\r\n                            item.result.data &&\r\n                            item.result.data.node &&\r\n                            item.result.data.node.all_collections &&\r\n                            item.result.data.node.all_collections.nodes) {\r\n\r\n                            const collections = item.result.data.node.all_collections.nodes;\r\n\r\n                            for (const collection of collections) {\r\n                                if (collection.style_renderer &&\r\n                                    collection.style_renderer.collection &&\r\n                                    collection.style_renderer.collection.aggregated_fb_shorts &&\r\n                                    collection.style_renderer.collection.aggregated_fb_shorts.edges) {\r\n\r\n                                    const reelsEdges = collection.style_renderer.collection.aggregated_fb_shorts.edges;\r\n                                    console.log('Found reels edges:', reelsEdges);\r\n\r\n                                    reelsEdges.forEach(edge => {\r\n                                        if (edge.profile_reel_node && edge.profile_reel_node.node) {\r\n                                            const reelNode = edge.profile_reel_node.node;\r\n                                            console.log('Processing reel node:', reelNode);\r\n\r\n                                            const reelData = {\r\n                                                id: reelNode.id || '',\r\n                                                thumbnailUri: '',\r\n                                                videoUrl: '',\r\n                                                duration: 0,\r\n                                                title: 'Reel',\r\n                                                views: 0,\r\n                                                creationTime: reelNode.creation_time || 0\r\n                                            };\r\n\r\n                                            \/\/ Extract video data from short_form_video_context\r\n                                            if (reelNode.short_form_video_context &&\r\n                                                reelNode.short_form_video_context.playback_video) {\r\n\r\n                                                const video = reelNode.short_form_video_context.playback_video;\r\n\r\n                                                \/\/ Extract thumbnail\r\n                                                if (video.thumbnailImage && video.thumbnailImage.uri) {\r\n                                                    reelData.thumbnailUri = video.thumbnailImage.uri;\r\n                                                }\r\n\r\n                                                \/\/ Extract video URLs from videoDeliveryLegacyFields\r\n                                                if (video.videoDeliveryLegacyFields) {\r\n                                                    const delivery = video.videoDeliveryLegacyFields;\r\n\r\n                                                    if (delivery.browser_native_hd_url) {\r\n                                                        reelData.videoUrl = delivery.browser_native_hd_url;\r\n                                                    } else if (delivery.browser_native_sd_url) {\r\n                                                        reelData.videoUrl = delivery.browser_native_sd_url;\r\n                                                    }\r\n                                                }\r\n\r\n                                                \/\/ Extract duration\r\n                                                if (video.playable_duration_in_ms) {\r\n                                                    reelData.duration = video.playable_duration_in_ms;\r\n                                                } else if (video.length_in_second) {\r\n                                                    reelData.duration = video.length_in_second * 1000;\r\n                                                }\r\n\r\n                                                \/\/ Extract permalink URL as fallback\r\n                                                if (video.permalink_url) {\r\n                                                    reelData.videoUrl = reelData.videoUrl || video.permalink_url;\r\n                                                }\r\n                                            }\r\n\r\n                                            \/\/ Extract video data from attachments\r\n                                            if (reelNode.attachments && reelNode.attachments.length > 0) {\r\n                                                const attachment = reelNode.attachments[0];\r\n                                                if (attachment.media && attachment.media.__typename === 'Video') {\r\n                                                    const media = attachment.media;\r\n\r\n                                                    \/\/ Extract thumbnail if not already found\r\n                                                    if (!reelData.thumbnailUri && media.first_frame_thumbnail) {\r\n                                                        reelData.thumbnailUri = media.first_frame_thumbnail;\r\n                                                    }\r\n\r\n                                                    \/\/ Extract shareable URL\r\n                                                    if (media.shareable_url) {\r\n                                                        reelData.videoUrl = reelData.videoUrl || media.shareable_url;\r\n                                                    }\r\n\r\n                                                    \/\/ Extract duration if not already found\r\n                                                    if (!reelData.duration && media.playable_duration_in_ms) {\r\n                                                        reelData.duration = media.playable_duration_in_ms;\r\n                                                    }\r\n                                                }\r\n                                            }\r\n\r\n                                            \/\/ Extract title from message\r\n                                            if (reelNode.message && reelNode.message.text) {\r\n                                                reelData.title = reelNode.message.text.split('\\n')[0].trim() || 'Reel';\r\n                                            }\r\n\r\n                                            \/\/ Extract views from feedback\r\n                                            if (reelNode.feedback && reelNode.feedback.unified_reactors) {\r\n                                                reelData.views = reelNode.feedback.unified_reactors.count || 0;\r\n                                            }\r\n\r\n                                            \/\/ Extract play count from short_form_video_context\r\n                                            if (reelNode.short_form_video_context &&\r\n                                                reelNode.short_form_video_context.play_count_reduced) {\r\n                                                reelData.views = parseInt(reelNode.short_form_video_context.play_count_reduced) || reelData.views;\r\n                                            }\r\n\r\n                                            \/\/ Only add if we have essential data\r\n                                            if (reelData.thumbnailUri || reelData.videoUrl) {\r\n                                                console.log('Adding reel:', reelData);\r\n                                                reels.push(reelData);\r\n                                            } else {\r\n                                                console.log('Skipping reel due to missing essential data:', reelData);\r\n                                            }\r\n                                        }\r\n                                    });\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n\r\n                console.log('Final extracted reels:', reels);\r\n\r\n            } catch (error) {\r\n                console.error('Error extracting reels:', error);\r\n            }\r\n\r\n            return reels;\r\n        }\r\n\r\n        function displayProfileData(profileData) {\r\n            console.log(profileData);\r\n            const profileContent = document.getElementById('profileContent');\r\n\r\n            const html = `\r\n            <div class=\"profile-container\">\r\n                <!-- Cover Photo Section -->\r\n                <div class=\"cover-section\">\r\n                    <div class=\"cover-photo\" style=\"background-image: url('${profileData.basicInfo.coverPhoto || '\/placeholder.svg?height=400&width=1200'}')\"><\/div>\r\n                    <div class=\"cover-overlay\"><\/div>\r\n                    <div class=\"cover-gradient\"><\/div>\r\n                <\/div>\r\n\r\n                <!-- Profile Info Section -->\r\n                <div class=\"profile-info-section\">\r\n                    <div class=\"profile-header\">\r\n                        <div class=\"profile-picture-container\">\r\n                            <div class=\"profile-picture\" style=\"background-image: url('${profileData.basicInfo.profilePicture || '\/placeholder.svg?height=160&width=160'}')\"><\/div>\r\n                            <div class=\"profile-ring\"><\/div>\r\n                            <div class=\"profile-status-indicator\"><\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"profile-details\">\r\n                            <h1 class=\"profile-name ${profileData.basicInfo.isVerified ? 'verified-badge' : ''}\">${escapeHtml(profileData.basicInfo.name || currentUsername)}<\/h1>\r\n                            <div class=\"profile-stats\">\r\n                                <span class=\"stat-badge\">${profileData.photos.length} Photos<\/span>\r\n                                <span class=\"stat-badge\" id=\"profile-video-count\">0 Videos<\/span>\r\n                                <span class=\"stat-badge\" id=\"profile-reels-count\">0 Reels<\/span>\r\n                                <span class=\"stat-badge\">${profileData.posts.length} Posts<\/span>\r\n                            <\/div>\r\n                            \r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <!-- Navigation Tabs -->\r\n                    <div class=\"profile-navigation\">\r\n                        <div class=\"profile-nav-tabs\">\r\n                            <button class=\"nav-tab active\" data-tab=\"photos\" onclick=\"switchProfileTab('photos')\">\r\n                                <i class=\"fas fa-images\"><\/i>\r\n                                <span>Photos<\/span>\r\n                                <div class=\"nav-indicator\"><\/div>\r\n                            <\/button>\r\n                            <button class=\"nav-tab\" data-tab=\"posts\" onclick=\"switchProfileTab('posts')\">\r\n                                <i class=\"fas fa-newspaper\"><\/i>\r\n                                <span>Posts<\/span>\r\n                                <div class=\"nav-indicator\"><\/div>\r\n                            <\/button>\r\n                            <button class=\"nav-tab\" data-tab=\"videos\" onclick=\"switchProfileTab('videos')\">\r\n                                <i class=\"fas fa-video\"><\/i>\r\n                                <span>Videos<\/span>\r\n                                <div class=\"nav-indicator\"><\/div>\r\n                            <\/button>\r\n                            <button class=\"nav-tab\" data-tab=\"reels\" onclick=\"switchProfileTab('reels')\">\r\n                                <i class=\"fas fa-film\"><\/i>\r\n                                <span>Reels<\/span>\r\n                                <div class=\"nav-indicator\"><\/div>\r\n                            <\/button>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Tab Content -->\r\n                <div class=\"tab-content-container\">\r\n                    <!-- Photos Tab -->\r\n                    <div id=\"profile-photos-tab\" class=\"tab-content active\">\r\n                        <div class=\"content-header\">\r\n                            <div class=\"content-title\">\r\n                                <i class=\"fas fa-images\"><\/i>\r\n                                <h2>Photo Gallery<\/h2>\r\n                            <\/div>\r\n                            <div class=\"content-stats\">\r\n                                <div class=\"stat-item\">\r\n                                    <i class=\"fas fa-camera\"><\/i>\r\n                                    <span>${profileData.photos.length} Photos<\/span>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        ${profileData.photos.length > 0 ? `\r\n                            <div class=\"photos-grid\">\r\n                                ${profileData.photos.map((photo, index) => `\r\n                                    <div class=\"fb-photoitem\" onclick=\"openPhotoModal('${photo.url}', ${index})\">\r\n                                        <div class=\"fb-photoimage-container\">\r\n                                            <img decoding=\"async\" src=\"${photo.url}\" alt=\"Photo ${index + 1}\" class=\"fb-photoimage\" onerror=\"this.parentElement.parentElement.style.display='none'\">\r\n                                            <div class=\"fb-photooverlay\">\r\n                                                <div class=\"fb-photoactions\">\r\n                                                    <button class=\"fb-photoaction-btn\" onclick=\"event.stopPropagation(); downloadImage('${photo.url}', 'photo-${index + 1}.jpg', this)\">\r\n                                                        <i class=\"fas fa-download\"><\/i>\r\n                                                    <\/button>\r\n                                                    <button class=\"fb-photoaction-btn\" onclick=\"event.stopPropagation(); sharePhoto('${photo.url}')\">\r\n                                                        <i class=\"fas fa-share\"><\/i>\r\n                                                    <\/button>\r\n                                                <\/div>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                        <div class=\"fb-photoinfo\">\r\n                                            <div class=\"fb-photostats\">\r\n                                                <div class=\"fb-photoengagement\">\r\n                                                    <div class=\"fb-photoengagement-item\">\r\n                                                        <i class=\"fas fa-heart\"><\/i>\r\n                                                        <span>${photo.likes}<\/span>\r\n                                                    <\/div>\r\n                                                    <div class=\"fb-photoengagement-item\">\r\n                                                        <i class=\"fas fa-comment\"><\/i>\r\n                                                        <span>${photo.comments}<\/span>\r\n                                                    <\/div>\r\n                                                <\/div>\r\n                                            <\/div>\r\n                                            <div class=\"fb-photometa\">\r\n                                                <span class=\"fb-photodimensions\">${photo.width}\u00d7${photo.height}<\/span>\r\n                                                <span>${formatDate(photo.created_time)}<\/span>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                `).join('')}\r\n                            <\/div>\r\n                        ` : `\r\n                            <div class=\"no-data-message\">\r\n                                No photos found for this profile.\r\n                            <\/div>\r\n                        `}\r\n                    <\/div>\r\n\r\n                    <!-- Posts Tab -->\r\n                    <div id=\"profile-posts-tab\" class=\"tab-content\">\r\n                        <div class=\"content-header\">\r\n                            <div class=\"content-title\">\r\n                                <i class=\"fas fa-newspaper\"><\/i>\r\n                                <h2>Recent Posts<\/h2>\r\n                            <\/div>\r\n                            <div class=\"content-stats\">\r\n                                <div class=\"stat-item\">\r\n                                    <i class=\"fas fa-edit\"><\/i>\r\n                                    <span>${profileData.posts.length} Posts<\/span>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        ${profileData.posts.length > 0 ? `\r\n                            <div class=\"posts-container\">\r\n                                ${profileData.posts.map((post, index) => `\r\n                                    <div class=\"post-item\">\r\n                                        <div class=\"post-header\">\r\n                                            <div class=\"post-profile-pic\" style=\"background-image: url('${profileData.basicInfo.profilePicture || '\/placeholder.svg?height=48&width=48'}')\">\r\n                                                ${!profileData.basicInfo.profilePicture ? '<i class=\"fas fa-user\"><\/i>' : ''}\r\n                                            <\/div>\r\n                                            <div class=\"post-info\">\r\n                                                <div class=\"post-author\">${escapeHtml(profileData.basicInfo.name || currentUsername)}<\/div>\r\n                                                <div class=\"post-date\">${formatDate(post.creationTime * 1000)}<\/div>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                        \r\n                                        ${post.message ? `<div class=\"post-content\">${escapeHtml(post.message)}<\/div>` : ''}\r\n                                        \r\n                                        ${post.attachments.map(attachment => {\r\n                if (attachment.type === 'photo') {\r\n                    return `<img decoding=\"async\" src=\"${attachment.uri}\" alt=\"Post image\" class=\"post-image\">`;\r\n                }\r\n                return '';\r\n            }).join('')}\r\n                                        \r\n                                        <div class=\"post-stats\">\r\n                                            <div class=\"stat-item\">\r\n                                                <i class=\"fas fa-heart\"><\/i>\r\n                                                <span>${post.stats.likes} likes<\/span>\r\n                                            <\/div>\r\n                                            <div class=\"stat-item\">\r\n                                                <i class=\"fas fa-comment\"><\/i>\r\n                                                <span>${post.stats.comments} comments<\/span>\r\n                                            <\/div>\r\n                                            <div class=\"stat-item\">\r\n                                                <i class=\"fas fa-share\"><\/i>\r\n                                                <span>${post.stats.shares} shares<\/span>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                `).join('')}\r\n                            <\/div>\r\n                        ` : `\r\n                            <div class=\"no-data-message\">\r\n                                No posts found for this profile.\r\n                            <\/div>\r\n                        `}\r\n                    <\/div>\r\n\r\n                    <!-- Videos Tab -->\r\n                    <div id=\"profile-videos-tab\" class=\"tab-content\">\r\n                        <div class=\"content-header\">\r\n                            <div class=\"content-title\">\r\n                                <i class=\"fas fa-video\"><\/i>\r\n                                <h2>Video Collection<\/h2>\r\n                            <\/div>\r\n                            <div class=\"content-stats\">\r\n                                <div class=\"stat-item\">\r\n                                    <i class=\"fas fa-play-circle\"><\/i>\r\n                                    <span id=\"video-count\">0 Videos<\/span>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div id=\"videos-skeleton\" class=\"videos-skeleton\" style=\"display:block;\">\r\n                            <div class=\"videos-grid-skeleton\">\r\n                                <div class=\"video-skeleton\">\r\n                                    <div class=\"video-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"video-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <div class=\"video-skeleton\">\r\n                                    <div class=\"video-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"video-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <div class=\"video-skeleton\">\r\n                                    <div class=\"video-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"video-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div id=\"profile-videos-container\" class=\"video-grid\" style=\"display:none;\">\r\n                            <!-- Will be filled after fetchVideosData -->\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <!-- Reels Tab -->\r\n                    <div id=\"profile-reels-tab\" class=\"tab-content\">\r\n                        <div class=\"content-header\">\r\n                            <div class=\"content-title\">\r\n                                <i class=\"fas fa-film\"><\/i>\r\n                                <h2>Reels Collection<\/h2>\r\n                            <\/div>\r\n                            <div class=\"content-stats\">\r\n                                <div class=\"stat-item\">\r\n                                    <i class=\"fas fa-video\"><\/i>\r\n                                    <span id=\"reels-count\">${profileData.reels.length} Reels<\/span>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div id=\"reels-skeleton\" class=\"reels-skeleton\">\r\n                            <div class=\"reels-grid-skeleton\">\r\n                                <div class=\"reel-skeleton\">\r\n                                    <div class=\"reel-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"reel-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <div class=\"reel-skeleton\">\r\n                                    <div class=\"reel-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"reel-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <div class=\"reel-skeleton\">\r\n                                    <div class=\"reel-thumbnail-skeleton skeleton-loading\"><\/div>\r\n                                    <div class=\"reel-info-skeleton\">\r\n                                        <div class=\"skeleton-line skeleton-loading\"><\/div>\r\n                                        <div class=\"skeleton-line short skeleton-loading\"><\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div id=\"profile-reels-container\" class=\"video-grid\">\r\n                            ${profileData.reels.length > 0 ? profileData.reels.map((reel, index) => `\r\n                                <div class=\"video-card\" style=\"--index: ${index}\" data-reel-index=\"${index}\">\r\n                                    <div class=\"video-thumbnail\" style=\"background-image: url('${reel.thumbnailUri || '\/placeholder.svg?height=200&width=350'}')\" onclick=\"playReelInline(${index}, 'profile')\">\r\n                                        <div class=\"video-play-icon\">\r\n                                            <i class=\"fas fa-play\"><\/i>\r\n                                        <\/div>\r\n                                        <div class=\"reel-badge\">REEL<\/div>\r\n                                        <div class=\"video-duration\">${formatDuration(reel.duration)}<\/div>\r\n                                        <div class=\"video-overlay\">\r\n                                            <div class=\"video-actions\">\r\n                                                <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); downloadReel(${index}, 'profile')\" title=\"Download Reel\">\r\n                                                    <i class=\"fas fa-download\"><\/i>\r\n                                                <\/button>\r\n                                                <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); shareReel(${index}, 'profile')\" title=\"Share Reel\">\r\n                                                    <i class=\"fas fa-share\"><\/i>\r\n                                                <\/button>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                    ${reel.videoUrl ? `\r\n                                        <video \r\n                                            class=\"video-player\" \r\n                                            style=\"display: none;\" \r\n                                            controls \r\n                                            loop\r\n                                            muted\r\n                                            preload=\"metadata\"\r\n                                            data-src=\"${reel.videoUrl}\"\r\n                                        >\r\n                                            <source src=\"${reel.videoUrl}\" type=\"video\/mp4\">\r\n                                            Your browser does not support the video tag.\r\n                                        <\/video>\r\n                                    ` : ''}\r\n                                    <div class=\"video-info\">\r\n                                        <div class=\"video-title\">${escapeHtml(truncateText(reel.title))}<\/div>\r\n                                        ${reel.description && reel.description.trim() ? `\r\n                                            <div class=\"video-description\">${escapeHtml(reel.description.trim())}<\/div>\r\n                                        ` : ''}\r\n                                        <div class=\"video-stats\">\r\n                                            <div class=\"video-engagement\">\r\n                                                ${reel.views > 0 ? `\r\n                                                    <div class=\"video-engagement-item\">\r\n                                                        <i class=\"fas fa-eye\"><\/i>\r\n                                                        <span>${formatNumber(reel.views)} views<\/span>\r\n                                                    <\/div>\r\n                                                ` : ''}\r\n                                            <\/div>\r\n                                            ${reel.videoUrl ? `\r\n                                                <button class=\"video-download-btn\" onclick=\"downloadReel(${index}, 'profile')\">\r\n                                                    <i class=\"fas fa-download\"><\/i>\r\n                                                    Download\r\n                                                <\/button>\r\n                                            ` : ''}\r\n                                        <\/div>\r\n                                        <div class=\"video-meta\">\r\n                                            ${reel.creationTime ? `<div>${formatTimeAgo(reel.creationTime * 1000)}<\/div>` : ''}\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            `).join('') : `\r\n                                <div class=\"no-data-message\">\r\n                                    No reels found for this profile.\r\n                                <\/div>\r\n                            `}\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n\r\n            profileContent.innerHTML = html;\r\n        }\r\n\r\n        \/\/ Tab Switching Functions\r\n        function switchProfileTab(tabName) {\r\n            \/\/ For profile tabs\r\n            document.querySelectorAll('.nav-tab').forEach(btn => btn.classList.remove('active'));\r\n            document.querySelectorAll('.tab-content').forEach(content => content.classList.remove('active'));\r\n\r\n            const tabBtn = document.querySelector(`[data-tab=\"${tabName}\"]`);\r\n            const tabContent = document.getElementById(`profile-${tabName}-tab`);\r\n\r\n            if (tabBtn) tabBtn.classList.add('active');\r\n            if (tabContent) tabContent.classList.add('active');\r\n\r\n            \/\/ Always reload videos when videos tab is clicked for profiles\r\n            if (tabName === 'videos' && currentUsername && currentType === 'profile') {\r\n                document.getElementById('videos-skeleton').style.display = 'block';\r\n                document.getElementById('profile-videos-container').style.display = 'none';\r\n\r\n                setTimeout(() => {\r\n                    fetchVideosData(currentUsername);\r\n                }, 500);\r\n            }\r\n\r\n            \/\/ Always reload reels when reels tab is clicked for profiles\r\n            if (tabName === 'reels' && currentUsername && currentType === 'profile') {\r\n                document.getElementById('reels-skeleton').style.display = 'block';\r\n                document.getElementById('profile-reels-container').style.display = 'none';\r\n\r\n                setTimeout(() => {\r\n                    fetchReelsData(currentUsername);\r\n                }, 500);\r\n            }\r\n        }\r\n\r\n        \/\/ Group Video Functions - REMOVED\r\n\r\n        \/\/ Function to fetch videos data specifically for profiles\r\n        async function fetchVideosData(username) {\r\n            if (!username) {\r\n                console.error('No username available for videos fetch');\r\n                return;\r\n            }\r\n\r\n            \/\/ Check if we have cached videos for this username\r\n            if (cachedVideos && currentCachedUsername === username) {\r\n                console.log('Using cached videos for:', username);\r\n                document.getElementById('videos-skeleton').style.display = 'none';\r\n                document.getElementById('profile-videos-container').style.display = 'grid';\r\n\r\n                \/\/ Update the videos count\r\n                document.getElementById('video-count').textContent = `${cachedVideos.length} Videos`;\r\n                document.getElementById('profile-video-count').textContent = `${cachedVideos.length} Videos`;\r\n\r\n                \/\/ Store videos data globally for download functionality\r\n                window.profileVideosData = cachedVideos;\r\n                return;\r\n            }\r\n\r\n            try {\r\n                \/\/ Construct videos URL\r\n                const videosUrl = `https:\/\/www.facebook.com\/${username}\/videos`;\r\n                console.log('Fetching videos from:', videosUrl);\r\n\r\n                const response = await fetch('https:\/\/tools.xrespond.com\/api\/facebook\/all-details', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: videosUrl })\r\n                });\r\n\r\n                document.getElementById('videos-skeleton').style.display = 'none';\r\n                document.getElementById('profile-videos-container').style.display = 'grid';\r\n                document.getElementById('profile-videos-container').innerHTML = '<div class=\"loading\" style=\"text-align: center; padding: 40px;\"><div class=\"loading-spinner\"><\/div><div class=\"loading-text\">Loading videos...<\/div><\/div>';\r\n\r\n                if (!response.ok) {\r\n                    throw new Error('Network response was not ok');\r\n                }\r\n\r\n                const data = await response.json();\r\n                console.log('Videos API response:', data);\r\n\r\n                if (data.status === 'success') {\r\n                    \/\/ Process and display videos data\r\n                    const videosData = extractVideosFromAPI(data.data);\r\n                    console.log('Processed videos data:', videosData);\r\n\r\n                    \/\/ Cache the videos data\r\n                    cachedVideos = videosData;\r\n                    currentCachedUsername = username;\r\n\r\n                    \/\/ Update profile data with new videos\r\n                    if (profileData) {\r\n                        profileData.videos = videosData;\r\n                    }\r\n\r\n                    \/\/ Update the videos count\r\n                    document.getElementById('video-count').textContent = `${videosData.length} Videos`;\r\n                    document.getElementById('profile-video-count').textContent = `${videosData.length} Videos`;\r\n\r\n                    \/\/ Display videos\r\n                    const videosContainer = document.getElementById('profile-videos-container');\r\n                    if (videosData.length > 0) {\r\n                        const videosHtml = videosData.map((video, index) => `\r\n                        <div class=\"video-card\" style=\"--index: ${index}\" data-video-index=\"${index}\">\r\n                            <div class=\"video-thumbnail\" style=\"background-image: url('${video.thumbnailUri || '\/placeholder.svg?height=200&width=350'}')\" onclick=\"playVideoInline(${index}, 'profile')\">\r\n                                <div class=\"video-play-icon\">\r\n                                    <i class=\"fas fa-play\"><\/i>\r\n                                <\/div>\r\n                                <div class=\"video-quality-badge\">${video.height >= 720 ? 'HD' : 'SD'}<\/div>\r\n                                <div class=\"video-duration\">${formatDuration(video.duration)}<\/div>\r\n                                <div class=\"video-overlay\">\r\n                                    <div class=\"video-actions\">\r\n                                        <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); downloadVideo(${index}, 'profile')\" title=\"Download Video\">\r\n                                            <i class=\"fas fa-download\"><\/i>\r\n                                        <\/button>\r\n                                        <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); shareVideo(${index}, 'profile')\" title=\"Share Video\">\r\n                                            <i class=\"fas fa-share\"><\/i>\r\n                                        <\/button>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                            ${video.videoUrl ? `\r\n                                <video \r\n                                    class=\"video-player\" \r\n                                    style=\"display: none;\" \r\n                                    controls \r\n                                    preload=\"metadata\"\r\n                                    data-src=\"${video.videoUrl}\"\r\n                                >\r\n                                    <source src=\"${video.videoUrl}\" type=\"video\/mp4\">\r\n                                    Your browser does not support the video tag.\r\n                                <\/video>\r\n                            ` : ''}\r\n                            <div class=\"video-info\">\r\n                                <div class=\"video-title\">${escapeHtml(truncateText(video.title))}<\/div>\r\n                                ${video.description && video.description.trim() ? `\r\n                                    <div class=\"video-description\">${escapeHtml(video.description.trim())}<\/div>\r\n                                ` : ''}\r\n                                <div class=\"video-stats\">\r\n                                    <div class=\"video-engagement\">\r\n                                        ${video.stats && video.stats.likes > 0 ? `\r\n                                            <div class=\"video-engagement-item\">\r\n                                                <i class=\"fas fa-heart\"><\/i>\r\n                                                <span>${formatNumber(video.stats.likes)}<\/span>\r\n                                            <\/div>\r\n                                        ` : ''}\r\n                                        ${video.stats && video.stats.views > 0 ? `\r\n                                            <div class=\"video-engagement-item\">\r\n                                                <i class=\"fas fa-eye\"><\/i>\r\n                                                <span>${formatNumber(video.stats.views)} views<\/span>\r\n                                            <\/div>\r\n                                        ` : ''}\r\n                                    <\/div>\r\n                                    ${video.videoUrl ? `\r\n                                        <button class=\"video-download-btn\" onclick=\"downloadVideo(${index}, 'profile')\">\r\n                                            <i class=\"fas fa-download\"><\/i>\r\n                                            Download\r\n                                        <\/button>\r\n                                    ` : ''}\r\n                                <\/div>\r\n                                <div class=\"video-meta\">\r\n                                    ${video.creationTime ? `<div>${formatTimeAgo(video.creationTime * 1000)}<\/div>` : ''}\r\n                                    ${video.width && video.height ? `<div>${video.width} \u00d7 ${video.height}<\/div>` : ''}\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n                    `).join('');\r\n\r\n                        videosContainer.innerHTML = videosHtml;\r\n                        \/\/ Show container immediately after content is ready\r\n                        videosContainer.style.display = 'grid';\r\n\r\n                        \/\/ Store videos data globally for download functionality\r\n                        window.profileVideosData = videosData;\r\n                    } else {\r\n                        videosContainer.innerHTML = '<div class=\"no-data-message\">No videos found for this profile.<\/div>';\r\n                        videosContainer.style.display = 'grid';\r\n                        document.getElementById('video-count').textContent = '0 Videos';\r\n                        document.getElementById('profile-video-count').textContent = '0 Videos';\r\n                    }\r\n                } else {\r\n                    console.error('API returned error:', data);\r\n                    document.getElementById('profile-videos-container').innerHTML = '<div class=\"no-data-message\">Failed to load videos: ' + (data.message || 'Unknown error') + '<\/div>';\r\n                    document.getElementById('video-count').textContent = '0 Videos';\r\n                    document.getElementById('profile-video-count').textContent = '0 Videos';\r\n                }\r\n            } catch (error) {\r\n                console.error('Error fetching videos data:', error);\r\n                document.getElementById('videos-skeleton').style.display = 'none';\r\n                document.getElementById('profile-videos-container').style.display = 'grid';\r\n                document.getElementById('profile-videos-container').innerHTML = '<div class=\"no-data-message\">Error loading videos. Please try again later.<\/div>';\r\n                document.getElementById('video-count').textContent = '0 Videos';\r\n                document.getElementById('profile-video-count').textContent = '0 Videos';\r\n            }\r\n        }\r\n\r\n        \/\/ Function to fetch reels data specifically for profiles\r\n        async function fetchReelsData(username) {\r\n            if (!username) {\r\n                console.error('No username available for reels fetch');\r\n                return;\r\n            }\r\n\r\n            \/\/ Check if we have cached reels for this username\r\n            if (cachedReels && currentCachedUsername === username) {\r\n                console.log('Using cached reels for:', username);\r\n                document.getElementById('reels-skeleton').style.display = 'none';\r\n                document.getElementById('profile-reels-container').style.display = 'grid';\r\n\r\n                \/\/ Update the reels count\r\n                document.getElementById('reels-count').textContent = `${cachedReels.length} Reels`;\r\n                document.getElementById('profile-reels-count').textContent = `${cachedReels.length} Reels`;\r\n\r\n                \/\/ Store reels data globally for download functionality\r\n                window.profileReelsData = cachedReels;\r\n                return;\r\n            }\r\n\r\n            try {\r\n                \/\/ Construct reels URL\r\n                const reelsUrl = `https:\/\/www.facebook.com\/${username}\/reels`;\r\n                console.log('Fetching reels from:', reelsUrl);\r\n\r\n                const response = await fetch('https:\/\/tools.xrespond.com\/api\/facebook\/all-details', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: reelsUrl })\r\n                });\r\n\r\n                document.getElementById('reels-skeleton').style.display = 'none';\r\n                document.getElementById('profile-reels-container').style.display = 'grid';\r\n                document.getElementById('profile-reels-container').innerHTML = '<div class=\"loading\" style=\"text-align: center; padding: 40px;\"><div class=\"loading-spinner\"><\/div><div class=\"loading-text\">Loading reels...<\/div><\/div>';\r\n\r\n                if (!response.ok) {\r\n                    throw new Error('Network response was not ok');\r\n                }\r\n\r\n                const data = await response.json();\r\n                console.log('Reels API response:', data);\r\n\r\n                if (data.status === 'success') {\r\n                    \/\/ Process and display reels data\r\n                    const reelsData = extractReels(data.data);\r\n                    console.log('Processed reels data:', reelsData);\r\n\r\n                    \/\/ Update profile data with new reels\r\n                    if (profileData) {\r\n                        profileData.reels = reelsData;\r\n                    }\r\n\r\n                    \/\/ Update the reels count\r\n                    document.getElementById('reels-count').textContent = `${reelsData.length} Reels`;\r\n                    document.getElementById('profile-reels-count').textContent = `${reelsData.length} Reels`;\r\n\r\n                    \/\/ Display reels\r\n                    const reelsContainer = document.getElementById('profile-reels-container');\r\n                    if (reelsData.length > 0) {\r\n                        const reelsHtml = reelsData.map((reel, index) => `\r\n                        <div class=\"video-card\" style=\"--index: ${index}\" data-reel-index=\"${index}\">\r\n                            <div class=\"video-thumbnail\" style=\"background-image: url('${reel.thumbnailUri || '\/placeholder.svg?height=200&width=350'}')\" onclick=\"playReelInline(${index}, 'profile')\">\r\n                                <div class=\"video-play-icon\">\r\n                                    <i class=\"fas fa-play\"><\/i>\r\n                                <\/div>\r\n                                <div class=\"reel-badge\">REEL<\/div>\r\n                                <div class=\"video-duration\">${formatDuration(reel.duration)}<\/div>\r\n                                <div class=\"video-overlay\">\r\n                                    <div class=\"video-actions\">\r\n                                        <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); downloadReel(${index}, 'profile')\" title=\"Download Reel\">\r\n                                            <i class=\"fas fa-download\"><\/i>\r\n                                        <\/button>\r\n                                        <button class=\"video-action-btn\" onclick=\"event.stopPropagation(); shareReel(${index}, 'profile')\" title=\"Share Reel\">\r\n                                            <i class=\"fas fa-share\"><\/i>\r\n                                        <\/button>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                            ${reel.videoUrl ? `\r\n                                <video \r\n                                    class=\"video-player\" \r\n                                    style=\"display: none;\" \r\n                                    controls \r\n                                    loop\r\n                                    muted\r\n                                    preload=\"metadata\"\r\n                                    data-src=\"${reel.videoUrl}\"\r\n                                >\r\n                                    <source src=\"${reel.videoUrl}\" type=\"video\/mp4\">\r\n                                    Your browser does not support the video tag.\r\n                                <\/video>\r\n                            ` : ''}\r\n                            <div class=\"video-info\">\r\n                                <div class=\"video-title\">${escapeHtml(truncateText(reel.title))}<\/div>\r\n                                <div class=\"video-stats\">\r\n                                    <div class=\"video-engagement\">\r\n                                        ${reel.views > 0 ? `\r\n                                            <div class=\"video-engagement-item\">\r\n                                                <i class=\"fas fa-eye\"><\/i>\r\n                                                <span>${formatNumber(reel.views)} views<\/span>\r\n                                            <\/div>\r\n                                        ` : ''}\r\n                                    <\/div>\r\n                                    ${reel.videoUrl ? `\r\n                                        <button class=\"video-download-btn\" onclick=\"downloadReel(${index}, 'profile')\">\r\n                                            <i class=\"fas fa-download\"><\/i>\r\n                                            Download\r\n                                        <\/button>\r\n                                    ` : ''}\r\n                                <\/div>\r\n                                <div class=\"video-meta\">\r\n                                    ${reel.creationTime ? `<div>${formatTimeAgo(reel.creationTime * 1000)}<\/div>` : ''}\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n                    `).join('');\r\n\r\n                        reelsContainer.innerHTML = reelsHtml;\r\n\r\n                        \/\/ Store reels data globally for download functionality\r\n                        window.profileReelsData = reelsData;\r\n                    } else {\r\n                        reelsContainer.innerHTML = '<div class=\"no-data-message\">No reels found for this profile.<\/div>';\r\n                        document.getElementById('reels-count').textContent = '0 Reels';\r\n                        document.getElementById('profile-reels-count').textContent = '0 Reels';\r\n                    }\r\n                } else {\r\n                    console.error('API returned error:', data);\r\n                    document.getElementById('profile-reels-container').innerHTML = '<div class=\"no-data-message\">Failed to load reels: ' + (data.message || 'Unknown error') + '<\/div>';\r\n                    document.getElementById('reels-count').textContent = '0 Reels';\r\n                    document.getElementById('profile-reels-count').textContent = '0 Reels';\r\n                }\r\n            } catch (error) {\r\n                console.error('Error fetching reels data:', error);\r\n                document.getElementById('reels-skeleton').style.display = 'none';\r\n                document.getElementById('profile-reels-container').style.display = 'grid';\r\n                document.getElementById('profile-reels-container').innerHTML = '<div class=\"no-data-message\">Error loading reels. Please try again later.<\/div>';\r\n                document.getElementById('reels-count').textContent = '0 Reels';\r\n                document.getElementById('profile-reels-count').textContent = '0 Reels';\r\n            }\r\n        }\r\n\r\n        \/\/ Video Playback Functions\r\n        function pauseOtherVideos(currentVideoPlayer) {\r\n            document.querySelectorAll('video.video-player').forEach(otherVideo => {\r\n                if (otherVideo !== currentVideoPlayer) {\r\n                    \/\/ Pause the video\r\n                    otherVideo.pause();\r\n                    otherVideo.currentTime = 0;\r\n\r\n                    \/\/ Hide video player and show thumbnail\r\n                    otherVideo.style.display = 'none';\r\n                    const otherContainer = otherVideo.closest('.video-card');\r\n                    if (otherContainer) {\r\n                        const otherThumbnail = otherContainer.querySelector('.video-thumbnail');\r\n                        if (otherThumbnail) {\r\n                            otherThumbnail.style.display = 'flex';\r\n                        }\r\n                    }\r\n                }\r\n            });\r\n        }\r\n\r\n        function playVideoInline(index, type) {\r\n            let videoData;\r\n            let container;\r\n\r\n            if (type === 'profile') {\r\n                videoData = window.profileVideosData || (profileData ? profileData.videos : []);\r\n                container = document.querySelector(`[data-video-index=\"${index}\"]`);\r\n            }\r\n\r\n            if (!videoData || !videoData[index] || !container) {\r\n                console.error('Video data not found');\r\n                return;\r\n            }\r\n\r\n            const video = videoData[index];\r\n            const thumbnail = container.querySelector('.video-thumbnail');\r\n            const videoPlayer = container.querySelector('.video-player');\r\n\r\n            if (!videoPlayer || !video.videoUrl) {\r\n                console.error('Video player or URL not found');\r\n                return;\r\n            }\r\n\r\n            pauseOtherVideos(videoPlayer);\r\n\r\n            \/\/ Hide thumbnail and show video player\r\n            thumbnail.style.display = 'none';\r\n            videoPlayer.style.display = 'block';\r\n\r\n            \/\/ Load video source if not already loaded\r\n            if (!videoPlayer.src && videoPlayer.dataset.src) {\r\n                videoPlayer.src = videoPlayer.dataset.src;\r\n            }\r\n\r\n            \/\/ Play the video\r\n            videoPlayer.play().catch(error => {\r\n                console.error('Error playing video:', error);\r\n                \/\/ Show thumbnail again if video fails to play\r\n                thumbnail.style.display = 'block';\r\n                videoPlayer.style.display = 'none';\r\n            });\r\n\r\n            \/\/ Add event listener to show thumbnail when video ends\r\n            videoPlayer.addEventListener('ended', function () {\r\n                thumbnail.style.display = 'block';\r\n                videoPlayer.style.display = 'none';\r\n            });\r\n\r\n            \/\/ Add event listener to show thumbnail when video is paused\r\n            videoPlayer.addEventListener('pause', function () {\r\n                if (videoPlayer.currentTime === 0 || videoPlayer.ended) {\r\n                    thumbnail.style.display = 'block';\r\n                    videoPlayer.style.display = 'none';\r\n                }\r\n            });\r\n        }\r\n\r\n        function playReelInline(index, type) {\r\n            let reelData;\r\n            let container;\r\n\r\n            if (type === 'profile') {\r\n                reelData = window.profileReelsData || (profileData ? profileData.reels : []);\r\n                container = document.querySelector(`[data-reel-index=\"${index}\"]`);\r\n            }\r\n\r\n            if (!reelData || !reelData[index] || !container) {\r\n                console.error('Reel data not found');\r\n                return;\r\n            }\r\n\r\n            const reel = reelData[index];\r\n            const thumbnail = container.querySelector('.video-thumbnail');\r\n            const videoPlayer = container.querySelector('.video-player');\r\n\r\n            if (!videoPlayer || !reel.videoUrl) {\r\n                console.error('Video player or URL not found');\r\n                return;\r\n            }\r\n\r\n            pauseOtherVideos(videoPlayer);\r\n\r\n            \/\/ Hide thumbnail and show video player\r\n            thumbnail.style.display = 'none';\r\n            videoPlayer.style.display = 'block';\r\n\r\n            \/\/ Load video source if not already loaded\r\n            if (!videoPlayer.src && videoPlayer.dataset.src) {\r\n                videoPlayer.src = videoPlayer.dataset.src;\r\n            }\r\n\r\n            \/\/ Play the video\r\n            videoPlayer.play().catch(error => {\r\n                console.error('Error playing reel:', error);\r\n                \/\/ Show thumbnail again if video fails to play\r\n                thumbnail.style.display = 'block';\r\n                videoPlayer.style.display = 'none';\r\n            });\r\n\r\n            \/\/ Add event listener to show thumbnail when video ends (reels loop, so this might not trigger)\r\n            videoPlayer.addEventListener('ended', function () {\r\n                thumbnail.style.display = 'block';\r\n                videoPlayer.style.display = 'none';\r\n            });\r\n\r\n            \/\/ Add event listener to show thumbnail when video is paused\r\n            videoPlayer.addEventListener('pause', function () {\r\n                if (videoPlayer.currentTime === 0 || videoPlayer.ended) {\r\n                    thumbnail.style.display = 'block';\r\n                    videoPlayer.style.display = 'none';\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Download Functions with Progress Indicator\r\n        function showDownloadProgress(filename) {\r\n            const modal = document.getElementById('download-progress-modal');\r\n            const title = document.getElementById('download-progress-title');\r\n            const fill = document.getElementById('download-progress-fill');\r\n            const text = document.getElementById('download-progress-text');\r\n\r\n            \/\/ Shorten filename if too long\r\n            const shortFilename = filename.length > 20 ? filename.substring(0, 17) + '...' : filename;\r\n            title.textContent = `Downloading ${shortFilename}`;\r\n            fill.style.width = '0%';\r\n            text.textContent = 'Preparing...';\r\n            modal.classList.add('active');\r\n\r\n            return {\r\n                updateProgress: (percent, status) => {\r\n                    fill.style.width = `${percent}%`;\r\n                    text.textContent = status;\r\n                },\r\n                complete: () => {\r\n                    fill.style.width = '100%';\r\n                    text.textContent = 'Complete!';\r\n                    setTimeout(() => {\r\n                        modal.classList.remove('active');\r\n                    }, 2000);\r\n                },\r\n                error: (message) => {\r\n                    text.textContent = `Error: ${message}`;\r\n                    setTimeout(() => {\r\n                        modal.classList.remove('active');\r\n                    }, 3000);\r\n                }\r\n            };\r\n        }\r\n\r\n        async function downloadImage(url, filename, button) {\r\n            const progress = showDownloadProgress(filename);\r\n\r\n            try {\r\n                \/\/ Update button state\r\n                const originalText = button.innerHTML;\r\n                button.innerHTML = '<span class=\"btn-icon\">\u23f3<\/span><span>Downloading...<\/span>';\r\n                button.disabled = true;\r\n\r\n                progress.updateProgress(10, 'Fetching...');\r\n\r\n                const response = await fetch(url);\r\n                if (!response.ok) throw new Error('Network response was not ok');\r\n\r\n                progress.updateProgress(50, 'Processing...');\r\n\r\n                const blob = await response.blob();\r\n\r\n                progress.updateProgress(80, 'Preparing...');\r\n\r\n                const downloadUrl = window.URL.createObjectURL(blob);\r\n                const a = document.createElement('a');\r\n                a.href = downloadUrl;\r\n                a.download = filename;\r\n                document.body.appendChild(a);\r\n                a.click();\r\n                document.body.removeChild(a);\r\n                window.URL.revokeObjectURL(downloadUrl);\r\n\r\n                progress.complete();\r\n\r\n                \/\/ Restore button state\r\n                button.innerHTML = originalText;\r\n                button.disabled = false;\r\n\r\n            } catch (error) {\r\n                console.error('Download failed:', error);\r\n                progress.error('Download failed');\r\n\r\n                \/\/ Restore button state\r\n                button.innerHTML = originalText;\r\n                button.disabled = false;\r\n            }\r\n        }\r\n\r\n        function downloadVideo(index, type) {\r\n            let videoData;\r\n\r\n            if (type === 'profile') {\r\n                videoData = window.profileVideosData || (profileData ? profileData.videos : []);\r\n            }\r\n\r\n            if (!videoData || !videoData[index]) {\r\n                console.error('Video data not found');\r\n                return;\r\n            }\r\n\r\n            const video = videoData[index];\r\n            if (!video.videoUrl) {\r\n                alert('Video URL not available for download');\r\n                return;\r\n            }\r\n\r\n            const filename = `video-${index + 1}-${video.title.replace(\/[^a-z0-9]\/gi, '_').toLowerCase()}.mp4`;\r\n            downloadVideoFile(video.videoUrl, filename);\r\n        }\r\n\r\n        function downloadReel(index, type) {\r\n            let reelData;\r\n\r\n            if (type === 'profile') {\r\n                reelData = window.profileReelsData || (profileData ? profileData.reels : []);\r\n            }\r\n\r\n            if (!reelData || !reelData[index]) {\r\n                console.error('Reel data not found');\r\n                return;\r\n            }\r\n\r\n            const reel = reelData[index];\r\n            if (!reel.videoUrl) {\r\n                alert('Reel URL not available for download');\r\n                return;\r\n            }\r\n\r\n            const filename = `reel-${index + 1}-${reel.title.replace(\/[^a-z0-9]\/gi, '_').toLowerCase()}.mp4`;\r\n            downloadVideoFile(reel.videoUrl, filename);\r\n        }\r\n\r\n        async function downloadVideoFile(url, filename) {\r\n            const progress = showDownloadProgress(filename);\r\n            downloadAbortController = new AbortController();\r\n            const signal = downloadAbortController.signal;\r\n\r\n            const cancelButton = document.getElementById('download-cancel-btn');\r\n            cancelButton.style.display = 'block';\r\n            cancelButton.onclick = () => {\r\n                downloadAbortController.abort();\r\n                progress.error('Download canceled by user');\r\n            };\r\n\r\n            try {\r\n                progress.updateProgress(5, 'Initializing...');\r\n\r\n                const response = await fetch(url, { signal });\r\n                if (!response.ok) throw new Error('Network response was not ok');\r\n\r\n                const contentLength = response.headers.get('content-length');\r\n                const total = parseInt(contentLength, 10);\r\n                let loaded = 0;\r\n\r\n                progress.updateProgress(10, 'Starting...');\r\n\r\n                const reader = response.body.getReader();\r\n                const chunks = [];\r\n\r\n                while (true) {\r\n                    const { done, value } = await reader.read();\r\n\r\n                    if (done) break;\r\n\r\n                    chunks.push(value);\r\n                    loaded += value.length;\r\n\r\n                    if (total) {\r\n                        const percent = Math.min(90, Math.round((loaded \/ total) * 100) + 10);\r\n                        progress.updateProgress(percent, `Downloading... ${formatBytes(loaded)} \/ ${formatBytes(total)}`);\r\n                    } else {\r\n                        const percent = Math.min(90, Math.round((loaded \/ 1000000) * 10) + 10); \/\/ Estimate based on 1MB chunks\r\n                        progress.updateProgress(percent, `Downloading... ${formatBytes(loaded)}`);\r\n                    }\r\n                }\r\n\r\n                progress.updateProgress(95, 'Processing video...');\r\n\r\n                const blob = new Blob(chunks, { type: 'video\/mp4' });\r\n                const downloadUrl = window.URL.createObjectURL(blob);\r\n                const a = document.createElement('a');\r\n                a.href = downloadUrl;\r\n                a.download = filename;\r\n                document.body.appendChild(a);\r\n                a.click();\r\n                document.body.removeChild(a);\r\n                window.URL.revokeObjectURL(downloadUrl);\r\n\r\n                progress.complete();\r\n\r\n            } catch (error) {\r\n                if (error.name === 'AbortError') {\r\n                    progress.error('Download canceled');\r\n                } else {\r\n                    console.error('Video download failed:', error);\r\n                    progress.error(`Download failed: ${error.message}`);\r\n                }\r\n            } finally {\r\n                cancelButton.style.display = 'none';\r\n                downloadAbortController = null;\r\n            }\r\n        }\r\n\r\n        \/\/ Share Functions\r\n        function shareVideo(index, type) {\r\n            let videoData;\r\n\r\n            if (type === 'profile') {\r\n                videoData = window.profileVideosData || (profileData ? profileData.videos : []);\r\n            }\r\n\r\n            if (!videoData || !videoData[index]) {\r\n                console.error('Video data not found');\r\n                return;\r\n            }\r\n\r\n            const video = videoData[index];\r\n\r\n            if (navigator.share) {\r\n                navigator.share({\r\n                    title: video.title,\r\n                    text: video.description || 'Check out this video!',\r\n                    url: video.videoUrl || window.location.href\r\n                }).catch(console.error);\r\n            } else {\r\n                \/\/ Fallback: copy to clipboard\r\n                const shareText = `${video.title}\\n${video.videoUrl || window.location.href}`;\r\n                navigator.clipboard.writeText(shareText).then(() => {\r\n                    alert('Video link copied to clipboard!');\r\n                }).catch(() => {\r\n                    alert('Unable to share video');\r\n                });\r\n            }\r\n        }\r\n\r\n        function shareReel(index, type) {\r\n            let reelData;\r\n\r\n            if (type === 'profile') {\r\n                reelData = window.profileReelsData || (profileData ? profileData.reels : []);\r\n            }\r\n\r\n            if (!reelData || !reelData[index]) {\r\n                console.error('Reel data not found');\r\n                return;\r\n            }\r\n\r\n            const reel = reelData[index];\r\n\r\n            if (navigator.share) {\r\n                navigator.share({\r\n                    title: reel.title,\r\n                    text: 'Check out this reel!',\r\n                    url: reel.videoUrl || window.location.href\r\n                }).catch(console.error);\r\n            } else {\r\n                \/\/ Fallback: copy to clipboard\r\n                const shareText = `${reel.title}\\n${reel.videoUrl || window.location.href}`;\r\n                navigator.clipboard.writeText(shareText).then(() => {\r\n                    alert('Reel link copied to clipboard!');\r\n                }).catch(() => {\r\n                    alert('Unable to share reel');\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Photo Modal Functions\r\n        function openPhotoModal(photoUrl, index) {\r\n            \/\/ Check if device is mobile (screen width <= 768px)\r\n            const isMobile = window.innerWidth <= 768;\r\n\r\n            if (isMobile) {\r\n                \/\/ On mobile, show download button instead of modal\r\n                showMobileDownloadButton(photoUrl, index);\r\n                return;\r\n            }\r\n\r\n            \/\/ Desktop behavior - show modal\r\n            const modal = document.getElementById('fb-photomodal');\r\n            const modalImage = document.getElementById('fb-photomodal-image');\r\n            const modalTitle = document.getElementById('fb-photomodal-title');\r\n            const modalStats = document.getElementById('fb-photomodal-stats');\r\n\r\n            \/\/ Set current photo data\r\n            currentPhotoData = {\r\n                url: photoUrl,\r\n                index: index\r\n            };\r\n\r\n            \/\/ Update modal content\r\n            modalImage.src = photoUrl;\r\n            modalTitle.textContent = `Photo ${index + 1}`;\r\n\r\n            \/\/ Update stats if available\r\n            let photo = null;\r\n            if (profileData && profileData.photos && profileData.photos[index]) {\r\n                photo = profileData.photos[index];\r\n            }\r\n\r\n            if (photo) {\r\n                modalStats.innerHTML = `\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">${photo.likes}<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Likes<\/div>\r\n                <\/div>\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">${photo.comments}<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Comments<\/div>\r\n                <\/div>\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">${photo.width}\u00d7${photo.height}<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Resolution<\/div>\r\n                <\/div>\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">${formatDate(photo.created_time)}<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Date<\/div>\r\n                <\/div>\r\n            `;\r\n            } else {\r\n                modalStats.innerHTML = `\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">N\/A<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Likes<\/div>\r\n                <\/div>\r\n                <div class=\"fb-photomodal-stat\">\r\n                    <div class=\"fb-photomodal-stat-value\">N\/A<\/div>\r\n                    <div class=\"fb-photomodal-stat-label\">Comments<\/div>\r\n                <\/div>\r\n            `;\r\n            }\r\n\r\n            \/\/ Show modal\r\n            modal.classList.add('active');\r\n\r\n            \/\/ Add escape key listener\r\n            document.addEventListener('keydown', handleModalKeydown);\r\n        }\r\n\r\n        function showMobileDownloadButton(photoUrl, index) {\r\n            \/\/ Set current photo data\r\n            currentPhotoData = {\r\n                url: photoUrl,\r\n                index: index\r\n            };\r\n\r\n            \/\/ Show mobile download button\r\n            const mobileBtn = document.getElementById('mobile-download-btn');\r\n            mobileBtn.style.display = 'block';\r\n\r\n            \/\/ Auto-hide after 5 seconds\r\n            setTimeout(() => {\r\n                mobileBtn.style.display = 'none';\r\n                currentPhotoData = null;\r\n            }, 5000);\r\n        }\r\n\r\n        function downloadCurrentPhotoMobile() {\r\n            if (!currentPhotoData) return;\r\n\r\n            const filename = `photo-${currentPhotoData.index + 1}.jpg`;\r\n            downloadImage(currentPhotoData.url, filename, {\r\n                innerHTML: '<i class=\"fas fa-download\"><\/i> Download Photo',\r\n                disabled: false\r\n            });\r\n\r\n            \/\/ Hide the mobile download button after download starts\r\n            const mobileBtn = document.getElementById('mobile-download-btn');\r\n            mobileBtn.style.display = 'none';\r\n            currentPhotoData = null;\r\n        }\r\n\r\n        function closePhotoModal() {\r\n            const modal = document.getElementById('fb-photomodal');\r\n            modal.classList.remove('active');\r\n            currentPhotoData = null;\r\n\r\n            \/\/ Remove escape key listener\r\n            document.removeEventListener('keydown', handleModalKeydown);\r\n        }\r\n\r\n        function handleModalKeydown(event) {\r\n            if (event.key === 'Escape') {\r\n                closePhotoModal();\r\n            }\r\n        }\r\n\r\n        function downloadCurrentPhoto() {\r\n            if (!currentPhotoData) return;\r\n\r\n            const filename = `photo-${currentPhotoData.index + 1}.jpg`;\r\n            downloadImage(currentPhotoData.url, filename, {\r\n                innerHTML: '<i class=\"fas fa-download\"><\/i> Download Original',\r\n                disabled: false\r\n            });\r\n        }\r\n\r\n        function shareCurrentPhoto() {\r\n            if (!currentPhotoData) return;\r\n\r\n            if (navigator.share) {\r\n                navigator.share({\r\n                    title: `Photo ${currentPhotoData.index + 1}`,\r\n                    text: 'Check out this photo!',\r\n                    url: currentPhotoData.url\r\n                }).catch(console.error);\r\n            } else {\r\n                navigator.clipboard.writeText(currentPhotoData.url).then(() => {\r\n                    alert('Photo link copied to clipboard!');\r\n                }).catch(() => {\r\n                    alert('Unable to share photo');\r\n                });\r\n            }\r\n        }\r\n\r\n        function viewOnFacebook() {\r\n            if (currentUrl) {\r\n                window.open(currentUrl, '_blank');\r\n            }\r\n        }\r\n\r\n        function sharePhoto(photoUrl) {\r\n            if (navigator.share) {\r\n                navigator.share({\r\n                    title: 'Photo',\r\n                    text: 'Check out this photo!',\r\n                    url: photoUrl\r\n                }).catch(console.error);\r\n            } else {\r\n                navigator.clipboard.writeText(photoUrl).then(() => {\r\n                    alert('Photo link copied to clipboard!');\r\n                }).catch(() => {\r\n                    alert('Unable to share photo');\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Export Functions\r\n        function exportProfileData() {\r\n            if (!profileData) {\r\n                alert('No profile data available to export');\r\n                return;\r\n            }\r\n\r\n            const exportData = {\r\n                profile: {\r\n                    name: profileData.basicInfo.name,\r\n                    username: currentUsername,\r\n                    profilePicture: profileData.basicInfo.profilePicture,\r\n                    coverPhoto: profileData.basicInfo.coverPhoto,\r\n                    isVerified: profileData.basicInfo.isVerified\r\n                },\r\n                stats: {\r\n                    photos: profileData.photos.length,\r\n                    videos: profileData.videos.length,\r\n                    reels: profileData.reels.length,\r\n                    posts: profileData.posts.length\r\n                },\r\n                photos: profileData.photos.map(photo => ({\r\n                    url: photo.url,\r\n                    width: photo.width,\r\n                    height: photo.height,\r\n                    likes: photo.likes,\r\n                    comments: photo.comments,\r\n                    created_time: photo.created_time\r\n                })),\r\n                videos: profileData.videos.map(video => ({\r\n                    title: video.title,\r\n                    thumbnailUri: video.thumbnailUri,\r\n                    videoUrl: video.videoUrl,\r\n                    duration: video.duration,\r\n                    stats: video.stats,\r\n                    creationTime: video.creationTime\r\n                })),\r\n                reels: profileData.reels.map(reel => ({\r\n                    title: reel.title,\r\n                    thumbnailUri: reel.thumbnailUri,\r\n                    videoUrl: reel.videoUrl,\r\n                    duration: reel.duration,\r\n                    views: reel.views,\r\n                    creationTime: reel.creationTime\r\n                })),\r\n                exportedAt: new Date().toISOString()\r\n            };\r\n\r\n            const dataStr = JSON.stringify(exportData, null, 2);\r\n            const dataBlob = new Blob([dataStr], { type: 'application\/json' });\r\n            const url = URL.createObjectURL(dataBlob);\r\n\r\n            const a = document.createElement('a');\r\n            a.href = url;\r\n            a.download = `${currentUsername || 'profile'}_data_${new Date().toISOString().split('T')[0]}.json`;\r\n            document.body.appendChild(a);\r\n            a.click();\r\n            document.body.removeChild(a);\r\n            URL.revokeObjectURL(url);\r\n        }\r\n\r\n        \/\/ Utility Functions\r\n        function escapeHtml(text) {\r\n            if (!text) return '';\r\n            const map = {\r\n                '&': '&',\r\n                '<': '<',\r\n                '>': '>',\r\n                '\"': '\"',\r\n                \"'\": '''\r\n            };\r\n            return text.replace(\/[&<>\"']\/g, function (m) { return map[m]; });\r\n        }\r\n\r\n        function truncateText(text, length = 100) {\r\n            if (!text || text.length <= length) {\r\n                return text;\r\n            }\r\n            return text.substring(0, length) + '...';\r\n        }\r\n\r\n        function formatDate(timestamp) {\r\n            if (!timestamp) return 'Unknown';\r\n            const date = new Date(timestamp);\r\n            return date.toLocaleDateString('en-US', {\r\n                year: 'numeric',\r\n                month: 'short',\r\n                day: 'numeric'\r\n            });\r\n        }\r\n\r\n        function formatTimeAgo(timestamp) {\r\n            if (!timestamp) return 'Unknown';\r\n            const now = new Date();\r\n            const date = new Date(timestamp);\r\n            const diffInSeconds = Math.floor((now - date) \/ 1000);\r\n\r\n            if (diffInSeconds < 60) return 'Just now';\r\n            if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds \/ 60)}m ago`;\r\n            if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds \/ 3600)}h ago`;\r\n            if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds \/ 86400)}d ago`;\r\n            if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds \/ 2592000)}mo ago`;\r\n            return `${Math.floor(diffInSeconds \/ 31536000)}y ago`;\r\n        }\r\n\r\n        function formatDuration(milliseconds) {\r\n            if (!milliseconds) return '0:00';\r\n            const seconds = Math.floor(milliseconds \/ 1000);\r\n            const minutes = Math.floor(seconds \/ 60);\r\n            const remainingSeconds = seconds % 60;\r\n            return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;\r\n        }\r\n\r\n        function formatNumber(num) {\r\n            if (!num) return '0';\r\n            if (num >= 1000000) return (num \/ 1000000).toFixed(1) + 'M';\r\n            if (num >= 1000) return (num \/ 1000).toFixed(1) + 'K';\r\n            return num.toString();\r\n        }\r\n\r\n        function formatBytes(bytes) {\r\n            if (bytes === 0) return '0 Bytes';\r\n            const k = 1024;\r\n            const sizes = ['Bytes', 'KB', 'MB', 'GB'];\r\n            const i = Math.floor(Math.log(bytes) \/ Math.log(k));\r\n            return parseFloat((bytes \/ Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\r\n        }\r\n\r\n        function formatTotalViews(reels) {\r\n            const total = reels.reduce((sum, reel) => sum + (reel.views || 0), 0);\r\n            return formatNumber(total);\r\n        }\r\n\r\n        \/\/ Click outside modal to close\r\n        document.getElementById('fb-photomodal').addEventListener('click', function (event) {\r\n            if (event.target === this) {\r\n                closePhotoModal();\r\n            }\r\n        });\r\n\r\n        \/\/ Initialize page\r\n        document.addEventListener('DOMContentLoaded', function () {\r\n            console.log('Facebook Unified Analyzer loaded');\r\n\r\n            \/\/ Add some sample URLs for testing\r\n            const urlInput = document.getElementById('urlInput');\r\n            urlInput.addEventListener('focus', function () {\r\n                this.placeholder = 'e.g., https:\/\/www.facebook.com\/username';\r\n            });\r\n\r\n            urlInput.addEventListener('blur', function () {\r\n                if (!this.value) {\r\n                    this.placeholder = 'Enter Facebook profile or page URL...';\r\n                }\r\n            });\r\n        });\r\n\r\n        \/\/ Global error handler\r\n        window.addEventListener('error', function (event) {\r\n            console.error('Global error:', event.error);\r\n        });\r\n\r\n        \/\/ Global unhandled promise rejection handler\r\n        window.addEventListener('unhandledrejection', function (event) {\r\n            console.error('Unhandled promise rejection:', event.reason);\r\n        });\r\n\r\n        function findTopCoverImage(data) {\r\n            let bestImage = { url: '', quality: -1 };\r\n\r\n            function getQuality(url) {\r\n                let quality = 0;\r\n                if (url.includes('scontent')) quality += 1;\r\n                if (url.includes('_n.jpg')) quality += 2;\r\n                if (url.includes('1080')) quality += 3;\r\n                return quality;\r\n            }\r\n\r\n            function findImage(obj) {\r\n                if (!obj || typeof obj !== 'object') return;\r\n\r\n                if (obj.uri && typeof obj.uri === 'string' && obj.uri.includes('scontent')) {\r\n                    const quality = getQuality(obj.uri);\r\n                    if (quality > bestImage.quality) {\r\n                        bestImage = { url: obj.uri, quality: quality };\r\n                    }\r\n                }\r\n\r\n                for (const key in obj) {\r\n                    findImage(obj[key]);\r\n                }\r\n            }\r\n\r\n            findImage(data);\r\n            return bestImage.url;\r\n        }\r\n\r\n        console.log('Facebook Page Viewer loaded');\r\n\r\n        function extractAllImages(obj, path = '') {\r\n            const images = [];\r\n\r\n            if (obj && typeof obj === 'object') {\r\n                if (Array.isArray(obj)) {\r\n                    obj.forEach((item, index) => {\r\n                        images.push(...extractAllImages(item, `${path}[${index}]`));\r\n                    });\r\n                } else {\r\n                    for (const [key, value] of Object.entries(obj)) {\r\n                        const currentPath = path ? `${path}.${key}` : key;\r\n\r\n                        if (key === 'prefetch_uris_v2' && Array.isArray(value)) {\r\n                            value.forEach((uriObj) => {\r\n                                if (uriObj?.uri) {\r\n                                    const resolution = extractResolution(uriObj.uri);\r\n                                    const quality = getQualityScore(uriObj.uri,\r\n                                        resolution?.width || 0,\r\n                                        resolution?.height || 0);\r\n\r\n                                    images.push({\r\n                                        uri: uriObj.uri,\r\n                                        type: 'prefetch',\r\n                                        resolution: resolution,\r\n                                        quality: quality,\r\n                                        width: resolution?.width || 0,\r\n                                        height: resolution?.height || 0\r\n                                    });\r\n                                }\r\n                            });\r\n                        } else if (key === 'image' && value?.uri) {\r\n                            const resolution = extractResolution(value.uri);\r\n                            const width = value.width || resolution?.width || 0;\r\n                            const height = value.height || resolution?.height || 0;\r\n                            const quality = getQualityScore(value.uri, width, height);\r\n\r\n                            images.push({\r\n                                uri: value.uri,\r\n                                type: 'image',\r\n                                width: width,\r\n                                height: height,\r\n                                resolution: resolution,\r\n                                quality: quality\r\n                            });\r\n                        } else if (key === 'uri' && typeof value === 'string' &&\r\n                            (value.includes('scontent') || value.includes('fbcdn'))) {\r\n                            const resolution = extractResolution(value);\r\n                            const quality = getQualityScore(value,\r\n                                resolution?.width || 0,\r\n                                resolution?.height || 0);\r\n\r\n                            images.push({\r\n                                uri: value,\r\n                                type: 'direct',\r\n                                resolution: resolution,\r\n                                quality: quality,\r\n                                width: resolution?.width || 0,\r\n                                height: resolution?.height || 0\r\n                            });\r\n                        } else {\r\n                            images.push(...extractAllImages(value, currentPath));\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n\r\n            return images;\r\n        }\r\n\r\n        function extractResolution(url) {\r\n            try {\r\n                const urlObj = new URL(url);\r\n                const stp = urlObj.searchParams.get('stp');\r\n                if (stp) {\r\n                    const match = stp.match(\/(\\d+)x(\\d+)\/);\r\n                    if (match) {\r\n                        return {\r\n                            width: parseInt(match[1]),\r\n                            height: parseInt(match[2]),\r\n                            total: parseInt(match[1]) * parseInt(match[2])\r\n                        };\r\n                    }\r\n                }\r\n                return null;\r\n            } catch (e) {\r\n                return null;\r\n            }\r\n        }\r\n\r\n        function getQualityScore(url, width = 0, height = 0) {\r\n            let score = 0;\r\n\r\n            const totalPixels = width * height;\r\n            score += Math.min(totalPixels \/ 1000000, 10);\r\n\r\n            if (url.includes('_n.jpg')) score += 5;\r\n            if (url.includes('dst-jpg')) score += 3;\r\n            if (!url.includes('s280x280') && !url.includes('s320x320')) score += 2;\r\n            if (url.includes('s640x640') || url.includes('s1080x1080')) score += 4;\r\n            if (url.includes('_o.jpg')) score += 8;\r\n\r\n            if (url.includes('s80x80') || url.includes('s74x74')) score -= 5;\r\n            if (url.includes('tt6')) score -= 1;\r\n\r\n            return Math.max(score, 0);\r\n        }\r\n    <\/script>\r\n\r\n\r\n    <!-- Animation -->\r\n\r\n\r\n    <script>\r\n        \/\/ Initialize AOS animation\r\n        AOS.init({\r\n            duration: 800,\r\n            easing: 'ease-in-out',\r\n            once: true\r\n        });\r\n\r\n        \/\/ Smooth scrolling for anchor links\r\n        document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\r\n            anchor.addEventListener('click', function (e) {\r\n                e.preventDefault();\r\n                document.querySelector(this.getAttribute('href')).scrollIntoView({\r\n                    behavior: 'smooth'\r\n                });\r\n            });\r\n        });\r\n    <\/script>\n","protected":false},"author":4,"featured_media":0,"parent":237,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-293","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/comments?post=293"}],"version-history":[{"count":4,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/293\/revisions"}],"predecessor-version":[{"id":573,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/293\/revisions\/573"}],"up":[{"embeddable":true,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/237"}],"wp:attachment":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/media?parent=293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}