{"id":5619,"date":"2026-06-02T09:47:23","date_gmt":"2026-06-02T09:47:23","guid":{"rendered":"https:\/\/viiewerr.com\/tiktok\/post\/"},"modified":"2026-06-27T11:46:48","modified_gmt":"2026-06-27T11:46:48","slug":"post","status":"publish","type":"page","link":"https:\/\/viiewerr.com\/tiktok\/post\/","title":{"rendered":"Tiktok Post Viewer: Feed Access"},"content":{"rendered":"<style type=\"text\/css\">\n.tc-wp-island {<br \/>\n  width: 100%;<br \/>\n  max-width: 100%;<br \/>\n  min-width: 0;<br \/>\n  box-sizing: border-box;<br \/>\n  display: flow-root;<br \/>\n  isolation: isolate;<br \/>\n  position: relative;<br \/>\n}<br \/>\n.tc-wp-island > * {<br \/>\n  min-width: 0;<br \/>\n}<br \/>\n.tc-wp-island *,<br \/>\n.tc-wp-island *::before,<br \/>\n.tc-wp-island *::after {<br \/>\n  box-sizing: border-box;<br \/>\n}<br \/>\n.tc-wp-island img,<br \/>\n.tc-wp-island video,<br \/>\n.tc-wp-island svg,<br \/>\n.tc-wp-island iframe {<br \/>\n  max-width: 100%;<br \/>\n  height: auto;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-tool {<br \/>\n  max-width: 100%;<br \/>\n  min-width: 0;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-tool-html,<br \/>\n.tc-wp-island .tc-wp-tool-content,<br \/>\n.tc-wp-island .tc-wp-other {<br \/>\n  max-width: 100%;<br \/>\n  min-width: 0;<br \/>\n  overflow-wrap: anywhere;<br \/>\n  word-break: break-word;<br \/>\n}<br \/>\n\/* Keep tool in post content flow \u2014 not overlapping theme header \/ hero band *\/<br \/>\n.tc-wp-island {<br \/>\n  clear: both;<br \/>\n  z-index: 1;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-tool {<br \/>\n  position: relative;<br \/>\n  z-index: 0;<br \/>\n  clear: both;<br \/>\n  margin-top: 0;<br \/>\n  margin-bottom: 1.25rem;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-tool-html {<br \/>\n  position: relative;<br \/>\n  z-index: 0;<br \/>\n  clear: both;<br \/>\n  contain: layout;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-tool-html > *:first-child {<br \/>\n  position: relative !important;<br \/>\n  top: auto !important;<br \/>\n  left: auto !important;<br \/>\n  right: auto !important;<br \/>\n  margin-top: 0 !important;<br \/>\n  width: 100%;<br \/>\n  max-width: 100%;<br \/>\n  box-sizing: border-box;<br \/>\n}<br \/>\nbody:has(.tc-wp-island) #main-header,<br \/>\nbody:has(.tc-wp-island) header.site-header,<br \/>\nbody:has(.tc-wp-island) .site-header,<br \/>\nbody:has(.tc-wp-island) #header,<br \/>\nbody:has(.tc-wp-island) .et-fixed-header,<br \/>\nbody:has(.tc-wp-island) .elementor-location-header {<br \/>\n  z-index: 200;<br \/>\n}<br \/>\n\/* Space between WP Coder tool + content shortcodes on publish\/draft pages *\/<br \/>\n.tc-wp-island .tc-wp-tool-html + .tc-wp-tool-content {<br \/>\n  margin-top: 20px;<br \/>\n}<br \/>\n.tc-wp-island .tc-wp-bcd-codes {<br \/>\n  display: flex;<br \/>\n  flex-direction: column;<br \/>\n  gap: 20px;<br \/>\n}<br \/>\n\/* Full-width: hide theme sidebar when a ToolsChecker island is present *\/<br \/>\nbody:has(.tc-wp-island) #sidebar,<br \/>\nbody:has(.tc-wp-island) .sidebar,<br \/>\nbody:has(.tc-wp-island) #secondary,<br \/>\nbody:has(.tc-wp-island) .widget-area,<br \/>\nbody:has(.tc-wp-island) aside.sidebar,<br \/>\nbody:has(.tc-wp-island) #right-sidebar,<br \/>\nbody:has(.tc-wp-island) #left-sidebar,<br \/>\nbody:has(.tc-wp-island) .sidebar-primary,<br \/>\nbody:has(.tc-wp-island) .sidebar-secondary,<br \/>\nbody:has(.tc-wp-island) .ast-sidebar,<br \/>\nbody:has(.tc-wp-island) .site-sidebar {<br \/>\n  display: none !important;<br \/>\n}<br \/>\n\/* Copygen: hide default page title\/breadcrumb band \u2014 tool pages use template-homepage like category *\/<br \/>\nbody:has(.tc-wp-island) section.page_header_default,<br \/>\nbody:has(.tc-wp-island) .page_header_default {<br \/>\n  display: none !important;<br \/>\n}<br \/>\n@media (min-width: 981px) {<br \/>\n  body:has(.tc-wp-island) #left-area,<br \/>\n  body:has(.tc-wp-island) #primary,<br \/>\n  body:has(.tc-wp-island) #content-area,<br \/>\n  body:has(.tc-wp-island) #content-area .container,<br \/>\n  body:has(.tc-wp-island) .content-area,<br \/>\n  body:has(.tc-wp-island) main.site-main,<br \/>\n  body:has(.tc-wp-island) .site-content .content-area {<br \/>\n    width: 100% !important;<br \/>\n    max-width: 100% !important;<br \/>\n    float: none !important;<br \/>\n    padding-right: 0 !important;<br \/>\n    padding-left: 0 !important;<br \/>\n  }<br \/>\n  body:has(.tc-wp-island) #main-content .container:before {<br \/>\n    display: none !important;<br \/>\n  }<br \/>\n}<br \/>\n\/* Tool pages: keep theme H1 readable \u2014 smaller type, full content width, 1\u20132 lines *\/<br \/>\nbody:has(.tc-wp-island) .fontib-v2-hero-inner {<br \/>\n  width: min(100%, calc(100vw - 40px)) !important;<br \/>\n  max-width: 1320px !important;<br \/>\n}<br \/>\nbody:has(.tc-wp-island) .fontib-v2-title,<br \/>\nbody:has(.tc-wp-island) #left-area > .entry-title,<br \/>\nbody:has(.tc-wp-island) .entry-title h1,<br \/>\nbody:has(.tc-wp-island) h1.entry-title,<br \/>\nbody:has(.tc-wp-island) .page-title,<br \/>\nbody:has(.tc-wp-island) .et_pb_title_container h1 {<br \/>\n  max-width: 100% !important;<br \/>\n  width: 100%;<br \/>\n  font-size: clamp(24px, 2.6vw, 38px) !important;<br \/>\n  line-height: 1.2 !important;<br \/>\n  letter-spacing: -0.01em;<br \/>\n}<br \/>\n<\/style>\n<div class=\"tc-wp-island\">\n<section class=\"tc-wp-tool\" data-tool-index=\"1\">\n<div class=\"tc-wp-tool-html\">    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@300;400;500;600;700;800;900&display=swap\"\r\n        rel=\"stylesheet\">\r\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0\/css\/all.min.css\" rel=\"stylesheet\">\r\n    <style>\r\n        .wrapper {\r\n            \/* professional palette variables *\/\r\n            --brand-primary: #5b8def; \/* blue *\/\r\n            --brand-secondary: #6ee7e7; \/* teal *\/\r\n            --brand-accent: #a78bfa; \/* violet *\/\r\n            --brand-warm: #f59e0b; \/* amber for highlights *\/\r\n\r\n            \/* legacy variable names mapped to professional palette *\/\r\n            --tiktok-pink: var(--brand-primary);\r\n            --tiktok-blue: var(--brand-secondary);\r\n            --tiktok-cyan: var(--brand-secondary);\r\n            --tiktok-purple: var(--brand-accent);\r\n            --tiktok-orange: var(--brand-warm);\r\n            --tiktok-yellow: #ffe8a3;\r\n\r\n            --ui-white: #ffffff;\r\n            --ui-light: #f7f9fb;\r\n            --ui-light-gray: #eef2f7;\r\n            --ui-gray: #667085;\r\n            --ui-dark-gray: #344054;\r\n            --ui-text: #1f2937;\r\n            --ui-text-light: #64748b;\r\n\r\n            \/* Gradients *\/\r\n            --gradient-primary: linear-gradient(135deg, #5b8def 0%, #a78bfa 60%, #6ee7e7 100%);\r\n            --gradient-secondary: linear-gradient(135deg, #6ee7e7 0%, #5b8def 50%, #a78bfa 100%);\r\n            --gradient-tiktok: linear-gradient(135deg, #5b8def 0%, #6ee7e7 25%, #a78bfa 60%, #5b8def 85%, #6ee7e7 100%);\r\n            --gradient-card: linear-gradient(135deg, rgba(255,255,255,0.95) 0%, rgba(247,249,251,0.9) 100%);\r\n            --gradient-bg: radial-gradient(1200px 800px at 10% 10%, #e8f0ff 0%, #f3e8ff 35%, transparent 70%),\r\n                            radial-gradient(1000px 700px at 90% 20%, #e6fffb 0%, #e8f0ff 35%, transparent 70%),\r\n                            linear-gradient(180deg, #f6f9ff 0%, #f5f3ff 100%);\r\n\r\n            \/* Shadows *\/\r\n            --shadow-sm: 0 2px 8px rgba(16, 24, 40, 0.06);\r\n            --shadow-md: 0 6px 18px rgba(16, 24, 40, 0.08);\r\n            --shadow-lg: 0 10px 30px rgba(16, 24, 40, 0.12);\r\n            --shadow-xl: 0 16px 40px rgba(16, 24, 40, 0.16);\r\n            --shadow-pink: 0 8px 24px rgba(91, 141, 239, 0.3);\r\n            --shadow-blue: 0 8px 24px rgba(110, 231, 231, 0.3);\r\n            --shadow-purple: 0 8px 24px rgba(167, 139, 250, 0.3);\r\n            --shadow-glow: 0 0 30px rgba(91, 141, 239, 0.35);\r\n\r\n            \/* Radii *\/\r\n            --radius-sm: 8px;\r\n            --radius-md: 12px;\r\n            --radius-lg: 16px;\r\n            --radius-xl: 24px;\r\n            --radius-full: 9999px;\r\n        }\r\n            \/* TikTok Brand Colors *\/\r\n            --tiktok-pink: #fe2c55;\r\n            --tiktok-blue: #25f4ee;\r\n            --tiktok-cyan: #00f2ea;\r\n            --tiktok-purple: #8b5cf6;\r\n            --tiktok-orange: #ff6b35;\r\n            --tiktok-yellow: #ffd23f;\r\n\r\n            \/* Bright UI Colors *\/\r\n            --ui-white: #ffffff;\r\n            --ui-light: #f8fafc;\r\n            --ui-light-gray: #f1f5f9;\r\n            --ui-gray: #64748b;\r\n            --ui-dark-gray: #334155;\r\n            --ui-text: #1e293b;\r\n            --ui-text-light: #475569;\r\n\r\n            \/* Vibrant Gradients *\/\r\n            --gradient-primary: linear-gradient(135deg, #fe2c55 0%, #ff6b35 50%, #ffd23f 100%);\r\n            --gradient-secondary: linear-gradient(135deg, #25f4ee 0%, #8b5cf6 50%, #fe2c55 100%);\r\n            --gradient-tiktok: linear-gradient(135deg, #00f2ea 0%, #25f4ee 25%, #8b5cf6 50%, #fe2c55 75%, #ff6b35 100%);\r\n            --gradient-card: linear-gradient(135deg, rgba(255, 255, 255, 0.9) 0%, rgba(248, 250, 252, 0.8) 100%);\r\n            --gradient-bg: linear-gradient(135deg, #fef3c7 0%, #fde68a 25%, #fed7aa 50%, #fecaca 75%, #f3e8ff 100%);\r\n\r\n            \/* Advanced Shadows *\/\r\n            --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);\r\n            --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.1);\r\n            --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);\r\n            --shadow-xl: 0 12px 32px rgba(0, 0, 0, 0.15);\r\n            --shadow-pink: 0 8px 24px rgba(254, 44, 85, 0.3);\r\n            --shadow-blue: 0 8px 24px rgba(37, 244, 238, 0.3);\r\n            --shadow-purple: 0 8px 24px rgba(139, 92, 246, 0.3);\r\n            --shadow-glow: 0 0 30px rgba(254, 44, 85, 0.4);\r\n\r\n            \/* Border Radius *\/\r\n            --radius-sm: 8px;\r\n            --radius-md: 12px;\r\n            --radius-lg: 16px;\r\n            --radius-xl: 24px;\r\n            --radius-full: 9999px;\r\n        }\r\n\r\n        .wrapper * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n            font-family: 'Montserrat', sans-serif;\r\n        }\r\n\r\n        .wrapper {\r\n            background: var(--gradient-bg);\r\n            background-size: 400% 400%;\r\n            animation: gradientShift 20s ease infinite;\r\n            color: var(--ui-text);\r\n            line-height: 1.6;\r\n            overflow-x: hidden;\r\n            position: relative;\r\n            min-height: 100vh;\r\n        }\r\n\r\n        @keyframes gradientShift {\r\n            0% {\r\n                background-position: 0% 50%;\r\n            }\r\n\r\n            50% {\r\n                background-position: 100% 50%;\r\n            }\r\n\r\n            100% {\r\n                background-position: 0% 50%;\r\n            }\r\n        }\r\n\r\n        \/* Background Effects *\/\r\n        .bg-wrapper {\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            z-index: -1;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .bg-pattern {\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background-image:\r\n                radial-gradient(circle at 25% 25%, rgba(254, 44, 85, 0.1) 0%, transparent 50%),\r\n                radial-gradient(circle at 75% 75%, rgba(37, 244, 238, 0.1) 0%, transparent 50%),\r\n                radial-gradient(circle at 50% 50%, rgba(139, 92, 246, 0.05) 0%, transparent 50%);\r\n        }\r\n\r\n        .floating-elements {\r\n            position: absolute;\r\n            width: 100%;\r\n            height: 100%;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .floating-shape {\r\n            position: absolute;\r\n            border-radius: 50%;\r\n            opacity: 0.6;\r\n            animation: float 15s infinite ease-in-out;\r\n        }\r\n\r\n        .floating-shape:nth-child(1) {\r\n            width: 60px;\r\n            height: 60px;\r\n            background: linear-gradient(45deg, var(--tiktok-pink), var(--tiktok-orange));\r\n            top: 20%;\r\n            left: 10%;\r\n            animation-delay: 0s;\r\n        }\r\n\r\n        .floating-shape:nth-child(2) {\r\n            width: 80px;\r\n            height: 80px;\r\n            background: linear-gradient(45deg, var(--tiktok-blue), var(--tiktok-purple));\r\n            top: 60%;\r\n            right: 15%;\r\n            animation-delay: 5s;\r\n        }\r\n\r\n        .floating-shape:nth-child(3) {\r\n            width: 40px;\r\n            height: 40px;\r\n            background: linear-gradient(45deg, var(--tiktok-yellow), var(--tiktok-pink));\r\n            bottom: 30%;\r\n            left: 20%;\r\n            animation-delay: 10s;\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(-20px) rotate(180deg);\r\n            }\r\n        }\r\n\r\n        .wrapper .container {\r\n            max-width: 1400px;\r\n            margin: 0 auto;\r\n            padding: 40px 24px;\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        \/* Header Styles *\/\r\n        .wrapper .header {\r\n            text-align: center;\r\n            margin-bottom: 50px;\r\n            position: relative;\r\n        }\r\n\r\n        .logo-container {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 20px;\r\n            margin-bottom: 15px;\r\n        }\r\n\r\n        .logo-icon {\r\n            position: relative;\r\n            width: 70px;\r\n            height: 70px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-size: 35px;\r\n            color: var(--ui-white);\r\n            z-index: 1;\r\n            border-radius: var(--radius-lg);\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .logo-icon::before {\r\n            content: '';\r\n            position: absolute;\r\n            inset: 0;\r\n            background: var(--ui-white);\r\n            border-radius: var(--radius-lg);\r\n            z-index: -1;\r\n            box-shadow: var(--shadow-lg);\r\n        }\r\n\r\n        .logo-icon::after {\r\n            content: '';\r\n            position: absolute;\r\n            inset: -3px;\r\n            background: var(--gradient-tiktok);\r\n            border-radius: calc(var(--radius-lg) + 3px);\r\n            z-index: -2;\r\n            animation: rotateBorder 4s linear infinite;\r\n        }\r\n\r\n        @keyframes rotateBorder {\r\n            0% {\r\n                filter: hue-rotate(0deg);\r\n            }\r\n\r\n            100% {\r\n                filter: hue-rotate(360deg);\r\n            }\r\n        }\r\n\r\n        .logo-icon i {\r\n            background: var(--gradient-primary);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n        }\r\n\r\n        .logo-text-container {\r\n            text-align: left;\r\n        }\r\n\r\n        .logo-text {\r\n            font-size: clamp(32px, 6vw, 42px);\r\n            font-weight: 900;\r\n            background: var(--gradient-primary);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            letter-spacing: -1px;\r\n            line-height: 1;\r\n            margin-bottom: 5px;\r\n        }\r\n\r\n        .logo-subtitle {\r\n            font-size: clamp(14px, 3vw, 16px);\r\n            font-weight: 600;\r\n            color: var(--ui-text-light);\r\n            margin: 0;\r\n        }\r\n\r\n        .features-card {\r\n            display: none;\r\n        }\r\n\r\n        .feature-item {\r\n            display: flex;\r\n            flex-direction: column;\r\n            align-items: center;\r\n            gap: 6px;\r\n            padding: 12px 16px;\r\n            border-radius: var(--radius-lg);\r\n            transition: all 0.3s ease;\r\n            cursor: pointer;\r\n            min-width: 80px;\r\n        }\r\n\r\n        .feature-item:hover {\r\n            background: rgba(254, 44, 85, 0.1);\r\n            transform: translateY(-3px);\r\n            box-shadow: var(--shadow-sm);\r\n        }\r\n\r\n        .feature-item i {\r\n            font-size: 18px;\r\n            color: var(--tiktok-pink);\r\n            margin-bottom: 2px;\r\n        }\r\n\r\n        .feature-item span {\r\n            font-size: 11px;\r\n            font-weight: 700;\r\n            color: var(--ui-text);\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.5px;\r\n            text-align: center;\r\n        }\r\n\r\n        \/* Search Section *\/\r\n        .search-section {\r\n            background: var(--gradient-card);\r\n            backdrop-filter: blur(20px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            padding: 40px;\r\n            border-radius: var(--radius-xl);\r\n            box-shadow: var(--shadow-xl);\r\n            margin-bottom: 50px;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .search-section::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            height: 2px;\r\n            background: var(--gradient-tiktok);\r\n        }\r\n\r\n        .input-container {\r\n            position: relative;\r\n            margin-bottom: 30px;\r\n        }\r\n\r\n        .search-input {\r\n            width: 100% !important;\r\n            padding: 20px 24px  !important;\r\n            background: var(--ui-white)  !important;\r\n            color: var(--ui-text)  !important;\r\n            border: 2px solid rgba(254, 44, 85, 0.2)  !important;\r\n            border-radius: var(--radius-lg)  !important;\r\n            font-size: 16px  !important;\r\n            font-weight: 500  !important;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1)  !important;\r\n            box-shadow: var(--shadow-sm)  !important;\r\n        }\r\n\r\n        .search-input:focus {\r\n            outline: none  !important;\r\n            border-color: var(--tiktok-pink)  !important;\r\n            box-shadow: 0 0 0 4px rgba(254, 44, 85, 0.1), var(--shadow-md)  !important;\r\n            transform: translateY(-2px)  !important;\r\n        }\r\n\r\n        .search-input::placeholder {\r\n            color: var(--ui-gray);\r\n        }\r\n\r\n        .paste-hint {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: flex-end;\r\n            gap: 8px;\r\n            margin-top: 12px;\r\n            font-size: 14px;\r\n            color: var(--ui-text-light);\r\n            font-weight: 500;\r\n        }\r\n\r\n        .paste-icon {\r\n            cursor: pointer;\r\n            padding: 8px;\r\n            border-radius: var(--radius-full);\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            font-size: 16px;\r\n            color: var(--ui-text-light);\r\n            background: rgba(254, 44, 85, 0.1);\r\n        }\r\n\r\n        .paste-icon:hover {\r\n            background: var(--tiktok-pink);\r\n            color: var(--ui-white);\r\n            transform: scale(1.2) rotate(5deg);\r\n            box-shadow: var(--shadow-pink);\r\n        }\r\n\r\n        .search-box {\r\n            display: flex;\r\n            gap: 16px;\r\n            margin-bottom: 24px;\r\n        }\r\n\r\n        .search-button {\r\n            flex: 1;\r\n            min-width: 200px;\r\n            padding: 18px 24px;\r\n            background: var(--gradient-primary);\r\n            color: var(--ui-white);\r\n            border: none;\r\n            border-radius: var(--radius-lg);\r\n            font-size: 16px;\r\n            font-weight: 700;\r\n            cursor: pointer;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            position: relative;\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-pink);\r\n            text-transform: uppercase;\r\n            letter-spacing: 1px;\r\n        }\r\n\r\n        .search-button::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,\r\n                    transparent 0%,\r\n                    rgba(255, 255, 255, 0.3) 50%,\r\n                    transparent 100%);\r\n            transition: left 0.5s ease;\r\n        }\r\n\r\n        .search-button:hover:not(:disabled) {\r\n            transform: translateY(-3px) scale(1.02);\r\n            box-shadow: var(--shadow-pink), var(--shadow-glow);\r\n        }\r\n\r\n        .search-button:hover:not(:disabled)::before {\r\n            left: 100%;\r\n        }\r\n\r\n        .search-button:disabled {\r\n            opacity: 0.6;\r\n            cursor: not-allowed;\r\n        }\r\n\r\n        .search-again-btn {\r\n            background: var(--gradient-secondary);\r\n            color: var(--ui-white);\r\n            margin-top: 20px;\r\n            width: 100%;\r\n            padding: 18px;\r\n            border: none;\r\n            border-radius: var(--radius-lg);\r\n            font-weight: 700;\r\n            font-size: 16px;\r\n            cursor: pointer;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            box-shadow: var(--shadow-blue);\r\n            text-transform: uppercase;\r\n            letter-spacing: 1px;\r\n        }\r\n\r\n        .search-again-btn:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: var(--shadow-blue), 0 0 30px rgba(37, 244, 238, 0.4);\r\n        }\r\n\r\n        \/* Profile Section *\/\r\n        .profile-section {\r\n            background: var(--gradient-card);\r\n            backdrop-filter: blur(20px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            border-radius: var(--radius-xl);\r\n            padding: 40px;\r\n            margin-bottom: 50px;\r\n            box-shadow: var(--shadow-xl);\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .profile-section::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            height: 2px;\r\n            background: var(--gradient-tiktok);\r\n        }\r\n\r\n        .profile-header {\r\n            display: flex;\r\n            gap: 30px;\r\n            margin-bottom: 40px;\r\n            align-items: center;\r\n        }\r\n\r\n        .profile-avatar-container {\r\n            position: relative;\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .profile-avatar {\r\n            width: 120px;\r\n            height: 120px;\r\n            border-radius: var(--radius-full);\r\n            object-fit: cover;\r\n            border: 4px solid var(--ui-white);\r\n            box-shadow: var(--shadow-lg);\r\n            cursor: pointer;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        .profile-avatar::after {\r\n            content: '';\r\n            position: absolute;\r\n            inset: -8px;\r\n            border-radius: var(--radius-full);\r\n            background: var(--gradient-tiktok);\r\n            z-index: -1;\r\n            opacity: 0;\r\n            transition: opacity 0.3s ease;\r\n        }\r\n\r\n        .profile-avatar:hover {\r\n            transform: scale(1.05);\r\n            box-shadow: var(--shadow-xl), var(--shadow-glow);\r\n        }\r\n\r\n        .profile-avatar:hover::after {\r\n            opacity: 1;\r\n        }\r\n\r\n        .fullscreen-icon {\r\n            position: absolute;\r\n            bottom: 0;\r\n            right: 0;\r\n            width: 32px;\r\n            height: 32px;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-full);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: var(--ui-white);\r\n            font-size: 14px;\r\n            cursor: pointer;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            box-shadow: var(--shadow-sm);\r\n            z-index: 2;\r\n            border: 2px solid var(--ui-white);\r\n        }\r\n\r\n        .fullscreen-icon:hover {\r\n            transform: scale(1.2);\r\n            background: var(--gradient-secondary);\r\n            box-shadow: var(--shadow-md);\r\n        }\r\n\r\n        .profile-info {\r\n            flex: 1;\r\n        }\r\n\r\n        .profile-name {\r\n            font-size: 32px;\r\n            font-weight: 800;\r\n            margin-bottom: 8px;\r\n            background: var(--gradient-primary);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n        }\r\n\r\n        .profile-username {\r\n            font-size: 18px;\r\n            color: var(--ui-text-light);\r\n            margin-bottom: 16px;\r\n            font-weight: 600;\r\n        }\r\n\r\n        .profile-bio {\r\n            color: var(--ui-text);\r\n            font-size: 15px;\r\n            line-height: 1.5;\r\n            margin-bottom: 16px;\r\n            font-weight: 500;\r\n        }\r\n\r\n        \/* Stats Section *\/\r\n        .profile-stats {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n            gap: 20px;\r\n        }\r\n\r\n        .stat-item {\r\n            background: var(--ui-white);\r\n            border: 2px solid rgba(254, 44, 85, 0.1);\r\n            border-radius: var(--radius-lg);\r\n            padding: 24px 20px;\r\n            text-align: center;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            position: relative;\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-md);\r\n            cursor: pointer;\r\n        }\r\n\r\n        .stat-item::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 3px;\r\n            opacity: 0;\r\n            transition: opacity 0.3s ease;\r\n        }\r\n\r\n        .stat-item:nth-child(1)::before {\r\n            background: var(--gradient-primary);\r\n        }\r\n\r\n        .stat-item:nth-child(2)::before {\r\n            background: var(--gradient-secondary);\r\n        }\r\n\r\n        .stat-item:nth-child(3)::before {\r\n            background: linear-gradient(135deg, var(--tiktok-purple), var(--tiktok-pink));\r\n        }\r\n\r\n        .stat-item:nth-child(4)::before {\r\n            background: linear-gradient(135deg, var(--tiktok-orange), var(--tiktok-yellow));\r\n        }\r\n\r\n        .stat-item:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl);\r\n            border-color: rgba(254, 44, 85, 0.3);\r\n        }\r\n\r\n        .stat-item:hover::before {\r\n            opacity: 1;\r\n        }\r\n\r\n        .stat-value {\r\n            font-size: 28px;\r\n            font-weight: 800;\r\n            margin-bottom: 8px;\r\n            background: var(--gradient-primary);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n        }\r\n\r\n        .stat-label {\r\n            font-size: 14px;\r\n            color: var(--ui-text-light);\r\n            font-weight: 600;\r\n            text-transform: uppercase;\r\n            letter-spacing: 1px;\r\n        }\r\n\r\n        \/* Videos Section Header *\/\r\n        .videos-section-header {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: space-between;\r\n            margin-bottom: 30px;\r\n            padding: 20px 0;\r\n            border-bottom: 2px solid rgba(254, 44, 85, 0.1);\r\n        }\r\n\r\n        .videos-button {\r\n            padding: 16px 28px;\r\n            background: var(--gradient-primary);\r\n            color: var(--ui-white);\r\n            border: none;\r\n            border-radius: var(--radius-lg);\r\n            font-weight: 700;\r\n            font-size: 18px;\r\n            cursor: pointer;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            box-shadow: var(--shadow-pink);\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 12px;\r\n            text-transform: uppercase;\r\n            letter-spacing: 1px;\r\n        }\r\n\r\n        .videos-button:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: var(--shadow-pink), var(--shadow-glow);\r\n        }\r\n\r\n        .videos-count {\r\n            font-size: 16px;\r\n            font-weight: 700;\r\n            color: var(--ui-text);\r\n            background: var(--ui-white);\r\n            padding: 12px 24px;\r\n            border-radius: var(--radius-lg);\r\n            box-shadow: var(--shadow-sm);\r\n            border: 2px solid rgba(254, 44, 85, 0.1);\r\n        }\r\n\r\n        .download-all-btn {\r\n            padding: 16px 28px;\r\n            background: var(--gradient-secondary);\r\n            color: var(--ui-white);\r\n            border: none;\r\n            border-radius: var(--radius-lg);\r\n            font-weight: 700;\r\n            font-size: 16px;\r\n            cursor: pointer;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            box-shadow: var(--shadow-blue);\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n            margin-left: 16px;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.5px;\r\n            margin-top: 0 !important;\r\n        }\r\n\r\n        .download-all-btn:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: var(--shadow-blue), 0 0 30px rgba(37, 244, 238, 0.4);\r\n        }\r\n\r\n        .download-all-btn:disabled {\r\n            opacity: 0.6;\r\n            cursor: not-allowed;\r\n            transform: none;\r\n            box-shadow: var(--shadow-blue);\r\n        }\r\n\r\n        \/* Video Grid - Smaller Cards *\/\r\n        .video-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\r\n            gap: 20px;\r\n        }\r\n\r\n        .video-card {\r\n            background: var(--ui-white);\r\n            border: 2px solid rgba(254, 44, 85, 0.1);\r\n            border-radius: var(--radius-lg);\r\n            overflow: hidden;\r\n            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n            position: relative;\r\n            height: 380px;\r\n            box-shadow: var(--shadow-md);\r\n            cursor: pointer;\r\n        }\r\n\r\n        .video-card:hover {\r\n            transform: translateY(-8px) scale(1.02);\r\n            box-shadow: var(--shadow-xl), 0 0 25px rgba(254, 44, 85, 0.15);\r\n            border-color: rgba(254, 44, 85, 0.3);\r\n        }\r\n\r\n        .video-card::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            height: 2px;\r\n            background: var(--gradient-tiktok);\r\n            opacity: 0;\r\n            transition: opacity 0.3s ease;\r\n        }\r\n\r\n        .video-card:hover::before {\r\n            opacity: 1;\r\n        }\r\n\r\n        .video-thumbnail-container {\r\n            position: relative;\r\n            width: 100%;\r\n            height: 260px;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .video-thumbnail {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n            transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);\r\n        }\r\n\r\n        .video-card:hover .video-thumbnail {\r\n            transform: scale(1.08);\r\n        }\r\n\r\n        \/* Enhanced Play Icon - Smaller *\/\r\n        .play-overlay {\r\n            position: absolute;\r\n            top: 50%;\r\n            left: 50%;\r\n            transform: translate(-50%, -50%);\r\n            width: 60px;\r\n            height: 60px;\r\n            background: linear-gradient(135deg, rgba(254, 44, 85, 0.9) 0%, rgba(255, 107, 53, 0.9) 100%);\r\n            backdrop-filter: blur(15px);\r\n            border-radius: var(--radius-full);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n            z-index: 2;\r\n            border: 3px solid rgba(255, 255, 255, 0.9);\r\n            box-shadow: 0 4px 20px rgba(254, 44, 85, 0.4);\r\n        }\r\n\r\n        .play-overlay::after {\r\n            content: '';\r\n            width: 0;\r\n            height: 0;\r\n            border-left: 18px solid white;\r\n            border-top: 12px solid transparent;\r\n            border-bottom: 12px solid transparent;\r\n            margin-left: 4px;\r\n            transition: all 0.3s ease;\r\n            filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.2));\r\n        }\r\n\r\n        .video-card:hover .play-overlay {\r\n            transform: translate(-50%, -50%) scale(1.15);\r\n            background: linear-gradient(135deg, rgba(37, 244, 238, 0.9) 0%, rgba(139, 92, 246, 0.9) 100%);\r\n            border-color: rgba(255, 255, 255, 1);\r\n            box-shadow: 0 6px 25px rgba(37, 244, 238, 0.4);\r\n        }\r\n\r\n        \/* Enhanced Download Button - Smaller *\/\r\n        .video-download-btn {\r\n            position: absolute;\r\n            top: 12px;\r\n            right: 12px;\r\n            width: 40px;\r\n            height: 40px;\r\n            background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.9) 100%);\r\n            backdrop-filter: blur(15px);\r\n            border-radius: var(--radius-full);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            color: var(--tiktok-pink);\r\n            font-size: 16px;\r\n            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n            opacity: 1;\r\n            cursor: pointer;\r\n            z-index: 10;\r\n            border: 2px solid rgba(254, 44, 85, 0.2);\r\n            box-shadow: 0 2px 12px rgba(254, 44, 85, 0.15);\r\n        }\r\n\r\n        .video-download-btn:hover {\r\n            background: var(--gradient-primary);\r\n            color: var(--ui-white);\r\n            transform: scale(1.15) rotate(10deg);\r\n            border-color: var(--ui-white);\r\n            box-shadow: 0 4px 16px rgba(254, 44, 85, 0.3);\r\n        }\r\n\r\n        \/* Enhanced Video Stats Icons - Smaller *\/\r\n        .video-info {\r\n            padding: 18px;\r\n            height: 120px;\r\n            display: flex;\r\n            flex-direction: column;\r\n            justify-content: space-between;\r\n            background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.9) 100%);\r\n        }\r\n\r\n        .video-title {\r\n            font-size: 13px;\r\n            font-weight: 700;\r\n            margin-bottom: 12px;\r\n            display: -webkit-box;\r\n            -webkit-line-clamp: 2;\r\n            -webkit-box-orient: vertical;\r\n            overflow: hidden;\r\n            color: var(--ui-text);\r\n            line-height: 1.3;\r\n            cursor: pointer;\r\n            position: relative;\r\n            transition: color 0.3s ease;\r\n        }\r\n\r\n        .video-title:hover {\r\n            color: var(--tiktok-pink);\r\n        }\r\n\r\n        \/* Title Tooltip Modal *\/\r\n        .title-tooltip {\r\n            position: fixed;\r\n            background: rgba(0, 0, 0, 0.85);\r\n            backdrop-filter: blur(10px);\r\n            color: var(--ui-white);\r\n            padding: 12px 20px;\r\n            border-radius: var(--radius-lg);\r\n            font-size: 14px;\r\n            font-weight: 600;\r\n            line-height: 1.4;\r\n            max-width: 400px;\r\n            min-width: 200px;\r\n            z-index: 9999;\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transform: translateY(10px);\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            box-shadow: var(--shadow-xl);\r\n            border: 1px solid rgba(255, 255, 255, 0.1);\r\n            pointer-events: none;\r\n            word-wrap: break-word;\r\n            white-space: normal;\r\n        }\r\n\r\n        .title-tooltip.show {\r\n            opacity: 1;\r\n            visibility: visible;\r\n            transform: translateY(0);\r\n        }\r\n\r\n        .title-tooltip::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: -6px;\r\n            left: 20px;\r\n            width: 12px;\r\n            height: 12px;\r\n            background: rgba(0, 0, 0, 0.85);\r\n            border: 1px solid rgba(255, 255, 255, 0.1);\r\n            border-bottom: none;\r\n            border-right: none;\r\n            transform: rotate(45deg);\r\n        }\r\n\r\n        .video-stats {\r\n            display: grid;\r\n            grid-template-columns: repeat(3, 1fr);\r\n            gap: 8px;\r\n            font-size: 11px;\r\n        }\r\n\r\n        .stat {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 4px;\r\n            padding: 8px 6px;\r\n            border-radius: var(--radius-sm);\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            color: var(--ui-text-light);\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .stat::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            bottom: 0;\r\n            opacity: 0;\r\n            transition: opacity 0.3s ease;\r\n            border-radius: var(--radius-sm);\r\n        }\r\n\r\n        .stat:nth-child(1) {\r\n            background: rgba(254, 44, 85, 0.1);\r\n            border: 1px solid rgba(254, 44, 85, 0.2);\r\n        }\r\n\r\n        .stat:nth-child(1)::before {\r\n            background: var(--gradient-primary);\r\n        }\r\n\r\n        .stat:nth-child(1):hover {\r\n            color: var(--ui-white);\r\n            transform: scale(1.05);\r\n            box-shadow: var(--shadow-pink);\r\n        }\r\n\r\n        .stat:nth-child(2) {\r\n            background: rgba(37, 244, 238, 0.1);\r\n            border: 1px solid rgba(37, 244, 238, 0.2);\r\n        }\r\n\r\n        .stat:nth-child(2)::before {\r\n            background: var(--gradient-secondary);\r\n        }\r\n\r\n        .stat:nth-child(2):hover {\r\n            color: var(--ui-white);\r\n            transform: scale(1.05);\r\n            box-shadow: var(--shadow-blue);\r\n        }\r\n\r\n        .stat:nth-child(3) {\r\n            background: rgba(139, 92, 246, 0.1);\r\n            border: 1px solid rgba(139, 92, 246, 0.2);\r\n        }\r\n\r\n        .stat:nth-child(3)::before {\r\n            background: linear-gradient(135deg, var(--tiktok-purple), var(--tiktok-pink));\r\n        }\r\n\r\n        .stat:nth-child(3):hover {\r\n            color: var(--ui-white);\r\n            transform: scale(1.05);\r\n            box-shadow: var(--shadow-purple);\r\n        }\r\n\r\n        .stat:hover::before {\r\n            opacity: 1;\r\n        }\r\n\r\n        .stat i {\r\n            font-size: 12px;\r\n            transition: transform 0.3s ease;\r\n        }\r\n\r\n        .stat:hover i {\r\n            transform: scale(1.2);\r\n        }\r\n\r\n        \/* Video Modal *\/\r\n        .modal {\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: rgba(0, 0, 0, 0.9);\r\n            backdrop-filter: blur(10px);\r\n            z-index: 1000;\r\n            display: none;\r\n            animation: fadeIn 0.3s ease-out;\r\n            padding: 20px;\r\n        }\r\n\r\n        .modal-content {\r\n            position: relative;\r\n            width: 100%;\r\n            height: 100%;\r\n            display: flex;\r\n            flex-direction: column;\r\n            justify-content: center;\r\n            align-items: center;\r\n            max-width: 500px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        .modal-title {\r\n            color: var(--ui-white);\r\n            font-size: 18px;\r\n            font-weight: 600;\r\n            margin-bottom: 20px;\r\n            text-align: center;\r\n            padding: 0 20px;\r\n            display: -webkit-box;\r\n            -webkit-line-clamp: 2;\r\n            -webkit-box-orient: vertical;\r\n            overflow: hidden;\r\n            line-height: 1.4;\r\n        }\r\n\r\n        .video-player-container {\r\n            position: relative;\r\n            width: 100%;\r\n            aspect-ratio: 9\/16;\r\n            background: #000;\r\n            border-radius: var(--radius-xl);\r\n            overflow: hidden;\r\n            box-shadow: var(--shadow-xl);\r\n        }\r\n\r\n        .video-player {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: contain;\r\n        }\r\n\r\n        .close-modal {\r\n            position: absolute;\r\n            top: 15px;\r\n            right: -50px;\r\n            width: 50px;\r\n            height: 50px;\r\n            background: var(--gradient-primary);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            border-radius: var(--radius-full);\r\n            color: var(--ui-white);\r\n            font-size: 24px;\r\n            cursor: pointer;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            z-index: 20;\r\n            box-shadow: var(--shadow-pink);\r\n        }\r\n\r\n        .close-modal:hover {\r\n            transform: rotate(90deg) scale(1.1);\r\n            background: var(--gradient-secondary);\r\n            border-color: rgba(255, 255, 255, 0.5);\r\n            box-shadow: var(--shadow-pink), var(--shadow-glow);\r\n        }\r\n\r\n        \/* Video Controls *\/\r\n        .video-controls {\r\n            position: absolute;\r\n            bottom: 0;\r\n            left: 0;\r\n            right: 0;\r\n            padding: 20px;\r\n            background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 16px;\r\n            opacity: 0;\r\n            transition: opacity 0.3s ease;\r\n        }\r\n\r\n        .video-player-container:hover .video-controls {\r\n            opacity: 1;\r\n        }\r\n\r\n        .progress-container {\r\n            width: 100%;\r\n            height: 6px;\r\n            background: rgba(255, 255, 255, 0.2);\r\n            border-radius: var(--radius-full);\r\n            cursor: pointer;\r\n            position: relative;\r\n        }\r\n\r\n        .progress-bar {\r\n            height: 100%;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-full);\r\n            position: relative;\r\n            transition: width 0.1s linear;\r\n        }\r\n\r\n        .progress-bar::after {\r\n            content: '';\r\n            position: absolute;\r\n            right: -6px;\r\n            top: 50%;\r\n            transform: translateY(-50%) scale(0);\r\n            width: 16px;\r\n            height: 16px;\r\n            background: var(--ui-white);\r\n            border-radius: var(--radius-full);\r\n            transition: transform 0.2s ease;\r\n            box-shadow: var(--shadow-sm);\r\n        }\r\n\r\n        .progress-container:hover .progress-bar::after {\r\n            transform: translateY(-50%) scale(1);\r\n        }\r\n\r\n        .control-buttons {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: space-between;\r\n        }\r\n\r\n        .control-group {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 12px;\r\n        }\r\n\r\n        .control-button {\r\n            width: 44px;\r\n            height: 44px;\r\n            border: none;\r\n            border-radius: var(--radius-full);\r\n            background: rgba(255, 255, 255, 0.1);\r\n            color: var(--ui-white);\r\n            font-size: 18px;\r\n            cursor: pointer;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            backdrop-filter: blur(10px);\r\n        }\r\n\r\n        .control-button:hover {\r\n            background: rgba(255, 255, 255, 0.2);\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .play-pause {\r\n            width: 56px;\r\n            height: 56px;\r\n            background: var(--gradient-primary);\r\n            font-size: 24px;\r\n            box-shadow: var(--shadow-pink);\r\n        }\r\n\r\n        .play-pause:hover {\r\n            background: var(--gradient-secondary);\r\n            box-shadow: var(--shadow-glow);\r\n        }\r\n\r\n        \/* Volume Controls *\/\r\n        .volume-controls {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n        }\r\n\r\n        .volume-slider {\r\n            width: 80px;\r\n            height: 6px;\r\n            background: rgba(255, 255, 255, 0.2);\r\n            border-radius: var(--radius-full);\r\n            position: relative;\r\n            cursor: pointer;\r\n        }\r\n\r\n        .volume-fill {\r\n            height: 100%;\r\n            background: var(--gradient-primary);\r\n            border-radius: var(--radius-full);\r\n            transition: width 0.1s ease;\r\n        }\r\n\r\n        \/* Loading Animation *\/\r\n        .loading {\r\n            display: none;\r\n            justify-content: center;\r\n            align-items: center;\r\n            padding: 60px 40px;\r\n            background: var(--gradient-card);\r\n            backdrop-filter: blur(20px);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            border-radius: var(--radius-xl);\r\n            margin: 32px 0;\r\n            box-shadow: var(--shadow-xl);\r\n        }\r\n\r\n        .loading-content {\r\n            text-align: center;\r\n        }\r\n\r\n        .loading-animation {\r\n            position: relative;\r\n            width: 120px;\r\n            height: 120px;\r\n            margin: 0 auto 24px;\r\n        }\r\n\r\n        .loading-spinner {\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            border-radius: var(--radius-full);\r\n            border: 6px solid transparent;\r\n            border-top: 6px solid var(--tiktok-pink);\r\n            border-right: 6px solid var(--tiktok-blue);\r\n            animation: spin 1.5s linear infinite;\r\n        }\r\n\r\n        .loading-spinner::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 6px;\r\n            left: 6px;\r\n            right: 6px;\r\n            bottom: 6px;\r\n            border-radius: var(--radius-full);\r\n            border: 4px solid transparent;\r\n            border-top: 4px solid var(--tiktok-blue);\r\n            border-left: 4px solid var(--tiktok-purple);\r\n            animation: spin 1s linear infinite reverse;\r\n        }\r\n\r\n        .loading-spinner::after {\r\n            content: '';\r\n            position: absolute;\r\n            top: 16px;\r\n            left: 16px;\r\n            right: 16px;\r\n            bottom: 16px;\r\n            border-radius: var(--radius-full);\r\n            border: 3px solid transparent;\r\n            border-bottom: 3px solid var(--tiktok-orange);\r\n            animation: spin 1.25s linear infinite;\r\n        }\r\n\r\n        @keyframes spin {\r\n            0% {\r\n                transform: rotate(0deg);\r\n            }\r\n\r\n            100% {\r\n                transform: rotate(360deg);\r\n            }\r\n        }\r\n\r\n        .loading-text {\r\n            font-size: 20px;\r\n            font-weight: 700;\r\n            color: var(--ui-text);\r\n            margin-bottom: 8px;\r\n        }\r\n\r\n        .loading-subtext {\r\n            font-size: 14px;\r\n            color: var(--ui-text-light);\r\n            font-weight: 500;\r\n        }\r\n\r\n        \/* Profile Picture Modal *\/\r\n        .profile-modal {\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: rgba(0, 0, 0, 0.9);\r\n            backdrop-filter: blur(10px);\r\n            z-index: 1000;\r\n            display: none;\r\n            animation: fadeIn 0.3s ease-out;\r\n            padding: 20px;\r\n        }\r\n\r\n        .profile-modal-content {\r\n            position: relative;\r\n            width: 100%;\r\n            height: 100%;\r\n            display: flex;\r\n            justify-content: center;\r\n            align-items: center;\r\n        }\r\n\r\n        .profile-modal-image {\r\n            max-width: 80%;\r\n            max-height: 80%;\r\n            border-radius: var(--radius-xl);\r\n            box-shadow: var(--shadow-xl);\r\n        }\r\n\r\n        .profile-modal-close {\r\n            position: absolute;\r\n            top: 20px;\r\n            right: 20px;\r\n            width: 50px;\r\n            height: 50px;\r\n            background: var(--gradient-primary);\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            border-radius: var(--radius-full);\r\n            color: var(--ui-white);\r\n            font-size: 24px;\r\n            cursor: pointer;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            z-index: 20;\r\n            box-shadow: var(--shadow-pink);\r\n        }\r\n\r\n        .profile-modal-close:hover {\r\n            transform: rotate(90deg) scale(1.1);\r\n            background: var(--gradient-secondary);\r\n            border-color: rgba(255, 255, 255, 0.5);\r\n            box-shadow: var(--shadow-pink), var(--shadow-glow);\r\n        }\r\n\r\n        .profile-modal-download {\r\n            position: absolute;\r\n            bottom: 20px;\r\n            right: 20px;\r\n            padding: 14px 24px;\r\n            background: var(--gradient-primary);\r\n            color: var(--ui-white);\r\n            border: none;\r\n            border-radius: var(--radius-lg);\r\n            font-weight: 700;\r\n            font-size: 16px;\r\n            cursor: pointer;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 8px;\r\n            box-shadow: var(--shadow-pink);\r\n        }\r\n\r\n        .profile-modal-download:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: var(--shadow-pink), var(--shadow-glow);\r\n        }\r\n\r\n        \/* Download Progress *\/\r\n        .download-progress {\r\n            position: fixed;\r\n            bottom: 20px;\r\n            right: 20px;\r\n            background: var(--ui-white);\r\n            border: 2px solid rgba(254, 44, 85, 0.2);\r\n            border-radius: var(--radius-lg);\r\n            padding: 16px 20px;\r\n            color: var(--ui-text);\r\n            font-weight: 600;\r\n            z-index: 1001;\r\n            display: none;\r\n            align-items: center;\r\n            gap: 12px;\r\n            box-shadow: var(--shadow-lg);\r\n            min-width: 300px;\r\n            backdrop-filter: blur(10px);\r\n        }\r\n\r\n        .download-progress.show {\r\n            display: flex;\r\n        }\r\n\r\n        .download-spinner {\r\n            width: 20px;\r\n            height: 20px;\r\n            border: 2px solid rgba(254, 44, 85, 0.2);\r\n            border-top-color: var(--tiktok-pink);\r\n            border-radius: var(--radius-full);\r\n            animation: spin 1s linear infinite;\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .download-info {\r\n            flex-grow: 1;\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 6px;\r\n        }\r\n\r\n        .download-text {\r\n            font-size: 14px;\r\n            white-space: nowrap;\r\n            overflow: hidden;\r\n            text-overflow: ellipsis;\r\n        }\r\n\r\n        .download-progress-bar {\r\n            width: 100%;\r\n            height: 4px;\r\n            background: rgba(254, 44, 85, 0.2);\r\n            border-radius: var(--radius-full);\r\n            overflow: hidden;\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            width: 0%;\r\n            transition: width 0.3s ease;\r\n        }\r\n\r\n        .cancel-download-btn {\r\n            background: var(--gradient-primary);\r\n            border: none;\r\n            color: var(--ui-white);\r\n            border-radius: var(--radius-md);\r\n            padding: 8px 12px;\r\n            font-size: 12px;\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n            flex-shrink: 0;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 4px;\r\n        }\r\n\r\n        .cancel-download-btn:hover {\r\n            background: var(--gradient-secondary);\r\n            transform: scale(1.05);\r\n        }\r\n\r\n        \/* Error Message *\/\r\n        .error-message {\r\n            background: rgba(254, 44, 85, 0.1);\r\n            border: 2px solid rgba(254, 44, 85, 0.3);\r\n            color: var(--tiktok-pink);\r\n            padding: 16px 20px;\r\n            border-radius: var(--radius-lg);\r\n            margin-top: 16px;\r\n            display: none;\r\n            align-items: center;\r\n            gap: 12px;\r\n            font-weight: 600;\r\n            backdrop-filter: blur(10px);\r\n        }\r\n\r\n        \/* Animations *\/\r\n        @keyframes fadeIn {\r\n            from {\r\n                opacity: 0;\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n            }\r\n        }\r\n\r\n        @keyframes fadeInUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(20px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0);\r\n            }\r\n        }\r\n\r\n        @keyframes fadeInDown {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(-20px);\r\n            }\r\n\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0);\r\n            }\r\n        }\r\n\r\n        \/* Responsive Design *\/\r\n        @media (max-width: 1200px) {\r\n            .container {\r\n                max-width: 1000px;\r\n                padding: 30px 20px;\r\n            }\r\n\r\n            .video-grid {\r\n                grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\r\n                gap: 18px;\r\n            }\r\n\r\n            .profile-header {\r\n                gap: 25px;\r\n            }\r\n\r\n            .profile-avatar {\r\n                width: 110px;\r\n                height: 110px;\r\n            }\r\n\r\n            .profile-name {\r\n                font-size: 28px;\r\n            }\r\n\t\t\t\t\t\r\n\t\t\t\t\t.videos-section-header {\r\n\tdisplay: flex !important;\r\n\talign-items: center;\r\n\tjustify-content: space-between;\r\n\tmargin-bottom: 30px;\r\n\tpadding: 20px 0;\r\n\tborder-bottom: 2px solid rgba(254, 44, 85, 0.1);\r\n\tflex-direction: column;\r\n\tgap: 20px;\r\n}\r\n        }\r\n\r\n        @media (max-width: 992px) {\r\n            .container {\r\n                max-width: 800px;\r\n                padding: 25px 18px;\r\n            }\r\n\r\n            .search-section {\r\n                padding: 30px;\r\n            }\r\n\r\n            .profile-section {\r\n                padding: 30px;\r\n            }\r\n\r\n            .video-grid {\r\n                grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\r\n                gap: 16px;\r\n            }\r\n\r\n            .video-card {\r\n                height: 360px;\r\n            }\r\n\r\n            .video-thumbnail-container {\r\n                height: 240px;\r\n            }\r\n\r\n            .profile-stats {\r\n                grid-template-columns: repeat(2, 1fr);\r\n                gap: 16px;\r\n            }\r\n\r\n            .stat-item {\r\n                padding: 20px 16px;\r\n            }\r\n\r\n            .stat-value {\r\n                font-size: 24px;\r\n            }\r\n\t\t\t\t\t.videos-section-header {\r\n\tdisplay: flex !important;\r\n\talign-items: center;\r\n\tjustify-content: space-between;\r\n\tmargin-bottom: 30px;\r\n\tpadding: 20px 0;\r\n\tborder-bottom: 2px solid rgba(254, 44, 85, 0.1);\r\n\tflex-direction: column;\r\n\tgap: 20px;\r\n}\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .container {\r\n                padding: 20px 16px;\r\n            }\r\n\r\n            .header {\r\n                margin-bottom: 40px;\r\n            }\r\n\r\n            .logo-container {\r\n                flex-direction: column;\r\n                gap: 15px;\r\n            }\r\n\r\n            .logo-text-container {\r\n                text-align: center;\r\n            }\r\n\r\n            .logo-icon {\r\n                width: 60px;\r\n                height: 60px;\r\n                font-size: 30px;\r\n            }\r\n\r\n            .features-card {\r\n                gap: 10px;\r\n                padding: 12px 20px;\r\n                flex-wrap: wrap;\r\n                max-width: 400px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 10px 12px;\r\n                min-width: 70px;\r\n            }\r\n\r\n            .feature-item i {\r\n                font-size: 16px;\r\n            }\r\n\r\n            .feature-item span {\r\n                font-size: 10px;\r\n            }\r\n\r\n            .search-section {\r\n                padding: 25px 20px;\r\n            }\r\n\r\n            .search-input {\r\n                padding: 18px 20px;\r\n                font-size: 15px;\r\n            }\r\n\r\n            .search-button {\r\n                padding: 16px 20px;\r\n                font-size: 15px;\r\n                min-width: 180px;\r\n            }\r\n\r\n            .search-again-btn {\r\n                padding: 16px 20px;\r\n                font-size: 15px;\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                gap: 20px;\r\n                margin-bottom: 30px;\r\n            }\r\n\r\n            .profile-avatar {\r\n                width: 100px;\r\n                height: 100px;\r\n            }\r\n\r\n            .profile-name {\r\n                font-size: 24px;\r\n            }\r\n\r\n            .profile-username {\r\n                font-size: 16px;\r\n            }\r\n\r\n            .profile-bio {\r\n                font-size: 14px;\r\n                text-align: center;\r\n            }\r\n\r\n            .profile-stats {\r\n                grid-template-columns: repeat(2, 1fr);\r\n                gap: 12px;\r\n            }\r\n\r\n            .stat-item {\r\n                padding: 18px 14px;\r\n            }\r\n\r\n            .stat-value {\r\n                font-size: 22px;\r\n            }\r\n\r\n            .stat-label {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .video-grid {\r\n                grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));\r\n                gap: 16px;\r\n            }\r\n\r\n            .video-card {\r\n                height: 350px;\r\n            }\r\n\r\n            .video-thumbnail-container {\r\n                height: 230px;\r\n            }\r\n\r\n            .video-info {\r\n                padding: 16px;\r\n                height: 120px;\r\n            }\r\n\r\n            .video-title {\r\n                font-size: 12px;\r\n                margin-bottom: 10px;\r\n            }\r\n\r\n            .video-stats {\r\n                gap: 6px;\r\n            }\r\n\r\n            .stat {\r\n                padding: 6px 4px;\r\n                font-size: 10px;\r\n            }\r\n\r\n            .stat i {\r\n                font-size: 11px;\r\n            }\r\n\r\n            .search-box {\r\n                flex-direction: column;\r\n                gap: 12px;\r\n            }\r\n\r\n            .search-button {\r\n                width: 100%;\r\n                min-width: auto;\r\n            }\r\n\r\n            .videos-section-header {\r\n                flex-direction: column;\r\n                gap: 12px;\r\n                align-items: flex-start;\r\n                margin-bottom: 25px;\r\n            }\r\n\r\n            .videos-button {\r\n                padding: 14px 24px;\r\n                font-size: 16px;\r\n            }\r\n\r\n            .download-all-btn {\r\n                margin-left: 0;\r\n                margin-top: 8px;\r\n                padding: 14px 24px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .videos-count {\r\n                font-size: 14px;\r\n                padding: 10px 20px;\r\n            }\r\n\r\n            .control-buttons {\r\n                flex-wrap: wrap;\r\n                gap: 12px;\r\n            }\r\n\r\n            .volume-controls {\r\n                order: 3;\r\n                width: 100%;\r\n                justify-content: center;\r\n            }\r\n\r\n            .volume-slider {\r\n                width: 60px;\r\n            }\r\n\r\n            .close-modal {\r\n                top: -60px;\r\n                right: 10px;\r\n                width: 45px;\r\n                height: 45px;\r\n                font-size: 20px;\r\n            }\r\n\r\n            .profile-modal-close {\r\n                width: 45px;\r\n                height: 45px;\r\n                font-size: 20px;\r\n            }\r\n\r\n            .profile-modal-download {\r\n                padding: 12px 20px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .download-progress {\r\n                left: 20px;\r\n                right: 20px;\r\n                width: auto;\r\n                min-width: auto;\r\n                padding: 14px 16px;\r\n            }\r\n\r\n            .download-text {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .cancel-download-btn {\r\n                padding: 6px 10px;\r\n                font-size: 11px;\r\n            }\r\n\r\n            .title-tooltip {\r\n                max-width: 280px;\r\n                font-size: 13px;\r\n                padding: 10px 16px;\r\n            }\r\n\r\n            .modal-title {\r\n                font-size: 16px;\r\n                margin-bottom: 15px;\r\n            }\r\n\r\n            .video-player-container {\r\n                border-radius: var(--radius-lg);\r\n            }\r\n\r\n            .video-controls {\r\n                padding: 15px;\r\n            }\r\n\r\n            .control-button {\r\n                width: 40px;\r\n                height: 40px;\r\n                font-size: 16px;\r\n            }\r\n\r\n            .play-pause {\r\n                width: 50px;\r\n                height: 50px;\r\n                font-size: 20px;\r\n            }\r\n\t\t\t\t\t.videos-section-header {\r\n\tdisplay: flex !important;\r\n\talign-items: center;\r\n\tjustify-content: space-between;\r\n\tmargin-bottom: 30px;\r\n\tpadding: 20px 0;\r\n\tborder-bottom: 2px solid rgba(254, 44, 85, 0.1);\r\n\tflex-direction: column;\r\n\tgap: 20px;\r\n}\r\n        }\r\n\r\n        @media (max-width: 640px) {\r\n            .container {\r\n                padding: 15px 12px;\r\n            }\r\n\r\n            .header {\r\n                margin-bottom: 30px;\r\n            }\r\n\r\n            .logo-text {\r\n                font-size: 28px;\r\n            }\r\n\r\n            .logo-subtitle {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .features-card {\r\n                padding: 10px 16px;\r\n                gap: 8px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 8px 10px;\r\n                min-width: 60px;\r\n            }\r\n\r\n            .feature-item i {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .feature-item span {\r\n                font-size: 9px;\r\n            }\r\n\r\n            .search-section {\r\n                padding: 20px 16px;\r\n            }\r\n\r\n            .search-input {\r\n                padding: 16px 18px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .paste-hint {\r\n                font-size: 13px;\r\n                margin-top: 10px;\r\n            }\r\n\r\n            .paste-icon {\r\n                padding: 6px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .search-button {\r\n                padding: 14px 18px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .search-again-btn {\r\n                padding: 14px 18px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .profile-section {\r\n                padding: 20px 16px;\r\n            }\r\n\r\n            .profile-avatar {\r\n                width: 90px;\r\n                height: 90px;\r\n            }\r\n\r\n            .profile-name {\r\n                font-size: 22px;\r\n            }\r\n\r\n            .profile-username {\r\n                font-size: 15px;\r\n            }\r\n\r\n            .profile-bio {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .profile-stats {\r\n                gap: 10px;\r\n            }\r\n\r\n            .stat-item {\r\n                padding: 16px 12px;\r\n            }\r\n\r\n            .stat-value {\r\n                font-size: 20px;\r\n            }\r\n\r\n            .stat-label {\r\n                font-size: 11px;\r\n            }\r\n\r\n            .video-grid {\r\n                grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));\r\n                gap: 12px;\r\n            }\r\n\r\n            .video-card {\r\n                height: 320px;\r\n            }\r\n\r\n            .video-thumbnail-container {\r\n                height: 210px;\r\n            }\r\n\r\n            .video-info {\r\n                padding: 14px;\r\n                height: 110px;\r\n            }\r\n\r\n            .video-title {\r\n                font-size: 11px;\r\n                margin-bottom: 8px;\r\n            }\r\n\r\n            .video-stats {\r\n                gap: 4px;\r\n            }\r\n\r\n            .stat {\r\n                padding: 5px 3px;\r\n                font-size: 9px;\r\n            }\r\n\r\n            .stat i {\r\n                font-size: 10px;\r\n            }\r\n\r\n            .play-overlay {\r\n                width: 50px;\r\n                height: 50px;\r\n            }\r\n\r\n            .play-overlay::after {\r\n                border-left: 15px solid white;\r\n                border-top: 10px solid transparent;\r\n                border-bottom: 10px solid transparent;\r\n            }\r\n\r\n            .video-download-btn {\r\n                width: 35px;\r\n                height: 35px;\r\n                font-size: 14px;\r\n                top: 10px;\r\n                right: 10px;\r\n            }\r\n\r\n            .videos-button {\r\n                padding: 12px 20px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .download-all-btn {\r\n                padding: 12px 20px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .videos-count {\r\n                font-size: 13px;\r\n                padding: 8px 16px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n            .container {\r\n                padding: 12px 10px;\r\n            }\r\n\r\n            .header {\r\n                margin-bottom: 25px;\r\n            }\r\n\r\n            .logo-text {\r\n                font-size: 24px;\r\n            }\r\n\r\n            .logo-subtitle {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .features-card {\r\n                padding: 8px 12px;\r\n                gap: 6px;\r\n                flex-wrap: wrap;\r\n                justify-content: center;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 6px 8px;\r\n                min-width: 55px;\r\n            }\r\n\r\n            .feature-item i {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .feature-item span {\r\n                font-size: 8px;\r\n            }\r\n\r\n            .search-section {\r\n                padding: 16px 12px;\r\n            }\r\n\r\n            .search-input {\r\n                padding: 14px 16px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .paste-hint {\r\n                font-size: 12px;\r\n                margin-top: 8px;\r\n            }\r\n\r\n            .paste-icon {\r\n                padding: 5px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .search-button {\r\n                padding: 12px 16px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .search-again-btn {\r\n                padding: 12px 16px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .profile-section {\r\n                padding: 16px 12px;\r\n            }\r\n\r\n            .profile-header {\r\n                gap: 15px;\r\n                margin-bottom: 25px;\r\n            }\r\n\r\n            .profile-avatar {\r\n                width: 80px;\r\n                height: 80px;\r\n            }\r\n\r\n            .profile-name {\r\n                font-size: 20px;\r\n            }\r\n\r\n            .profile-username {\r\n                font-size: 14px;\r\n            }\r\n\r\n            .profile-bio {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .profile-stats {\r\n                grid-template-columns: 1fr;\r\n                gap: 8px;\r\n            }\r\n\r\n            .stat-item {\r\n                padding: 14px 10px;\r\n            }\r\n\r\n            .stat-value {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .stat-label {\r\n                font-size: 10px;\r\n            }\r\n\r\n            .video-grid {\r\n                grid-template-columns: 1fr;\r\n                gap: 10px;\r\n            }\r\n\r\n            .video-card {\r\n                height: 300px;\r\n            }\r\n\r\n            .video-thumbnail-container {\r\n                height: 190px;\r\n            }\r\n\r\n            .video-info {\r\n                padding: 12px;\r\n                height: 110px;\r\n            }\r\n\r\n            .video-title {\r\n                font-size: 10px;\r\n                margin-bottom: 6px;\r\n            }\r\n\r\n            .video-stats {\r\n                gap: 3px;\r\n            }\r\n\r\n            .stat {\r\n                padding: 4px 2px;\r\n                font-size: 8px;\r\n            }\r\n\r\n            .stat i {\r\n                font-size: 9px;\r\n            }\r\n\r\n            .play-overlay {\r\n                width: 45px;\r\n                height: 45px;\r\n            }\r\n\r\n            .play-overlay::after {\r\n                border-left: 12px solid white;\r\n                border-top: 8px solid transparent;\r\n                border-bottom: 8px solid transparent;\r\n            }\r\n\r\n            .video-download-btn {\r\n                width: 30px;\r\n                height: 30px;\r\n                font-size: 12px;\r\n                top: 8px;\r\n                right: 8px;\r\n            }\r\n\r\n            .videos-section-header {\r\n                gap: 8px;\r\n                margin-bottom: 20px;\r\n            }\r\n\r\n            .videos-button {\r\n                padding: 10px 16px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .download-all-btn {\r\n                padding: 10px 16px;\r\n                font-size: 12px;\r\n            }\r\n\r\n            .videos-count {\r\n                font-size: 12px;\r\n                padding: 6px 12px;\r\n            }\r\n\r\n            .close-modal {\r\n                top: -50px;\r\n                right: 5px;\r\n                width: 40px;\r\n                height: 40px;\r\n                font-size: 18px;\r\n            }\r\n\r\n            .profile-modal-close {\r\n                width: 40px;\r\n                height: 40px;\r\n                font-size: 18px;\r\n            }\r\n\r\n            .profile-modal-download {\r\n                padding: 10px 16px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .download-progress {\r\n                left: 10px;\r\n                right: 10px;\r\n                padding: 12px 14px;\r\n            }\r\n\r\n            .download-text {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .cancel-download-btn {\r\n                padding: 5px 8px;\r\n                font-size: 10px;\r\n            }\r\n\r\n            .title-tooltip {\r\n                max-width: 250px;\r\n                font-size: 12px;\r\n                padding: 8px 12px;\r\n            }\r\n\r\n            .modal-title {\r\n                font-size: 14px;\r\n                margin-bottom: 12px;\r\n            }\r\n\r\n            .video-controls {\r\n                padding: 12px;\r\n            }\r\n\r\n            .control-button {\r\n                width: 36px;\r\n                height: 36px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .play-pause {\r\n                width: 45px;\r\n                height: 45px;\r\n                font-size: 18px;\r\n            }\r\n\r\n            .volume-slider {\r\n                width: 50px;\r\n            }\r\n\r\n            .loading {\r\n                padding: 40px 20px;\r\n            }\r\n\r\n            .loading-animation {\r\n                width: 100px;\r\n                height: 100px;\r\n            }\r\n\r\n            .loading-text {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .loading-subtext {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .error-message {\r\n                padding: 12px 16px;\r\n                font-size: 13px;\r\n            }\r\n\t\t\t\t\t\t.videos-section-header {\r\n\tdisplay: flex !important;\r\n\talign-items: center;\r\n\tjustify-content: space-between;\r\n\tmargin-bottom: 30px;\r\n\tpadding: 20px 0;\r\n\tborder-bottom: 2px solid rgba(254, 44, 85, 0.1);\r\n\tflex-direction: column;\r\n\tgap: 20px;\r\n}\r\n        }\r\n\r\n        @media (max-width: 360px) {\r\n            .container {\r\n                padding: 10px 8px;\r\n            }\r\n\r\n            .logo-text {\r\n                font-size: 22px;\r\n            }\r\n\r\n            .logo-subtitle {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .features-card {\r\n                padding: 6px 10px;\r\n                gap: 4px;\r\n            }\r\n\r\n            .feature-item {\r\n                padding: 5px 6px;\r\n                min-width: 50px;\r\n            }\r\n\r\n            .feature-item i {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .feature-item span {\r\n                font-size: 7px;\r\n            }\r\n\r\n            .search-section {\r\n                padding: 12px 10px;\r\n            }\r\n\r\n            .search-input {\r\n                padding: 12px 14px;\r\n                font-size: 12px;\r\n            }\r\n\r\n            .search-button {\r\n                padding: 10px 14px;\r\n                font-size: 12px;\r\n            }\r\n\r\n            .search-again-btn {\r\n                padding: 10px 14px;\r\n                font-size: 12px;\r\n            }\r\n\r\n            .profile-section {\r\n                padding: 12px 10px;\r\n            }\r\n\r\n            .profile-avatar {\r\n                width: 70px;\r\n                height: 70px;\r\n            }\r\n\r\n            .profile-name {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .profile-username {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .profile-bio {\r\n                font-size: 11px;\r\n            }\r\n\r\n            .video-card {\r\n                height: 280px;\r\n            }\r\n\r\n            .video-thumbnail-container {\r\n                height: 170px;\r\n            }\r\n\r\n            .video-info {\r\n                padding: 10px;\r\n                height: 110px;\r\n            }\r\n\r\n            .video-title {\r\n                font-size: 9px;\r\n            }\r\n\r\n            .stat {\r\n                font-size: 7px;\r\n            }\r\n\r\n            .stat i {\r\n                font-size: 8px;\r\n            }\r\n\r\n            .play-overlay {\r\n                width: 40px;\r\n                height: 40px;\r\n            }\r\n\r\n            .play-overlay::after {\r\n                border-left: 10px solid white;\r\n                border-top: 6px solid transparent;\r\n                border-bottom: 6px solid transparent;\r\n            }\r\n\r\n            .video-download-btn {\r\n                width: 28px;\r\n                height: 28px;\r\n                font-size: 11px;\r\n            }\r\n\r\n            .videos-button {\r\n                padding: 8px 14px;\r\n                font-size: 12px;\r\n            }\r\n\r\n            .download-all-btn {\r\n                padding: 8px 14px;\r\n                font-size: 11px;\r\n            }\r\n\r\n            .videos-count {\r\n                font-size: 11px;\r\n                padding: 5px 10px;\r\n            }\r\n\r\n            .title-tooltip {\r\n                max-width: 220px;\r\n                font-size: 11px;\r\n            }\r\n\r\n            .modal-title {\r\n                font-size: 13px;\r\n            }\r\n\r\n            .control-button {\r\n                width: 32px;\r\n                height: 32px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .play-pause {\r\n                width: 40px;\r\n                height: 40px;\r\n                font-size: 16px;\r\n            }\r\n\t\t\t\t\t\t.videos-section-header {\r\n\tdisplay: flex !important;\r\n\talign-items: center;\r\n\tjustify-content: space-between;\r\n\tmargin-bottom: 30px;\r\n\tpadding: 20px 0;\r\n\tborder-bottom: 2px solid rgba(254, 44, 85, 0.1);\r\n\tflex-direction: column;\r\n\tgap: 20px;\r\n}\r\n        }\r\n\r\n        \/* Landscape orientation for mobile *\/\r\n        @media (max-height: 500px) and (orientation: landscape) {\r\n            .container {\r\n                padding: 10px 15px;\r\n            }\r\n\r\n            .header {\r\n                margin-bottom: 20px;\r\n            }\r\n\r\n            .logo-container {\r\n                flex-direction: row;\r\n                gap: 15px;\r\n            }\r\n\r\n            .logo-text {\r\n                font-size: 20px;\r\n            }\r\n\r\n            .logo-subtitle {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .features-card {\r\n                padding: 8px 16px;\r\n                gap: 8px;\r\n                flex-wrap: nowrap;\r\n            }\r\n\r\n            .search-section {\r\n                padding: 15px 20px;\r\n            }\r\n\r\n            .profile-header {\r\n                flex-direction: row;\r\n                gap: 15px;\r\n                margin-bottom: 20px;\r\n            }\r\n\r\n            .profile-avatar {\r\n                width: 60px;\r\n                height: 60px;\r\n            }\r\n\r\n            .profile-name {\r\n                font-size: 18px;\r\n            }\r\n\r\n            .profile-username {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .profile-bio {\r\n                font-size: 11px;\r\n            }\r\n\r\n            .profile-stats {\r\n                grid-template-columns: repeat(4, 1fr);\r\n                gap: 8px;\r\n            }\r\n\r\n            .stat-item {\r\n                padding: 10px 8px;\r\n            }\r\n\r\n            .stat-value {\r\n                font-size: 16px;\r\n            }\r\n\r\n            .stat-label {\r\n                font-size: 9px;\r\n            }\r\n\r\n            .video-grid {\r\n                grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\r\n                gap: 10px;\r\n            }\r\n\r\n            .video-card {\r\n                height: 250px;\r\n            }\r\n\r\n            .video-thumbnail-container {\r\n                height: 160px;\r\n            }\r\n\r\n            .video-info {\r\n                padding: 8px;\r\n                height: 90px;\r\n            }\r\n\r\n            .video-title {\r\n                font-size: 9px;\r\n                margin-bottom: 4px;\r\n            }\r\n\r\n            .video-stats {\r\n                gap: 2px;\r\n            }\r\n\r\n            .stat {\r\n                padding: 3px 2px;\r\n                font-size: 7px;\r\n            }\r\n\r\n            .stat i {\r\n                font-size: 8px;\r\n            }\r\n\r\n            .play-overlay {\r\n                width: 35px;\r\n                height: 35px;\r\n            }\r\n\r\n            .play-overlay::after {\r\n                border-left: 8px solid white;\r\n                border-top: 5px solid transparent;\r\n                border-bottom: 5px solid transparent;\r\n            }\r\n\r\n            .video-download-btn {\r\n                width: 25px;\r\n                height: 25px;\r\n                font-size: 10px;\r\n            }\r\n\r\n            .videos-section-header {\r\n                flex-direction: row;\r\n                gap: 10px;\r\n                margin-bottom: 15px;\r\n            }\r\n\r\n            .videos-button {\r\n                padding: 8px 12px;\r\n                font-size: 11px;\r\n            }\r\n\r\n            .download-all-btn {\r\n                padding: 8px 12px;\r\n                font-size: 10px;\r\n                margin-left: 8px;\r\n                margin-top: 0 !;\r\n            }\r\n\r\n            .videos-count {\r\n                font-size: 10px;\r\n                padding: 4px 8px;\r\n            }\r\n        }\r\n\r\n        \/* High DPI displays *\/\r\n        @media (-webkit-min-device-pixel-ratio: 2),\r\n        (min-resolution: 192dpi) {\r\n            .video-thumbnail {\r\n                image-rendering: -webkit-optimize-contrast;\r\n                image-rendering: crisp-edges;\r\n            }\r\n\r\n            .profile-avatar {\r\n                image-rendering: -webkit-optimize-contrast;\r\n                image-rendering: crisp-edges;\r\n            }\r\n        }\r\n\r\n        \/* Reduced motion for accessibility *\/\r\n        @media (prefers-reduced-motion: reduce) {\r\n            * {\r\n                animation-duration: 0.01ms !important;\r\n                animation-iteration-count: 1 !important;\r\n                transition-duration: 0.01ms !important;\r\n            }\r\n\r\n            .floating-shape {\r\n                animation: none;\r\n            }\r\n\r\n            .logo-icon::after {\r\n                animation: none;\r\n            }\r\n\r\n            .loading-spinner,\r\n            .loading-spinner::before,\r\n            .loading-spinner::after {\r\n                animation: none;\r\n            }\r\n\r\n            .download-spinner {\r\n                animation: none;\r\n            }\r\n        }\r\n\r\n        \/* Dark mode support (keeping same colors but adjusting for system preference) *\/\r\n        @media (prefers-color-scheme: dark) {\r\n\r\n            \/* Keep all existing colors but add subtle adjustments for dark mode preference *\/\r\n            .search-input::placeholder {\r\n                color: rgba(100, 116, 139, 0.7);\r\n            }\r\n\r\n            .title-tooltip {\r\n                background: rgba(0, 0, 0, 0.95);\r\n                border: 1px solid rgba(255, 255, 255, 0.2);\r\n            }\r\n\r\n            .title-tooltip::before {\r\n                background: rgba(0, 0, 0, 0.95);\r\n                border: 1px solid rgba(255, 255, 255, 0.2);\r\n            }\r\n        }\r\n    <\/style>\r\n\r\n    <div class=\"wrapper\">\r\n    <div class=\"bg-wrapper\">\r\n        <div class=\"bg-pattern\"><\/div>\r\n        <div class=\"floating-elements\">\r\n            <div class=\"floating-shape\"><\/div>\r\n            <div class=\"floating-shape\"><\/div>\r\n            <div class=\"floating-shape\"><\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"container\">\r\n        <div class=\"header\">\r\n            <div class=\"logo-container\">\r\n                <div class=\"logo-icon\">\r\n                    <i class=\"fab fa-tiktok\"><\/i>\r\n                <\/div>\r\n                <div class=\"logo-text-container\">\r\n                    <h1 class=\"logo-text\">TikTok Post Viewer<\/h1>\r\n                    <p class=\"logo-subtitle\">Download and explore TikTok content easily<\/p>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"features-card\">\r\n                <div class=\"feature-item\">\r\n                    <i class=\"fas fa-user\"><\/i>\r\n                    <span>Profile<\/span>\r\n                <\/div>\r\n                <div class=\"feature-item\">\r\n                    <i class=\"fas fa-video\"><\/i>\r\n                    <span>Videos<\/span>\r\n                <\/div>\r\n                <div class=\"feature-item\">\r\n                    <i class=\"fas fa-download\"><\/i>\r\n                    <span>Download<\/span>\r\n                <\/div>\r\n                <div class=\"feature-item\">\r\n                    <i class=\"fas fa-eye\"><\/i>\r\n                    <span>Preview<\/span>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"search-section\">\r\n            <div class=\"input-container\">\r\n                <input type=\"text\" class=\"search-input\" placeholder=\"Enter TikTok username, @username, or profile URL\"\r\n                    id=\"usernameInput\">\r\n                <div class=\"paste-hint\">\r\n                    <span>Quick paste<\/span>\r\n                    <i class=\"fas fa-paste paste-icon\" onclick=\"pasteFromClipboard()\" title=\"Paste from clipboard\"><\/i>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"search-box\" id=\"searchBox\">\r\n                <button class=\"search-button btn-ripple\" onclick=\"searchProfile()\" id=\"searchBtn\">\r\n                    <i class=\"fas fa-search\"><\/i> <span id=\"searchText\">Explore Profile<\/span>\r\n                <\/button>\r\n            <\/div>\r\n            <button class=\"search-again-btn btn-ripple\" onclick=\"searchAgain()\" id=\"searchAgainBtn\"\r\n                style=\"display: none;\">\r\n                <i class=\"fas fa-search\"><\/i> Explore Another Profile\r\n            <\/button>\r\n            <div class=\"error-message\" id=\"errorMessage\">\r\n                <i class=\"fas fa-exclamation-triangle\"><\/i>\r\n                <span id=\"errorText\"><\/span>\r\n            <\/div>\r\n            <div class=\"loading\" id=\"loading\">\r\n                <div class=\"loading-content\">\r\n                    <div class=\"loading-animation\">\r\n                        <div class=\"loading-spinner\"><\/div>\r\n                    <\/div>\r\n                    <div class=\"loading-text\">Exploring TikTok Profile<\/div>\r\n                    <div class=\"loading-subtext\">Gathering posts and profile information...<\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"results-container\" id=\"resultsContainer\" style=\"display: none;\">\r\n            <div class=\"profile-section\" id=\"profileSection\"><\/div>\r\n\r\n            <div class=\"videos-section-header\" id=\"videosHeader\" style=\"display: none;\">\r\n                <div style=\"display: flex; align-items: center; gap: 16px;\">\r\n                    <button class=\"videos-button btn-ripple\">\r\n                        <i class=\"fas fa-video\"><\/i> Posts\r\n                    <\/button>\r\n                    <button class=\"download-all-btn btn-ripple\" onclick=\"downloadAllVideos()\" id=\"downloadAllBtn\">\r\n                        <i class=\"fas fa-download\"><\/i> Download All\r\n                    <\/button>\r\n                <\/div>\r\n                <div class=\"videos-count\" id=\"videosCount\"><\/div>\r\n            <\/div>\r\n\r\n            <div class=\"video-grid\" id=\"videoGrid\"><\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Title Tooltip -->\r\n    <div class=\"title-tooltip\" id=\"titleTooltip\"><\/div>\r\n\r\n    <!-- Video Modal -->\r\n    <div class=\"modal\" id=\"videoModal\">\r\n        <div class=\"modal-content\">\r\n            <div class=\"modal-title\" id=\"modalTitle\"><\/div>\r\n            <button class=\"close-modal\" onclick=\"closeVideoModal()\">\r\n                <i class=\"fas fa-times\"><\/i>\r\n            <\/button>\r\n            <div class=\"video-player-container\">\r\n                <video id=\"videoPlayer\" class=\"video-player\" loop>\r\n                    Your browser doesn't support video playback.\r\n                <\/video>\r\n                <div class=\"video-controls\">\r\n                    <div class=\"progress-container\" onclick=\"seekVideo(event)\">\r\n                        <div class=\"progress-bar\" id=\"progressBar\"><\/div>\r\n                    <\/div>\r\n                    <div class=\"control-buttons\">\r\n                        <div class=\"control-group volume-controls\">\r\n                            <button class=\"control-button\" onclick=\"toggleMute()\" title=\"Toggle Sound\">\r\n                                <i class=\"fas fa-volume-up\" id=\"volumeIcon\"><\/i>\r\n                            <\/button>\r\n                            <div class=\"volume-slider\" onclick=\"setVolume(event)\">\r\n                                <div class=\"volume-fill\" id=\"volumeFill\"><\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <button class=\"control-button play-pause\" onclick=\"togglePlay()\" title=\"Play\/Pause\">\r\n                            <i class=\"fas fa-play\" id=\"playIcon\"><\/i>\r\n                        <\/button>\r\n\r\n                        <div class=\"control-group\">\r\n                            <button class=\"control-button\" onclick=\"downloadVideo()\" title=\"Download Video\">\r\n                                <i class=\"fas fa-download\"><\/i>\r\n                            <\/button>\r\n                            <button class=\"control-button\" onclick=\"toggleFullscreen()\" title=\"Fullscreen\"\r\n                                id=\"fullscreenBtn\">\r\n                                <i class=\"fas fa-expand\" id=\"fullscreenIcon\"><\/i>\r\n                            <\/button>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Profile Picture Modal -->\r\n    <div class=\"profile-modal\" id=\"profileModal\">\r\n        <div class=\"profile-modal-content\">\r\n            <button class=\"profile-modal-close\" onclick=\"closeProfileModal()\">\r\n                <i class=\"fas fa-times\"><\/i>\r\n            <\/button>\r\n            <img decoding=\"async\" id=\"profileModalImage\" class=\"profile-modal-image\" src=\"\/placeholder.svg\" alt=\"Profile Picture\">\r\n            <button class=\"profile-modal-download btn-ripple\" onclick=\"downloadProfilePicture()\">\r\n                <i class=\"fas fa-download\"><\/i> Download\r\n            <\/button>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Download Progress Indicator -->\r\n    <div class=\"download-progress\" id=\"downloadProgress\">\r\n        <div class=\"download-spinner\"><\/div>\r\n        <div class=\"download-info\">\r\n            <div class=\"download-text\" id=\"downloadText\">Downloading...<\/div>\r\n            <div class=\"download-progress-bar\">\r\n                <div class=\"download-progress-fill\" id=\"downloadProgressFill\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n        <button class=\"cancel-download-btn\" onclick=\"cancelDownloads()\" id=\"cancelDownloadBtn\">\r\n            <i class=\"fas fa-stop\"><\/i> Stop\r\n        <\/button>\r\n    <\/div>\r\n    <script>(function(w,d){var u=[\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\",\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"];function ready(){var jq=w.jQuery;return jq&&jq.fn&&typeof jq.fn.on===\"function\";}function load(){if(!ready()){return false;}for(var i=0;i<u.length;i++){if(d.querySelector('script[src=\"'+u[i]+'\"]')){continue;}var s=d.createElement(\"script\");s.src=u[i];s.async=true;(d.body||d.head).appendChild(s);}return true;}function wait(n){if(load()||n<=0){return;}setTimeout(function(){wait(n-1);},100);}if(d.readyState===\"loading\"){d.addEventListener(\"DOMContentLoaded\",function(){wait(150);});}else{wait(150);}})(window,document);<\/script>\r\n \r\n    <script>\r\n        const API_BASE_URL = 'https:\/\/tools.xrespond.com\/api\/tiktok';\r\n        let currentVideo = null;\r\n        let currentProfileData = null;\r\n        let allVideos = [];\r\n        let isFullscreen = false;\r\n        let currentVolume = 1;\r\n        let isMuted = false;\r\n        let isProcessing = false;\r\n        let isDownloading = false;\r\n        let activeDownloads = [];\r\n        let downloadCancelled = false;\r\n\r\n        \/\/ Title tooltip functionality\r\n        let titleTooltip = null;\r\n        let tooltipTimeout = null;\r\n\r\n        \/\/ Initialize ripple effects\r\n        document.addEventListener('DOMContentLoaded', function () {\r\n            const buttons = document.querySelectorAll('.btn-ripple');\r\n            buttons.forEach(button => {\r\n                button.addEventListener('click', function (e) {\r\n                    const rect = button.getBoundingClientRect();\r\n                    const x = e.clientX - rect.left;\r\n                    const y = e.clientY - rect.top;\r\n\r\n                    const ripple = document.createElement('span');\r\n                    ripple.style.position = 'absolute';\r\n                    ripple.style.width = '1px';\r\n                    ripple.style.height = '1px';\r\n                    ripple.style.borderRadius = '50%';\r\n                    ripple.style.transform = 'scale(0)';\r\n                    ripple.style.backgroundColor = 'rgba(255, 255, 255, 0.7)';\r\n                    ripple.style.left = x + 'px';\r\n                    ripple.style.top = y + 'px';\r\n                    ripple.style.animation = 'ripple 0.6s linear';\r\n\r\n                    button.appendChild(ripple);\r\n\r\n                    setTimeout(() => {\r\n                        button.removeChild(ripple);\r\n                    }, 600);\r\n                });\r\n            });\r\n\r\n            \/\/ Initialize title tooltip\r\n            titleTooltip = document.getElementById('titleTooltip');\r\n        });\r\n\r\n        \/\/ Title tooltip functions\r\n        function showTitleTooltip(element, title) {\r\n            if (!title || title.trim() === '') return;\r\n\r\n            clearTimeout(tooltipTimeout);\r\n\r\n            titleTooltip.textContent = title;\r\n            titleTooltip.classList.add('show');\r\n\r\n            \/\/ Position the tooltip\r\n            const rect = element.getBoundingClientRect();\r\n            const tooltipRect = titleTooltip.getBoundingClientRect();\r\n\r\n            let left = rect.left + (rect.width \/ 2) - (tooltipRect.width \/ 2);\r\n            let top = rect.bottom + 10;\r\n\r\n            \/\/ Ensure tooltip stays within viewport\r\n            if (left < 10) left = 10;\r\n            if (left + tooltipRect.width > window.innerWidth - 10) {\r\n                left = window.innerWidth - tooltipRect.width - 10;\r\n            }\r\n\r\n            if (top + tooltipRect.height > window.innerHeight - 10) {\r\n                top = rect.top - tooltipRect.height - 10;\r\n            }\r\n\r\n            titleTooltip.style.left = left + 'px';\r\n            titleTooltip.style.top = top + 'px';\r\n        }\r\n\r\n        function hideTitleTooltip() {\r\n            tooltipTimeout = setTimeout(() => {\r\n                titleTooltip.classList.remove('show');\r\n            }, 100);\r\n        }\r\n\r\n        async function pasteFromClipboard() {\r\n            try {\r\n                const text = await navigator.clipboard.readText();\r\n                document.getElementById('usernameInput').value = text;\r\n            } catch (err) {\r\n                console.error('Failed to read clipboard contents: ', err);\r\n                document.getElementById('usernameInput').focus();\r\n            }\r\n        }\r\n\r\n        function searchAgain() {\r\n            document.getElementById('usernameInput').value = '';\r\n            document.getElementById('resultsContainer').style.display = 'none';\r\n            document.getElementById('searchAgainBtn').style.display = 'none';\r\n            document.getElementById('searchBox').style.display = 'flex';\r\n            document.getElementById('videosHeader').style.display = 'none';\r\n            document.getElementById('usernameInput').focus();\r\n            allVideos = [];\r\n        }\r\n\r\n        function extractUsername(input) {\r\n            if (input.startsWith('@')) {\r\n                return input.substring(1);\r\n            }\r\n\r\n            const urlPatterns = [\r\n                \/tiktok\\.com\\\/@([^\\\/\\?]+)\/,\r\n                \/tiktok\\.com\\\/([^\\\/\\?@]+)\/,\r\n                \/vm\\.tiktok\\.com\\\/([^\\\/\\?]+)\/\r\n            ];\r\n\r\n            for (const pattern of urlPatterns) {\r\n                const match = input.match(pattern);\r\n                if (match) {\r\n                    return match[1];\r\n                }\r\n            }\r\n\r\n            return input;\r\n        }\r\n\r\n        async function searchProfile() {\r\n            if (isProcessing) return;\r\n\r\n            const input = document.getElementById('usernameInput').value.trim();\r\n            if (!input) {\r\n                showError('Please enter a TikTok username or profile URL');\r\n                return;\r\n            }\r\n\r\n            const username = extractUsername(input);\r\n\r\n            isProcessing = true;\r\n            const searchBtn = document.getElementById('searchBtn');\r\n            const searchText = document.getElementById('searchText');\r\n\r\n            searchBtn.disabled = true;\r\n            searchText.textContent = 'Exploring...';\r\n            showLoading();\r\n            hideError();\r\n\r\n            try {\r\n                const profileResponse = await fetch(`${API_BASE_URL}\/profile\/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({ profile: username })\r\n                });\r\n\r\n                const profileData = await profileResponse.json();\r\n\r\n                if (profileData.status !== 'success') {\r\n                    throw new Error(profileData.message || 'Failed to fetch profile data');\r\n                }\r\n\r\n                currentProfileData = profileData.data.data;\r\n                displayProfile(currentProfileData);\r\n\r\n                const videosResponse = await fetch(`${API_BASE_URL}\/profile\/videos`, {\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({ profile: username })\r\n                });\r\n\r\n                const videosData = await videosResponse.json();\r\n\r\n                if (videosData.status !== 'success') {\r\n                    throw new Error(videosData.message || 'Failed to fetch videos');\r\n                }\r\n\r\n                const videos = videosData.data.data.videos.reverse();\r\n                allVideos = videos;\r\n                displayVideos(videos);\r\n\r\n                document.getElementById('resultsContainer').style.display = 'block';\r\n                document.getElementById('searchAgainBtn').style.display = 'block';\r\n                document.getElementById('searchBox').style.display = 'none';\r\n                document.getElementById('videosHeader').style.display = 'flex';\r\n\r\n                document.getElementById('usernameInput').value = '';\r\n\r\n            } catch (error) {\r\n                showError(error.message || 'Error fetching profile. Please try again.');\r\n            } finally {\r\n                isProcessing = false;\r\n                searchBtn.disabled = false;\r\n                searchText.textContent = 'Explore Profile';\r\n                hideLoading();\r\n            }\r\n        }\r\n\r\n        function displayProfile(data) {\r\n            const profileSection = document.getElementById('profileSection');\r\n\r\n            profileSection.innerHTML = `\r\n        <div class=\"profile-header\">\r\n            <div class=\"profile-avatar-container\">\r\n                <img decoding=\"async\" src=\"${data.user.avatarLarger}\" alt=\"Profile\" class=\"profile-avatar shimmer\" onclick=\"openProfileModal('${data.user.avatarLarger}')\">\r\n                <div class=\"fullscreen-icon\" onclick=\"openProfileModal('${data.user.avatarLarger}')\" title=\"View Fullscreen\">\r\n                    <i class=\"fas fa-expand\"><\/i>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"profile-info\">\r\n                <h2 class=\"profile-name\">${data.user.nickname}<\/h2>\r\n                <p class=\"profile-username\">@${data.user.uniqueId}<\/p>\r\n                <div class=\"profile-bio\">${data.user.signature || ''}<\/div>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"profile-stats\">\r\n            <div class=\"stat-item\">\r\n                <div class=\"stat-value\">${formatNumber(data.stats.followingCount)}<\/div>\r\n                <div class=\"stat-label\">Following<\/div>\r\n            <\/div>\r\n            <div class=\"stat-item\">\r\n                <div class=\"stat-value\">${formatNumber(data.stats.followerCount)}<\/div>\r\n                <div class=\"stat-label\">Followers<\/div>\r\n            <\/div>\r\n            <div class=\"stat-item\">\r\n                <div class=\"stat-value\">${formatNumber(data.stats.heartCount)}<\/div>\r\n                <div class=\"stat-label\">Likes<\/div>\r\n            <\/div>\r\n            <div class=\"stat-item\">\r\n                <div class=\"stat-value\">${formatNumber(data.stats.videoCount)}<\/div>\r\n                <div class=\"stat-label\">Posts<\/div>\r\n            <\/div>\r\n        <\/div>\r\n    `;\r\n        }\r\n\r\n        function displayVideos(videos) {\r\n            const videoGrid = document.getElementById('videoGrid');\r\n            const videosCount = document.getElementById('videosCount');\r\n\r\n            videoGrid.innerHTML = '';\r\n            videosCount.textContent = `Found ${videos.length} posts`;\r\n\r\n            videos.forEach((video, index) => {\r\n                const videoCard = document.createElement('div');\r\n                videoCard.className = 'video-card';\r\n                videoCard.innerHTML = `\r\n            <div class=\"video-thumbnail-container\">\r\n                <img decoding=\"async\" src=\"${video.cover}\" alt=\"${video.title}\" class=\"video-thumbnail\">\r\n                <div class=\"play-overlay\" onclick=\"openVideoModal(event, ${index})\"><\/div>\r\n                <div class=\"video-download-btn\" onclick=\"downloadVideoFromCard(event, ${index})\" title=\"Download Video\">\r\n                    <i class=\"fas fa-download\"><\/i>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"video-info\">\r\n                <div class=\"video-title\" data-full-title=\"${video.title.replace(\/\"\/g, '\"')}\">${video.title}<\/div>\r\n                <div class=\"video-stats\">\r\n                    <div class=\"stat\">\r\n                        <i class=\"fas fa-heart\"><\/i>\r\n                        <span>${formatNumber(video.digg_count)}<\/span>\r\n                    <\/div>\r\n                    <div class=\"stat\">\r\n                        <i class=\"fas fa-comment\"><\/i>\r\n                        <span>${formatNumber(video.comment_count)}<\/span>\r\n                    <\/div>\r\n                    <div class=\"stat\">\r\n                        <i class=\"fas fa-share\"><\/i>\r\n                        <span>${formatNumber(video.share_count)}<\/span>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n\r\n                videoGrid.appendChild(videoCard);\r\n\r\n                \/\/ Add hover events for title tooltip\r\n                const titleElement = videoCard.querySelector('.video-title');\r\n                titleElement.addEventListener('mouseenter', function () {\r\n                    const fullTitle = this.getAttribute('data-full-title');\r\n                    showTitleTooltip(this, fullTitle);\r\n                });\r\n\r\n                titleElement.addEventListener('mouseleave', function () {\r\n                    hideTitleTooltip();\r\n                });\r\n            });\r\n        }\r\n\r\n        function openVideoModal(event, videoIndex) {\r\n            event.stopPropagation();\r\n            const video = allVideos[videoIndex];\r\n            if (!video) return;\r\n\r\n            currentVideo = video;\r\n            const modal = document.getElementById('videoModal');\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const modalTitle = document.getElementById('modalTitle');\r\n\r\n            modalTitle.textContent = video.title;\r\n            videoPlayer.src = video.play;\r\n            videoPlayer.preload = 'metadata';\r\n            modal.style.display = 'block';\r\n            document.body.style.overflow = 'hidden';\r\n\r\n            document.getElementById('playIcon').className = 'fas fa-play';\r\n            updateVolumeIcon();\r\n            document.getElementById('progressBar').style.width = '0%';\r\n            updateVolumeDisplay();\r\n\r\n            videoPlayer.addEventListener('loadedmetadata', () => {\r\n                videoPlayer.volume = currentVolume;\r\n                videoPlayer.muted = isMuted;\r\n                updateVolumeDisplay();\r\n            });\r\n\r\n            videoPlayer.addEventListener('timeupdate', updateVideoProgress);\r\n            videoPlayer.addEventListener('ended', onVideoEnd);\r\n        }\r\n\r\n        function closeVideoModal() {\r\n            const modal = document.getElementById('videoModal');\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n\r\n            videoPlayer.pause();\r\n            videoPlayer.removeEventListener('timeupdate', updateVideoProgress);\r\n            videoPlayer.removeEventListener('ended', onVideoEnd);\r\n            modal.style.display = 'none';\r\n            document.body.style.overflow = 'auto';\r\n            currentVideo = null;\r\n\r\n            if (isFullscreen) {\r\n                exitFullscreen();\r\n            }\r\n        }\r\n\r\n        function openProfileModal(imageUrl) {\r\n            const modal = document.getElementById('profileModal');\r\n            const image = document.getElementById('profileModalImage');\r\n\r\n            image.src = imageUrl;\r\n            modal.style.display = 'block';\r\n            document.body.style.overflow = 'hidden';\r\n        }\r\n\r\n        function closeProfileModal() {\r\n            const modal = document.getElementById('profileModal');\r\n            modal.style.display = 'none';\r\n            document.body.style.overflow = 'auto';\r\n        }\r\n\r\n        function cancelDownloads() {\r\n            downloadCancelled = true;\r\n\r\n            activeDownloads.forEach(controller => {\r\n                if (controller) {\r\n                    controller.abort();\r\n                }\r\n            });\r\n\r\n            activeDownloads = [];\r\n\r\n            isDownloading = false;\r\n            const downloadBtn = document.getElementById('downloadAllBtn');\r\n            downloadBtn.innerHTML = '<i class=\"fas fa-download\"><\/i> Download All';\r\n            downloadBtn.disabled = false;\r\n\r\n            updateDownloadProgress('Downloads cancelled', 0);\r\n            setTimeout(hideDownloadProgress, 2000);\r\n        }\r\n\r\n        async function downloadProfilePicture() {\r\n            if (!currentProfileData) {\r\n                showError('No profile data available');\r\n                return;\r\n            }\r\n\r\n            if (isDownloading) {\r\n                showError('Another download is in progress');\r\n                return;\r\n            }\r\n\r\n            isDownloading = true;\r\n            downloadCancelled = false;\r\n            showDownloadProgress('Downloading profile picture...', 0);\r\n\r\n            try {\r\n                const controller = new AbortController();\r\n                activeDownloads.push(controller);\r\n\r\n                const response = await fetch(currentProfileData.user.avatarLarger, {\r\n                    signal: controller.signal\r\n                });\r\n\r\n                if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n                updateDownloadProgress('Processing profile picture...', 50);\r\n\r\n                const blob = await response.blob();\r\n                const url = window.URL.createObjectURL(blob);\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = `${currentProfileData.user.uniqueId}_profile.jpg`;\r\n                a.style.display = 'none';\r\n                document.body.appendChild(a);\r\n\r\n                updateDownloadProgress('Saving profile picture...', 90);\r\n\r\n                a.click();\r\n                document.body.removeChild(a);\r\n                window.URL.revokeObjectURL(url);\r\n\r\n                updateDownloadProgress('Profile picture downloaded successfully!', 100);\r\n                console.log('Profile picture download completed successfully');\r\n\r\n                activeDownloads = activeDownloads.filter(c => c !== controller);\r\n\r\n                setTimeout(hideDownloadProgress, 2000);\r\n            } catch (error) {\r\n                if (error.name === 'AbortError') {\r\n                    console.log('Profile picture download cancelled');\r\n                } else {\r\n                    console.error('Download failed:', error);\r\n                    showError(`Failed to download profile picture: ${error.message}`);\r\n                }\r\n            } finally {\r\n                isDownloading = false;\r\n            }\r\n        }\r\n\r\n        async function downloadVideo() {\r\n            if (!currentVideo) {\r\n                showError('No video selected for download');\r\n                return;\r\n            }\r\n\r\n            if (isDownloading) {\r\n                showError('Another download is in progress');\r\n                return;\r\n            }\r\n\r\n            isDownloading = true;\r\n            downloadCancelled = false;\r\n            showDownloadProgress('Downloading video...', 0);\r\n\r\n            try {\r\n                const controller = new AbortController();\r\n                activeDownloads.push(controller);\r\n\r\n                const response = await fetch(currentVideo.play, {\r\n                    signal: controller.signal\r\n                });\r\n\r\n                if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n                const totalSize = parseInt(response.headers.get('content-length') || '0');\r\n                const reader = response.body.getReader();\r\n                let receivedSize = 0;\r\n                const chunks = [];\r\n\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                    receivedSize += value.length;\r\n\r\n                    const progress = totalSize ? Math.round((receivedSize \/ totalSize) * 100) : 0;\r\n                    updateDownloadProgress(`Downloading video... ${progress}%`, progress);\r\n\r\n                    if (downloadCancelled) {\r\n                        throw new Error('AbortError');\r\n                    }\r\n                }\r\n\r\n                updateDownloadProgress('Processing video...', 95);\r\n\r\n                const chunksAll = new Uint8Array(receivedSize);\r\n                let position = 0;\r\n                for (const chunk of chunks) {\r\n                    chunksAll.set(chunk, position);\r\n                    position += chunk.length;\r\n                }\r\n\r\n                const blob = new Blob([chunksAll], { type: 'video\/mp4' });\r\n                const url = URL.createObjectURL(blob);\r\n\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = `tiktok-${currentVideo.id || 'video'}.mp4`;\r\n                a.style.display = 'none';\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                updateDownloadProgress('Video downloaded successfully!', 100);\r\n                console.log('Video download completed successfully');\r\n\r\n                activeDownloads = activeDownloads.filter(c => c !== controller);\r\n\r\n                setTimeout(hideDownloadProgress, 2000);\r\n            } catch (error) {\r\n                if (error.name === 'AbortError' || error.message === 'AbortError') {\r\n                    console.log('Video download cancelled');\r\n                } else {\r\n                    console.error('Download failed:', error);\r\n                    showError(`Failed to download video: ${error.message}`);\r\n                }\r\n            } finally {\r\n                isDownloading = false;\r\n            }\r\n        }\r\n\r\n        async function downloadVideoFromCard(event, videoIndex) {\r\n            event.stopPropagation();\r\n\r\n            const video = allVideos[videoIndex];\r\n            if (!video) {\r\n                showError('Video not found');\r\n                return;\r\n            }\r\n\r\n            if (isDownloading) {\r\n                showError('Another download is in progress');\r\n                return;\r\n            }\r\n\r\n            isDownloading = true;\r\n            downloadCancelled = false;\r\n            showDownloadProgress(`Downloading video ${videoIndex + 1}...`, 0);\r\n\r\n            try {\r\n                const controller = new AbortController();\r\n                activeDownloads.push(controller);\r\n\r\n                const response = await fetch(video.play, {\r\n                    signal: controller.signal\r\n                });\r\n\r\n                if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n                const totalSize = parseInt(response.headers.get('content-length') || '0');\r\n                const reader = response.body.getReader();\r\n                let receivedSize = 0;\r\n                const chunks = [];\r\n\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                    receivedSize += value.length;\r\n\r\n                    const progress = totalSize ? Math.round((receivedSize \/ totalSize) * 100) : 0;\r\n                    updateDownloadProgress(`Downloading video ${videoIndex + 1}... ${progress}%`, progress);\r\n\r\n                    if (downloadCancelled) {\r\n                        throw new Error('AbortError');\r\n                    }\r\n                }\r\n\r\n                updateDownloadProgress('Processing video...', 95);\r\n\r\n                const chunksAll = new Uint8Array(receivedSize);\r\n                let position = 0;\r\n                for (const chunk of chunks) {\r\n                    chunksAll.set(chunk, position);\r\n                    position += chunk.length;\r\n                }\r\n\r\n                const blob = new Blob([chunksAll], { type: 'video\/mp4' });\r\n                const url = URL.createObjectURL(blob);\r\n\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = `tiktok-${video.id || `video-${videoIndex + 1}`}.mp4`;\r\n                a.style.display = 'none';\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                updateDownloadProgress('Video downloaded successfully!', 100);\r\n                console.log('Video download completed successfully');\r\n\r\n                activeDownloads = activeDownloads.filter(c => c !== controller);\r\n\r\n                setTimeout(hideDownloadProgress, 2000);\r\n            } catch (error) {\r\n                if (error.name === 'AbortError' || error.message === 'AbortError') {\r\n                    console.log('Video download cancelled');\r\n                } else {\r\n                    console.error('Download failed:', error);\r\n                    showError(`Failed to download video: ${error.message}`);\r\n                }\r\n            } finally {\r\n                isDownloading = false;\r\n            }\r\n        }\r\n\r\n        async function downloadAllVideos() {\r\n            if (allVideos.length === 0 || isDownloading) return;\r\n\r\n            isDownloading = true;\r\n            downloadCancelled = false;\r\n            const downloadBtn = document.getElementById('downloadAllBtn');\r\n            const originalText = downloadBtn.innerHTML;\r\n\r\n            downloadBtn.innerHTML = '<i class=\"fas fa-spinner fa-spin\"><\/i> Downloading...';\r\n            downloadBtn.disabled = true;\r\n\r\n            showDownloadProgress(`Starting download of ${allVideos.length} videos...`, 0);\r\n\r\n            let successCount = 0;\r\n            let failCount = 0;\r\n\r\n            try {\r\n                for (let i = 0; i < allVideos.length; i++) {\r\n                    if (downloadCancelled) break;\r\n\r\n                    const video = allVideos[i];\r\n\r\n                    try {\r\n                        const controller = new AbortController();\r\n                        activeDownloads.push(controller);\r\n\r\n                        updateDownloadProgress(`Downloading video ${i + 1} of ${allVideos.length}...`, Math.round((i \/ allVideos.length) * 100));\r\n\r\n                        const response = await fetch(video.play, {\r\n                            signal: controller.signal\r\n                        });\r\n\r\n                        if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n                        const blob = await response.blob();\r\n                        const url = URL.createObjectURL(blob);\r\n                        const a = document.createElement('a');\r\n                        a.href = url;\r\n                        a.download = `tiktok-${video.id || `video-${i + 1}`}.mp4`;\r\n                        a.style.display = 'none';\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                        successCount++;\r\n                        console.log(`Video ${i + 1} downloaded successfully`);\r\n\r\n                        activeDownloads = activeDownloads.filter(c => c !== controller);\r\n\r\n                        if (i < allVideos.length - 1 && !downloadCancelled) {\r\n                            await new Promise(resolve => setTimeout(resolve, 1000));\r\n                        }\r\n                    } catch (error) {\r\n                        if (error.name === 'AbortError' || error.message === 'AbortError') {\r\n                            console.log(`Video ${i + 1} download cancelled`);\r\n                            break;\r\n                        } else {\r\n                            failCount++;\r\n                            console.error(`Failed to download video ${i + 1}:`, error);\r\n                        }\r\n                    }\r\n                }\r\n\r\n                if (downloadCancelled) {\r\n                    updateDownloadProgress('Downloads cancelled', 0);\r\n                } else {\r\n                    updateDownloadProgress(`Downloads completed! ${successCount} successful, ${failCount} failed`, 100);\r\n                }\r\n\r\n                setTimeout(hideDownloadProgress, 3000);\r\n\r\n            } catch (error) {\r\n                console.error('Bulk download failed:', error);\r\n                showError('Bulk download encountered errors');\r\n                hideDownloadProgress();\r\n            } finally {\r\n                isDownloading = false;\r\n                downloadCancelled = false;\r\n                downloadBtn.innerHTML = originalText;\r\n                downloadBtn.disabled = false;\r\n                activeDownloads = [];\r\n            }\r\n        }\r\n\r\n        function showDownloadProgress(text, progress = 0) {\r\n            const progressElement = document.getElementById('downloadProgress');\r\n            const downloadText = document.getElementById('downloadText');\r\n            const progressFill = document.getElementById('downloadProgressFill');\r\n\r\n            downloadText.textContent = text;\r\n            progressFill.style.width = `${progress}%`;\r\n            progressElement.classList.add('show');\r\n        }\r\n\r\n        function updateDownloadProgress(text, progress = 0) {\r\n            const downloadText = document.getElementById('downloadText');\r\n            const progressFill = document.getElementById('downloadProgressFill');\r\n\r\n            downloadText.textContent = text;\r\n            progressFill.style.width = `${progress}%`;\r\n        }\r\n\r\n        function hideDownloadProgress() {\r\n            const progress = document.getElementById('downloadProgress');\r\n            progress.classList.remove('show');\r\n        }\r\n\r\n        function togglePlay() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const playIcon = document.getElementById('playIcon');\r\n\r\n            if (videoPlayer.paused) {\r\n                videoPlayer.play();\r\n                playIcon.className = 'fas fa-pause';\r\n            } else {\r\n                videoPlayer.pause();\r\n                playIcon.className = 'fas fa-play';\r\n            }\r\n        }\r\n\r\n        function toggleMute() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n\r\n            if (isMuted) {\r\n                isMuted = false;\r\n                videoPlayer.muted = false;\r\n                videoPlayer.volume = currentVolume;\r\n            } else {\r\n                isMuted = true;\r\n                videoPlayer.muted = true;\r\n            }\r\n\r\n            updateVolumeIcon();\r\n            updateVolumeDisplay();\r\n        }\r\n\r\n        function updateVolumeIcon() {\r\n            const volumeIcon = document.getElementById('volumeIcon');\r\n            if (isMuted) {\r\n                volumeIcon.className = 'fas fa-volume-mute';\r\n            } else if (currentVolume > 0.5) {\r\n                volumeIcon.className = 'fas fa-volume-up';\r\n            } else if (currentVolume > 0) {\r\n                volumeIcon.className = 'fas fa-volume-down';\r\n            } else {\r\n                volumeIcon.className = 'fas fa-volume-mute';\r\n            }\r\n        }\r\n\r\n        function setVolume(event) {\r\n            const volumeSlider = event.currentTarget;\r\n            const rect = volumeSlider.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            currentVolume = Math.max(0, Math.min(1, pos));\r\n\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            videoPlayer.volume = currentVolume;\r\n\r\n            if (currentVolume === 0) {\r\n                isMuted = true;\r\n                videoPlayer.muted = true;\r\n            } else {\r\n                isMuted = false;\r\n                videoPlayer.muted = false;\r\n            }\r\n\r\n            updateVolumeIcon();\r\n            updateVolumeDisplay();\r\n        }\r\n\r\n        function updateVolumeDisplay() {\r\n            const volumeFill = document.getElementById('volumeFill');\r\n            const displayVolume = isMuted ? 0 : currentVolume;\r\n            volumeFill.style.width = `${displayVolume * 100}%`;\r\n        }\r\n\r\n        function updateVideoProgress() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const progressBar = document.getElementById('progressBar');\r\n            const progress = (videoPlayer.currentTime \/ videoPlayer.duration) * 100;\r\n            progressBar.style.width = `${progress}%`;\r\n        }\r\n\r\n        function seekVideo(event) {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const progressContainer = event.currentTarget;\r\n            const rect = progressContainer.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            videoPlayer.currentTime = pos * videoPlayer.duration;\r\n        }\r\n\r\n        function onVideoEnd() {\r\n            const playIcon = document.getElementById('playIcon');\r\n            playIcon.className = 'fas fa-play';\r\n        }\r\n\r\n        function toggleFullscreen() {\r\n            const modal = document.getElementById('videoModal');\r\n            const fullscreenIcon = document.getElementById('fullscreenIcon');\r\n\r\n            if (!isFullscreen) {\r\n                if (modal.requestFullscreen) {\r\n                    modal.requestFullscreen();\r\n                } else if (modal.webkitRequestFullscreen) {\r\n                    modal.webkitRequestFullscreen();\r\n                } else if (modal.msRequestFullscreen) {\r\n                    modal.msRequestFullscreen();\r\n                }\r\n                isFullscreen = true;\r\n                fullscreenIcon.className = 'fas fa-compress';\r\n            } else {\r\n                exitFullscreen();\r\n            }\r\n        }\r\n\r\n        function exitFullscreen() {\r\n            if (document.exitFullscreen) {\r\n                document.exitFullscreen();\r\n            } else if (document.webkitExitFullscreen) {\r\n                document.webkitExitFullscreen();\r\n            } else if (document.msExitFullscreen) {\r\n                document.msExitFullscreen();\r\n            }\r\n            isFullscreen = false;\r\n            document.getElementById('fullscreenIcon').className = 'fas fa-expand';\r\n        }\r\n\r\n        function showLoading() {\r\n            document.getElementById('loading').style.display = 'flex';\r\n        }\r\n\r\n        function hideLoading() {\r\n            document.getElementById('loading').style.display = 'none';\r\n        }\r\n\r\n        function showError(message) {\r\n            const errorDiv = document.getElementById('errorMessage');\r\n            const errorText = document.getElementById('errorText');\r\n            errorText.textContent = message;\r\n            errorDiv.style.display = 'flex';\r\n\r\n            \/\/ Auto-close after 10 seconds\r\n            setTimeout(() => {\r\n                hideError();\r\n            }, 10000);\r\n        }\r\n\r\n        function hideError() {\r\n            document.getElementById('errorMessage').style.display = 'none';\r\n        }\r\n\r\n        function formatNumber(num) {\r\n            if (num >= 1000000) {\r\n                return (num \/ 1000000).toFixed(1) + 'M';\r\n            }\r\n            if (num >= 1000) {\r\n                return (num \/ 1000).toFixed(1) + 'K';\r\n            }\r\n            return num.toString();\r\n        }\r\n\r\n        \/\/ Event Listeners\r\n        document.getElementById('usernameInput').addEventListener('keypress', (e) => {\r\n            if (e.key === 'Enter' && !isProcessing) {\r\n                searchProfile();\r\n            }\r\n        });\r\n\r\n        \/\/ Close modals when clicking outside\r\n        document.getElementById('videoModal').addEventListener('click', (e) => {\r\n            if (e.target === document.getElementById('videoModal')) {\r\n                closeVideoModal();\r\n            }\r\n        });\r\n\r\n        document.getElementById('profileModal').addEventListener('click', (e) => {\r\n            if (e.target === document.getElementById('profileModal')) {\r\n                closeProfileModal();\r\n            }\r\n        });\r\n\r\n        \/\/ Handle fullscreen change events\r\n        document.addEventListener('fullscreenchange', () => {\r\n            isFullscreen = !!document.fullscreenElement;\r\n            const fullscreenIcon = document.getElementById('fullscreenIcon');\r\n            fullscreenIcon.className = isFullscreen ? 'fas fa-compress' : 'fas fa-expand';\r\n        });\r\n\r\n        document.addEventListener('webkitfullscreenchange', () => {\r\n            isFullscreen = !!document.webkitFullscreenElement;\r\n            const fullscreenIcon = document.getElementById('fullscreenIcon');\r\n            fullscreenIcon.className = isFullscreen ? 'fas fa-compress' : 'fas fa-expand';\r\n        });\r\n\r\n        \/\/ Keyboard shortcuts\r\n        document.addEventListener('keydown', (e) => {\r\n            if (document.getElementById('videoModal').style.display === 'block') {\r\n                switch (e.key) {\r\n                    case ' ':\r\n                        e.preventDefault();\r\n                        togglePlay();\r\n                        break;\r\n                    case 'Escape':\r\n                        closeVideoModal();\r\n                        break;\r\n                    case 'f':\r\n                    case 'F':\r\n                        toggleFullscreen();\r\n                        break;\r\n                    case 'm':\r\n                    case 'M':\r\n                        toggleMute();\r\n                        break;\r\n                }\r\n            }\r\n\r\n            if (document.getElementById('profileModal').style.display === 'block') {\r\n                if (e.key === 'Escape') {\r\n                    closeProfileModal();\r\n                }\r\n            }\r\n        });\r\n    <\/script>\r\n    <\/div>\r\n<\/div>\n<div class=\"tc-wp-tool-content\"><div class=\"wpc-scope-177\">\n<div class=\"tc-wp-content-root\" data-tc-wp-scope=\"1\" style=\"max-width:100%;box-sizing:border-box;isolation:isolate;min-width:0;position:relative;\">\n<div class=\"ps\">\n<div class=\"ps-inner\">\n<div class=\"ps-hb\" style=\"margin-top: 4rem;\"><\/div>\n<\/div><section class=\"ps-sec ps-bg-wh\" aria-labelledby=\"ps-h1\">\n<div class=\"ps-inner\">\n<div class=\"ps-hb\">\n<h2 id=\"ps-h1\">How <span class=\"ps-gx\">TikTok Post Viewer<\/span> Works<\/h2>\n<p>Browse and view TikTok posts seamlessly with our intuitive platform built for speed and convenience.<\/p>\n<\/div>\n<div class=\"ps-g3\" data-ps-grid=\"g1\">\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n<\/div>\n<h3>Post View<\/h3>\n<p>View any TikTok post in full with all original media and text content displayed clearly preserving the complete post experience and context, making your overall experience on the platform smooth efficient and thoroughly enjoyable.<\/p>\n<\/article>\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg>\n<\/div>\n<h3>Post Details<\/h3>\n<p>See post metadata and statistics including engagement metrics and posting timestamps for a complete understanding of post performance, giving you complete control and flexibility over every aspect of your content journey.<\/p>\n<\/article>\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"\/><\/svg>\n<\/div>\n<h3>Post Feed<\/h3>\n<p>Browse posts in an organized feed with smooth scrolling and instant content loading making content discovery seamless and enjoyable, ensuring you get the maximum value and utility from every single visit you make.<\/p>\n<\/article>\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\n<\/div>\n<h3>Post Search<\/h3>\n<p>Find posts by keyword or hashtag with smart filters and rapid result delivery enabling targeted content discovery across the platform, so you can work smarter achieve more and stay productive throughout your sessions.<\/p>\n<\/article>\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"\/><\/svg>\n<\/div>\n<h3>Post Save<\/h3>\n<p>Save posts to your collection for quick access and organized content management building a personal library of your favorite content, providing a seamless intuitive workflow that enhances your daily content management tasks.<\/p>\n<\/article>\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg>\n<\/div>\n<h3>Post Share<\/h3>\n<p>Share posts with others through direct links and integrated sharing options making it easy to spread content across your network, making your overall experience on the platform smooth efficient and thoroughly enjoyable.<\/p>\n<\/article>\n<\/div>\n<\/div>\n<\/section>\n\n<section class=\"ps-sec ps-bg-ow\" aria-labelledby=\"ps-h2\">\n<div class=\"ps-inner\">\n<div class=\"ps-hb\">\n<h2 id=\"ps-h2\">Key Benefits of <span class=\"ps-gx\">TikTok Post Viewer<\/span><\/h2>\n<p>Discover why thousands of users choose our platform for post viewing every single day.<\/p>\n<\/div>\n<div class=\"ps-g4\" data-ps-grid=\"g2\">\n<article class=\"ps-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg>\n<\/div>\n<div class=\"ps-cb-body\">\n<h3>Full Content<\/h3>\n<p>See complete post information including captions hashtags comments and media files.<\/p>\n<\/div>\n<\/article>\n<article class=\"ps-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg>\n<\/div>\n<div class=\"ps-cb-body\">\n<h3>No Login<\/h3>\n<p>View without a TikTok account no signup no authentication required for public content.<\/p>\n<\/div>\n<\/article>\n<article class=\"ps-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 6v6l4 2\"\/><\/svg>\n<\/div>\n<div class=\"ps-cb-body\">\n<h3>Unlimited Access<\/h3>\n<p>No restrictions on post viewing browse as many posts as you want without limits.<\/p>\n<\/div>\n<\/article>\n<article class=\"ps-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg>\n<\/div>\n<div class=\"ps-cb-body\">\n<h3>Free Service<\/h3>\n<p>All post features at zero cost no premium tiers no hidden fees no subscriptions required.<\/p>\n<\/div>\n<\/article>\n<article class=\"ps-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10\"\/><\/svg>\n<\/div>\n<div class=\"ps-cb-body\">\n<h3>Quick Load<\/h3>\n<p>Posts load instantly with optimized delivery and minimal waiting time for content.<\/p>\n<\/div>\n<\/article>\n<article class=\"ps-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/><\/svg>\n<\/div>\n<div class=\"ps-cb-body\">\n<h3>Any Post<\/h3>\n<p>Works with any public TikTok post regardless of creator account or content category.<\/p>\n<\/div>\n<\/article>\n<article class=\"ps-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"\/><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"\/><line x1=\"8\" y1=\"7\" x2=\"16\" y2=\"7\"\/><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"\/><\/svg>\n<\/div>\n<div class=\"ps-cb-body\">\n<h3>Save Collection<\/h3>\n<p>Build post collections by saving content into organized categories for later viewing.<\/p>\n<\/div>\n<\/article>\n\n<article class=\"ps-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"\/><line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\"\/><\/svg>\n<\/div>\n<div class=\"ps-cb-body\">\n<h3>Multi Device<\/h3>\n<p>Access the service seamlessly across desktop mobile and tablet devices without any restrictions.<\/p>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/section>\n\n<section class=\"ps-sec ps-bg-wh\" aria-labelledby=\"ps-h3\">\n<div class=\"ps-inner\">\n<div class=\"ps-hb\">\n<h2 id=\"ps-h3\">Who Should Use <span class=\"ps-gx\">TikTok Post Viewer<\/span><\/h2>\n<p>Explore real-world scenarios where our tool delivers the most value and impact for users like you.<\/p>\n<\/div>\n<div class=\"ps-g3\" data-ps-grid=\"g3\">\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\"\/><polyline points=\"17 6 23 6 23 12\"\/><\/svg>\n<\/div>\n<h3>Content Strategy<\/h3>\n<p>Study post content strategies used by top creators to improve your own content approach learning from successful posting patterns and formats.<\/p>\n<\/article>\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg>\n<\/div>\n<h3>Post Analysis<\/h3>\n<p>Analyze post performance metrics including likes comments shares and audience reach data to understand what drives engagement and interaction.<\/p>\n<\/article>\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n<\/div>\n<h3>Trend Tracking<\/h3>\n<p>Track post trends over time to identify emerging patterns and content themes across niches staying ahead of evolving audience preferences.<\/p>\n<\/article>\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M9 12l2 2 4-4\"\/><\/svg>\n<\/div>\n<h3>Engagement Study<\/h3>\n<p>Study post engagement patterns to understand what drives audience interaction and response helping you create more engaging content.<\/p>\n<\/article>\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"7\" r=\"4\"\/><circle cx=\"20\" cy=\"12\" r=\"4\"\/><circle cx=\"6\" cy=\"19\" r=\"4\"\/><line x1=\"14.5\" y1=\"9.5\" x2=\"17.5\" y2=\"14.5\"\/><line x1=\"8.5\" y1=\"16.5\" x2=\"11.5\" y2=\"13.5\"\/><\/svg>\n<\/div>\n<h3>Brand Research<\/h3>\n<p>Research brand post tactics and strategies for competitive analysis and market positioning understanding how brands succeed on the platform.<\/p>\n<\/article>\n<article class=\"ps-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"ps-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n<\/div>\n<h3>Creator Intel<\/h3>\n<p>Study creator post strategies to learn from successful content approaches and techniques applying proven methods to your own content creation.<\/p>\n<\/article>\n<\/div>\n<\/div>\n<\/section>\n\n<\/div>\n<noscript><\/noscript>\n<\/div>\n<\/div><\/div>\n<\/section>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":5393,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-homepage.php","meta":{"footnotes":""},"class_list":["post-5619","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/comments?post=5619"}],"version-history":[{"count":2,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5619\/revisions"}],"predecessor-version":[{"id":5759,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5619\/revisions\/5759"}],"up":[{"embeddable":true,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5393"}],"wp:attachment":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/media?parent=5619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}