{"id":280,"date":"2026-03-31T11:21:20","date_gmt":"2026-03-31T11:21:20","guid":{"rendered":"https:\/\/viewanonymous.com\/?page_id=280"},"modified":"2026-03-31T11:21:20","modified_gmt":"2026-03-31T11:21:20","slug":"profile","status":"publish","type":"page","link":"https:\/\/viewanonymous.com\/tools\/facebook\/profile\/","title":{"rendered":"Facebook Profile Viewer \u2013 View FB Profiles Without Login"},"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;] <!-- boxicon -->\r\n    <link href=\"https:\/\/unpkg.com\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n    <!-- font -->\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;600;700&display=swap\" rel=\"stylesheet\">\r\n    <!-- Font awesome -->\r\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\" 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\r\n    <!-- Favicon -->\r\n    <link rel=\"icon\" href=\"https:\/\/americansviewer.com\/media\/1769663809_wSx1bgRoc2_av-favicon.png\" type=\"image\/x-icon\">\r\n    \r\n    <!-- Google Fonts - Premium Typography -->\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n    \r\n    <!-- Bootstrap CSS -->\r\n    <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\r\n    <!-- Boxicons -->\r\n    <link href=\"https:\/\/unpkg.com\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n    <!-- AOS Animation -->\r\n    <link href=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.css\" rel=\"stylesheet\">\r\n\r\n\r\n    <style id=\"vvvebjs-styles\">\r\n        html {\r\n            overflow-x: hidden;\r\n        }\r\n\r\n\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:root {\r\n    --gradient-1: #6366F1;\r\n    --gradient-2: #8c60ff;\r\n    --gradient-3: #6366F1;\r\n    --gradient-4: #4F46E5;\r\n    --gradient-5: #818CF8;\r\n    --dark-color: var(--va-home-dark);\r\n    --light-color: var(--va-home-white);\r\n    --gray-color: var(--va-home-soft-bg);\r\n    --instagram-gradient: linear-gradient(45deg, var(--gradient-1), var(--gradient-2), var(--gradient-3), var(--gradient-4), var(--gradient-5));\r\n    --instagram-gradient-hover: linear-gradient(45deg, #4F46E5, #7c3aed, #6366F1, #4F46E5, #7c3aed);\r\n    --section-padding: 100px 0;\r\n}\r\n      \r\n\r\n        \/* Work Process Section with Gradient *\/\r\n        .work-process-section {\r\n            padding: var(--section-padding);\r\n            background: var(--instagram-gradient);\r\n            color: white;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .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        .work-process-content {\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        .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        .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        .step-number {\r\n            width: 60px;\r\n            height: 60px;\r\n            background: white;\r\n            color: var(--gradient-3);\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        .features-section {\r\n            padding: var(--section-padding);\r\n            background: white;\r\n        }\r\n\r\n        .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        .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(--instagram-gradient);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .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        .feature-card:hover::before {\r\n            width: 100%;\r\n            opacity: 0.1;\r\n        }\r\n\r\n        .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(--instagram-gradient);\r\n            color: white;\r\n            font-size: 1.8rem;\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .feature-card:hover .feature-icon {\r\n            transform: rotate(15deg) scale(1.1);\r\n            background: var(--instagram-gradient-hover);\r\n        }\r\n\r\n        \/* Why Choose Section *\/\r\n        .why-choose-section {\r\n            padding: var(--section-padding);\r\n            background: #f9f9f9;\r\n        }\r\n\r\n        .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        .why-choose-image:hover {\r\n            transform: perspective(1000px) rotateY(0deg);\r\n        }\r\n\r\n        .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        .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        .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(--instagram-gradient);\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        .faq-section {\r\n            padding: var(--section-padding);\r\n            background: white;\r\n        }\r\n\r\n        .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        .accordion-button {\r\n            font-weight: 600;\r\n            color: var(--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        .accordion-button:not(.collapsed) {\r\n            background: white;\r\n            color: var(--gradient-3);\r\n            box-shadow: none;\r\n        }\r\n\r\n        .accordion-button:focus {\r\n            box-shadow: none;\r\n            border-color: rgba(220, 39, 67, 0.3);\r\n        }\r\n\r\n        .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='%23dc2743'%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        .accordion-body {\r\n            padding: 25px;\r\n            color: #666;\r\n        }\r\n\r\n        \/* Section Titles *\/\r\n        .section-title {\r\n            font-weight: 700;\r\n            color: var(--dark-color);\r\n            margin-bottom: 1.5rem;\r\n            position: relative;\r\n            display: inline-block;\r\n        }\r\n\r\n        .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(--instagram-gradient);\r\n            border-radius: 2px;\r\n        }\r\n\r\n        .light-title {\r\n            color: white;\r\n        }\r\n\r\n        .light-title::after {\r\n            background: white;\r\n        }\r\n\r\n        .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        .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                --section-padding: 80px 0;\r\n            }\r\n\r\n            .hero-section h1 {\r\n                font-size: 2.8rem;\r\n            }\r\n\r\n            .process-step::before {\r\n                display: none;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 767px) {\r\n            :root {\r\n                --section-padding: 70px 0;\r\n            }\r\n\r\n            .hero-section {\r\n                padding: 100px 0 60px;\r\n            }\r\n\r\n            .hero-section h1 {\r\n                font-size: 2.2rem;\r\n            }\r\n\r\n            .hero-section p {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .section-title {\r\n                font-size: 1.8rem;\r\n            }\r\n        }\r\n\r\n        \/* Animation *\/\r\n        @keyframes 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        .floating-element {\r\n            animation: 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(--gradient-3);\r\n            border-radius: 10px;\r\n        }\r\n\r\n        ::-webkit-scrollbar-thumb:hover {\r\n            background: var(--gradient-4);\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    <style>\r\n        :root {\r\n            \/* Instagram-Inspired Color System *\/\r\n            --instagram-yellow: #feda75;\r\n            --instagram-orange: #fa7e1e;\r\n            --instagram-pink: #d62976;\r\n            --instagram-purple: #962fbf;\r\n            --instagram-blue: #4f5bd5;\r\n\r\n            \/* Primary Color System (Instagram-based) *\/\r\n            --primary-50: #fefbf0;\r\n            --primary-100: #fef7e0;\r\n            --primary-200: #fdeec7;\r\n            --primary-300: #fbe0a5;\r\n            --primary-400: #f8d181;\r\n            --primary-500: #feda75;\r\n            --primary-600: #f5c23e;\r\n            --primary-700: #e8a91a;\r\n            --primary-800: #c18a0f;\r\n            --primary-900: #9a6b0a;\r\n\r\n            \/* Secondary Color System (Orange-based) *\/\r\n            --secondary-50: #fef7f0;\r\n            --secondary-100: #fdeee0;\r\n            --secondary-200: #fbdcc7;\r\n            --secondary-300: #f8c4a5;\r\n            --secondary-400: #f5a681;\r\n            --secondary-500: #fa7e1e;\r\n            --secondary-600: #e86a0f;\r\n            --secondary-700: #c55a0d;\r\n            --secondary-800: #a24a0b;\r\n            --secondary-900: #7f3a09;\r\n\r\n            \/* Accent Color System (Pink-based) *\/\r\n            --accent-50: #fdf0f7;\r\n            --accent-100: #fbe0ef;\r\n            --accent-200: #f7c2df;\r\n            --accent-300: #f29cc9;\r\n            --accent-400: #ed76b3;\r\n            --accent-500: #d62976;\r\n            --accent-600: #c22466;\r\n            --accent-700: #a81e55;\r\n            --accent-800: #8e1844;\r\n            --accent-900: #741233;\r\n\r\n            \/* Success Color System (Purple-based) *\/\r\n            --success-50: #f7f0fd;\r\n            --success-100: #efe0fb;\r\n            --success-200: #dfc2f7;\r\n            --success-300: #c99cf2;\r\n            --success-400: #b376ed;\r\n            --success-500: #962fbf;\r\n            --success-600: #852aac;\r\n            --success-700: #742599;\r\n            --success-800: #632086;\r\n            --success-900: #521b73;\r\n\r\n            \/* Warning Color System (Blue-based) *\/\r\n            --warning-50: #f0f2fd;\r\n            --warning-100: #e0e4fb;\r\n            --warning-200: #c2c9f7;\r\n            --warning-300: #9ca7f2;\r\n            --warning-400: #7685ed;\r\n            --warning-500: #4f5bd5;\r\n            --warning-600: #4652c0;\r\n            --warning-700: #3d49ab;\r\n            --warning-800: #344096;\r\n            --warning-900: #2b3781;\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            \/* Instagram-Inspired Gradients *\/\r\n            --gradient-primary: linear-gradient(45deg, #4F46E5, #7c3aed, #6366F1, #4F46E5, #7c3aed);\r\n            --gradient-secondary: linear-gradient(135deg, #fa7e1e 0%, #d62976 100%);\r\n            --gradient-accent: linear-gradient(135deg, #d62976 0%, #962fbf 100%);\r\n            --gradient-success: linear-gradient(135deg, #962fbf 0%, #4f5bd5 100%);\r\n            --gradient-warm: linear-gradient(135deg, #feda75 0%, #fa7e1e 100%);\r\n            --gradient-cool: linear-gradient(135deg, #4f5bd5 0%, #962fbf 100%);\r\n            --gradient-dark: linear-gradient(135deg, #1e293b 0%, #334155 100%);\r\n            --gradient-mesh: radial-gradient(at 40% 20%, rgba(254, 218, 117, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 80% 0%, rgba(250, 126, 30, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 0% 50%, rgba(214, 41, 118, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 80% 50%, rgba(150, 47, 191, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 0% 100%, rgba(79, 91, 213, 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(254 218 117 \/ 0.2), 0 8px 10px -6px rgb(254 218 117 \/ 0.2);\r\n            --shadow-colored-secondary: 0 20px 25px -5px rgb(250 126 30 \/ 0.2), 0 8px 10px -6px rgb(250 126 30 \/ 0.2);\r\n            --shadow-colored-accent: 0 20px 25px -5px rgb(214 41 118 \/ 0.2), 0 8px 10px -6px rgb(214 41 118 \/ 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        \/* html {\r\n            scroll-behavior: smooth;\r\n            -webkit-text-size-adjust: 100%;\r\n        }\r\n\r\n        body {\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(254, 218, 117, 0.08) 0%, transparent 50%),\r\n                radial-gradient(circle at 80% 20%, rgba(250, 126, 30, 0.08) 0%, transparent 50%),\r\n                radial-gradient(circle at 40% 40%, rgba(214, 41, 118, 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        \/* .container {\r\n          max-width: 1200px;\r\n          margin: 0 auto !important;\r\n          padding: var(--space-8);\r\n          position: relative;\r\n      } *\/\r\n\r\n        \/* Premium Header *\/\r\n        .header {\r\n            text-align: center;\r\n            margin-bottom: var(--space-20);\r\n            animation: slideDown var(--duration-1000) var(--ease-elastic);\r\n            position: relative;\r\n            margin-top: 150px;\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(254, 218, 117, 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(var(--text-4xl), 8vw, var(--text-7xl));\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: var(--space-6);\r\n            letter-spacing: -0.04em;\r\n            line-height: 0.9;\r\n            position: relative;\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: var(--text-xl);\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(--white);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-2xl);\r\n            padding: var(--space-12);\r\n            margin-bottom: var(--space-16);\r\n            border: 1px solid var(--gray-200);\r\n            animation: slideUp var(--duration-1000) var(--ease-elastic) 0.2s both;\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: -100%;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: linear-gradient(90deg, transparent, rgba(254, 218, 117, 0.03), transparent);\r\n            animation: shine 4s ease-in-out infinite;\r\n        }\r\n\r\n        @keyframes shine {\r\n            0% {\r\n                left: -100%;\r\n            }\r\n\r\n            50% {\r\n                left: 100%;\r\n            }\r\n\r\n            100% {\r\n                left: -100%;\r\n            }\r\n        }\r\n\r\n        @keyframes slideUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(60px) scale(0.95);\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        .search-form {\r\n            display: flex;\r\n            gap: var(--space-4);\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        .input-group {\r\n            flex: 1;\r\n            position: relative;\r\n        }\r\n\r\n        .input-icon {\r\n            position: absolute;\r\n            left: var(--space-6);\r\n            top: 50%;\r\n            transform: translateY(-50%);\r\n            color: var(--gray-400);\r\n            font-size: var(--text-xl);\r\n            z-index: 3;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .url-input {\r\n            width: 100%;\r\n            padding: var(--space-5) var(--space-5) var(--space-5) var(--space-16);\r\n            border: 2px solid var(--gray-200);\r\n            border-radius: var(--radius-3xl);\r\n            font-size: var(--text-lg);\r\n            font-weight: 500;\r\n            background: var(--white);\r\n            color: var(--gray-900);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            font-family: inherit;\r\n            box-shadow: var(--shadow-sm);\r\n        }\r\n\r\n        .url-input::placeholder {\r\n            color: var(--gray-400);\r\n            font-weight: 400;\r\n        }\r\n\r\n        .url-input:focus {\r\n            outline: none;\r\n            border-color: var(--primary-500);\r\n            box-shadow: 0 0 0 4px var(--primary-100), var(--shadow-lg);\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        .url-input:focus+.input-icon {\r\n            color: var(--primary-500);\r\n            transform: translateY(-50%) scale(1.1);\r\n        }\r\n\r\n        .analyze-btn {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: var(--space-5) var(--space-10);\r\n            border-radius: var(--radius-3xl);\r\n            font-size: var(--text-lg);\r\n            font-weight: 700;\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            font-family: inherit;\r\n            white-space: nowrap;\r\n            position: relative;\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-lg);\r\n            letter-spacing: 0.025em;\r\n        }\r\n\r\n        .analyze-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        .analyze-btn:hover::before {\r\n            left: 100%;\r\n        }\r\n\r\n        .analyze-btn:hover {\r\n            transform: translateY(-3px) scale(1.02);\r\n            box-shadow: var(--shadow-colored-primary);\r\n        }\r\n\r\n        .analyze-btn:active {\r\n            transform: translateY(-1px) scale(0.98);\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        .error-message {\r\n            background: var(--gradient-warm);\r\n            color: var(--white);\r\n            padding: var(--space-4) var(--space-6);\r\n            border-radius: var(--radius-2xl);\r\n            margin-top: var(--space-4);\r\n            font-weight: 600;\r\n            animation: shake var(--duration-500) var(--ease-out);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        @keyframes shake {\r\n\r\n            0%,\r\n            100% {\r\n                transform: translateX(0);\r\n            }\r\n\r\n            25% {\r\n                transform: translateX(-8px);\r\n            }\r\n\r\n            75% {\r\n                transform: translateX(8px);\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(254, 218, 117, 0.05) 100%);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-2xl);\r\n            border: 1px solid rgba(254, 218, 117, 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(250, 126, 30, 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(254, 218, 117, 0.3);\r\n            border-top: 4px solid var(--instagram-yellow);\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(--instagram-orange);\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(254, 218, 117, 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 *\/\r\n        .group-header {\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            position: relative;\r\n        }\r\n\r\n        .group-cover {\r\n            position: relative;\r\n            height: 400px;\r\n            background: var(--gradient-primary);\r\n            overflow: hidden;\r\n        }\r\n\r\n        .group-cover img {\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        .group-cover:hover img {\r\n            transform: scale(1.05);\r\n        }\r\n\r\n        .group-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        .group-info-overlay {\r\n            position: absolute;\r\n            bottom: 0;\r\n            left: 0;\r\n            right: 0;\r\n            padding: var(--space-12);\r\n            color: var(--white);\r\n        }\r\n\r\n        .group-title {\r\n            font-size: clamp(var(--text-2xl), 5vw, var(--text-5xl));\r\n            font-weight: 800;\r\n            margin-bottom: var(--space-3);\r\n            text-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);\r\n            letter-spacing: -0.02em;\r\n            line-height: 1.1;\r\n        }\r\n\r\n        .group-subtitle {\r\n            font-size: var(--text-xl);\r\n            opacity: 0.95;\r\n            font-weight: 600;\r\n            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\r\n        }\r\n\r\n        .group-details {\r\n            padding: var(--space-12);\r\n        }\r\n\r\n        .stats-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\r\n            gap: var(--space-6);\r\n            margin-bottom: var(--space-10);\r\n        }\r\n\r\n        .stat-card {\r\n            background: linear-gradient(135deg, var(--white) 0%, var(--gray-25) 100%);\r\n            border: 1px solid var(--gray-200);\r\n            border-radius: var(--radius-3xl);\r\n            padding: var(--space-8);\r\n            text-align: center;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            animation: fadeInUp var(--duration-700) var(--ease-elastic);\r\n            animation-delay: calc(var(--delay) * 0.1s);\r\n            animation-fill-mode: both;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .stat-card::before {\r\n            content: '';\r\n            position: absolute;\r\n            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        }\r\n\r\n        .stat-card:hover::before {\r\n            opacity: 0.05;\r\n        }\r\n\r\n        @keyframes fadeInUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(40px) scale(0.9);\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        .stat-card:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n            border-color: var(--primary-300);\r\n        }\r\n\r\n        .stat-icon {\r\n            width: 64px;\r\n            height: 64px;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-2xl);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin: 0 auto var(--space-4);\r\n            font-size: var(--text-2xl);\r\n            box-shadow: var(--shadow-lg);\r\n            position: relative;\r\n            z-index: 2;\r\n            color: var(--white);\r\n        }\r\n\r\n        .stat-number {\r\n            font-size: var(--text-3xl);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n            display: block;\r\n            margin-bottom: var(--space-2);\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .stat-label {\r\n            font-size: var(--text-sm);\r\n            color: var(--gray-600);\r\n            font-weight: 600;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.1em;\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .group-description {\r\n            background: linear-gradient(135deg, var(--gray-50) 0%, var(--white) 100%);\r\n            border: 1px solid var(--gray-200);\r\n            border-radius: var(--radius-3xl);\r\n            padding: var(--space-8);\r\n            margin-bottom: var(--space-8);\r\n            font-size: var(--text-lg);\r\n            line-height: 1.8;\r\n            color: var(--gray-700);\r\n            box-shadow: var(--shadow-sm);\r\n        }\r\n\r\n        .visit-btn {\r\n            background: var(--gradient-accent);\r\n            color: var(--white);\r\n            text-decoration: none;\r\n            padding: var(--space-4) var(--space-8);\r\n            border-radius: var(--radius-2xl);\r\n            font-weight: 700;\r\n            font-size: var(--text-lg);\r\n            display: inline-flex;\r\n            align-items: center;\r\n            gap: var(--space-3);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            box-shadow: var(--shadow-lg);\r\n            letter-spacing: 0.025em;\r\n        }\r\n\r\n        .visit-btn:hover {\r\n            transform: translateY(-3px) scale(1.05);\r\n            box-shadow: var(--shadow-colored-accent);\r\n        }\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(254, 218, 117, 0.95) 0%,\r\n                    rgba(250, 126, 30, 0.95) 50%,\r\n                    rgba(214, 41, 118, 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 for Groups *\/\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(254, 218, 117, 0.3);\r\n        }\r\n\r\n        .video-card video {\r\n            width: 100%;\r\n            height: 250px;\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    text-align: left;\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(250, 126, 30, 0.1) 0%, rgba(214, 41, 118, 0.1) 100%);\r\n            color: var(--instagram-orange);\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            border: 1px solid rgba(250, 126, 30, 0.2);\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-download-btn {\r\n            flex: 1;\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: var(--space-3) 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            position: relative;\r\n            overflow: hidden;\r\n            box-shadow: 0 4px 15px rgba(254, 218, 117, 0.3);\r\n        }\r\n\r\n        .video-download-btn:hover {\r\n            transform: translateY(-2px) scale(1.02);\r\n            box-shadow: 0 8px 25px rgba(254, 218, 117, 0.4);\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: rgba(255, 255, 255, 0.5);\r\n            transition: width var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .copy-btn {\r\n            background: linear-gradient(135deg, rgba(214, 41, 118, 0.1) 0%, rgba(150, 47, 191, 0.1) 100%);\r\n            color: var(--instagram-pink);\r\n            border: 1px solid rgba(214, 41, 118, 0.2);\r\n            padding: var(--space-3);\r\n            border-radius: var(--radius-xl);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .copy-btn:hover {\r\n            background: linear-gradient(135deg, rgba(214, 41, 118, 0.2) 0%, rgba(150, 47, 191, 0.2) 100%);\r\n            transform: scale(1.1);\r\n            box-shadow: 0 4px 15px rgba(214, 41, 118, 0.3);\r\n        }\r\n\r\n        .download-all-btn {\r\n            background: var(--gradient-accent);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: var(--space-4) var(--space-8);\r\n            border-radius: var(--radius-3xl);\r\n            font-size: var(--text-lg);\r\n            font-weight: 700;\r\n            cursor: pointer;\r\n            margin-bottom: var(--space-8);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        .download-all-btn:hover {\r\n            transform: translateY(-3px) scale(1.02);\r\n            box-shadow: var(--shadow-colored-accent);\r\n        }\r\n\r\n        \/* Profile Styles *\/\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(254, 218, 117, 0.1) 0%,\r\n                    rgba(214, 41, 118, 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            text-align: start;\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(254, 218, 117, 0.1) 0%, rgba(250, 126, 30, 0.1) 100%);\r\n            padding: var(--space-2);\r\n            border-radius: var(--radius-2xl);\r\n            border: 1px solid rgba(254, 218, 117, 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            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--space-2);\r\n            position: relative;\r\n            font-family: inherit;\r\n        }\r\n\r\n        .nav-tab:hover {\r\n            background: rgba(254, 218, 117, 0.1);\r\n            color: var(--instagram-orange);\r\n            transform: translateY(-1px);\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-lg);\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        .nav-indicator {\r\n            position: absolute;\r\n            bottom: 0;\r\n            left: 50%;\r\n            width: 0;\r\n            height: 3px;\r\n            background: var(--instagram-pink);\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(214, 41, 118, 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        \/* Photos Grid *\/\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(254, 218, 117, 0.9) 0%,\r\n                    rgba(214, 41, 118, 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        \/* Photo Modal *\/\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        \/* Content Headers *\/\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        \/* Posts Container *\/\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        \/* About Cards *\/\r\n        .about-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\r\n            gap: var(--space-6);\r\n        }\r\n\r\n        .about-card {\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        .about-card:hover {\r\n            transform: translateY(-4px);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        .card-header {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-4);\r\n            margin-bottom: var(--space-6);\r\n        }\r\n\r\n        .card-icon {\r\n            width: 48px;\r\n            height: 48px;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-2xl);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: var(--white);\r\n            font-size: var(--text-xl);\r\n        }\r\n\r\n        .card-header h3 {\r\n            font-size: var(--text-xl);\r\n            font-weight: 700;\r\n            color: var(--gray-900);\r\n        }\r\n\r\n        .card-content {\r\n            color: var(--gray-700);\r\n            line-height: 1.6;\r\n        }\r\n\r\n        .about-item {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n            margin-bottom: var(--space-4);\r\n        }\r\n\r\n        .about-item:last-child {\r\n            margin-bottom: 0;\r\n        }\r\n\r\n        .about-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            background: var(--gray-100);\r\n            border-radius: var(--radius-xl);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: var(--gray-600);\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .about-text h3 {\r\n            font-weight: 600;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-1);\r\n        }\r\n\r\n        .about-text p {\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        \/* Premium Empty State *\/\r\n        .empty-state {\r\n            text-align: center;\r\n            padding: var(--space-20) var(--space-8);\r\n            color: var(--gray-600);\r\n        }\r\n\r\n        .empty-icon {\r\n            width: 120px;\r\n            height: 120px;\r\n            background: linear-gradient(135deg, var(--gray-100) 0%, var(--gray-200) 100%);\r\n            border-radius: var(--radius-full);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin: 0 auto var(--space-8);\r\n            font-size: var(--text-4xl);\r\n            box-shadow: var(--shadow-lg);\r\n            animation: bounce 2s ease-in-out infinite;\r\n        }\r\n\r\n        @keyframes bounce {\r\n\r\n            0%,\r\n            20%,\r\n            50%,\r\n            80%,\r\n            100% {\r\n                transform: translateY(0);\r\n            }\r\n\r\n            40% {\r\n                transform: translateY(-15px);\r\n            }\r\n\r\n            60% {\r\n                transform: translateY(-8px);\r\n            }\r\n        }\r\n\r\n        .empty-state h3 {\r\n            font-size: var(--text-2xl);\r\n            font-weight: 700;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-3);\r\n        }\r\n\r\n        .empty-state p {\r\n            font-size: var(--text-lg);\r\n            line-height: 1.7;\r\n            max-width: 500px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        .no-data-message {\r\n            text-align: center;\r\n            padding: var(--space-12);\r\n            color: var(--gray-500);\r\n            font-size: var(--text-lg);\r\n            background: var(--gray-50);\r\n            border-radius: var(--radius-2xl);\r\n            border: 2px dashed var(--gray-300);\r\n        }\r\n\r\n        \/* Premium Debug Section *\/\r\n        .debug-container {\r\n            background: var(--gray-950);\r\n            color: var(--gray-100);\r\n            border-radius: var(--radius-4xl);\r\n            padding: var(--space-8);\r\n            box-shadow: var(--shadow-2xl);\r\n            border: 1px solid var(--gray-800);\r\n        }\r\n\r\n        .debug-section {\r\n            margin-bottom: var(--space-8);\r\n        }\r\n\r\n        .debug-title {\r\n            color: var(--primary-400);\r\n            font-size: var(--text-xl);\r\n            font-weight: 700;\r\n            margin-bottom: var(--space-4);\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n        }\r\n\r\n        .debug-content {\r\n            background: var(--gray-900);\r\n            border-radius: var(--radius-2xl);\r\n            padding: var(--space-6);\r\n            font-family: 'JetBrains Mono', 'SF Mono', Monaco, 'Cascadia Code', monospace;\r\n            font-size: var(--text-sm);\r\n            line-height: 1.8;\r\n            border: 1px solid var(--gray-800);\r\n            box-shadow: var(--shadow-inner);\r\n            white-space: pre-line;\r\n        }\r\n\r\n        \/* Video Thumbnail Styles *\/\r\n        .video-thumbnail {\r\n            position: relative;\r\n            height: 350px;\r\n            background-size: cover;\r\n            background-position: center;\r\n            background-color: var(--gray-200);\r\n            cursor: pointer;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            overflow: hidden;\r\n            border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;\r\n        }\r\n\r\n        .video-play-icon {\r\n            position: absolute;\r\n            top: 50%;\r\n            left: 50%;\r\n            transform: translate(-50%, -50%);\r\n            width: 50px;\r\n            height: 50px;\r\n            background: rgba(0, 0, 0, 0.6);\r\n            border-radius: var(--radius-full);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-size: var(--text-2xl);\r\n            color: var(--white);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            z-index: 2;\r\n            backdrop-filter: blur(10px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n        }\r\n\r\n        .video-thumbnail:hover .video-play-icon {\r\n            transform: translate(-50%, -50%) scale(1.1);\r\n            background: rgba(0, 0, 0, 0.8);\r\n            border-color: rgba(255, 255, 255, 0.5);\r\n        }\r\n\r\n        .video-quality-badge {\r\n            position: absolute;\r\n            top: var(--space-3);\r\n            left: var(--space-3);\r\n            background: rgba(0, 0, 0, 0.7);\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            z-index: 2;\r\n        }\r\n\r\n        .reel-badge {\r\n            position: absolute;\r\n            top: var(--space-3);\r\n            left: var(--space-3);\r\n            background: var(--gradient-secondary);\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            z-index: 2;\r\n        }\r\n\r\n        .video-duration {\r\n            position: absolute;\r\n            bottom: var(--space-3);\r\n            right: var(--space-3);\r\n            background: rgba(0, 0, 0, 0.7);\r\n            color: var(--white);\r\n            padding: var(--space-1) var(--space-3);\r\n            border-radius: var(--radius-lg);\r\n            font-size: var(--text-xs);\r\n            font-weight: 600;\r\n            z-index: 2;\r\n        }\r\n\r\n        .video-stats {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n            margin-bottom: var(--space-4);\r\n            font-size: var(--text-sm);\r\n      text-align:left;\r\n        }\r\n\r\n        .video-stats .stat-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-1);\r\n            color: var(--gray-600);\r\n        }\r\n\r\n        .video-stats .stat-item i {\r\n            color: var(--primary-500);\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        \/* Responsive Design *\/\r\n        @media (max-width: 1024px) {\r\n            \/* .container {\r\n              padding: var(--space-6);\r\n          }  *\/\r\n\r\n            .search-section {\r\n                padding: var(--space-8);\r\n            }\r\n\r\n            .group-details {\r\n                padding: var(--space-8);\r\n            }\r\n\r\n            .profile-info-section {\r\n                padding: var(--space-8);\r\n            }\r\n\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            \/* .container {\r\n              padding: var(--space-4);\r\n          } *\/\r\n\r\n            .search-form {\r\n                flex-direction: column;\r\n            }\r\n\r\n            .tab-list {\r\n                flex-wrap: wrap;\r\n            }\r\n\r\n            .media-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .video-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .stats-grid {\r\n                grid-template-columns: repeat(2, 1fr);\r\n            }\r\n\r\n            .summary-stats {\r\n                grid-template-columns: repeat(2, 1fr);\r\n            }\r\n\r\n            .download-actions {\r\n                flex-direction: row;\r\n                justify-content: center;\r\n            }\r\n\r\n            .download-btn {\r\n                min-width: 140px;\r\n                padding: var(--space-3) var(--space-6);\r\n            }\r\n\r\n            .header h1 {\r\n                font-size: var(--text-4xl);\r\n            }\r\n\r\n            .group-cover {\r\n                height: 250px;\r\n            }\r\n\r\n            .cover-section {\r\n                height: 250px;\r\n            }\r\n\r\n            .profile-header {\r\n                flex-direction: column;\r\n                align-items: center;\r\n                text-align: center;\r\n                margin-top: -60px;\r\n            }\r\n\r\n            .profile-details {\r\n                margin-top: var(--space-4);\r\n            }\r\n\r\n            .profile-nav-tabs {\r\n                flex-direction: column;\r\n            }\r\n\r\n            .nav-tab {\r\n                justify-content: flex-start;\r\n            }\r\n\r\n            .about-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .photos-grid {\r\n                grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\r\n            }\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n            .stats-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .summary-stats {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .download-actions {\r\n                flex-direction: column;\r\n            }\r\n\r\n            .search-section {\r\n                padding: var(--space-6);\r\n            }\r\n\r\n            .group-details {\r\n                padding: var(--space-6);\r\n            }\r\n\r\n            .profile-info-section {\r\n                padding: var(--space-6);\r\n            }\r\n\r\n            .profile-picture {\r\n                width: 120px;\r\n                height: 120px;\r\n            }\r\n\r\n            .profile-name {\r\n                font-size: var(--text-2xl);\r\n            }\r\n\r\n            .photos-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n        }\r\n\r\n        \/* Add these styles to support the new video functionality *\/\r\n        .video-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        }\r\n\r\n        .video-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        .video-card video {\r\n            width: 100%;\r\n            height: 350px;\r\n            object-fit: cover;\r\n            border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;\r\n        }\r\n\r\n        .video-badges {\r\n            margin-bottom: var(--space-4);\r\n            display: flex;\r\n            gap: var(--space-2);\r\n        }\r\n\r\n        .quality-badge {\r\n            background: var(--gradient-success);\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        .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\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\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(254, 218, 117, 0.95) 0%,\r\n                  rgba(250, 126, 30, 0.95) 50%,\r\n                  rgba(214, 41, 118, 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        .analyze-btn {\r\n            display: flex;\r\n            align-items: center;\r\n        }\r\n\r\n        .content-title i {\r\n            margin-bottom: 25px;\r\n        }\r\n    <\/style>\r\n\r\n    <section class=\"av-hero d-flex flex-column justify-content-center align-items-center text-center\">\r\n        <div class=\"container\">\r\n            <div class=\"row justify-content-center\">\r\n                <div class=\"col-md-12\">\r\n\r\n                    <!-- Here will be tools -->\r\n                    <section>\r\n                        <div class=\"bg-pattern\"><\/div>\r\n                        <div class=\"bg-overlay\"><\/div>\r\n\r\n                        <div class=\"container\">\r\n                            <header class=\"header\">\r\n                                <h1>Facebook Profile Viewer<\/h1>\r\n                                <p>Analyze Facebook profiles, groups and pages with advanced analytics and beautiful\r\n                                    visualizations<\/p>\r\n                            <\/header>\r\n\r\n                            <section class=\"search-section\">\r\n                                <form class=\"search-form\" onsubmit=\"analyzeUrl(event)\">\r\n                                    <div class=\"input-group\" style=\"display: flex; flex-direction: column; align-items: flex-start; width: 100%;\">\r\n                                        <label for=\"urlInput\" style=\"display:block;font-weight:600;margin-bottom:0.5rem;color:var(--gray-700);font-size:var(--text-base);margin-left:0.5rem;\">Enter\r\n                                            your facebook profile, page or group url.<\/label>\r\n                                        <div style=\"display: flex; width: 100%; align-items: center;\">\r\n                                            <input type=\"url\" id=\"urlInput\" class=\"url-input\" style=\"height: 56px; border-radius: 2rem 0 0 2rem; font-size: 1.1rem; padding-left: 1.5rem; box-shadow: var(--shadow-md); border: 2px solid var(--primary-100);\" placeholder=\"Enter Facebook group or profile URL...\" required=\"\">\r\n                                            <button type=\"submit\" class=\"analyze-btn\" id=\"analyzeBtn\" style=\"height: 56px; border-radius: 0 2rem 2rem 0; font-size: 1.1rem; margin-left: -1px; box-shadow: var(--shadow-md);\">Analyze<\/button>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                <\/form>\r\n                                <div id=\"errorMessage\" class=\"error-message\" style=\"display: none;\"><\/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 data...<\/div>\r\n                            <\/div>\r\n\r\n                            <!-- Group Content Container -->\r\n                            <main id=\"groupContent\" style=\"display: none;\">\r\n                                <!-- Dynamic group content will be inserted here -->\r\n                            <\/main>\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                    <\/section>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n    <\/section>\r\n\r\n    <!-- Work Process Section -->\r\n    <section class=\"work-process-section\" id=\"how-it-works\">\r\n        <div class=\"container work-process-content\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"section-title light-title\">How Our Facebook Profile Viewer Works<\/h2>\r\n                <p class=\"section-subtitle light-subtitle\">View any public Facebook profile in just 3 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=\"process-step\">\r\n                        <div class=\"step-number\">1<\/div>\r\n                        <h4 class=\"text-white\">Enter Profile URL<\/h4>\r\n                        <p class=\"light-subtitle\">Copy and paste the Facebook profile link you want to view anonymously\r\n                        <\/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=\"process-step\">\r\n                        <div class=\"step-number\">2<\/div>\r\n                        <h4 class=\"text-white\">Process Request<\/h4>\r\n                        <p class=\"light-subtitle\">Our system fetches the profile data without revealing your identity\r\n                        <\/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=\"process-step\">\r\n                        <div class=\"step-number\">3<\/div>\r\n                        <h4 class=\"text-white\">View Profile<\/h4>\r\n                        <p class=\"light-subtitle\">See all public profile information without being detected<\/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=\"features-section\">\r\n        <div class=\"container\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"section-title\">Key Features<\/h2>\r\n                <p class=\"section-subtitle\">Our Facebook Profile Viewer offers powerful features for anonymous browsing\r\n                <\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-user-check\"><\/i>\r\n                        <\/div>\r\n                        <h4>100% Anonymous<\/h4>\r\n                        <p>View profiles without appearing in \"Who Viewed My Profile\" or leaving any digital footprint\r\n                        <\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-lock-alt\"><\/i>\r\n                        <\/div>\r\n                        <h4>No Login Required<\/h4>\r\n                        <p>Access any public Facebook profile without needing an account or credentials<\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-photo-album\"><\/i>\r\n                        <\/div>\r\n                        <h4>Full Media Access<\/h4>\r\n                        <p>View all public photos, videos, and posts without restrictions<\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-devices\"><\/i>\r\n                        <\/div>\r\n                        <h4>Cross-Platform<\/h4>\r\n                        <p>Works perfectly on desktop, tablet, and mobile devices<\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-shield\"><\/i>\r\n                        <\/div>\r\n                        <h4>Secure Browsing<\/h4>\r\n                        <p>All connections are encrypted to protect your privacy<\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-time-five\"><\/i>\r\n                        <\/div>\r\n                        <h4>Instant Results<\/h4>\r\n                        <p>Get profile information 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=\"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=\"why-choose-image floating-element\">\r\n                        <img decoding=\"async\" src=\"https:\/\/viewanonymous.com\/wp-content\/uploads\/2026\/03\/Facebook_Profile_Viewer.webp\" alt=\"Facebook Profile 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=\"section-title mb-4\">Why Choose Our Facebook Profile Viewer?<\/h2>\r\n                    <p class=\"mb-4\">Our tool provides the most reliable and secure way to view Facebook profiles\r\n                        anonymously. Unlike other solutions, we prioritize your privacy and deliver accurate results.\r\n                    <\/p>\r\n\r\n                    <div class=\"benefit-item\">\r\n                        <div class=\"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 on the profiles you view<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"benefit-item\">\r\n                        <div class=\"benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">No personal information<\/h5>\r\n                            <p class=\"mb-0\">We don't ask for or store your data<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"benefit-item\">\r\n                        <div class=\"benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">Universal compatibility<\/h5>\r\n                            <p class=\"mb-0\">Works with all public Facebook profiles<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"benefit-item\">\r\n                        <div class=\"benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">Reliable service<\/h5>\r\n                            <p class=\"mb-0\">Fast and accurate results every time<\/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=\"faq-section\">\r\n        <div class=\"container\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"section-title\">Frequently Asked Questions<\/h2>\r\n                <p class=\"section-subtitle\">Find answers to common questions about our Facebook Profile 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=\"faqAccordion\">\r\n                        <div class=\"accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                            <h3 class=\"accordion-header\" id=\"heading1\">\r\n                                <button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse1\" aria-expanded=\"true\" aria-controls=\"collapse1\">\r\n                                    Is it legal to use this Facebook Profile Viewer?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"collapse1\" class=\"accordion-collapse collapse show\" aria-labelledby=\"heading1\" data-bs-parent=\"#faqAccordion\">\r\n                                <div class=\"accordion-body\">\r\n                                    Yes, our tool is completely legal to use. It only allows you to view publicly\r\n                                    available Facebook profiles and content. We don't access private information or\r\n                                    bypass any security measures - we simply display content that's already publicly\r\n                                    accessible on Facebook.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                            <h3 class=\"accordion-header\" id=\"heading2\">\r\n                                <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse2\" aria-expanded=\"false\" aria-controls=\"collapse2\">\r\n                                    Can I view private Facebook profiles?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"collapse2\" class=\"accordion-collapse collapse\" aria-labelledby=\"heading2\" data-bs-parent=\"#faqAccordion\">\r\n                                <div class=\"accordion-body\">\r\n                                    No, our tool respects Facebook's privacy settings. We can only display content from\r\n                                    profiles that are set to public. If a profile is private or has certain content\r\n                                    restricted, our viewer cannot access that information.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                            <h3 class=\"accordion-header\" id=\"heading3\">\r\n                                <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse3\" aria-expanded=\"false\" aria-controls=\"collapse3\">\r\n                                    Will Facebook know I viewed the profile?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"collapse3\" class=\"accordion-collapse collapse\" aria-labelledby=\"heading3\" data-bs-parent=\"#faqAccordion\">\r\n                                <div class=\"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 profile, so it won't appear in any logs or\r\n                                    notifications. The profile owner won't know you viewed their content.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                            <h3 class=\"accordion-header\" id=\"heading4\">\r\n                                <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse4\" aria-expanded=\"false\" aria-controls=\"collapse4\">\r\n                                    Do I need to download anything to use this?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"collapse4\" class=\"accordion-collapse collapse\" aria-labelledby=\"heading4\" data-bs-parent=\"#faqAccordion\">\r\n                                <div class=\"accordion-body\">\r\n                                    No, our Facebook Profile Viewer is completely web-based. You don't need to download\r\n                                    or install any software. Simply visit our website, enter the profile URL, and view\r\n                                    the content directly in your browser.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                            <h3 class=\"accordion-header\" id=\"heading5\">\r\n                                <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse5\" aria-expanded=\"false\" aria-controls=\"collapse5\">\r\n                                    Is there a limit to how many profiles I can view?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"collapse5\" class=\"accordion-collapse collapse\" aria-labelledby=\"heading5\" data-bs-parent=\"#faqAccordion\">\r\n                                <div class=\"accordion-body\">\r\n                                    Currently, there are no limits on how many profiles you can view with our tool. You\r\n                                    can use it as much as you need to view different public Facebook profiles\r\n                                    anonymously.\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    <!-- Footer -->\r\n    \r\n\r\n    <!-- Copyright Section -->\r\n    \r\n\r\n\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    <!-- Fb tools  -->\r\n    <script>\r\n        \/\/ Global variables\r\n        let currentUrl = '';\r\n        let currentType = ''; \/\/ 'group' or 'profile'\r\n        let currentGroupId = null;\r\n        let allHDVideos = [];\r\n        let videosLoaded = false;\r\n        let reelsLoaded = false;\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\/groups\/')) {\r\n                return 'group';\r\n            } else if (cleanUrl.includes('facebook.com\/') && !cleanUrl.includes('\/groups\/')) {\r\n                \/\/ More specific 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('groupContent').style.display = 'none';\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 === 'group') {\r\n                fetchGroupData(url);\r\n            } else if (currentType === 'profile') {\r\n                currentUsername = extractUsernameFromUrl(url);\r\n                fetchProfileData(url);\r\n            } else {\r\n                showError('Please enter a valid Facebook group or profile URL');\r\n                hideLoading();\r\n            }\r\n        }\r\n\r\n        function clearAllData() {\r\n            \/\/ Reset group variables\r\n            currentGroupId = null;\r\n            allHDVideos = [];\r\n            videosLoaded = false;\r\n            reelsLoaded = false;\r\n\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('groupContent').innerHTML = '';\r\n            document.getElementById('profileContent').innerHTML = '';\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        \/\/ Group Functions\r\n        async function fetchGroupData(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                        'Accept': '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(`HTTP error! status: ${response.status}`);\r\n                }\r\n\r\n                const data = await response.json();\r\n                const groupInfo = extractGroupInfo(data);\r\n                const allImages = extractAllImages(data);\r\n                const uniqueImages = getUniqueImages(allImages);\r\n\r\n                displayGroupInfo({\r\n                    ...groupInfo,\r\n                    allImages: uniqueImages,\r\n                    totalImages: allImages.length\r\n                }, data);\r\n\r\n                hideLoading();\r\n                document.getElementById('groupContent').style.display = 'block';\r\n\r\n            } catch (error) {\r\n                console.error('Group fetch error:', error);\r\n                showError('Error fetching group data: ' + error.message);\r\n            }\r\n        }\r\n\r\n        function extractGroupInfo(data) {\r\n            const groupInfo = {\r\n                name: 'Unknown Group',\r\n                type: 'Unknown',\r\n                privacy: 'Unknown',\r\n                membersCount: 'Unknown',\r\n                description: 'No description available',\r\n                coverImage: '',\r\n                profileImage: ''\r\n            };\r\n\r\n            if (!data?.data?.data) {\r\n                return groupInfo;\r\n            }\r\n\r\n            for (const item of data.data.data) {\r\n                if (item.result?.data) {\r\n                    const resultData = item.result.data;\r\n\r\n                    if (resultData.group?.profile_header_renderer?.group) {\r\n                        const headerGroup = resultData.group.profile_header_renderer.group;\r\n\r\n                        if (headerGroup.featurable_title?.text) {\r\n                            groupInfo.name = headerGroup.featurable_title.text;\r\n                        } else if (headerGroup.name) {\r\n                            groupInfo.name = headerGroup.name;\r\n                        }\r\n\r\n                        if (headerGroup.group_member_profiles?.formatted_count_text) {\r\n                            groupInfo.membersCount = headerGroup.group_member_profiles.formatted_count_text;\r\n                        }\r\n\r\n                        \/\/ Use the new helper function to find the best cover image\r\n                        groupInfo.coverImage = findTopCoverImage(data);\r\n\r\n                        if (headerGroup.profile_picture?.uri) {\r\n                            groupInfo.profileImage = headerGroup.profile_picture.uri;\r\n                        }\r\n\r\n                        if (headerGroup.privacy_type) {\r\n                            groupInfo.privacy = headerGroup.privacy_type;\r\n                            groupInfo.type = headerGroup.privacy_type;\r\n                        }\r\n                    }\r\n\r\n                    if (resultData.group?.id) {\r\n                        currentGroupId = resultData.group.id;\r\n                    }\r\n                }\r\n            }\r\n\r\n            return groupInfo;\r\n        }\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\r\n        function getUniqueImages(allImages) {\r\n            const uniqueImages = [];\r\n            const seenUris = new Set();\r\n\r\n            allImages.forEach(img => {\r\n                if (!seenUris.has(img.uri)) {\r\n                    seenUris.add(img.uri);\r\n                    uniqueImages.push(img);\r\n                }\r\n            });\r\n\r\n            return uniqueImages.sort((a, b) => b.quality - a.quality);\r\n        }\r\n\r\n        function displayGroupInfo(groupInfo, apiData) {\r\n            const groupContent = document.getElementById('groupContent');\r\n            const {\r\n                name, type, privacy, membersCount, description,\r\n                coverImage, allImages, totalImages\r\n            } = groupInfo;\r\n\r\n            const html = `\r\n          <div class=\"group-header\">\r\n              <div class=\"group-cover\">\r\n                  ${coverImage ? `<img decoding=\"async\" src=\"${escapeHtml(coverImage)}\" alt=\"${escapeHtml(name)}\" onerror=\"this.style.display='none';\">` : ''}\r\n                  <div class=\"group-cover-overlay\"><\/div>\r\n                  <div class=\"group-info-overlay\">\r\n                      <h1 class=\"group-title\">${escapeHtml(name)}<\/h1>\r\n                      <p class=\"group-subtitle\">${escapeHtml(membersCount)} members \u2022 ${escapeHtml(type)}<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              <div class=\"group-details\">\r\n                  <div class=\"stats-grid\">\r\n                      <div class=\"stat-card\" style=\"--delay: 1\">\r\n                          <div class=\"stat-icon\">\ud83d\udc65<\/div>\r\n                          <span class=\"stat-number\">${escapeHtml(membersCount)}<\/span>\r\n                          <span class=\"stat-label\">Members<\/span>\r\n                      <\/div>\r\n                      <div class=\"stat-card\" style=\"--delay: 2\">\r\n                          <div class=\"stat-icon\">\ud83d\udd12<\/div>\r\n                          <span class=\"stat-number\">${escapeHtml(type)}<\/span>\r\n                          <span class=\"stat-label\">Privacy<\/span>\r\n                      <\/div>\r\n                      <div class=\"stat-card\" style=\"--delay: 3\">\r\n                          <div class=\"stat-icon\">\ud83d\udcf7<\/div>\r\n                          <span class=\"stat-number\">${allImages.length}<\/span>\r\n                          <span class=\"stat-label\">Images<\/span>\r\n                      <\/div>\r\n                      <div class=\"stat-card\" style=\"--delay: 4\">\r\n                          <div class=\"stat-icon\">\u2b50<\/div>\r\n                          <span class=\"stat-number\">${allImages.filter(img => img.quality > 5).length}<\/span>\r\n                          <span class=\"stat-label\">High Quality<\/span>\r\n                      <\/div>\r\n                  <\/div>\r\n                  <div class=\"group-description\">\r\n                      ${escapeHtml(description)}\r\n                  <\/div>\r\n                  <a href=\"${escapeHtml(currentUrl)}\" target=\"_blank\" class=\"visit-btn\">\r\n                      <span>Visit Group<\/span>\r\n                      <span>\u2192<\/span>\r\n                  <\/a>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <nav class=\"nav-tabs\">\r\n              <div class=\"tab-list\">\r\n                  <button class=\"tab-btn active\" onclick=\"switchTab('photos')\">\r\n                      \ud83d\udcf7 Photos (${allImages.length})\r\n                  <\/button>\r\n                  <button class=\"tab-btn\" onclick=\"switchTab('videos')\">\r\n                      \ud83c\udfa5 Videos\r\n                  <\/button>\r\n                  \r\n              <\/div>\r\n  \r\n              <div id=\"photosTab\" class=\"tab-content active\">\r\n                  ${allImages.length > 0 ? `\r\n                      <div class=\"media-summary\">\r\n                          <h2 class=\"summary-title\">Photo Collection<\/h2>\r\n                          <p class=\"summary-description\">Discovered ${allImages.length} images from this group<\/p>\r\n                          <div class=\"summary-stats\">\r\n                              <div class=\"summary-stat\">\r\n                                  <span class=\"summary-stat-number\">${allImages.length}<\/span>\r\n                                  <span class=\"summary-stat-label\">Total Images<\/span>\r\n                              <\/div>\r\n                              <div class=\"summary-stat\">\r\n                                  <span class=\"summary-stat-number\">${allImages.filter(img => img.quality > 7).length}<\/span>\r\n                                  <span class=\"summary-stat-label\">High Quality<\/span>\r\n                              <\/div>\r\n                              <div class=\"summary-stat\">\r\n                                  <span class=\"summary-stat-number\">${Math.round(allImages.reduce((sum, img) => sum + img.quality, 0) \/ allImages.length)}<\/span>\r\n                                  <span class=\"summary-stat-label\">Avg Quality<\/span>\r\n                              <\/div>\r\n                              <div class=\"summary-stat\">\r\n                                  <span class=\"summary-stat-number\">${allImages.filter(img => img.width > 1000).length}<\/span>\r\n                                  <span class=\"summary-stat-label\">HD Images<\/span>\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      <div class=\"media-grid\">\r\n                          ${allImages.map((img, index) => `\r\n                              <div class=\"media-card\" style=\"--index: ${index}\">\r\n                                  <div class=\"media-image-container\">\r\n                                      <img decoding=\"async\" src=\"${escapeHtml(img.uri)}\" alt=\"Group media ${index + 1}\" class=\"media-image\" onerror=\"this.parentElement.style.display='none'\">\r\n                                      <div class=\"media-hover-overlay\">\r\n                                          <div class=\"quality-indicator\">\r\n                                              Quality Score: ${img.quality.toFixed(1)}\/10\r\n                                          <\/div>\r\n                                          <div class=\"download-actions\">\r\n                                              <button class=\"download-btn\" onclick=\"downloadImage('${escapeHtml(img.uri)}', 'image-${index + 1}.jpg', this)\">\r\n                                                  <span class=\"btn-icon\">\ud83d\udcbe<\/span>\r\n                                                  <span>Download<\/span>\r\n                                              <\/button>\r\n                                          <\/div>\r\n                                      <\/div>\r\n                                  <\/div>\r\n                                  <div class=\"media-info\">\r\n                                      <div class=\"media-meta\">\r\n                                          <span class=\"resolution-badge\">${img.width && img.height ? `${img.width}\u00d7${img.height}` : 'Auto'}<\/span>\r\n                                          <span class=\"type-badge\">${img.type}<\/span>\r\n                                      <\/div>\r\n                                  <\/div>\r\n                              <\/div>\r\n                          `).join('')}\r\n                      <\/div>\r\n                  ` : `\r\n                      <div class=\"empty-state\">\r\n                          <div class=\"empty-icon\">\ud83d\udcf7<\/div>\r\n                          <h3>No Photos Found<\/h3>\r\n                          <p>This group doesn't have any accessible photos or the content is private.<\/p>\r\n                      <\/div>\r\n                  `}\r\n              <\/div>\r\n  \r\n              <div id=\"videosTab\" class=\"tab-content\">\r\n                  <div id=\"videosLoading\" class=\"loading\" style=\"display: none;\">\r\n                      <div class=\"loading-spinner\"><\/div>\r\n                      <div class=\"loading-text\">Loading videos...<\/div>\r\n                  <\/div>\r\n                  <div id=\"videosError\" class=\"error-message\" style=\"display: none;\"><\/div>\r\n                  <div id=\"videosContent\">\r\n                      <div class=\"empty-state\">\r\n                          <div class=\"empty-icon\">\ud83c\udfa5<\/div>\r\n                          <h3>Videos<\/h3>\r\n                          <p>Click here to load videos from this group.<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  <div id=\"videosSkeleton\" class=\"videos-skeleton\">\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              <\/div>\r\n          <\/nav>\r\n      `;\r\n\r\n            groupContent.innerHTML = html;\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        \/\/ 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        async function fetchProfileData(url) {\r\n            \/\/ Clear cache when searching for a new profile\r\n            clearCache();\r\n\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: [], \/\/ Initialize as empty array - videos will be loaded separately from \/videos URL\r\n                reels: [] \/\/ Initialize as empty array - reels will be loaded separately from \/reels URL\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                \/\/ Use the same image extraction logic as groups but filter for profile-specific images\r\n                const allImages = extractAllImages(data);\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 > 200 && img.height > 200; \/\/ Only larger images\r\n                });\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            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                          <div class=\"profile-actions\">\r\n                              <button class=\"action-btn primary\">\r\n                                  <i class=\"fas fa-user-plus\"><\/i>\r\n                                  <span>Follow<\/span>\r\n                              <\/button>\r\n                              <button class=\"action-btn secondary\">\r\n                                  <i class=\"fas fa-share\"><\/i>\r\n                                  <span>Share<\/span>\r\n                              <\/button>\r\n                              <button class=\"action-btn secondary\" onclick=\"exportProfileData()\">\r\n                                  <i class=\"fas fa-download\"><\/i>\r\n                                  <span>Export<\/span>\r\n                              <\/button>\r\n                          <\/div>\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\">\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=\"margin:auto; text-align: center;\">\r\n                          <div class=\"empty-state\">\r\n                              <div class=\"empty-icon\">\ud83c\udfa5<\/div>\r\n                              <h3>Loading Videos<\/h3>\r\n                              \r\n                          <\/div>\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\">0 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<div id=\"profile-reels-container\" class=\"video-grid\">\r\n    <div class=\"empty-state\">\r\n        <div class=\"empty-icon\">\ud83c\udfa5<\/div>\r\n        <h3>Loading Reels<\/h3>\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 switchTab(tabName) {\r\n            \/\/ For group tabs\r\n            document.querySelectorAll('.tab-btn').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(`[onclick=\"switchTab('${tabName}')\"]`);\r\n            const tabContent = document.getElementById(tabName + 'Tab');\r\n\r\n            if (tabBtn) tabBtn.classList.add('active');\r\n            if (tabContent) tabContent.classList.add('active');\r\n\r\n            \/\/ Load videos when videos tab is clicked for groups\r\n            if (tabName === 'videos' && !videosLoaded && currentGroupId && currentType === 'group') {\r\n                fetchGroupVideos();\r\n            }\r\n\r\n            \/\/ Load reels when reels tab is clicked for groups\r\n            if (tabName === 'reels' && !reelsLoaded && currentGroupId && currentType === 'group') {\r\n                fetchGroupReels();\r\n            }\r\n        }\r\n\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            \/\/ Load 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            \/\/ Load 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\r\n        async function fetchGroupVideos() {\r\n            if (!currentGroupId || videosLoaded) return;\r\n\r\n            document.getElementById('videosContent').style.display = 'none';\r\n            document.getElementById('videosError').style.display = 'none';\r\n            document.getElementById('videosSkeleton').style.display = 'block';\r\n\r\n            try {\r\n                const videosUrl = `https:\/\/www.facebook.com\/groups\/${currentGroupId}\/media\/videos`;\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                        'Accept': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: videosUrl })\r\n                });\r\n\r\n                document.getElementById('videosSkeleton').style.display = 'none';\r\n                document.getElementById('videosContent').style.display = 'block';\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`HTTP error! status: ${response.status}`);\r\n                }\r\n\r\n                const data = await response.json();\r\n                const videoUrls = extractVideoUrls(data);\r\n                videosLoaded = true;\r\n\r\n                if (videoUrls.length > 0) {\r\n                    await fetchDownloadInfo(videoUrls);\r\n                } else {\r\n                    document.getElementById('videosContent').innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\ud83c\udfa5<\/div><h3>No videos found<\/h3><p>This group doesn\\'t have any videos or they\\'re not accessible.<\/p><\/div>';\r\n                }\r\n\r\n            } catch (error) {\r\n                document.getElementById('videosSkeleton').style.display = 'none';\r\n                document.getElementById('videosContent').style.display = 'block';\r\n                document.getElementById('videosContent').innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\u274c<\/div><h3>Error loading videos<\/h3><p>There was a problem fetching videos. Please try again later.<\/p><\/div>';\r\n                console.error('Error fetching videos:', error);\r\n            }\r\n        }\r\n\r\n\r\n        function extractVideoUrls(data) {\r\n            const videoUrls = [];\r\n\r\n            const searchForVideoUrls = (obj) => {\r\n                if (typeof obj !== 'object' || obj === null) return;\r\n\r\n                for (const key in obj) {\r\n                    if (typeof obj[key] === 'string' && obj[key].includes('facebook.com') && obj[key].includes('\/videos\/')) {\r\n                        const completeVideoUrlPattern = \/https:\\\/\\\/www\\.facebook\\.com\\\/[^\\\/]+\\\/videos\\\/\\d+[^\\s]*\/;\r\n                        if (completeVideoUrlPattern.test(obj[key])) {\r\n                            videoUrls.push(obj[key]);\r\n                        }\r\n                    } else if (typeof obj[key] === 'object') {\r\n                        searchForVideoUrls(obj[key]);\r\n                    }\r\n                }\r\n            };\r\n\r\n            searchForVideoUrls(data);\r\n            return [...new Set(videoUrls)].slice(0, 6);\r\n        }\r\n\r\n\r\n        async function fetchDownloadInfo(videoUrls) {\r\n            const videosContentDiv = document.getElementById('videosContent');\r\n            videosContentDiv.innerHTML = '<div class=\"loading\"><div class=\"loading-spinner\"><\/div><div class=\"loading-text\">Getting HD videos...<\/div><\/div>';\r\n\r\n            try {\r\n                const allResponses = [];\r\n\r\n                for (const videoUrl of videoUrls) {\r\n                    try {\r\n                        const response = await fetch('https:\/\/tools.xrespond.com\/api\/social\/all\/downloader', {\r\n                            method: 'POST',\r\n                            headers: {\r\n                                'Content-Type': 'application\/json',\r\n                                'Accept': 'application\/json'\r\n                            },\r\n                            body: JSON.stringify({ url: videoUrl })\r\n                        });\r\n\r\n                        if (response.ok) {\r\n                            const data = await response.json();\r\n                            allResponses.push({\r\n                                videoUrl: videoUrl,\r\n                                response: data,\r\n                                success: true\r\n                            });\r\n                        }\r\n                    } catch (error) {\r\n                        console.error('Error fetching video:', videoUrl, error);\r\n                    }\r\n                }\r\n\r\n                displayHDVideosGrid(allResponses);\r\n\r\n            } catch (error) {\r\n                document.getElementById('videosContent').innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\u274c<\/div><h3>Error loading videos<\/h3><p>Error fetching download information.<\/p><\/div>';\r\n            }\r\n        }\r\n\r\n\r\n        function displayHDVideosGrid(responses) {\r\n            const videosContentDiv = document.getElementById('videosContent');\r\n            allHDVideos = [];\r\n            let videos = [];\r\n\r\n            responses.forEach((item, index) => {\r\n                if (!item.success) return;\r\n\r\n                const hdMediaItems = extractHDMediaItems(item.response);\r\n\r\n                hdMediaItems.forEach((mediaItem, mediaIndex) => {\r\n                    const videoId = `video-${index}-${mediaIndex}`;\r\n                    const downloadId = `download-${index}-${mediaIndex}`;\r\n                    const filename = `facebook_video_${index}_${mediaIndex}.${mediaItem.format ? mediaItem.format.toLowerCase() : 'mp4'}`;\r\n\r\n                    allHDVideos.push({\r\n                        url: mediaItem.url,\r\n                        filename: filename,\r\n                        format: mediaItem.format\r\n                    });\r\n\r\n                    \/\/ Create video object for consistent structure\r\n                    videos.push({\r\n                        videoUrl: mediaItem.url,\r\n                        title: `Video ${index + 1}${mediaIndex > 0 ? '.' + (mediaIndex + 1) : ''}`,\r\n                        thumbnailUri: mediaItem.thumbnail || '\/placeholder.svg?height=200&width=350',\r\n                        duration: 0,\r\n                        height: mediaItem.quality === 'HD' ? 720 : 480,\r\n                        width: mediaItem.quality === 'HD' ? 1280 : 854,\r\n                        stats: { views: 0, likes: 0 },\r\n                        creationTime: Date.now() \/ 1000\r\n                    });\r\n                });\r\n            });\r\n\r\n            if (videos.length > 0) {\r\n                \/\/ Store videos data globally for download functionality\r\n                window.groupVideosData = videos;\r\n\r\n                const html = `\r\n              <div class=\"media-summary\">\r\n                  <h2 class=\"summary-title\">Video Collection<\/h2>\r\n                  <p class=\"summary-description\">Discovered ${videos.length} videos from this group<\/p>\r\n                  <div class=\"summary-stats\">\r\n                      <div class=\"summary-stat\">\r\n                          <span class=\"summary-stat-number\">${videos.length}<\/span>\r\n                          <span class=\"summary-stat-label\">Total Videos<\/span>\r\n                              <\/div>\r\n                      <div class=\"summary-stat\">\r\n                          <span class=\"summary-stat-number\">${videos.filter(v => v.height >= 720).length}<\/span>\r\n                          <span class=\"summary-stat-label\">HD Videos<\/span>\r\n                      <\/div>\r\n                      <div class=\"summary-stat\">\r\n                          <span class=\"summary-stat-number\">${videos.filter(v => v.videoUrl).length}<\/span>\r\n                          <span class=\"summary-stat-label\">Downloadable<\/span>\r\n                      <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n\r\n              <div class=\"video-grid\" style=\"display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); max-width: 1200px; margin: 0 auto;\">\r\n                  ${videos.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}')\" onclick=\"playVideoInline(${index}, 'group')\">\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}, 'group')\" 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}, 'group')\" 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                              <\/video>\r\n                          ` : ''}\r\n                          <div class=\"video-info\">\r\n                              <div class=\"video-title\" title=\"${video.title}\">${video.title}<\/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                              ${video.videoUrl ? `\r\n                                  <div class=\"video-actions-bottom\">\r\n                                      <button class=\"video-download-btn\" onclick=\"downloadVideo(${index}, 'group')\">\r\n                                          <i class=\"fas fa-download\"><\/i>\r\n                                          Download Video\r\n                                      <\/button>\r\n                                  <\/div>\r\n                              ` : ''}\r\n                          <\/div>\r\n                      <\/div>\r\n                  `).join('')}\r\n          <\/div>\r\n      `;\r\n\r\n                videosContentDiv.innerHTML = html;\r\n            } else {\r\n                videosContentDiv.innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\ud83c\udfa5<\/div><h3>No videos found<\/h3><p>No videos are available for download from this group.<\/p><\/div>';\r\n            }\r\n        }\r\n\r\n\r\n        function extractHDMediaItems(response) {\r\n            const hdMediaItems = [];\r\n\r\n            try {\r\n                if (!response || !response.medias || !Array.isArray(response.medias)) {\r\n                    return hdMediaItems;\r\n                }\r\n\r\n                response.medias.forEach(media => {\r\n                    if (media && media.url && media.quality && media.quality.toUpperCase() === 'HD') {\r\n                        hdMediaItems.push({\r\n                            url: media.url,\r\n                            quality: media.quality,\r\n                            format: media.format || 'mp4',\r\n                            thumbnail: response.thumbnail || null\r\n                        });\r\n                    }\r\n                });\r\n\r\n                return hdMediaItems;\r\n            } catch (error) {\r\n                console.error('Error extracting HD media items:', error);\r\n                return hdMediaItems;\r\n            }\r\n        }\r\n\r\n        \/\/ Download functions\r\n        async function downloadVideoFromUrl(url, filename, buttonId) {\r\n            const button = document.getElementById(buttonId);\r\n            const progressBar = button.querySelector('.download-progress');\r\n            const buttonText = button.querySelector('span');\r\n\r\n            try {\r\n                button.disabled = true;\r\n                buttonText.textContent = '\u23f3 Downloading...';\r\n                progressBar.style.width = '10%';\r\n\r\n                const response = await fetch(url);\r\n                if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n                progressBar.style.width = '50%';\r\n                const blob = await response.blob();\r\n                progressBar.style.width = '80%';\r\n\r\n                const blobUrl = window.URL.createObjectURL(blob);\r\n                const a = document.createElement('a');\r\n                a.href = blobUrl;\r\n                a.download = filename;\r\n                a.style.display = 'none';\r\n\r\n                document.body.appendChild(a);\r\n                a.click();\r\n                document.body.removeChild(a);\r\n                window.URL.revokeObjectURL(blobUrl);\r\n\r\n                progressBar.style.width = '100%';\r\n                buttonText.textContent = '\u2705 Downloaded!';\r\n\r\n                setTimeout(() => {\r\n                    button.disabled = false;\r\n                    buttonText.textContent = '\u2b07\ufe0f Download';\r\n                    progressBar.style.width = '0%';\r\n                }, 2000);\r\n\r\n            } catch (error) {\r\n                button.disabled = false;\r\n                buttonText.textContent = '\u274c Failed';\r\n                progressBar.style.width = '0%';\r\n\r\n                setTimeout(() => {\r\n                    buttonText.textContent = '\u2b07\ufe0f Download';\r\n                }, 3000);\r\n            }\r\n        }\r\n\r\n\r\n        async function downloadAllVideos() {\r\n            const button = document.getElementById('downloadAllBtn');\r\n            if (allHDVideos.length === 0) return;\r\n\r\n            try {\r\n                button.disabled = true;\r\n                button.innerHTML = '\u23f3 Downloading All...';\r\n\r\n                for (const video of allHDVideos) {\r\n                    try {\r\n                        const response = await fetch(video.url);\r\n                        if (response.ok) {\r\n                            const blob = await response.blob();\r\n                            const blobUrl = window.URL.createObjectURL(blob);\r\n\r\n                            const a = document.createElement('a');\r\n                            a.href = blobUrl;\r\n                            a.download = video.filename;\r\n                            a.style.display = 'none';\r\n\r\n                            document.body.appendChild(a);\r\n                            a.click();\r\n                            document.body.removeChild(a);\r\n                            window.URL.revokeObjectURL(blobUrl);\r\n\r\n                            await new Promise(resolve => setTimeout(resolve, 500));\r\n                        }\r\n                    } catch (error) {\r\n                        console.error('Error downloading video:', video.filename, error);\r\n                    }\r\n                }\r\n\r\n                button.innerHTML = '\u2705 All Downloaded!';\r\n\r\n                setTimeout(() => {\r\n                    button.disabled = false;\r\n                    button.innerHTML = `\u2b07\ufe0f Download All Videos (${allHDVideos.length})`;\r\n                }, 3000);\r\n\r\n            } catch (error) {\r\n                button.disabled = false;\r\n                button.innerHTML = `\u2b07\ufe0f Download All Videos (${allHDVideos.length})`;\r\n            }\r\n        }\r\n\r\n\r\n        function copyToClipboard(text) {\r\n            navigator.clipboard.writeText(text).then(() => {\r\n                alert('\ud83d\udccb Copied to clipboard!');\r\n            }).catch(() => {\r\n                const textArea = document.createElement('textarea');\r\n                textArea.value = text;\r\n                document.body.appendChild(textArea);\r\n                textArea.select();\r\n                document.execCommand('copy');\r\n                document.body.removeChild(textArea);\r\n                alert('\ud83d\udccb Copied to clipboard!');\r\n            });\r\n        }\r\n\r\n        \/\/ Group Reels Functions\r\n        async function fetchGroupReels() {\r\n            if (!currentGroupId || reelsLoaded) return;\r\n\r\n            document.getElementById('reelsContent').style.display = 'none';\r\n            document.getElementById('reelsError').style.display = 'none';\r\n            document.getElementById('reelsSkeleton').style.display = 'block';\r\n\r\n            try {\r\n                const reelsUrl = `https:\/\/www.facebook.com\/groups\/${currentGroupId}\/reels_tab`;\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                        'Accept': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: reelsUrl })\r\n                });\r\n\r\n                document.getElementById('reelsSkeleton').style.display = 'none';\r\n                document.getElementById('reelsContent').style.display = 'block';\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`HTTP error! status: ${response.status}`);\r\n                }\r\n\r\n                const data = await response.json();\r\n                const reels = extractReels(data);\r\n                reelsLoaded = true;\r\n\r\n                if (reels.length > 0) {\r\n                    displayGroupReels(reels);\r\n                } else {\r\n                    document.getElementById('reelsContent').innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\ud83c\udfac<\/div><h3>No reels found<\/h3><p>This group doesn\\'t have any reels or they\\'re not accessible.<\/p><\/div>';\r\n                }\r\n\r\n            } catch (error) {\r\n                document.getElementById('reelsSkeleton').style.display = 'none';\r\n                document.getElementById('reelsContent').style.display = 'block';\r\n                document.getElementById('reelsContent').innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\u274c<\/div><h3>Error loading reels<\/h3><p>There was a problem fetching reels. Please try again later.<\/p><\/div>';\r\n                console.error('Error fetching reels:', error);\r\n            }\r\n        }\r\n\r\n        function displayGroupVideos(videos) {\r\n            const videosContent = document.getElementById('videosContent');\r\n\r\n            const html = `\r\n          <div class=\"media-summary\">\r\n              <h2 class=\"summary-title\">Video Collection<\/h2>\r\n              <p class=\"summary-description\">Discovered ${videos.length} videos from this group<\/p>\r\n              <div class=\"summary-stats\">\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${videos.length}<\/span>\r\n                      <span class=\"summary-stat-label\">Total Videos<\/span>\r\n                  <\/div>\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${videos.filter(v => v.height >= 720).length}<\/span>\r\n                      <span class=\"summary-stat-label\">HD Videos<\/span>\r\n                  <\/div>\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${videos.filter(v => v.videoUrl).length}<\/span>\r\n                      <span class=\"summary-stat-label\">Downloadable<\/span>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n          \r\n          <div class=\"video-grid\" style=\"display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); max-width: 1200px; margin: 0 auto;\">\r\n              ${videos.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}, 'group')\">\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}, 'group')\" 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}, 'group')\" 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                          <\/video>\r\n                      ` : ''}\r\n                      <div class=\"video-info\">\r\n                          <div class=\"video-title\" title=\"${video.title}\">${video.title}<\/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                          ${video.videoUrl ? `\r\n                              <div class=\"video-actions-bottom\">\r\n                                  <button class=\"video-download-btn\" onclick=\"downloadVideo(${index}, 'group')\">\r\n                                      <i class=\"fas fa-download\"><\/i>\r\n                                      Download Video\r\n                                  <\/button>\r\n                              <\/div>\r\n                          ` : ''}\r\n                      <\/div>\r\n                  <\/div>\r\n              `).join('')}\r\n          <\/div>\r\n      `;\r\n\r\n            videosContent.innerHTML = html;\r\n\r\n            \/\/ Store videos data globally for download functionality\r\n            window.groupVideosData = videos;\r\n        }\r\n\r\n        function displayGroupReels(reels) {\r\n            const reelsContent = document.getElementById('reelsContent');\r\n\r\n            const html = `\r\n          <div class=\"media-summary\">\r\n              <h2 class=\"summary-title\">Reels Collection<\/h2>\r\n              <p class=\"summary-description\">Discovered ${reels.length} reels from this group<\/p>\r\n              <div class=\"summary-stats\">\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${reels.length}<\/span>\r\n                      <span class=\"summary-stat-label\">Total Reels<\/span>\r\n                  <\/div>\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${reels.filter(r => r.videoUrl).length}<\/span>\r\n                      <span class=\"summary-stat-label\">Downloadable<\/span>\r\n                  <\/div>\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${formatTotalViews(reels)}<\/span>\r\n                      <span class=\"summary-stat-label\">Total Views<\/span>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n          \r\n          <div class=\"video-grid\" style=\"display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); max-width: 1200px; margin: 0 auto;\">\r\n              ${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}, 'group')\">\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}, 'group')\" 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}, 'group')\" 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                          <\/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}, 'group')\">\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>\r\n      `;\r\n\r\n            reelsContent.innerHTML = html;\r\n\r\n            \/\/ Store reels data globally for download functionality\r\n            window.groupReelsData = reels;\r\n        }\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 (currentCachedUsername === username && cachedVideos !== null) {\r\n                console.log('Using cached videos for:', username);\r\n                displayVideosFromCache();\r\n                return;\r\n            }\r\n\r\n            try {\r\n                \/\/ Construct videos URL - only search from \/videos endpoint\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\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\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                        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 display videos from cache\r\n        function displayVideosFromCache() {\r\n            if (!cachedVideos) return;\r\n\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            \/\/ Display videos\r\n            const videosContainer = document.getElementById('profile-videos-container');\r\n            if (cachedVideos.length > 0) {\r\n                const videosHtml = cachedVideos.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\r\n                \/\/ Store videos data globally for download functionality\r\n                window.profileVideosData = cachedVideos;\r\n            } else {\r\n                videosContainer.innerHTML = '<div class=\"no-data-message\">No videos found for this profile.<\/div>';\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 (currentCachedUsername === username && cachedReels !== null) {\r\n                console.log('Using cached reels for:', username);\r\n                displayReelsFromCache();\r\n                return;\r\n            }\r\n\r\n            try {\r\n                \/\/ Construct reels URL - only search from \/reels endpoint\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\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                    \/\/ Cache the reels data\r\n                    cachedReels = reelsData;\r\n                    currentCachedUsername = username;\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        \/\/ Function to display reels from cache\r\n        function displayReelsFromCache() {\r\n            if (!cachedReels) return;\r\n\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            \/\/ Display reels\r\n            const reelsContainer = document.getElementById('profile-reels-container');\r\n            if (cachedReels.length > 0) {\r\n                const reelsHtml = cachedReels.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 = cachedReels;\r\n            } else {\r\n                reelsContainer.innerHTML = '<div class=\"no-data-message\">No reels found for this profile.<\/div>';\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 === 'group') {\r\n                videoData = window.groupVideosData;\r\n                container = document.querySelector(`[data-video-index=\"${index}\"]`);\r\n            } else 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 === 'group') {\r\n                reelData = window.groupReelsData;\r\n                container = document.querySelector(`[data-reel-index=\"${index}\"]`);\r\n            } else 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 === 'group') {\r\n                videoData = window.groupVideosData;\r\n            } else 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 === 'group') {\r\n                reelData = window.groupReelsData;\r\n            } else 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 === 'group') {\r\n                videoData = window.groupVideosData;\r\n            } else 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 === 'group') {\r\n                reelData = window.groupReelsData;\r\n            } else 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            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 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: window.profileVideosData ? window.profileVideosData.length : 0,\r\n                    reels: window.profileReelsData ? window.profileReelsData.length : 0,\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: (window.profileVideosData || []).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: (window.profileReelsData || []).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                if (!this.value) {\r\n                    this.placeholder = 'e.g., https:\/\/www.facebook.com\/groups\/example or https:\/\/www.facebook.com\/username';\r\n                }\r\n            });\r\n\r\n            urlInput.addEventListener('blur', function () {\r\n                if (!this.value) {\r\n                    this.placeholder = 'Enter Facebook group or profile 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    <\/script>\r\n\r\n        <!-- Scripts -->\r\n        <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\r\n        <script src=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.js\"><\/script>\r\n\r\n    <!-- 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    <\/script>[\/et_pb_fullwidth_code][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":" <!-- boxicon -->\r\n    <link href=\"https:\/\/unpkg.com\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n    <!-- font -->\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;600;700&display=swap\" rel=\"stylesheet\">\r\n    <!-- Font awesome -->\r\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\" 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\r\n    <!-- Favicon -->\r\n    <link rel=\"icon\" href=\"https:\/\/americansviewer.com\/media\/1769663809_wSx1bgRoc2_av-favicon.png\" type=\"image\/x-icon\">\r\n    \r\n    <!-- Google Fonts - Premium Typography -->\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n    \r\n    <!-- Bootstrap CSS -->\r\n    <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\r\n    <!-- Boxicons -->\r\n    <link href=\"https:\/\/unpkg.com\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n    <!-- AOS Animation -->\r\n    <link href=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.css\" rel=\"stylesheet\">\r\n\r\n\r\n    <style id=\"vvvebjs-styles\">\r\n        html {\r\n            overflow-x: hidden;\r\n        }\r\n\r\n\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:root {\r\n    --gradient-1: #6366F1;\r\n    --gradient-2: #8c60ff;\r\n    --gradient-3: #6366F1;\r\n    --gradient-4: #4F46E5;\r\n    --gradient-5: #818CF8;\r\n    --dark-color: var(--va-home-dark);\r\n    --light-color: var(--va-home-white);\r\n    --gray-color: var(--va-home-soft-bg);\r\n    --instagram-gradient: linear-gradient(45deg, var(--gradient-1), var(--gradient-2), var(--gradient-3), var(--gradient-4), var(--gradient-5));\r\n    --instagram-gradient-hover: linear-gradient(45deg, #4F46E5, #7c3aed, #6366F1, #4F46E5, #7c3aed);\r\n    --section-padding: 100px 0;\r\n}\r\n      \r\n\r\n        \/* Work Process Section with Gradient *\/\r\n        .work-process-section {\r\n            padding: var(--section-padding);\r\n            background: var(--instagram-gradient);\r\n            color: white;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .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        .work-process-content {\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        .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        .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        .step-number {\r\n            width: 60px;\r\n            height: 60px;\r\n            background: white;\r\n            color: var(--gradient-3);\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        .features-section {\r\n            padding: var(--section-padding);\r\n            background: white;\r\n        }\r\n\r\n        .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        .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(--instagram-gradient);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .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        .feature-card:hover::before {\r\n            width: 100%;\r\n            opacity: 0.1;\r\n        }\r\n\r\n        .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(--instagram-gradient);\r\n            color: white;\r\n            font-size: 1.8rem;\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .feature-card:hover .feature-icon {\r\n            transform: rotate(15deg) scale(1.1);\r\n            background: var(--instagram-gradient-hover);\r\n        }\r\n\r\n        \/* Why Choose Section *\/\r\n        .why-choose-section {\r\n            padding: var(--section-padding);\r\n            background: #f9f9f9;\r\n        }\r\n\r\n        .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        .why-choose-image:hover {\r\n            transform: perspective(1000px) rotateY(0deg);\r\n        }\r\n\r\n        .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        .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        .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(--instagram-gradient);\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        .faq-section {\r\n            padding: var(--section-padding);\r\n            background: white;\r\n        }\r\n\r\n        .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        .accordion-button {\r\n            font-weight: 600;\r\n            color: var(--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        .accordion-button:not(.collapsed) {\r\n            background: white;\r\n            color: var(--gradient-3);\r\n            box-shadow: none;\r\n        }\r\n\r\n        .accordion-button:focus {\r\n            box-shadow: none;\r\n            border-color: rgba(220, 39, 67, 0.3);\r\n        }\r\n\r\n        .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='%23dc2743'%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        .accordion-body {\r\n            padding: 25px;\r\n            color: #666;\r\n        }\r\n\r\n        \/* Section Titles *\/\r\n        .section-title {\r\n            font-weight: 700;\r\n            color: var(--dark-color);\r\n            margin-bottom: 1.5rem;\r\n            position: relative;\r\n            display: inline-block;\r\n        }\r\n\r\n        .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(--instagram-gradient);\r\n            border-radius: 2px;\r\n        }\r\n\r\n        .light-title {\r\n            color: white;\r\n        }\r\n\r\n        .light-title::after {\r\n            background: white;\r\n        }\r\n\r\n        .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        .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                --section-padding: 80px 0;\r\n            }\r\n\r\n            .hero-section h1 {\r\n                font-size: 2.8rem;\r\n            }\r\n\r\n            .process-step::before {\r\n                display: none;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 767px) {\r\n            :root {\r\n                --section-padding: 70px 0;\r\n            }\r\n\r\n            .hero-section {\r\n                padding: 100px 0 60px;\r\n            }\r\n\r\n            .hero-section h1 {\r\n                font-size: 2.2rem;\r\n            }\r\n\r\n            .hero-section p {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .section-title {\r\n                font-size: 1.8rem;\r\n            }\r\n        }\r\n\r\n        \/* Animation *\/\r\n        @keyframes 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        .floating-element {\r\n            animation: 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(--gradient-3);\r\n            border-radius: 10px;\r\n        }\r\n\r\n        ::-webkit-scrollbar-thumb:hover {\r\n            background: var(--gradient-4);\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    <style>\r\n        :root {\r\n            \/* Instagram-Inspired Color System *\/\r\n            --instagram-yellow: #feda75;\r\n            --instagram-orange: #fa7e1e;\r\n            --instagram-pink: #d62976;\r\n            --instagram-purple: #962fbf;\r\n            --instagram-blue: #4f5bd5;\r\n\r\n            \/* Primary Color System (Instagram-based) *\/\r\n            --primary-50: #fefbf0;\r\n            --primary-100: #fef7e0;\r\n            --primary-200: #fdeec7;\r\n            --primary-300: #fbe0a5;\r\n            --primary-400: #f8d181;\r\n            --primary-500: #feda75;\r\n            --primary-600: #f5c23e;\r\n            --primary-700: #e8a91a;\r\n            --primary-800: #c18a0f;\r\n            --primary-900: #9a6b0a;\r\n\r\n            \/* Secondary Color System (Orange-based) *\/\r\n            --secondary-50: #fef7f0;\r\n            --secondary-100: #fdeee0;\r\n            --secondary-200: #fbdcc7;\r\n            --secondary-300: #f8c4a5;\r\n            --secondary-400: #f5a681;\r\n            --secondary-500: #fa7e1e;\r\n            --secondary-600: #e86a0f;\r\n            --secondary-700: #c55a0d;\r\n            --secondary-800: #a24a0b;\r\n            --secondary-900: #7f3a09;\r\n\r\n            \/* Accent Color System (Pink-based) *\/\r\n            --accent-50: #fdf0f7;\r\n            --accent-100: #fbe0ef;\r\n            --accent-200: #f7c2df;\r\n            --accent-300: #f29cc9;\r\n            --accent-400: #ed76b3;\r\n            --accent-500: #d62976;\r\n            --accent-600: #c22466;\r\n            --accent-700: #a81e55;\r\n            --accent-800: #8e1844;\r\n            --accent-900: #741233;\r\n\r\n            \/* Success Color System (Purple-based) *\/\r\n            --success-50: #f7f0fd;\r\n            --success-100: #efe0fb;\r\n            --success-200: #dfc2f7;\r\n            --success-300: #c99cf2;\r\n            --success-400: #b376ed;\r\n            --success-500: #962fbf;\r\n            --success-600: #852aac;\r\n            --success-700: #742599;\r\n            --success-800: #632086;\r\n            --success-900: #521b73;\r\n\r\n            \/* Warning Color System (Blue-based) *\/\r\n            --warning-50: #f0f2fd;\r\n            --warning-100: #e0e4fb;\r\n            --warning-200: #c2c9f7;\r\n            --warning-300: #9ca7f2;\r\n            --warning-400: #7685ed;\r\n            --warning-500: #4f5bd5;\r\n            --warning-600: #4652c0;\r\n            --warning-700: #3d49ab;\r\n            --warning-800: #344096;\r\n            --warning-900: #2b3781;\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            \/* Instagram-Inspired Gradients *\/\r\n            --gradient-primary: linear-gradient(45deg, #4F46E5, #7c3aed, #6366F1, #4F46E5, #7c3aed);\r\n            --gradient-secondary: linear-gradient(135deg, #fa7e1e 0%, #d62976 100%);\r\n            --gradient-accent: linear-gradient(135deg, #d62976 0%, #962fbf 100%);\r\n            --gradient-success: linear-gradient(135deg, #962fbf 0%, #4f5bd5 100%);\r\n            --gradient-warm: linear-gradient(135deg, #feda75 0%, #fa7e1e 100%);\r\n            --gradient-cool: linear-gradient(135deg, #4f5bd5 0%, #962fbf 100%);\r\n            --gradient-dark: linear-gradient(135deg, #1e293b 0%, #334155 100%);\r\n            --gradient-mesh: radial-gradient(at 40% 20%, rgba(254, 218, 117, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 80% 0%, rgba(250, 126, 30, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 0% 50%, rgba(214, 41, 118, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 80% 50%, rgba(150, 47, 191, 0.3) 0px, transparent 50%),\r\n                radial-gradient(at 0% 100%, rgba(79, 91, 213, 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(254 218 117 \/ 0.2), 0 8px 10px -6px rgb(254 218 117 \/ 0.2);\r\n            --shadow-colored-secondary: 0 20px 25px -5px rgb(250 126 30 \/ 0.2), 0 8px 10px -6px rgb(250 126 30 \/ 0.2);\r\n            --shadow-colored-accent: 0 20px 25px -5px rgb(214 41 118 \/ 0.2), 0 8px 10px -6px rgb(214 41 118 \/ 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        \/* html {\r\n            scroll-behavior: smooth;\r\n            -webkit-text-size-adjust: 100%;\r\n        }\r\n\r\n        body {\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(254, 218, 117, 0.08) 0%, transparent 50%),\r\n                radial-gradient(circle at 80% 20%, rgba(250, 126, 30, 0.08) 0%, transparent 50%),\r\n                radial-gradient(circle at 40% 40%, rgba(214, 41, 118, 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        \/* .container {\r\n          max-width: 1200px;\r\n          margin: 0 auto !important;\r\n          padding: var(--space-8);\r\n          position: relative;\r\n      } *\/\r\n\r\n        \/* Premium Header *\/\r\n        .header {\r\n            text-align: center;\r\n            margin-bottom: var(--space-20);\r\n            animation: slideDown var(--duration-1000) var(--ease-elastic);\r\n            position: relative;\r\n            margin-top: 150px;\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(254, 218, 117, 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(var(--text-4xl), 8vw, var(--text-7xl));\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: var(--space-6);\r\n            letter-spacing: -0.04em;\r\n            line-height: 0.9;\r\n            position: relative;\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: var(--text-xl);\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(--white);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-2xl);\r\n            padding: var(--space-12);\r\n            margin-bottom: var(--space-16);\r\n            border: 1px solid var(--gray-200);\r\n            animation: slideUp var(--duration-1000) var(--ease-elastic) 0.2s both;\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: -100%;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: linear-gradient(90deg, transparent, rgba(254, 218, 117, 0.03), transparent);\r\n            animation: shine 4s ease-in-out infinite;\r\n        }\r\n\r\n        @keyframes shine {\r\n            0% {\r\n                left: -100%;\r\n            }\r\n\r\n            50% {\r\n                left: 100%;\r\n            }\r\n\r\n            100% {\r\n                left: -100%;\r\n            }\r\n        }\r\n\r\n        @keyframes slideUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(60px) scale(0.95);\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        .search-form {\r\n            display: flex;\r\n            gap: var(--space-4);\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        .input-group {\r\n            flex: 1;\r\n            position: relative;\r\n        }\r\n\r\n        .input-icon {\r\n            position: absolute;\r\n            left: var(--space-6);\r\n            top: 50%;\r\n            transform: translateY(-50%);\r\n            color: var(--gray-400);\r\n            font-size: var(--text-xl);\r\n            z-index: 3;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .url-input {\r\n            width: 100%;\r\n            padding: var(--space-5) var(--space-5) var(--space-5) var(--space-16);\r\n            border: 2px solid var(--gray-200);\r\n            border-radius: var(--radius-3xl);\r\n            font-size: var(--text-lg);\r\n            font-weight: 500;\r\n            background: var(--white);\r\n            color: var(--gray-900);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            font-family: inherit;\r\n            box-shadow: var(--shadow-sm);\r\n        }\r\n\r\n        .url-input::placeholder {\r\n            color: var(--gray-400);\r\n            font-weight: 400;\r\n        }\r\n\r\n        .url-input:focus {\r\n            outline: none;\r\n            border-color: var(--primary-500);\r\n            box-shadow: 0 0 0 4px var(--primary-100), var(--shadow-lg);\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        .url-input:focus+.input-icon {\r\n            color: var(--primary-500);\r\n            transform: translateY(-50%) scale(1.1);\r\n        }\r\n\r\n        .analyze-btn {\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: var(--space-5) var(--space-10);\r\n            border-radius: var(--radius-3xl);\r\n            font-size: var(--text-lg);\r\n            font-weight: 700;\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            font-family: inherit;\r\n            white-space: nowrap;\r\n            position: relative;\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-lg);\r\n            letter-spacing: 0.025em;\r\n        }\r\n\r\n        .analyze-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        .analyze-btn:hover::before {\r\n            left: 100%;\r\n        }\r\n\r\n        .analyze-btn:hover {\r\n            transform: translateY(-3px) scale(1.02);\r\n            box-shadow: var(--shadow-colored-primary);\r\n        }\r\n\r\n        .analyze-btn:active {\r\n            transform: translateY(-1px) scale(0.98);\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        .error-message {\r\n            background: var(--gradient-warm);\r\n            color: var(--white);\r\n            padding: var(--space-4) var(--space-6);\r\n            border-radius: var(--radius-2xl);\r\n            margin-top: var(--space-4);\r\n            font-weight: 600;\r\n            animation: shake var(--duration-500) var(--ease-out);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        @keyframes shake {\r\n\r\n            0%,\r\n            100% {\r\n                transform: translateX(0);\r\n            }\r\n\r\n            25% {\r\n                transform: translateX(-8px);\r\n            }\r\n\r\n            75% {\r\n                transform: translateX(8px);\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(254, 218, 117, 0.05) 100%);\r\n            border-radius: var(--radius-4xl);\r\n            box-shadow: var(--shadow-2xl);\r\n            border: 1px solid rgba(254, 218, 117, 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(250, 126, 30, 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(254, 218, 117, 0.3);\r\n            border-top: 4px solid var(--instagram-yellow);\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(--instagram-orange);\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(254, 218, 117, 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 *\/\r\n        .group-header {\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            position: relative;\r\n        }\r\n\r\n        .group-cover {\r\n            position: relative;\r\n            height: 400px;\r\n            background: var(--gradient-primary);\r\n            overflow: hidden;\r\n        }\r\n\r\n        .group-cover img {\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        .group-cover:hover img {\r\n            transform: scale(1.05);\r\n        }\r\n\r\n        .group-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        .group-info-overlay {\r\n            position: absolute;\r\n            bottom: 0;\r\n            left: 0;\r\n            right: 0;\r\n            padding: var(--space-12);\r\n            color: var(--white);\r\n        }\r\n\r\n        .group-title {\r\n            font-size: clamp(var(--text-2xl), 5vw, var(--text-5xl));\r\n            font-weight: 800;\r\n            margin-bottom: var(--space-3);\r\n            text-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);\r\n            letter-spacing: -0.02em;\r\n            line-height: 1.1;\r\n        }\r\n\r\n        .group-subtitle {\r\n            font-size: var(--text-xl);\r\n            opacity: 0.95;\r\n            font-weight: 600;\r\n            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\r\n        }\r\n\r\n        .group-details {\r\n            padding: var(--space-12);\r\n        }\r\n\r\n        .stats-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\r\n            gap: var(--space-6);\r\n            margin-bottom: var(--space-10);\r\n        }\r\n\r\n        .stat-card {\r\n            background: linear-gradient(135deg, var(--white) 0%, var(--gray-25) 100%);\r\n            border: 1px solid var(--gray-200);\r\n            border-radius: var(--radius-3xl);\r\n            padding: var(--space-8);\r\n            text-align: center;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            animation: fadeInUp var(--duration-700) var(--ease-elastic);\r\n            animation-delay: calc(var(--delay) * 0.1s);\r\n            animation-fill-mode: both;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .stat-card::before {\r\n            content: '';\r\n            position: absolute;\r\n            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        }\r\n\r\n        .stat-card:hover::before {\r\n            opacity: 0.05;\r\n        }\r\n\r\n        @keyframes fadeInUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(40px) scale(0.9);\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        .stat-card:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n            border-color: var(--primary-300);\r\n        }\r\n\r\n        .stat-icon {\r\n            width: 64px;\r\n            height: 64px;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-2xl);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin: 0 auto var(--space-4);\r\n            font-size: var(--text-2xl);\r\n            box-shadow: var(--shadow-lg);\r\n            position: relative;\r\n            z-index: 2;\r\n            color: var(--white);\r\n        }\r\n\r\n        .stat-number {\r\n            font-size: var(--text-3xl);\r\n            font-weight: 800;\r\n            color: var(--gray-900);\r\n            display: block;\r\n            margin-bottom: var(--space-2);\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .stat-label {\r\n            font-size: var(--text-sm);\r\n            color: var(--gray-600);\r\n            font-weight: 600;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.1em;\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .group-description {\r\n            background: linear-gradient(135deg, var(--gray-50) 0%, var(--white) 100%);\r\n            border: 1px solid var(--gray-200);\r\n            border-radius: var(--radius-3xl);\r\n            padding: var(--space-8);\r\n            margin-bottom: var(--space-8);\r\n            font-size: var(--text-lg);\r\n            line-height: 1.8;\r\n            color: var(--gray-700);\r\n            box-shadow: var(--shadow-sm);\r\n        }\r\n\r\n        .visit-btn {\r\n            background: var(--gradient-accent);\r\n            color: var(--white);\r\n            text-decoration: none;\r\n            padding: var(--space-4) var(--space-8);\r\n            border-radius: var(--radius-2xl);\r\n            font-weight: 700;\r\n            font-size: var(--text-lg);\r\n            display: inline-flex;\r\n            align-items: center;\r\n            gap: var(--space-3);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            box-shadow: var(--shadow-lg);\r\n            letter-spacing: 0.025em;\r\n        }\r\n\r\n        .visit-btn:hover {\r\n            transform: translateY(-3px) scale(1.05);\r\n            box-shadow: var(--shadow-colored-accent);\r\n        }\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(254, 218, 117, 0.95) 0%,\r\n                    rgba(250, 126, 30, 0.95) 50%,\r\n                    rgba(214, 41, 118, 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 for Groups *\/\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(254, 218, 117, 0.3);\r\n        }\r\n\r\n        .video-card video {\r\n            width: 100%;\r\n            height: 250px;\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    text-align: left;\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(250, 126, 30, 0.1) 0%, rgba(214, 41, 118, 0.1) 100%);\r\n            color: var(--instagram-orange);\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            border: 1px solid rgba(250, 126, 30, 0.2);\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-download-btn {\r\n            flex: 1;\r\n            background: var(--gradient-primary);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: var(--space-3) 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            position: relative;\r\n            overflow: hidden;\r\n            box-shadow: 0 4px 15px rgba(254, 218, 117, 0.3);\r\n        }\r\n\r\n        .video-download-btn:hover {\r\n            transform: translateY(-2px) scale(1.02);\r\n            box-shadow: 0 8px 25px rgba(254, 218, 117, 0.4);\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: rgba(255, 255, 255, 0.5);\r\n            transition: width var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .copy-btn {\r\n            background: linear-gradient(135deg, rgba(214, 41, 118, 0.1) 0%, rgba(150, 47, 191, 0.1) 100%);\r\n            color: var(--instagram-pink);\r\n            border: 1px solid rgba(214, 41, 118, 0.2);\r\n            padding: var(--space-3);\r\n            border-radius: var(--radius-xl);\r\n            cursor: pointer;\r\n            transition: all var(--duration-300) var(--ease-out);\r\n        }\r\n\r\n        .copy-btn:hover {\r\n            background: linear-gradient(135deg, rgba(214, 41, 118, 0.2) 0%, rgba(150, 47, 191, 0.2) 100%);\r\n            transform: scale(1.1);\r\n            box-shadow: 0 4px 15px rgba(214, 41, 118, 0.3);\r\n        }\r\n\r\n        .download-all-btn {\r\n            background: var(--gradient-accent);\r\n            color: var(--white);\r\n            border: none;\r\n            padding: var(--space-4) var(--space-8);\r\n            border-radius: var(--radius-3xl);\r\n            font-size: var(--text-lg);\r\n            font-weight: 700;\r\n            cursor: pointer;\r\n            margin-bottom: var(--space-8);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        .download-all-btn:hover {\r\n            transform: translateY(-3px) scale(1.02);\r\n            box-shadow: var(--shadow-colored-accent);\r\n        }\r\n\r\n        \/* Profile Styles *\/\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(254, 218, 117, 0.1) 0%,\r\n                    rgba(214, 41, 118, 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            text-align: start;\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(254, 218, 117, 0.1) 0%, rgba(250, 126, 30, 0.1) 100%);\r\n            padding: var(--space-2);\r\n            border-radius: var(--radius-2xl);\r\n            border: 1px solid rgba(254, 218, 117, 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            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--space-2);\r\n            position: relative;\r\n            font-family: inherit;\r\n        }\r\n\r\n        .nav-tab:hover {\r\n            background: rgba(254, 218, 117, 0.1);\r\n            color: var(--instagram-orange);\r\n            transform: translateY(-1px);\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-lg);\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        .nav-indicator {\r\n            position: absolute;\r\n            bottom: 0;\r\n            left: 50%;\r\n            width: 0;\r\n            height: 3px;\r\n            background: var(--instagram-pink);\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(214, 41, 118, 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        \/* Photos Grid *\/\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(254, 218, 117, 0.9) 0%,\r\n                    rgba(214, 41, 118, 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        \/* Photo Modal *\/\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        \/* Content Headers *\/\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        \/* Posts Container *\/\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        \/* About Cards *\/\r\n        .about-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\r\n            gap: var(--space-6);\r\n        }\r\n\r\n        .about-card {\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        .about-card:hover {\r\n            transform: translateY(-4px);\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        .card-header {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-4);\r\n            margin-bottom: var(--space-6);\r\n        }\r\n\r\n        .card-icon {\r\n            width: 48px;\r\n            height: 48px;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-2xl);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: var(--white);\r\n            font-size: var(--text-xl);\r\n        }\r\n\r\n        .card-header h3 {\r\n            font-size: var(--text-xl);\r\n            font-weight: 700;\r\n            color: var(--gray-900);\r\n        }\r\n\r\n        .card-content {\r\n            color: var(--gray-700);\r\n            line-height: 1.6;\r\n        }\r\n\r\n        .about-item {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n            margin-bottom: var(--space-4);\r\n        }\r\n\r\n        .about-item:last-child {\r\n            margin-bottom: 0;\r\n        }\r\n\r\n        .about-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            background: var(--gray-100);\r\n            border-radius: var(--radius-xl);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: var(--gray-600);\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .about-text h3 {\r\n            font-weight: 600;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-1);\r\n        }\r\n\r\n        .about-text p {\r\n            color: var(--gray-600);\r\n            font-size: var(--text-sm);\r\n        }\r\n\r\n        \/* Premium Empty State *\/\r\n        .empty-state {\r\n            text-align: center;\r\n            padding: var(--space-20) var(--space-8);\r\n            color: var(--gray-600);\r\n        }\r\n\r\n        .empty-icon {\r\n            width: 120px;\r\n            height: 120px;\r\n            background: linear-gradient(135deg, var(--gray-100) 0%, var(--gray-200) 100%);\r\n            border-radius: var(--radius-full);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin: 0 auto var(--space-8);\r\n            font-size: var(--text-4xl);\r\n            box-shadow: var(--shadow-lg);\r\n            animation: bounce 2s ease-in-out infinite;\r\n        }\r\n\r\n        @keyframes bounce {\r\n\r\n            0%,\r\n            20%,\r\n            50%,\r\n            80%,\r\n            100% {\r\n                transform: translateY(0);\r\n            }\r\n\r\n            40% {\r\n                transform: translateY(-15px);\r\n            }\r\n\r\n            60% {\r\n                transform: translateY(-8px);\r\n            }\r\n        }\r\n\r\n        .empty-state h3 {\r\n            font-size: var(--text-2xl);\r\n            font-weight: 700;\r\n            color: var(--gray-900);\r\n            margin-bottom: var(--space-3);\r\n        }\r\n\r\n        .empty-state p {\r\n            font-size: var(--text-lg);\r\n            line-height: 1.7;\r\n            max-width: 500px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        .no-data-message {\r\n            text-align: center;\r\n            padding: var(--space-12);\r\n            color: var(--gray-500);\r\n            font-size: var(--text-lg);\r\n            background: var(--gray-50);\r\n            border-radius: var(--radius-2xl);\r\n            border: 2px dashed var(--gray-300);\r\n        }\r\n\r\n        \/* Premium Debug Section *\/\r\n        .debug-container {\r\n            background: var(--gray-950);\r\n            color: var(--gray-100);\r\n            border-radius: var(--radius-4xl);\r\n            padding: var(--space-8);\r\n            box-shadow: var(--shadow-2xl);\r\n            border: 1px solid var(--gray-800);\r\n        }\r\n\r\n        .debug-section {\r\n            margin-bottom: var(--space-8);\r\n        }\r\n\r\n        .debug-title {\r\n            color: var(--primary-400);\r\n            font-size: var(--text-xl);\r\n            font-weight: 700;\r\n            margin-bottom: var(--space-4);\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.05em;\r\n        }\r\n\r\n        .debug-content {\r\n            background: var(--gray-900);\r\n            border-radius: var(--radius-2xl);\r\n            padding: var(--space-6);\r\n            font-family: 'JetBrains Mono', 'SF Mono', Monaco, 'Cascadia Code', monospace;\r\n            font-size: var(--text-sm);\r\n            line-height: 1.8;\r\n            border: 1px solid var(--gray-800);\r\n            box-shadow: var(--shadow-inner);\r\n            white-space: pre-line;\r\n        }\r\n\r\n        \/* Video Thumbnail Styles *\/\r\n        .video-thumbnail {\r\n            position: relative;\r\n            height: 350px;\r\n            background-size: cover;\r\n            background-position: center;\r\n            background-color: var(--gray-200);\r\n            cursor: pointer;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            overflow: hidden;\r\n            border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;\r\n        }\r\n\r\n        .video-play-icon {\r\n            position: absolute;\r\n            top: 50%;\r\n            left: 50%;\r\n            transform: translate(-50%, -50%);\r\n            width: 50px;\r\n            height: 50px;\r\n            background: rgba(0, 0, 0, 0.6);\r\n            border-radius: var(--radius-full);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-size: var(--text-2xl);\r\n            color: var(--white);\r\n            transition: all var(--duration-300) var(--ease-out);\r\n            z-index: 2;\r\n            backdrop-filter: blur(10px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n        }\r\n\r\n        .video-thumbnail:hover .video-play-icon {\r\n            transform: translate(-50%, -50%) scale(1.1);\r\n            background: rgba(0, 0, 0, 0.8);\r\n            border-color: rgba(255, 255, 255, 0.5);\r\n        }\r\n\r\n        .video-quality-badge {\r\n            position: absolute;\r\n            top: var(--space-3);\r\n            left: var(--space-3);\r\n            background: rgba(0, 0, 0, 0.7);\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            z-index: 2;\r\n        }\r\n\r\n        .reel-badge {\r\n            position: absolute;\r\n            top: var(--space-3);\r\n            left: var(--space-3);\r\n            background: var(--gradient-secondary);\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            z-index: 2;\r\n        }\r\n\r\n        .video-duration {\r\n            position: absolute;\r\n            bottom: var(--space-3);\r\n            right: var(--space-3);\r\n            background: rgba(0, 0, 0, 0.7);\r\n            color: var(--white);\r\n            padding: var(--space-1) var(--space-3);\r\n            border-radius: var(--radius-lg);\r\n            font-size: var(--text-xs);\r\n            font-weight: 600;\r\n            z-index: 2;\r\n        }\r\n\r\n        .video-stats {\r\n            display: flex;\r\n            gap: var(--space-4);\r\n            margin-bottom: var(--space-4);\r\n            font-size: var(--text-sm);\r\n      text-align:left;\r\n        }\r\n\r\n        .video-stats .stat-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--space-1);\r\n            color: var(--gray-600);\r\n        }\r\n\r\n        .video-stats .stat-item i {\r\n            color: var(--primary-500);\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        \/* Responsive Design *\/\r\n        @media (max-width: 1024px) {\r\n            \/* .container {\r\n              padding: var(--space-6);\r\n          }  *\/\r\n\r\n            .search-section {\r\n                padding: var(--space-8);\r\n            }\r\n\r\n            .group-details {\r\n                padding: var(--space-8);\r\n            }\r\n\r\n            .profile-info-section {\r\n                padding: var(--space-8);\r\n            }\r\n\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            \/* .container {\r\n              padding: var(--space-4);\r\n          } *\/\r\n\r\n            .search-form {\r\n                flex-direction: column;\r\n            }\r\n\r\n            .tab-list {\r\n                flex-wrap: wrap;\r\n            }\r\n\r\n            .media-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .video-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .stats-grid {\r\n                grid-template-columns: repeat(2, 1fr);\r\n            }\r\n\r\n            .summary-stats {\r\n                grid-template-columns: repeat(2, 1fr);\r\n            }\r\n\r\n            .download-actions {\r\n                flex-direction: row;\r\n                justify-content: center;\r\n            }\r\n\r\n            .download-btn {\r\n                min-width: 140px;\r\n                padding: var(--space-3) var(--space-6);\r\n            }\r\n\r\n            .header h1 {\r\n                font-size: var(--text-4xl);\r\n            }\r\n\r\n            .group-cover {\r\n                height: 250px;\r\n            }\r\n\r\n            .cover-section {\r\n                height: 250px;\r\n            }\r\n\r\n            .profile-header {\r\n                flex-direction: column;\r\n                align-items: center;\r\n                text-align: center;\r\n                margin-top: -60px;\r\n            }\r\n\r\n            .profile-details {\r\n                margin-top: var(--space-4);\r\n            }\r\n\r\n            .profile-nav-tabs {\r\n                flex-direction: column;\r\n            }\r\n\r\n            .nav-tab {\r\n                justify-content: flex-start;\r\n            }\r\n\r\n            .about-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .photos-grid {\r\n                grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\r\n            }\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n            .stats-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .summary-stats {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .download-actions {\r\n                flex-direction: column;\r\n            }\r\n\r\n            .search-section {\r\n                padding: var(--space-6);\r\n            }\r\n\r\n            .group-details {\r\n                padding: var(--space-6);\r\n            }\r\n\r\n            .profile-info-section {\r\n                padding: var(--space-6);\r\n            }\r\n\r\n            .profile-picture {\r\n                width: 120px;\r\n                height: 120px;\r\n            }\r\n\r\n            .profile-name {\r\n                font-size: var(--text-2xl);\r\n            }\r\n\r\n            .photos-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n        }\r\n\r\n        \/* Add these styles to support the new video functionality *\/\r\n        .video-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        }\r\n\r\n        .video-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        .video-card video {\r\n            width: 100%;\r\n            height: 350px;\r\n            object-fit: cover;\r\n            border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;\r\n        }\r\n\r\n        .video-badges {\r\n            margin-bottom: var(--space-4);\r\n            display: flex;\r\n            gap: var(--space-2);\r\n        }\r\n\r\n        .quality-badge {\r\n            background: var(--gradient-success);\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        .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\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\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(254, 218, 117, 0.95) 0%,\r\n                  rgba(250, 126, 30, 0.95) 50%,\r\n                  rgba(214, 41, 118, 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        .analyze-btn {\r\n            display: flex;\r\n            align-items: center;\r\n        }\r\n\r\n        .content-title i {\r\n            margin-bottom: 25px;\r\n        }\r\n    <\/style>\r\n\r\n    <section class=\"av-hero d-flex flex-column justify-content-center align-items-center text-center\">\r\n        <div class=\"container\">\r\n            <div class=\"row justify-content-center\">\r\n                <div class=\"col-md-12\">\r\n\r\n                    <!-- Here will be tools -->\r\n                    <section>\r\n                        <div class=\"bg-pattern\"><\/div>\r\n                        <div class=\"bg-overlay\"><\/div>\r\n\r\n                        <div class=\"container\">\r\n                            <header class=\"header\">\r\n                                <h1>Facebook Profile Viewer<\/h1>\r\n                                <p>Analyze Facebook profiles, groups and pages with advanced analytics and beautiful\r\n                                    visualizations<\/p>\r\n                            <\/header>\r\n\r\n                            <section class=\"search-section\">\r\n                                <form class=\"search-form\" onsubmit=\"analyzeUrl(event)\">\r\n                                    <div class=\"input-group\" style=\"display: flex; flex-direction: column; align-items: flex-start; width: 100%;\">\r\n                                        <label for=\"urlInput\" style=\"display:block;font-weight:600;margin-bottom:0.5rem;color:var(--gray-700);font-size:var(--text-base);margin-left:0.5rem;\">Enter\r\n                                            your facebook profile, page or group url.<\/label>\r\n                                        <div style=\"display: flex; width: 100%; align-items: center;\">\r\n                                            <input type=\"url\" id=\"urlInput\" class=\"url-input\" style=\"height: 56px; border-radius: 2rem 0 0 2rem; font-size: 1.1rem; padding-left: 1.5rem; box-shadow: var(--shadow-md); border: 2px solid var(--primary-100);\" placeholder=\"Enter Facebook group or profile URL...\" required=\"\">\r\n                                            <button type=\"submit\" class=\"analyze-btn\" id=\"analyzeBtn\" style=\"height: 56px; border-radius: 0 2rem 2rem 0; font-size: 1.1rem; margin-left: -1px; box-shadow: var(--shadow-md);\">Analyze<\/button>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                <\/form>\r\n                                <div id=\"errorMessage\" class=\"error-message\" style=\"display: none;\"><\/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 data...<\/div>\r\n                            <\/div>\r\n\r\n                            <!-- Group Content Container -->\r\n                            <main id=\"groupContent\" style=\"display: none;\">\r\n                                <!-- Dynamic group content will be inserted here -->\r\n                            <\/main>\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                    <\/section>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n    <\/section>\r\n\r\n    <!-- Work Process Section -->\r\n    <section class=\"work-process-section\" id=\"how-it-works\">\r\n        <div class=\"container work-process-content\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"section-title light-title\">How Our Facebook Profile Viewer Works<\/h2>\r\n                <p class=\"section-subtitle light-subtitle\">View any public Facebook profile in just 3 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=\"process-step\">\r\n                        <div class=\"step-number\">1<\/div>\r\n                        <h4 class=\"text-white\">Enter Profile URL<\/h4>\r\n                        <p class=\"light-subtitle\">Copy and paste the Facebook profile link you want to view anonymously\r\n                        <\/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=\"process-step\">\r\n                        <div class=\"step-number\">2<\/div>\r\n                        <h4 class=\"text-white\">Process Request<\/h4>\r\n                        <p class=\"light-subtitle\">Our system fetches the profile data without revealing your identity\r\n                        <\/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=\"process-step\">\r\n                        <div class=\"step-number\">3<\/div>\r\n                        <h4 class=\"text-white\">View Profile<\/h4>\r\n                        <p class=\"light-subtitle\">See all public profile information without being detected<\/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=\"features-section\">\r\n        <div class=\"container\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"section-title\">Key Features<\/h2>\r\n                <p class=\"section-subtitle\">Our Facebook Profile Viewer offers powerful features for anonymous browsing\r\n                <\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-user-check\"><\/i>\r\n                        <\/div>\r\n                        <h4>100% Anonymous<\/h4>\r\n                        <p>View profiles without appearing in \"Who Viewed My Profile\" or leaving any digital footprint\r\n                        <\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-lock-alt\"><\/i>\r\n                        <\/div>\r\n                        <h4>No Login Required<\/h4>\r\n                        <p>Access any public Facebook profile without needing an account or credentials<\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-photo-album\"><\/i>\r\n                        <\/div>\r\n                        <h4>Full Media Access<\/h4>\r\n                        <p>View all public photos, videos, and posts without restrictions<\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-devices\"><\/i>\r\n                        <\/div>\r\n                        <h4>Cross-Platform<\/h4>\r\n                        <p>Works perfectly on desktop, tablet, and mobile devices<\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-shield\"><\/i>\r\n                        <\/div>\r\n                        <h4>Secure Browsing<\/h4>\r\n                        <p>All connections are encrypted to protect your privacy<\/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=\"feature-card\">\r\n                        <div class=\"feature-icon\">\r\n                            <i class=\"bx bx-time-five\"><\/i>\r\n                        <\/div>\r\n                        <h4>Instant Results<\/h4>\r\n                        <p>Get profile information 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=\"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=\"why-choose-image floating-element\">\r\n                        <img decoding=\"async\" src=\"https:\/\/viewanonymous.com\/wp-content\/uploads\/2026\/03\/Facebook_Profile_Viewer.webp\" alt=\"Facebook Profile 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=\"section-title mb-4\">Why Choose Our Facebook Profile Viewer?<\/h2>\r\n                    <p class=\"mb-4\">Our tool provides the most reliable and secure way to view Facebook profiles\r\n                        anonymously. Unlike other solutions, we prioritize your privacy and deliver accurate results.\r\n                    <\/p>\r\n\r\n                    <div class=\"benefit-item\">\r\n                        <div class=\"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 on the profiles you view<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"benefit-item\">\r\n                        <div class=\"benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">No personal information<\/h5>\r\n                            <p class=\"mb-0\">We don't ask for or store your data<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"benefit-item\">\r\n                        <div class=\"benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">Universal compatibility<\/h5>\r\n                            <p class=\"mb-0\">Works with all public Facebook profiles<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"benefit-item\">\r\n                        <div class=\"benefit-icon\">\r\n                            <i class=\"bx bx-check\"><\/i>\r\n                        <\/div>\r\n                        <div>\r\n                            <h5 class=\"mb-1\">Reliable service<\/h5>\r\n                            <p class=\"mb-0\">Fast and accurate results every time<\/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=\"faq-section\">\r\n        <div class=\"container\">\r\n            <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n                <h2 class=\"section-title\">Frequently Asked Questions<\/h2>\r\n                <p class=\"section-subtitle\">Find answers to common questions about our Facebook Profile 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=\"faqAccordion\">\r\n                        <div class=\"accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                            <h3 class=\"accordion-header\" id=\"heading1\">\r\n                                <button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse1\" aria-expanded=\"true\" aria-controls=\"collapse1\">\r\n                                    Is it legal to use this Facebook Profile Viewer?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"collapse1\" class=\"accordion-collapse collapse show\" aria-labelledby=\"heading1\" data-bs-parent=\"#faqAccordion\">\r\n                                <div class=\"accordion-body\">\r\n                                    Yes, our tool is completely legal to use. It only allows you to view publicly\r\n                                    available Facebook profiles and content. We don't access private information or\r\n                                    bypass any security measures - we simply display content that's already publicly\r\n                                    accessible on Facebook.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                            <h3 class=\"accordion-header\" id=\"heading2\">\r\n                                <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse2\" aria-expanded=\"false\" aria-controls=\"collapse2\">\r\n                                    Can I view private Facebook profiles?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"collapse2\" class=\"accordion-collapse collapse\" aria-labelledby=\"heading2\" data-bs-parent=\"#faqAccordion\">\r\n                                <div class=\"accordion-body\">\r\n                                    No, our tool respects Facebook's privacy settings. We can only display content from\r\n                                    profiles that are set to public. If a profile is private or has certain content\r\n                                    restricted, our viewer cannot access that information.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                            <h3 class=\"accordion-header\" id=\"heading3\">\r\n                                <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse3\" aria-expanded=\"false\" aria-controls=\"collapse3\">\r\n                                    Will Facebook know I viewed the profile?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"collapse3\" class=\"accordion-collapse collapse\" aria-labelledby=\"heading3\" data-bs-parent=\"#faqAccordion\">\r\n                                <div class=\"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 profile, so it won't appear in any logs or\r\n                                    notifications. The profile owner won't know you viewed their content.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                            <h3 class=\"accordion-header\" id=\"heading4\">\r\n                                <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse4\" aria-expanded=\"false\" aria-controls=\"collapse4\">\r\n                                    Do I need to download anything to use this?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"collapse4\" class=\"accordion-collapse collapse\" aria-labelledby=\"heading4\" data-bs-parent=\"#faqAccordion\">\r\n                                <div class=\"accordion-body\">\r\n                                    No, our Facebook Profile Viewer is completely web-based. You don't need to download\r\n                                    or install any software. Simply visit our website, enter the profile URL, and view\r\n                                    the content directly in your browser.\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                            <h3 class=\"accordion-header\" id=\"heading5\">\r\n                                <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse5\" aria-expanded=\"false\" aria-controls=\"collapse5\">\r\n                                    Is there a limit to how many profiles I can view?\r\n                                <\/button>\r\n                            <\/h3>\r\n                            <div id=\"collapse5\" class=\"accordion-collapse collapse\" aria-labelledby=\"heading5\" data-bs-parent=\"#faqAccordion\">\r\n                                <div class=\"accordion-body\">\r\n                                    Currently, there are no limits on how many profiles you can view with our tool. You\r\n                                    can use it as much as you need to view different public Facebook profiles\r\n                                    anonymously.\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    <!-- Footer -->\r\n    \r\n\r\n    <!-- Copyright Section -->\r\n    \r\n\r\n\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    <!-- Fb tools  -->\r\n    <script>\r\n        \/\/ Global variables\r\n        let currentUrl = '';\r\n        let currentType = ''; \/\/ 'group' or 'profile'\r\n        let currentGroupId = null;\r\n        let allHDVideos = [];\r\n        let videosLoaded = false;\r\n        let reelsLoaded = false;\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\/groups\/')) {\r\n                return 'group';\r\n            } else if (cleanUrl.includes('facebook.com\/') && !cleanUrl.includes('\/groups\/')) {\r\n                \/\/ More specific 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('groupContent').style.display = 'none';\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 === 'group') {\r\n                fetchGroupData(url);\r\n            } else if (currentType === 'profile') {\r\n                currentUsername = extractUsernameFromUrl(url);\r\n                fetchProfileData(url);\r\n            } else {\r\n                showError('Please enter a valid Facebook group or profile URL');\r\n                hideLoading();\r\n            }\r\n        }\r\n\r\n        function clearAllData() {\r\n            \/\/ Reset group variables\r\n            currentGroupId = null;\r\n            allHDVideos = [];\r\n            videosLoaded = false;\r\n            reelsLoaded = false;\r\n\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('groupContent').innerHTML = '';\r\n            document.getElementById('profileContent').innerHTML = '';\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        \/\/ Group Functions\r\n        async function fetchGroupData(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                        'Accept': '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(`HTTP error! status: ${response.status}`);\r\n                }\r\n\r\n                const data = await response.json();\r\n                const groupInfo = extractGroupInfo(data);\r\n                const allImages = extractAllImages(data);\r\n                const uniqueImages = getUniqueImages(allImages);\r\n\r\n                displayGroupInfo({\r\n                    ...groupInfo,\r\n                    allImages: uniqueImages,\r\n                    totalImages: allImages.length\r\n                }, data);\r\n\r\n                hideLoading();\r\n                document.getElementById('groupContent').style.display = 'block';\r\n\r\n            } catch (error) {\r\n                console.error('Group fetch error:', error);\r\n                showError('Error fetching group data: ' + error.message);\r\n            }\r\n        }\r\n\r\n        function extractGroupInfo(data) {\r\n            const groupInfo = {\r\n                name: 'Unknown Group',\r\n                type: 'Unknown',\r\n                privacy: 'Unknown',\r\n                membersCount: 'Unknown',\r\n                description: 'No description available',\r\n                coverImage: '',\r\n                profileImage: ''\r\n            };\r\n\r\n            if (!data?.data?.data) {\r\n                return groupInfo;\r\n            }\r\n\r\n            for (const item of data.data.data) {\r\n                if (item.result?.data) {\r\n                    const resultData = item.result.data;\r\n\r\n                    if (resultData.group?.profile_header_renderer?.group) {\r\n                        const headerGroup = resultData.group.profile_header_renderer.group;\r\n\r\n                        if (headerGroup.featurable_title?.text) {\r\n                            groupInfo.name = headerGroup.featurable_title.text;\r\n                        } else if (headerGroup.name) {\r\n                            groupInfo.name = headerGroup.name;\r\n                        }\r\n\r\n                        if (headerGroup.group_member_profiles?.formatted_count_text) {\r\n                            groupInfo.membersCount = headerGroup.group_member_profiles.formatted_count_text;\r\n                        }\r\n\r\n                        \/\/ Use the new helper function to find the best cover image\r\n                        groupInfo.coverImage = findTopCoverImage(data);\r\n\r\n                        if (headerGroup.profile_picture?.uri) {\r\n                            groupInfo.profileImage = headerGroup.profile_picture.uri;\r\n                        }\r\n\r\n                        if (headerGroup.privacy_type) {\r\n                            groupInfo.privacy = headerGroup.privacy_type;\r\n                            groupInfo.type = headerGroup.privacy_type;\r\n                        }\r\n                    }\r\n\r\n                    if (resultData.group?.id) {\r\n                        currentGroupId = resultData.group.id;\r\n                    }\r\n                }\r\n            }\r\n\r\n            return groupInfo;\r\n        }\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\r\n        function getUniqueImages(allImages) {\r\n            const uniqueImages = [];\r\n            const seenUris = new Set();\r\n\r\n            allImages.forEach(img => {\r\n                if (!seenUris.has(img.uri)) {\r\n                    seenUris.add(img.uri);\r\n                    uniqueImages.push(img);\r\n                }\r\n            });\r\n\r\n            return uniqueImages.sort((a, b) => b.quality - a.quality);\r\n        }\r\n\r\n        function displayGroupInfo(groupInfo, apiData) {\r\n            const groupContent = document.getElementById('groupContent');\r\n            const {\r\n                name, type, privacy, membersCount, description,\r\n                coverImage, allImages, totalImages\r\n            } = groupInfo;\r\n\r\n            const html = `\r\n          <div class=\"group-header\">\r\n              <div class=\"group-cover\">\r\n                  ${coverImage ? `<img decoding=\"async\" src=\"${escapeHtml(coverImage)}\" alt=\"${escapeHtml(name)}\" onerror=\"this.style.display='none';\">` : ''}\r\n                  <div class=\"group-cover-overlay\"><\/div>\r\n                  <div class=\"group-info-overlay\">\r\n                      <h1 class=\"group-title\">${escapeHtml(name)}<\/h1>\r\n                      <p class=\"group-subtitle\">${escapeHtml(membersCount)} members \u2022 ${escapeHtml(type)}<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              <div class=\"group-details\">\r\n                  <div class=\"stats-grid\">\r\n                      <div class=\"stat-card\" style=\"--delay: 1\">\r\n                          <div class=\"stat-icon\">\ud83d\udc65<\/div>\r\n                          <span class=\"stat-number\">${escapeHtml(membersCount)}<\/span>\r\n                          <span class=\"stat-label\">Members<\/span>\r\n                      <\/div>\r\n                      <div class=\"stat-card\" style=\"--delay: 2\">\r\n                          <div class=\"stat-icon\">\ud83d\udd12<\/div>\r\n                          <span class=\"stat-number\">${escapeHtml(type)}<\/span>\r\n                          <span class=\"stat-label\">Privacy<\/span>\r\n                      <\/div>\r\n                      <div class=\"stat-card\" style=\"--delay: 3\">\r\n                          <div class=\"stat-icon\">\ud83d\udcf7<\/div>\r\n                          <span class=\"stat-number\">${allImages.length}<\/span>\r\n                          <span class=\"stat-label\">Images<\/span>\r\n                      <\/div>\r\n                      <div class=\"stat-card\" style=\"--delay: 4\">\r\n                          <div class=\"stat-icon\">\u2b50<\/div>\r\n                          <span class=\"stat-number\">${allImages.filter(img => img.quality > 5).length}<\/span>\r\n                          <span class=\"stat-label\">High Quality<\/span>\r\n                      <\/div>\r\n                  <\/div>\r\n                  <div class=\"group-description\">\r\n                      ${escapeHtml(description)}\r\n                  <\/div>\r\n                  <a href=\"${escapeHtml(currentUrl)}\" target=\"_blank\" class=\"visit-btn\">\r\n                      <span>Visit Group<\/span>\r\n                      <span>\u2192<\/span>\r\n                  <\/a>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <nav class=\"nav-tabs\">\r\n              <div class=\"tab-list\">\r\n                  <button class=\"tab-btn active\" onclick=\"switchTab('photos')\">\r\n                      \ud83d\udcf7 Photos (${allImages.length})\r\n                  <\/button>\r\n                  <button class=\"tab-btn\" onclick=\"switchTab('videos')\">\r\n                      \ud83c\udfa5 Videos\r\n                  <\/button>\r\n                  \r\n              <\/div>\r\n  \r\n              <div id=\"photosTab\" class=\"tab-content active\">\r\n                  ${allImages.length > 0 ? `\r\n                      <div class=\"media-summary\">\r\n                          <h2 class=\"summary-title\">Photo Collection<\/h2>\r\n                          <p class=\"summary-description\">Discovered ${allImages.length} images from this group<\/p>\r\n                          <div class=\"summary-stats\">\r\n                              <div class=\"summary-stat\">\r\n                                  <span class=\"summary-stat-number\">${allImages.length}<\/span>\r\n                                  <span class=\"summary-stat-label\">Total Images<\/span>\r\n                              <\/div>\r\n                              <div class=\"summary-stat\">\r\n                                  <span class=\"summary-stat-number\">${allImages.filter(img => img.quality > 7).length}<\/span>\r\n                                  <span class=\"summary-stat-label\">High Quality<\/span>\r\n                              <\/div>\r\n                              <div class=\"summary-stat\">\r\n                                  <span class=\"summary-stat-number\">${Math.round(allImages.reduce((sum, img) => sum + img.quality, 0) \/ allImages.length)}<\/span>\r\n                                  <span class=\"summary-stat-label\">Avg Quality<\/span>\r\n                              <\/div>\r\n                              <div class=\"summary-stat\">\r\n                                  <span class=\"summary-stat-number\">${allImages.filter(img => img.width > 1000).length}<\/span>\r\n                                  <span class=\"summary-stat-label\">HD Images<\/span>\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      <div class=\"media-grid\">\r\n                          ${allImages.map((img, index) => `\r\n                              <div class=\"media-card\" style=\"--index: ${index}\">\r\n                                  <div class=\"media-image-container\">\r\n                                      <img decoding=\"async\" src=\"${escapeHtml(img.uri)}\" alt=\"Group media ${index + 1}\" class=\"media-image\" onerror=\"this.parentElement.style.display='none'\">\r\n                                      <div class=\"media-hover-overlay\">\r\n                                          <div class=\"quality-indicator\">\r\n                                              Quality Score: ${img.quality.toFixed(1)}\/10\r\n                                          <\/div>\r\n                                          <div class=\"download-actions\">\r\n                                              <button class=\"download-btn\" onclick=\"downloadImage('${escapeHtml(img.uri)}', 'image-${index + 1}.jpg', this)\">\r\n                                                  <span class=\"btn-icon\">\ud83d\udcbe<\/span>\r\n                                                  <span>Download<\/span>\r\n                                              <\/button>\r\n                                          <\/div>\r\n                                      <\/div>\r\n                                  <\/div>\r\n                                  <div class=\"media-info\">\r\n                                      <div class=\"media-meta\">\r\n                                          <span class=\"resolution-badge\">${img.width && img.height ? `${img.width}\u00d7${img.height}` : 'Auto'}<\/span>\r\n                                          <span class=\"type-badge\">${img.type}<\/span>\r\n                                      <\/div>\r\n                                  <\/div>\r\n                              <\/div>\r\n                          `).join('')}\r\n                      <\/div>\r\n                  ` : `\r\n                      <div class=\"empty-state\">\r\n                          <div class=\"empty-icon\">\ud83d\udcf7<\/div>\r\n                          <h3>No Photos Found<\/h3>\r\n                          <p>This group doesn't have any accessible photos or the content is private.<\/p>\r\n                      <\/div>\r\n                  `}\r\n              <\/div>\r\n  \r\n              <div id=\"videosTab\" class=\"tab-content\">\r\n                  <div id=\"videosLoading\" class=\"loading\" style=\"display: none;\">\r\n                      <div class=\"loading-spinner\"><\/div>\r\n                      <div class=\"loading-text\">Loading videos...<\/div>\r\n                  <\/div>\r\n                  <div id=\"videosError\" class=\"error-message\" style=\"display: none;\"><\/div>\r\n                  <div id=\"videosContent\">\r\n                      <div class=\"empty-state\">\r\n                          <div class=\"empty-icon\">\ud83c\udfa5<\/div>\r\n                          <h3>Videos<\/h3>\r\n                          <p>Click here to load videos from this group.<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  <div id=\"videosSkeleton\" class=\"videos-skeleton\">\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              <\/div>\r\n          <\/nav>\r\n      `;\r\n\r\n            groupContent.innerHTML = html;\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        \/\/ 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        async function fetchProfileData(url) {\r\n            \/\/ Clear cache when searching for a new profile\r\n            clearCache();\r\n\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: [], \/\/ Initialize as empty array - videos will be loaded separately from \/videos URL\r\n                reels: [] \/\/ Initialize as empty array - reels will be loaded separately from \/reels URL\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                \/\/ Use the same image extraction logic as groups but filter for profile-specific images\r\n                const allImages = extractAllImages(data);\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 > 200 && img.height > 200; \/\/ Only larger images\r\n                });\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            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                          <div class=\"profile-actions\">\r\n                              <button class=\"action-btn primary\">\r\n                                  <i class=\"fas fa-user-plus\"><\/i>\r\n                                  <span>Follow<\/span>\r\n                              <\/button>\r\n                              <button class=\"action-btn secondary\">\r\n                                  <i class=\"fas fa-share\"><\/i>\r\n                                  <span>Share<\/span>\r\n                              <\/button>\r\n                              <button class=\"action-btn secondary\" onclick=\"exportProfileData()\">\r\n                                  <i class=\"fas fa-download\"><\/i>\r\n                                  <span>Export<\/span>\r\n                              <\/button>\r\n                          <\/div>\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\">\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=\"margin:auto; text-align: center;\">\r\n                          <div class=\"empty-state\">\r\n                              <div class=\"empty-icon\">\ud83c\udfa5<\/div>\r\n                              <h3>Loading Videos<\/h3>\r\n                              \r\n                          <\/div>\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\">0 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<div id=\"profile-reels-container\" class=\"video-grid\">\r\n    <div class=\"empty-state\">\r\n        <div class=\"empty-icon\">\ud83c\udfa5<\/div>\r\n        <h3>Loading Reels<\/h3>\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 switchTab(tabName) {\r\n            \/\/ For group tabs\r\n            document.querySelectorAll('.tab-btn').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(`[onclick=\"switchTab('${tabName}')\"]`);\r\n            const tabContent = document.getElementById(tabName + 'Tab');\r\n\r\n            if (tabBtn) tabBtn.classList.add('active');\r\n            if (tabContent) tabContent.classList.add('active');\r\n\r\n            \/\/ Load videos when videos tab is clicked for groups\r\n            if (tabName === 'videos' && !videosLoaded && currentGroupId && currentType === 'group') {\r\n                fetchGroupVideos();\r\n            }\r\n\r\n            \/\/ Load reels when reels tab is clicked for groups\r\n            if (tabName === 'reels' && !reelsLoaded && currentGroupId && currentType === 'group') {\r\n                fetchGroupReels();\r\n            }\r\n        }\r\n\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            \/\/ Load 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            \/\/ Load 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\r\n        async function fetchGroupVideos() {\r\n            if (!currentGroupId || videosLoaded) return;\r\n\r\n            document.getElementById('videosContent').style.display = 'none';\r\n            document.getElementById('videosError').style.display = 'none';\r\n            document.getElementById('videosSkeleton').style.display = 'block';\r\n\r\n            try {\r\n                const videosUrl = `https:\/\/www.facebook.com\/groups\/${currentGroupId}\/media\/videos`;\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                        'Accept': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: videosUrl })\r\n                });\r\n\r\n                document.getElementById('videosSkeleton').style.display = 'none';\r\n                document.getElementById('videosContent').style.display = 'block';\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`HTTP error! status: ${response.status}`);\r\n                }\r\n\r\n                const data = await response.json();\r\n                const videoUrls = extractVideoUrls(data);\r\n                videosLoaded = true;\r\n\r\n                if (videoUrls.length > 0) {\r\n                    await fetchDownloadInfo(videoUrls);\r\n                } else {\r\n                    document.getElementById('videosContent').innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\ud83c\udfa5<\/div><h3>No videos found<\/h3><p>This group doesn\\'t have any videos or they\\'re not accessible.<\/p><\/div>';\r\n                }\r\n\r\n            } catch (error) {\r\n                document.getElementById('videosSkeleton').style.display = 'none';\r\n                document.getElementById('videosContent').style.display = 'block';\r\n                document.getElementById('videosContent').innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\u274c<\/div><h3>Error loading videos<\/h3><p>There was a problem fetching videos. Please try again later.<\/p><\/div>';\r\n                console.error('Error fetching videos:', error);\r\n            }\r\n        }\r\n\r\n\r\n        function extractVideoUrls(data) {\r\n            const videoUrls = [];\r\n\r\n            const searchForVideoUrls = (obj) => {\r\n                if (typeof obj !== 'object' || obj === null) return;\r\n\r\n                for (const key in obj) {\r\n                    if (typeof obj[key] === 'string' && obj[key].includes('facebook.com') && obj[key].includes('\/videos\/')) {\r\n                        const completeVideoUrlPattern = \/https:\\\/\\\/www\\.facebook\\.com\\\/[^\\\/]+\\\/videos\\\/\\d+[^\\s]*\/;\r\n                        if (completeVideoUrlPattern.test(obj[key])) {\r\n                            videoUrls.push(obj[key]);\r\n                        }\r\n                    } else if (typeof obj[key] === 'object') {\r\n                        searchForVideoUrls(obj[key]);\r\n                    }\r\n                }\r\n            };\r\n\r\n            searchForVideoUrls(data);\r\n            return [...new Set(videoUrls)].slice(0, 6);\r\n        }\r\n\r\n\r\n        async function fetchDownloadInfo(videoUrls) {\r\n            const videosContentDiv = document.getElementById('videosContent');\r\n            videosContentDiv.innerHTML = '<div class=\"loading\"><div class=\"loading-spinner\"><\/div><div class=\"loading-text\">Getting HD videos...<\/div><\/div>';\r\n\r\n            try {\r\n                const allResponses = [];\r\n\r\n                for (const videoUrl of videoUrls) {\r\n                    try {\r\n                        const response = await fetch('https:\/\/tools.xrespond.com\/api\/social\/all\/downloader', {\r\n                            method: 'POST',\r\n                            headers: {\r\n                                'Content-Type': 'application\/json',\r\n                                'Accept': 'application\/json'\r\n                            },\r\n                            body: JSON.stringify({ url: videoUrl })\r\n                        });\r\n\r\n                        if (response.ok) {\r\n                            const data = await response.json();\r\n                            allResponses.push({\r\n                                videoUrl: videoUrl,\r\n                                response: data,\r\n                                success: true\r\n                            });\r\n                        }\r\n                    } catch (error) {\r\n                        console.error('Error fetching video:', videoUrl, error);\r\n                    }\r\n                }\r\n\r\n                displayHDVideosGrid(allResponses);\r\n\r\n            } catch (error) {\r\n                document.getElementById('videosContent').innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\u274c<\/div><h3>Error loading videos<\/h3><p>Error fetching download information.<\/p><\/div>';\r\n            }\r\n        }\r\n\r\n\r\n        function displayHDVideosGrid(responses) {\r\n            const videosContentDiv = document.getElementById('videosContent');\r\n            allHDVideos = [];\r\n            let videos = [];\r\n\r\n            responses.forEach((item, index) => {\r\n                if (!item.success) return;\r\n\r\n                const hdMediaItems = extractHDMediaItems(item.response);\r\n\r\n                hdMediaItems.forEach((mediaItem, mediaIndex) => {\r\n                    const videoId = `video-${index}-${mediaIndex}`;\r\n                    const downloadId = `download-${index}-${mediaIndex}`;\r\n                    const filename = `facebook_video_${index}_${mediaIndex}.${mediaItem.format ? mediaItem.format.toLowerCase() : 'mp4'}`;\r\n\r\n                    allHDVideos.push({\r\n                        url: mediaItem.url,\r\n                        filename: filename,\r\n                        format: mediaItem.format\r\n                    });\r\n\r\n                    \/\/ Create video object for consistent structure\r\n                    videos.push({\r\n                        videoUrl: mediaItem.url,\r\n                        title: `Video ${index + 1}${mediaIndex > 0 ? '.' + (mediaIndex + 1) : ''}`,\r\n                        thumbnailUri: mediaItem.thumbnail || '\/placeholder.svg?height=200&width=350',\r\n                        duration: 0,\r\n                        height: mediaItem.quality === 'HD' ? 720 : 480,\r\n                        width: mediaItem.quality === 'HD' ? 1280 : 854,\r\n                        stats: { views: 0, likes: 0 },\r\n                        creationTime: Date.now() \/ 1000\r\n                    });\r\n                });\r\n            });\r\n\r\n            if (videos.length > 0) {\r\n                \/\/ Store videos data globally for download functionality\r\n                window.groupVideosData = videos;\r\n\r\n                const html = `\r\n              <div class=\"media-summary\">\r\n                  <h2 class=\"summary-title\">Video Collection<\/h2>\r\n                  <p class=\"summary-description\">Discovered ${videos.length} videos from this group<\/p>\r\n                  <div class=\"summary-stats\">\r\n                      <div class=\"summary-stat\">\r\n                          <span class=\"summary-stat-number\">${videos.length}<\/span>\r\n                          <span class=\"summary-stat-label\">Total Videos<\/span>\r\n                              <\/div>\r\n                      <div class=\"summary-stat\">\r\n                          <span class=\"summary-stat-number\">${videos.filter(v => v.height >= 720).length}<\/span>\r\n                          <span class=\"summary-stat-label\">HD Videos<\/span>\r\n                      <\/div>\r\n                      <div class=\"summary-stat\">\r\n                          <span class=\"summary-stat-number\">${videos.filter(v => v.videoUrl).length}<\/span>\r\n                          <span class=\"summary-stat-label\">Downloadable<\/span>\r\n                      <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n\r\n              <div class=\"video-grid\" style=\"display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); max-width: 1200px; margin: 0 auto;\">\r\n                  ${videos.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}')\" onclick=\"playVideoInline(${index}, 'group')\">\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}, 'group')\" 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}, 'group')\" 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                              <\/video>\r\n                          ` : ''}\r\n                          <div class=\"video-info\">\r\n                              <div class=\"video-title\" title=\"${video.title}\">${video.title}<\/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                              ${video.videoUrl ? `\r\n                                  <div class=\"video-actions-bottom\">\r\n                                      <button class=\"video-download-btn\" onclick=\"downloadVideo(${index}, 'group')\">\r\n                                          <i class=\"fas fa-download\"><\/i>\r\n                                          Download Video\r\n                                      <\/button>\r\n                                  <\/div>\r\n                              ` : ''}\r\n                          <\/div>\r\n                      <\/div>\r\n                  `).join('')}\r\n          <\/div>\r\n      `;\r\n\r\n                videosContentDiv.innerHTML = html;\r\n            } else {\r\n                videosContentDiv.innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\ud83c\udfa5<\/div><h3>No videos found<\/h3><p>No videos are available for download from this group.<\/p><\/div>';\r\n            }\r\n        }\r\n\r\n\r\n        function extractHDMediaItems(response) {\r\n            const hdMediaItems = [];\r\n\r\n            try {\r\n                if (!response || !response.medias || !Array.isArray(response.medias)) {\r\n                    return hdMediaItems;\r\n                }\r\n\r\n                response.medias.forEach(media => {\r\n                    if (media && media.url && media.quality && media.quality.toUpperCase() === 'HD') {\r\n                        hdMediaItems.push({\r\n                            url: media.url,\r\n                            quality: media.quality,\r\n                            format: media.format || 'mp4',\r\n                            thumbnail: response.thumbnail || null\r\n                        });\r\n                    }\r\n                });\r\n\r\n                return hdMediaItems;\r\n            } catch (error) {\r\n                console.error('Error extracting HD media items:', error);\r\n                return hdMediaItems;\r\n            }\r\n        }\r\n\r\n        \/\/ Download functions\r\n        async function downloadVideoFromUrl(url, filename, buttonId) {\r\n            const button = document.getElementById(buttonId);\r\n            const progressBar = button.querySelector('.download-progress');\r\n            const buttonText = button.querySelector('span');\r\n\r\n            try {\r\n                button.disabled = true;\r\n                buttonText.textContent = '\u23f3 Downloading...';\r\n                progressBar.style.width = '10%';\r\n\r\n                const response = await fetch(url);\r\n                if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n                progressBar.style.width = '50%';\r\n                const blob = await response.blob();\r\n                progressBar.style.width = '80%';\r\n\r\n                const blobUrl = window.URL.createObjectURL(blob);\r\n                const a = document.createElement('a');\r\n                a.href = blobUrl;\r\n                a.download = filename;\r\n                a.style.display = 'none';\r\n\r\n                document.body.appendChild(a);\r\n                a.click();\r\n                document.body.removeChild(a);\r\n                window.URL.revokeObjectURL(blobUrl);\r\n\r\n                progressBar.style.width = '100%';\r\n                buttonText.textContent = '\u2705 Downloaded!';\r\n\r\n                setTimeout(() => {\r\n                    button.disabled = false;\r\n                    buttonText.textContent = '\u2b07\ufe0f Download';\r\n                    progressBar.style.width = '0%';\r\n                }, 2000);\r\n\r\n            } catch (error) {\r\n                button.disabled = false;\r\n                buttonText.textContent = '\u274c Failed';\r\n                progressBar.style.width = '0%';\r\n\r\n                setTimeout(() => {\r\n                    buttonText.textContent = '\u2b07\ufe0f Download';\r\n                }, 3000);\r\n            }\r\n        }\r\n\r\n\r\n        async function downloadAllVideos() {\r\n            const button = document.getElementById('downloadAllBtn');\r\n            if (allHDVideos.length === 0) return;\r\n\r\n            try {\r\n                button.disabled = true;\r\n                button.innerHTML = '\u23f3 Downloading All...';\r\n\r\n                for (const video of allHDVideos) {\r\n                    try {\r\n                        const response = await fetch(video.url);\r\n                        if (response.ok) {\r\n                            const blob = await response.blob();\r\n                            const blobUrl = window.URL.createObjectURL(blob);\r\n\r\n                            const a = document.createElement('a');\r\n                            a.href = blobUrl;\r\n                            a.download = video.filename;\r\n                            a.style.display = 'none';\r\n\r\n                            document.body.appendChild(a);\r\n                            a.click();\r\n                            document.body.removeChild(a);\r\n                            window.URL.revokeObjectURL(blobUrl);\r\n\r\n                            await new Promise(resolve => setTimeout(resolve, 500));\r\n                        }\r\n                    } catch (error) {\r\n                        console.error('Error downloading video:', video.filename, error);\r\n                    }\r\n                }\r\n\r\n                button.innerHTML = '\u2705 All Downloaded!';\r\n\r\n                setTimeout(() => {\r\n                    button.disabled = false;\r\n                    button.innerHTML = `\u2b07\ufe0f Download All Videos (${allHDVideos.length})`;\r\n                }, 3000);\r\n\r\n            } catch (error) {\r\n                button.disabled = false;\r\n                button.innerHTML = `\u2b07\ufe0f Download All Videos (${allHDVideos.length})`;\r\n            }\r\n        }\r\n\r\n\r\n        function copyToClipboard(text) {\r\n            navigator.clipboard.writeText(text).then(() => {\r\n                alert('\ud83d\udccb Copied to clipboard!');\r\n            }).catch(() => {\r\n                const textArea = document.createElement('textarea');\r\n                textArea.value = text;\r\n                document.body.appendChild(textArea);\r\n                textArea.select();\r\n                document.execCommand('copy');\r\n                document.body.removeChild(textArea);\r\n                alert('\ud83d\udccb Copied to clipboard!');\r\n            });\r\n        }\r\n\r\n        \/\/ Group Reels Functions\r\n        async function fetchGroupReels() {\r\n            if (!currentGroupId || reelsLoaded) return;\r\n\r\n            document.getElementById('reelsContent').style.display = 'none';\r\n            document.getElementById('reelsError').style.display = 'none';\r\n            document.getElementById('reelsSkeleton').style.display = 'block';\r\n\r\n            try {\r\n                const reelsUrl = `https:\/\/www.facebook.com\/groups\/${currentGroupId}\/reels_tab`;\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                        'Accept': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: reelsUrl })\r\n                });\r\n\r\n                document.getElementById('reelsSkeleton').style.display = 'none';\r\n                document.getElementById('reelsContent').style.display = 'block';\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`HTTP error! status: ${response.status}`);\r\n                }\r\n\r\n                const data = await response.json();\r\n                const reels = extractReels(data);\r\n                reelsLoaded = true;\r\n\r\n                if (reels.length > 0) {\r\n                    displayGroupReels(reels);\r\n                } else {\r\n                    document.getElementById('reelsContent').innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\ud83c\udfac<\/div><h3>No reels found<\/h3><p>This group doesn\\'t have any reels or they\\'re not accessible.<\/p><\/div>';\r\n                }\r\n\r\n            } catch (error) {\r\n                document.getElementById('reelsSkeleton').style.display = 'none';\r\n                document.getElementById('reelsContent').style.display = 'block';\r\n                document.getElementById('reelsContent').innerHTML = '<div class=\"empty-state\"><div class=\"empty-icon\">\u274c<\/div><h3>Error loading reels<\/h3><p>There was a problem fetching reels. Please try again later.<\/p><\/div>';\r\n                console.error('Error fetching reels:', error);\r\n            }\r\n        }\r\n\r\n        function displayGroupVideos(videos) {\r\n            const videosContent = document.getElementById('videosContent');\r\n\r\n            const html = `\r\n          <div class=\"media-summary\">\r\n              <h2 class=\"summary-title\">Video Collection<\/h2>\r\n              <p class=\"summary-description\">Discovered ${videos.length} videos from this group<\/p>\r\n              <div class=\"summary-stats\">\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${videos.length}<\/span>\r\n                      <span class=\"summary-stat-label\">Total Videos<\/span>\r\n                  <\/div>\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${videos.filter(v => v.height >= 720).length}<\/span>\r\n                      <span class=\"summary-stat-label\">HD Videos<\/span>\r\n                  <\/div>\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${videos.filter(v => v.videoUrl).length}<\/span>\r\n                      <span class=\"summary-stat-label\">Downloadable<\/span>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n          \r\n          <div class=\"video-grid\" style=\"display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); max-width: 1200px; margin: 0 auto;\">\r\n              ${videos.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}, 'group')\">\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}, 'group')\" 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}, 'group')\" 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                          <\/video>\r\n                      ` : ''}\r\n                      <div class=\"video-info\">\r\n                          <div class=\"video-title\" title=\"${video.title}\">${video.title}<\/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                          ${video.videoUrl ? `\r\n                              <div class=\"video-actions-bottom\">\r\n                                  <button class=\"video-download-btn\" onclick=\"downloadVideo(${index}, 'group')\">\r\n                                      <i class=\"fas fa-download\"><\/i>\r\n                                      Download Video\r\n                                  <\/button>\r\n                              <\/div>\r\n                          ` : ''}\r\n                      <\/div>\r\n                  <\/div>\r\n              `).join('')}\r\n          <\/div>\r\n      `;\r\n\r\n            videosContent.innerHTML = html;\r\n\r\n            \/\/ Store videos data globally for download functionality\r\n            window.groupVideosData = videos;\r\n        }\r\n\r\n        function displayGroupReels(reels) {\r\n            const reelsContent = document.getElementById('reelsContent');\r\n\r\n            const html = `\r\n          <div class=\"media-summary\">\r\n              <h2 class=\"summary-title\">Reels Collection<\/h2>\r\n              <p class=\"summary-description\">Discovered ${reels.length} reels from this group<\/p>\r\n              <div class=\"summary-stats\">\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${reels.length}<\/span>\r\n                      <span class=\"summary-stat-label\">Total Reels<\/span>\r\n                  <\/div>\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${reels.filter(r => r.videoUrl).length}<\/span>\r\n                      <span class=\"summary-stat-label\">Downloadable<\/span>\r\n                  <\/div>\r\n                  <div class=\"summary-stat\">\r\n                      <span class=\"summary-stat-number\">${formatTotalViews(reels)}<\/span>\r\n                      <span class=\"summary-stat-label\">Total Views<\/span>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n          \r\n          <div class=\"video-grid\" style=\"display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); max-width: 1200px; margin: 0 auto;\">\r\n              ${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}, 'group')\">\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}, 'group')\" 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}, 'group')\" 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                          <\/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}, 'group')\">\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>\r\n      `;\r\n\r\n            reelsContent.innerHTML = html;\r\n\r\n            \/\/ Store reels data globally for download functionality\r\n            window.groupReelsData = reels;\r\n        }\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 (currentCachedUsername === username && cachedVideos !== null) {\r\n                console.log('Using cached videos for:', username);\r\n                displayVideosFromCache();\r\n                return;\r\n            }\r\n\r\n            try {\r\n                \/\/ Construct videos URL - only search from \/videos endpoint\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\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\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                        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 display videos from cache\r\n        function displayVideosFromCache() {\r\n            if (!cachedVideos) return;\r\n\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            \/\/ Display videos\r\n            const videosContainer = document.getElementById('profile-videos-container');\r\n            if (cachedVideos.length > 0) {\r\n                const videosHtml = cachedVideos.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\r\n                \/\/ Store videos data globally for download functionality\r\n                window.profileVideosData = cachedVideos;\r\n            } else {\r\n                videosContainer.innerHTML = '<div class=\"no-data-message\">No videos found for this profile.<\/div>';\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 (currentCachedUsername === username && cachedReels !== null) {\r\n                console.log('Using cached reels for:', username);\r\n                displayReelsFromCache();\r\n                return;\r\n            }\r\n\r\n            try {\r\n                \/\/ Construct reels URL - only search from \/reels endpoint\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\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                    \/\/ Cache the reels data\r\n                    cachedReels = reelsData;\r\n                    currentCachedUsername = username;\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        \/\/ Function to display reels from cache\r\n        function displayReelsFromCache() {\r\n            if (!cachedReels) return;\r\n\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            \/\/ Display reels\r\n            const reelsContainer = document.getElementById('profile-reels-container');\r\n            if (cachedReels.length > 0) {\r\n                const reelsHtml = cachedReels.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 = cachedReels;\r\n            } else {\r\n                reelsContainer.innerHTML = '<div class=\"no-data-message\">No reels found for this profile.<\/div>';\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 === 'group') {\r\n                videoData = window.groupVideosData;\r\n                container = document.querySelector(`[data-video-index=\"${index}\"]`);\r\n            } else 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 === 'group') {\r\n                reelData = window.groupReelsData;\r\n                container = document.querySelector(`[data-reel-index=\"${index}\"]`);\r\n            } else 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 === 'group') {\r\n                videoData = window.groupVideosData;\r\n            } else 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 === 'group') {\r\n                reelData = window.groupReelsData;\r\n            } else 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 === 'group') {\r\n                videoData = window.groupVideosData;\r\n            } else 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 === 'group') {\r\n                reelData = window.groupReelsData;\r\n            } else 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            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 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: window.profileVideosData ? window.profileVideosData.length : 0,\r\n                    reels: window.profileReelsData ? window.profileReelsData.length : 0,\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: (window.profileVideosData || []).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: (window.profileReelsData || []).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                if (!this.value) {\r\n                    this.placeholder = 'e.g., https:\/\/www.facebook.com\/groups\/example or https:\/\/www.facebook.com\/username';\r\n                }\r\n            });\r\n\r\n            urlInput.addEventListener('blur', function () {\r\n                if (!this.value) {\r\n                    this.placeholder = 'Enter Facebook group or profile 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    <\/script>\r\n\r\n        <!-- Scripts -->\r\n        <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\r\n        <script src=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.js\"><\/script>\r\n\r\n    <!-- 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    <\/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-280","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/280","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=280"}],"version-history":[{"count":5,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/280\/revisions"}],"predecessor-version":[{"id":579,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/280\/revisions\/579"}],"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=280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}