{"id":5602,"date":"2026-06-02T09:06:22","date_gmt":"2026-06-02T09:06:22","guid":{"rendered":"https:\/\/viiewerr.com\/tiktok\/link\/"},"modified":"2026-06-27T10:20:40","modified_gmt":"2026-06-27T10:20:40","slug":"link","status":"publish","type":"page","link":"https:\/\/viiewerr.com\/tiktok\/link\/","title":{"rendered":"Tiktok Link Viewer: Direct 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 rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@600;700;800&display=swap\" rel=\"stylesheet\">\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\r\n<style>\r\n:root {\r\n    --primary: #2af0ea;\r\n    --primary-glow: rgba(42, 240, 234, 0.34);\r\n    --accent: #ff4fa3;\r\n    --accent-purple: #ff7a59;\r\n    --success: #10B981;\r\n    --error: #EF4444;\r\n    --white: #fff7fb;\r\n    --gray-100: #fdf2ff;\r\n    --gray-300: #d9c7ef;\r\n    --gray-500: #9f8dbd;\r\n    --gray-800: #2e2142;\r\n    --gray-900: #120917;\r\n    --glass-bg: rgba(22, 12, 32, 0.78);\r\n    --glass-border: rgba(122, 243, 238, 0.22);\r\n    --shadow-lg: 0 24px 56px rgba(8, 4, 18, 0.56);\r\n    --radius-md: 14px;\r\n    --radius-lg: 18px;\r\n    --radius-xl: 17px;\r\n    --transition: all 0.3s cubic-bezier(.23, 1.02, .67, 1.01);\r\n    --text-primary: #ffffff;\r\n    --text-secondary: #d9c7ef;\r\n    --text-muted: #9f8dbd;\r\n    --border-color: rgba(122, 243, 238, 0.22);\r\n}\r\n\t\r\n\t.uicore-page-title .uicore h1.uicore-title {\r\n\tmargin: .4em 0;\r\n\tdisplay: none;\r\n}\r\n\r\n* {\r\n    margin: 0;\r\n    padding: 0;\r\n    box-sizing: border-box;\r\n    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;\r\n}\r\n\r\n.tiktok_body {\r\n    position: relative;\r\n    z-index: 0;\r\n    min-height: 100vh;\r\n    background:\r\n        radial-gradient(circle at 10% 12%, rgba(42, 240, 234, 0.3), transparent 34%),\r\n        radial-gradient(circle at 88% 14%, rgba(255, 79, 163, 0.34), transparent 38%),\r\n        radial-gradient(circle at 80% 82%, rgba(255, 122, 89, 0.2), transparent 42%),\r\n        radial-gradient(circle at 18% 84%, rgba(143, 92, 255, 0.22), transparent 44%),\r\n        radial-gradient(circle at 52% 52%, rgba(255, 255, 255, 0.05), transparent 52%),\r\n        linear-gradient(136deg, #09040d 0%, #150819 20%, #2a1033 42%, #3b0f2f 60%, #4a1638 78%, #120918 100%);\r\n    background-size: 190% 190%, 180% 180%, 220% 220%, 210% 210%, 230% 230%, 240% 240%;\r\n    animation: tiktok-aurora 16s ease-in-out infinite;\r\n    color: var(--text-primary);\r\n    line-height: 1.6;\r\n    padding: 10px 10px;\r\n    overflow-x: hidden;\r\n    width: 100%;\r\n}\r\n\r\n.tiktok_body::before {\r\n    content: '';\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    z-index: -1;\r\n    background:\r\n        linear-gradient(160deg, rgba(4, 2, 10, 0.46), rgba(16, 8, 22, 0.22)),\r\n        radial-gradient(circle at 18% 18%, rgba(42, 240, 234, 0.08), transparent 52%),\r\n        radial-gradient(circle at 82% 76%, rgba(255, 79, 163, 0.08), transparent 48%),\r\n        radial-gradient(circle at 55% 56%, rgba(255, 122, 89, 0.06), transparent 54%);\r\n    opacity: 1;\r\n}\r\n\r\n@keyframes tiktok-aurora {\r\n    0% { background-position: 0% 50%, 100% 50%, 50% 0%; }\r\n    50% { background-position: 100% 50%, 0% 50%, 50% 100%; }\r\n    100% { background-position: 0% 50%, 100% 50%, 50% 0%; }\r\n}\r\n\r\n.container_tiktok {\r\n    max-width: 1400px;\r\n    margin: 0 auto;\r\n    padding: 32px 16px;\r\n    position: relative;\r\n    z-index: 1;\r\n}\r\n\r\n\/* Header Styles *\/\r\n.header {\r\n    text-align: center;\r\n    margin-bottom: 48px;\r\n    animation: fadeInDown 1s ease-out;\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: 24px;\r\n    margin-bottom: 24px;\r\n    flex-direction: column;\r\n    position: relative;\r\n}\r\n\r\n.logo-icon {\r\n    font-size: clamp(2.5rem, 7vw, 4rem);\r\n    animation: pulse 2s ease-in-out infinite;\r\n    flex-shrink: 0;\r\n    filter: none;\r\n    text-shadow: 0 4px 20px rgba(42, 240, 234, 0.5);\r\n    opacity: 1;\r\n    margin-top: 30px !important;\r\n    background: linear-gradient(135deg, #00f2ea 0%, #25f4ee 25%, #ff0050 75%, #ff4fa3 100%);\r\n    -webkit-background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n    background-clip: text;\r\n}\r\n\r\n.logo-text {\r\n    font-size: clamp(1.6rem, 4vw, 2.5rem) !important;\r\n    font-weight: 900;\r\n    background: linear-gradient(135deg, #00f2ea 0%, #25f4ee 25%, #ff0050 75%, #ff4fa3 100%);\r\n    -webkit-background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n    background-clip: text;\r\n    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\r\n    letter-spacing: -2px;\r\n    font-family: 'Sora', sans-serif;\r\n}\r\n\r\n.intro-text {\r\n    max-width: 700px;\r\n    margin: 0 auto 32px;\r\n    font-size: 16px;\r\n    color: var(--text-secondary);\r\n    line-height: 1.6;\r\n}\r\n\r\n@keyframes fadeInDown {\r\n    from {\r\n        opacity: 0;\r\n        transform: translateY(-40px);\r\n    }\r\n    to {\r\n        opacity: 1;\r\n        transform: translateY(0);\r\n    }\r\n}\r\n\r\n@keyframes pulse {\r\n    0%, 100% {\r\n        transform: scale(1);\r\n    }\r\n    50% {\r\n        transform: scale(1.05);\r\n    }\r\n}\r\n\r\n.logo {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 1.5rem;\r\n    margin-bottom: 1rem;\r\n    flex-wrap: wrap;\r\n}\r\n\r\n\r\n\/* Search Section *\/\r\n.search-section {\r\n    background: var(--glass-bg);\r\n    backdrop-filter: blur(20px) saturate(145%) contrast(1.05);\r\n    -webkit-backdrop-filter: blur(20px) saturate(145%) contrast(1.05);\r\n    border: 2px solid var(--glass-border);\r\n    padding: clamp(24px, 5vw, 48px);\r\n    border-radius: var(--radius-xl);\r\n    box-shadow: var(--shadow-lg);\r\n    margin-bottom: 32px;\r\n    animation: fadeInUp 1s ease-out 0.2s both;\r\n}\r\n\r\n@keyframes fadeInUp {\r\n    from {\r\n        opacity: 0;\r\n        transform: translateY(40px);\r\n    }\r\n    to {\r\n        opacity: 1;\r\n        transform: translateY(0);\r\n    }\r\n}\r\n\r\n.input-container {\r\n    position: relative;\r\n    margin-bottom: 20px;\r\n}\r\n\r\n.input-field {\r\n    width: 100% !important;\r\n    padding: clamp(16px, 3vw, 20px) clamp(20px, 4vw, 24px)  !important;\r\n    border: 2px solid rgba(122, 243, 238, 0.18)  !important;\r\n    border-radius: var(--radius-lg)  !important;\r\n    font-size: clamp(14px, 2.5vw, 16px)  !important;\r\n    font-weight: 500  !important;\r\n    background: rgba(18, 9, 23, 0.68)  !important;\r\n    color: var(--text-primary)  !important;\r\n    transition: var(--transition)  !important;\r\n    -webkit-appearance: none !important;\r\n    -moz-appearance: none !important;\r\n    appearance: none !important;\r\n}\r\n\r\n.input-field:focus {\r\n    outline: none  !important;\r\n    border-color: rgba(110, 238, 232, 0.78)  !important;\r\n    background: rgba(22, 12, 32, 0.78)  !important;\r\n    box-shadow: 0 0 0 4px rgba(42, 240, 234, 0.14), 0 10px 24px rgba(18, 8, 28, 0.28)  !important;\r\n    transform: translateY(-2px)  !important;\r\n}\r\n\r\n.input-field::placeholder {\r\n    color: rgba(255, 255, 255, 0.5) !important;\r\n}\r\n\r\n    .input-actions {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        margin-top: 1rem;\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n        color: var(--text-secondary);\r\n        z-index: 2;\r\n        position: relative;\r\n        flex-wrap: wrap;\r\n        gap: 0.5rem;\r\n    }\r\n\r\n    .paste-btn {\r\n        background: linear-gradient(135deg, var(--secondary), var(--secondary-light));\r\n        border: none;\r\n        color: white;\r\n        cursor: pointer;\r\n        padding: clamp(0.5rem, 2vw, 0.7rem) clamp(0.8rem, 3vw, 1.4rem);\r\n        border-radius: 14px;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 0.5rem;\r\n        font-weight: 600;\r\n        box-shadow: var(--shadow-primary), var(--shadow-accent);\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        border: 1px solid rgba(37, 244, 238, 0.3);\r\n        min-height: 44px;\r\n        width: 100%;\r\n        display: flex;\r\n        justify-content: center;\r\n    }\r\n\r\n    .paste-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .paste-btn:hover::before,\r\n    .paste-btn:active::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .paste-btn:hover,\r\n    .paste-btn:active {\r\n        transform: translateY(-3px) scale(1.05);\r\n        box-shadow: var(--shadow-primary), var(--glow-secondary);\r\n        background: linear-gradient(135deg, var(--secondary-light), var(--secondary));\r\n    }\r\n\r\n    .action-buttons {\r\n        display: grid;\r\n        grid-template-columns: 1fr;\r\n        gap: 1.5rem;\r\n        align-items: center;\r\n        z-index: 2;\r\n        position: relative;\r\n    }\r\n\r\n    .search-btn {\r\n        background: linear-gradient(135deg, #00f2ea67 0%, #25f4ed52 25%, #ff0050 75%, #ff4fa3 100%);\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(1rem, 3vw, 1.2rem);\r\n        border-radius: 20px;\r\n        font-size: clamp(0.9rem, 2.5vw, 1.1rem);\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-lg), 0 0 20px rgba(42, 240, 234, 0.3);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin-top : 10px;\r\n        gap: 0.75rem;\r\n        min-height: 56px;\r\n        animation: buttonPulse 4s ease-in-out infinite;\r\n        border: 1px solid rgba(122, 243, 238, 0.32);\r\n        width: 100%;\r\n    }\r\n\r\n    .search-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.6s;\r\n    }\r\n\r\n    .search-btn:hover:not(:disabled)::before,\r\n    .search-btn:active:not(:disabled)::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .search-btn:hover:not(:disabled),\r\n    .search-btn:active:not(:disabled) {\r\n        transform: translateY(-4px) scale(1.02);\r\n        box-shadow: var(--shadow-lg), 0 0 30px rgba(42, 240, 234, 0.5);\r\n        background-position: 100% 100%;\r\n        animation: buttonHoverGlow 1s ease-in-out infinite;\r\n    }\r\n\r\n    .search-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n        animation: none;\r\n    }\r\n\r\n    .search-another-btn {\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-dark));\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(0.8rem, 2.5vw, 1.1rem) clamp(1rem, 3vw, 1.6rem);\r\n        border-radius: 18px;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        min-height: 48px;\r\n        width: 100%;\r\n        font-weight: 600;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        border: 2px solid rgba(139, 92, 246, 0.3);\r\n    }\r\n\r\n    .search-another-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .search-another-btn:hover::before,\r\n    .search-another-btn:active::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .search-another-btn:hover,\r\n    .search-another-btn:active {\r\n        transform: translateY(-3px) scale(1.05);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    \/* Loading Animation *\/\r\n    .loading {\r\n        display: none;\r\n        text-align: center;\r\n        padding: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 4vw, 2.5rem);\r\n        background: linear-gradient(135deg,\r\n                var(--glass-bg) 0%,\r\n                rgba(139, 92, 246, 0.15) 50%,\r\n                rgba(37, 244, 238, 0.15) 100%);\r\n        backdrop-filter: blur(25px);\r\n        border: 2px solid var(--glass-border);\r\n        border-radius: 24px;\r\n        margin: 2rem 0;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n    }\r\n\r\n    .loading::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: linear-gradient(90deg,\r\n                transparent,\r\n                var(--primary),\r\n                var(--secondary),\r\n                transparent);\r\n        border-radius: 24px 24px 0 0;\r\n    }\r\n\r\n    .loading-spinner {\r\n        width: clamp(60px, 15vw, 100px);\r\n        height: clamp(60px, 15vw, 100px);\r\n        margin: 0 auto 2rem;\r\n        position: relative;\r\n    }\r\n\r\n    .spinner-ring {\r\n        position: absolute;\r\n        border: 4px solid transparent;\r\n        border-radius: 50%;\r\n        animation: spin 2s linear infinite;\r\n    }\r\n\r\n    .spinner-ring:nth-child(1) {\r\n        width: 100%;\r\n        height: 100%;\r\n        border-top-color: var(--primary);\r\n        border-right-color: var(--primary);\r\n        animation-duration: 2s;\r\n        box-shadow: 0 0 20px rgba(254, 44, 85, 0.4);\r\n    }\r\n\r\n    .spinner-ring:nth-child(2) {\r\n        width: 75%;\r\n        height: 75%;\r\n        top: 12.5%;\r\n        left: 12.5%;\r\n        border-bottom-color: var(--secondary);\r\n        border-left-color: var(--secondary);\r\n        animation-duration: 1.5s;\r\n        animation-direction: reverse;\r\n        box-shadow: 0 0 15px rgba(37, 244, 238, 0.4);\r\n    }\r\n\r\n    .spinner-ring:nth-child(3) {\r\n        width: 50%;\r\n        height: 50%;\r\n        top: 25%;\r\n        left: 25%;\r\n        border-top-color: var(--accent);\r\n        animation-duration: 1s;\r\n        box-shadow: 0 0 10px rgba(139, 92, 246, 0.4);\r\n    }\r\n\r\n    .loading-text {\r\n        font-size: clamp(1rem, 3vw, 1.4rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.5rem;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary), var(--accent));\r\n        background-size: 200% 200%;\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        animation: textGradient 3s ease infinite;\r\n    }\r\n\r\n    .loading-subtext {\r\n        color: var(--text-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        animation: textFade 2s ease-in-out infinite;\r\n    }\r\n\r\n    \/* Main Video Section *\/\r\n    .video-section {\r\n        display: none;\r\n        animation: fadeInUp 0.8s ease-out;\r\n        background: linear-gradient(135deg,\r\n                var(--glass-bg) 0%,\r\n                rgba(139, 92, 246, 0.15) 30%,\r\n                rgba(37, 244, 238, 0.15) 70%,\r\n                var(--glass-bg) 100%);\r\n        backdrop-filter: blur(25px);\r\n        border: 2px solid var(--glass-border);\r\n        border-radius: 24px;\r\n        padding: clamp(1.5rem, 4vw, 2.5rem);\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .video-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: linear-gradient(90deg,\r\n                transparent,\r\n                var(--primary),\r\n                var(--secondary),\r\n                var(--accent),\r\n                transparent);\r\n        animation: borderFlow 4s ease-in-out infinite;\r\n    }\r\n\r\n    \/* Author Info *\/\r\n    .author-section {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.8rem, 3vw, 1.2rem);\r\n        margin-bottom: 1.5rem;\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        background: linear-gradient(135deg,\r\n                rgba(139, 92, 246, 0.15) 0%,\r\n                rgba(236, 72, 153, 0.15) 50%,\r\n                rgba(37, 244, 238, 0.15) 100%);\r\n        border-radius: 20px;\r\n        border: 1px solid rgba(139, 92, 246, 0.3);\r\n        width: 100%;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        transition: all 0.4s ease;\r\n        flex-wrap: wrap;\r\n        justify-content: center;\r\n        text-align: center;\r\n    }\r\n\r\n    .author-section:hover,\r\n    .author-section:active {\r\n        transform: translateY(-3px);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    .author-avatar {\r\n        width: clamp(50px, 12vw, 60px);\r\n        height: clamp(50px, 12vw, 60px);\r\n        border-radius: 50%;\r\n        object-fit: cover;\r\n        border: 3px solid transparent;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        padding: 2px;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        animation: avatarPulse 4s ease-in-out infinite;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .author-details {\r\n        flex: 1;\r\n        min-width: 0;\r\n    }\r\n\r\n    .author-details h3 {\r\n        font-size: clamp(1rem, 3vw, 1.2rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        -webkit-background-clip: text;\r\n        background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        word-break: break-word;\r\n    }\r\n\r\n    .author-username {\r\n        color: var(--text-secondary);\r\n        font-size: clamp(0.8rem, 2.5vw, 0.95rem);\r\n        font-weight: 500;\r\n        word-break: break-word;\r\n    }\r\n\r\n    \/* Title *\/\r\n    .video-title {\r\n        font-size: clamp(1.2rem, 4vw, 1.6rem);\r\n        font-weight: 800;\r\n        margin-bottom: 1.5rem;\r\n        line-height: 1.4;\r\n        color: var(--text-primary);\r\n        width: 100%;\r\n        text-align: center;\r\n        text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\r\n        word-break: break-word;\r\n        padding: 0 1rem;\r\n    }\r\n\r\n    \/* Stats Grid *\/\r\n    .video-stats {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\r\n        gap: clamp(0.5rem, 2vw, 1rem);\r\n        margin-bottom: 2rem;\r\n    }\r\n\r\n    .stat-item {\r\n        background: linear-gradient(135deg,\r\n                var(--glass-bg) 0%,\r\n                rgba(139, 92, 246, 0.15) 100%);\r\n        padding: clamp(0.8rem, 3vw, 1.2rem);\r\n        border-radius: 18px;\r\n        text-align: center;\r\n        border: 1px solid var(--glass-border);\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-primary);\r\n        backdrop-filter: blur(15px);\r\n        min-height: 80px;\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: center;\r\n    }\r\n\r\n    .stat-item::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(139, 92, 246, 0.3), transparent);\r\n        transition: left 0.6s;\r\n    }\r\n\r\n    .stat-item:hover::before,\r\n    .stat-item:active::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .stat-item:hover,\r\n    .stat-item:active {\r\n        transform: translateY(-5px) scale(1.02);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    .stat-item.views {\r\n        border-color: rgba(254, 44, 85, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(254, 44, 85, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n    }\r\n\r\n    .stat-item.likes {\r\n        border-color: rgba(37, 244, 238, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(37, 244, 238, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n    }\r\n\r\n    .stat-item.comments {\r\n        border-color: rgba(139, 92, 246, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(139, 92, 246, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n    }\r\n\r\n    .stat-item.shares {\r\n        border-color: rgba(236, 72, 153, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(236, 72, 153, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n    }\r\n\r\n    .stat-item.duration {\r\n        border-color: rgba(37, 244, 238, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(37, 244, 238, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n    }\r\n\r\n    .stat-value {\r\n        font-size: clamp(1.2rem, 4vw, 1.6rem);\r\n        font-weight: 900;\r\n        display: block;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        -webkit-background-clip: text;\r\n        background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        animation: valueGlow 4s ease-in-out infinite;\r\n    }\r\n\r\n    .stat-label {\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        color: var(--text-secondary);\r\n        font-weight: 600;\r\n        text-transform: uppercase;\r\n        letter-spacing: 0.5px;\r\n    }\r\n\r\n    \/* Video Streaming Area *\/\r\n    .video-streaming-area {\r\n        background: linear-gradient(135deg,\r\n                rgba(254, 44, 85, 0.08) 0%,\r\n                rgba(37, 244, 238, 0.08) 50%,\r\n                rgba(139, 92, 246, 0.08) 100%);\r\n        border: 2px solid rgba(254, 44, 85, 0.3);\r\n        border-radius: 24px;\r\n        padding: clamp(1.5rem, 4vw, 2.5rem);\r\n        margin-bottom: 1.5rem;\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        backdrop-filter: blur(15px);\r\n    }\r\n\r\n    .video-streaming-area::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background-image:\r\n            linear-gradient(rgba(254, 44, 85, 0.05) 1px, transparent 1px),\r\n            linear-gradient(90deg, rgba(37, 244, 238, 0.05) 1px, transparent 1px);\r\n        background-size: 30px 30px;\r\n        opacity: 0.6;\r\n        pointer-events: none;\r\n        z-index: 1;\r\n        animation: gridMove 12s linear infinite;\r\n    }\r\n\r\n    .video-streaming-area::after {\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: linear-gradient(90deg,\r\n                transparent,\r\n                var(--primary),\r\n                var(--secondary),\r\n                var(--accent),\r\n                transparent);\r\n        z-index: 2;\r\n        animation: borderFlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    .streaming-header {\r\n        text-align: center;\r\n        margin-bottom: 2rem;\r\n        position: relative;\r\n        z-index: 3;\r\n    }\r\n\r\n    .streaming-title {\r\n        font-size: clamp(1rem, 3vw, 1.3rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.5rem;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        -webkit-background-clip: text;\r\n        background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        animation: titlePulse 4s ease-in-out infinite;\r\n    }\r\n\r\n    .streaming-subtitle {\r\n        color: var(--text-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        font-weight: 500;\r\n    }\r\n\r\n    \/* Video Player *\/\r\n    .video-player-wrapper {\r\n        position: relative;\r\n        width: 100%;\r\n        max-width: min(380px, 90vw);\r\n        margin: 0 auto;\r\n        aspect-ratio: 9\/16;\r\n        border-radius: 24px;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        background: #000;\r\n        z-index: 3;\r\n        border: 2px solid rgba(254, 44, 85, 0.3);\r\n    }\r\n\r\n    .video-thumbnail {\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        object-fit: cover;\r\n        z-index: 4;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n    }\r\n\r\n    .video-thumbnail:hover,\r\n    .video-thumbnail:active {\r\n        transform: scale(1.02);\r\n    }\r\n\r\n    .thumbnail-overlay {\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: rgba(0, 0, 0, 0.4);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        z-index: 5;\r\n        cursor: pointer;\r\n        transition: all 0.4s ease;\r\n        backdrop-filter: blur(2px);\r\n    }\r\n\r\n    .thumbnail-overlay:hover,\r\n    .thumbnail-overlay:active {\r\n        background: rgba(0, 0, 0, 0.6);\r\n        backdrop-filter: blur(4px);\r\n    }\r\n\r\n    .thumbnail-play-btn {\r\n        width: clamp(60px, 15vw, 80px);\r\n        height: clamp(60px, 15vw, 80px);\r\n        background: linear-gradient(135deg, var(--primary), var(--accent));\r\n        border: none;\r\n        border-radius: 50%;\r\n        color: white;\r\n        font-size: clamp(1.5rem, 4vw, 2rem);\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        position: relative;\r\n        overflow: hidden;\r\n        animation: playButtonPulse 3s ease-in-out infinite;\r\n        border: 2px solid rgba(255, 255, 255, 0.2);\r\n        min-height: 44px;\r\n    }\r\n\r\n    .thumbnail-play-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transform: translateX(-100%);\r\n        transition: transform 0.6s;\r\n    }\r\n\r\n    .thumbnail-play-btn:hover,\r\n    .thumbnail-play-btn:active {\r\n        transform: translateX(100%);\r\n    }\r\n\r\n    .thumbnail-play-btn:hover,\r\n    .thumbnail-play-btn:active {\r\n        transform: scale(1.15);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    .video-player {\r\n        width: 100%;\r\n        height: 100%;\r\n        object-fit: contain;\r\n        background: #000;\r\n        position: relative;\r\n        z-index: 2;\r\n        display: none;\r\n    }\r\n\r\n    .video-player.playing {\r\n        display: block;\r\n    }\r\n\r\n    .video-controls {\r\n        position: absolute;\r\n        bottom: 0;\r\n        left: 0;\r\n        right: 0;\r\n        background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        transform: translateY(100%);\r\n        transition: transform 0.4s ease;\r\n        z-index: 10;\r\n        backdrop-filter: blur(10px);\r\n    }\r\n\r\n    .video-player-wrapper:hover .video-controls,\r\n    .video-controls.show {\r\n        transform: translateY(0);\r\n    }\r\n\r\n    .progress-bar {\r\n        width: 100%;\r\n        height: clamp(4px, 1.5vw, 6px);\r\n        background: rgba(255, 255, 255, 0.2);\r\n        border-radius: 3px;\r\n        margin-bottom: 0.5rem;\r\n        cursor: pointer;\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .progress-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--primary), var(--accent));\r\n        border-radius: 3px;\r\n        width: 0%;\r\n        transition: width 0.1s linear;\r\n        box-shadow: 0 0 10px rgba(254, 44, 85, 0.5);\r\n    }\r\n\r\n    \/* Video Time Display *\/\r\n    .video-time {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        color: var(--text-secondary);\r\n        margin-bottom: 1rem;\r\n    }\r\n\r\n    .control-buttons {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        flex-wrap: wrap;\r\n        gap: 1rem;\r\n    }\r\n\r\n    .control-group {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.5rem, 2vw, 0.75rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .control-btn {\r\n        background: rgba(255, 255, 255, 0.15);\r\n        border: none;\r\n        color: white;\r\n        width: clamp(40px, 10vw, 44px);\r\n        height: clamp(40px, 10vw, 44px);\r\n        border-radius: 50%;\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        transition: all 0.3s ease;\r\n        backdrop-filter: blur(10px);\r\n        border: 1px solid rgba(255, 255, 255, 0.2);\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        min-height: 44px;\r\n        min-width: 44px;\r\n    }\r\n\r\n    .control-btn:hover,\r\n    .control-btn:active {\r\n        background: rgba(255, 255, 255, 0.25);\r\n        transform: scale(1.1);\r\n        box-shadow: var(--shadow-primary);\r\n    }\r\n\r\n    .play-btn {\r\n        width: clamp(50px, 12vw, 60px);\r\n        height: clamp(50px, 12vw, 60px);\r\n        background: linear-gradient(135deg, var(--primary), var(--accent));\r\n        font-size: clamp(1rem, 3vw, 1.4rem);\r\n        border: none;\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    .volume-control {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.3rem, 1.5vw, 0.5rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .volume-slider {\r\n        width: clamp(60px, 15vw, 80px);\r\n        height: clamp(4px, 1.5vw, 6px);\r\n        background: rgba(255, 255, 255, 0.2);\r\n        border-radius: 3px;\r\n        cursor: pointer;\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .volume-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--secondary), var(--secondary-light));\r\n        border-radius: 3px;\r\n        width: 100%;\r\n        transition: width 0.1s ease;\r\n        box-shadow: 0 0 8px rgba(37, 244, 238, 0.4);\r\n    }\r\n\r\n    \/* Download Section *\/\r\n    .download-section {\r\n        background: linear-gradient(135deg,\r\n                rgba(37, 244, 238, 0.1) 0%,\r\n                rgba(37, 244, 238, 0.1) 50%,\r\n                var(--glass-bg) 100%);\r\n        border: 2px solid rgba(37, 244, 238, 0.3);\r\n        border-radius: 20px;\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        margin-bottom: 1.5rem;\r\n        box-shadow: var(--shadow-primary), var(--shadow-accent);\r\n        position: relative;\r\n        overflow: hidden;\r\n        backdrop-filter: blur(15px);\r\n    }\r\n\r\n    .download-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: linear-gradient(90deg,\r\n                transparent,\r\n                var(--secondary),\r\n                var(--secondary-light),\r\n                transparent);\r\n        animation: borderFlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    .download-header {\r\n        text-align: center;\r\n        margin-bottom: clamp(0.8rem, 2.5vw, 1.2rem);\r\n    }\r\n\r\n    .download-title {\r\n        font-size: clamp(1rem, 3vw, 1.2rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--secondary), var(--secondary-light));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        animation: titlePulse 4s ease-in-out infinite;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .download-subtitle {\r\n        color: var(--text-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n    }\r\n\r\n    .download-grid {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\r\n        gap: clamp(0.8rem, 2vw, 1rem);\r\n    }\r\n\r\n    .download-btn {\r\n        background: linear-gradient(135deg, var(--secondary), var(--secondary-light));\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(0.8rem, 3vw, 1rem) clamp(1rem, 3vw, 1.5rem);\r\n        border-radius: 16px;\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        box-shadow: var(--shadow-primary), var(--shadow-accent);\r\n        position: relative;\r\n        overflow: hidden;\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        animation: buttonGlow 5s ease-in-out infinite;\r\n        border: 1px solid rgba(37, 244, 238, 0.3);\r\n        min-height: 48px;\r\n        text-align: center;\r\n    }\r\n\r\n    .download-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .download-btn:hover:not(:disabled)::before,\r\n    .download-btn:active:not(:disabled)::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .download-btn:hover:not(:disabled),\r\n    .download-btn:active:not(:disabled) {\r\n        transform: translateY(-3px) scale(1.02);\r\n        box-shadow: var(--shadow-primary), var(--glow-secondary);\r\n    }\r\n\r\n    .download-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n        animation: none;\r\n    }\r\n\r\n    .download-btn.hd {\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        border-color: rgba(139, 92, 246, 0.3);\r\n    }\r\n\r\n    .download-btn.hd:hover:not(:disabled),\r\n    .download-btn.hd:active:not(:disabled) {\r\n        box-shadow: var(--shadow-primary), 0 0 30px rgba(139, 92, 246, 0.5);\r\n    }\r\n\r\n    \/* Audio Streaming Section *\/\r\n    .audio-streaming {\r\n        background: linear-gradient(135deg,\r\n                rgba(139, 92, 246, 0.12) 0%,\r\n                rgba(236, 72, 153, 0.12) 50%,\r\n                var(--glass-bg) 100%);\r\n        border: 2px solid rgba(139, 92, 246, 0.3);\r\n        border-radius: 20px;\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        backdrop-filter: blur(15px);\r\n    }\r\n\r\n    .audio-streaming::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: linear-gradient(90deg,\r\n                transparent,\r\n                var(--accent),\r\n                var(--accent-light),\r\n                transparent);\r\n        animation: borderFlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    .audio-header {\r\n        text-align: center;\r\n        margin-bottom: clamp(0.8rem, 2.5vw, 1.2rem);\r\n    }\r\n\r\n    .audio-main-title {\r\n        font-size: clamp(1rem, 3vw, 1.2rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        animation: titlePulse 4s ease-in-out infinite;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .audio-subtitle {\r\n        color: var(--text-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n        margin-bottom: clamp(0.8rem, 2.5vw, 1.2rem);\r\n    }\r\n\r\n    .audio-player-section {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.8rem, 3vw, 1.2rem);\r\n        margin-bottom: 1.5rem;\r\n        flex-wrap: wrap;\r\n        justify-content: center;\r\n    }\r\n\r\n    \/* Audio Icon - Left Side, Smaller *\/\r\n    .audio-icon-wrapper {\r\n        position: relative;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .audio-icon {\r\n        width: clamp(40px, 10vw, 50px);\r\n        height: clamp(40px, 10vw, 50px);\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        border-radius: 50%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        font-size: clamp(1rem, 2.5vw, 1.2rem);\r\n        color: white;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        animation: audioIconPulse 4s ease-in-out infinite;\r\n        position: relative;\r\n        z-index: 2;\r\n        border: 2px solid rgba(139, 92, 246, 0.3);\r\n    }\r\n\r\n    .audio-wave {\r\n        position: absolute;\r\n        top: 50%;\r\n        left: 50%;\r\n        transform: translate(-50%, -50%);\r\n        border: 1px solid rgba(139, 92, 246, 0.2);\r\n        border-radius: 50%;\r\n        animation: audioWaveRipple 2s ease-out infinite;\r\n    }\r\n\r\n    .audio-wave:nth-child(1) {\r\n        width: clamp(50px, 12vw, 60px);\r\n        height: clamp(50px, 12vw, 60px);\r\n        animation-delay: 0s;\r\n    }\r\n\r\n    .audio-wave:nth-child(2) {\r\n        width: clamp(60px, 15vw, 75px);\r\n        height: clamp(60px, 15vw, 75px);\r\n        animation-delay: 0.5s;\r\n    }\r\n\r\n    .audio-wave:nth-child(3) {\r\n        width: clamp(70px, 18vw, 90px);\r\n        height: clamp(70px, 18vw, 90px);\r\n        animation-delay: 1s;\r\n    }\r\n\r\n    .audio-info {\r\n        flex: 1;\r\n        min-width: 0;\r\n        text-align: center;\r\n    }\r\n\r\n    .audio-title {\r\n        font-size: clamp(0.9rem, 2.5vw, 1rem);\r\n        font-weight: 700;\r\n        color: var(--text-primary);\r\n        margin-bottom: 0.25rem;\r\n        word-break: break-word;\r\n    }\r\n\r\n    .audio-artist {\r\n        font-size: clamp(0.75rem, 2vw, 0.85rem);\r\n        color: var(--text-secondary);\r\n        margin-bottom: 1rem;\r\n        word-break: break-word;\r\n    }\r\n\r\n    \/* Audio Progress Bar *\/\r\n    .audio-progress-container {\r\n        width: 100%;\r\n        margin-bottom: 1rem;\r\n    }\r\n\r\n    .audio-progress {\r\n        height: clamp(6px, 2vw, 8px);\r\n        background: rgba(139, 92, 246, 0.2);\r\n        border-radius: 4px;\r\n        position: relative;\r\n        cursor: pointer;\r\n        overflow: hidden;\r\n        margin-bottom: 0.5rem;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .audio-progress-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--accent), var(--accent-light));\r\n        border-radius: 4px;\r\n        width: 0%;\r\n        transition: width 0.1s ease;\r\n        box-shadow: 0 0 10px rgba(139, 92, 246, 0.4);\r\n    }\r\n\r\n    .audio-time {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        color: var(--text-secondary);\r\n        margin-bottom: 1rem;\r\n    }\r\n\r\n    \/* Audio Controls *\/\r\n    .audio-controls {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: clamp(0.8rem, 3vw, 1rem);\r\n        margin-bottom: 1rem;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .audio-play-btn {\r\n        width: clamp(44px, 10vw, 50px);\r\n        height: clamp(44px, 10vw, 50px);\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        border: none;\r\n        border-radius: 50%;\r\n        color: white;\r\n        cursor: pointer;\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        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        font-size: clamp(1rem, 2.5vw, 1.2rem);\r\n        flex-shrink: 0;\r\n        animation: audioPlayPulse 4s ease-in-out infinite;\r\n        border: 2px solid rgba(139, 92, 246, 0.3);\r\n        min-height: 44px;\r\n        min-width: 44px;\r\n    }\r\n\r\n    .audio-play-btn:hover,\r\n    .audio-play-btn:active {\r\n        transform: scale(1.1);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    \/* Audio Volume Control *\/\r\n    .audio-volume-control {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.5rem, 2vw, 0.75rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .audio-volume-btn {\r\n        background: rgba(139, 92, 246, 0.15);\r\n        border: none;\r\n        color: var(--accent-light);\r\n        width: clamp(36px, 8vw, 40px);\r\n        height: clamp(36px, 8vw, 40px);\r\n        border-radius: 50%;\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        transition: all 0.3s ease;\r\n        backdrop-filter: blur(10px);\r\n        border: 1px solid rgba(139, 92, 246, 0.2);\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        min-height: 44px;\r\n        min-width: 44px;\r\n    }\r\n\r\n    .audio-volume-btn:hover,\r\n    .audio-volume-btn:active {\r\n        background: rgba(139, 92, 246, 0.25);\r\n        transform: scale(1.1);\r\n        box-shadow: var(--shadow-primary);\r\n    }\r\n\r\n    .audio-volume-slider {\r\n        width: clamp(60px, 15vw, 80px);\r\n        height: clamp(4px, 1.5vw, 6px);\r\n        background: rgba(139, 92, 246, 0.2);\r\n        border-radius: 3px;\r\n        cursor: pointer;\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .audio-volume-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--accent), var(--accent-light));\r\n        border-radius: 3px;\r\n        width: 100%;\r\n        transition: width 0.1s ease;\r\n        box-shadow: 0 0 8px rgba(139, 92, 246, 0.4);\r\n    }\r\n\r\n    .download-audio-section {\r\n        text-align: center;\r\n    }\r\n\r\n    .download-audio-btn {\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-dark));\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(0.8rem, 3vw, 1rem) clamp(1rem, 3vw, 1.5rem);\r\n        border-radius: 16px;\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: inline-flex;\r\n        align-items: center;\r\n        gap: 0.5rem;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        animation: buttonGlow 5s ease-in-out infinite;\r\n        border: 1px solid rgba(139, 92, 246, 0.3);\r\n        min-height: 48px;\r\n        width: 100%;\r\n        max-width: 300px;\r\n        justify-content: center;\r\n    }\r\n\r\n    .download-audio-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .download-audio-btn:hover:not(:disabled)::before,\r\n    .download-audio-btn:active:not(:disabled)::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .download-audio-btn:hover:not(:disabled),\r\n    .download-audio-btn:active:not(:disabled) {\r\n        transform: translateY(-3px) scale(1.02);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    .download-audio-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n        animation: none;\r\n    }\r\n\r\n    \/* Download Progress *\/\r\n    .download-progress {\r\n        position: fixed;\r\n        bottom: 1.5rem;\r\n        right: 1.5rem;\r\n        background: linear-gradient(135deg,\r\n                var(--glass-bg) 0%,\r\n                rgba(139, 92, 246, 0.15) 100%);\r\n        backdrop-filter: blur(25px);\r\n        border: 2px solid var(--glass-border);\r\n        border-radius: 18px;\r\n        padding: clamp(1rem, 3vw, 1.5rem) clamp(1.5rem, 4vw, 2rem);\r\n        min-width: min(320px, 90vw);\r\n        max-width: 90vw;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        z-index: 1000;\r\n        display: none;\r\n    }\r\n\r\n    .download-progress.show {\r\n        display: block;\r\n        animation: slideInRight 0.4s ease-out;\r\n    }\r\n\r\n    .progress-header {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        margin-bottom: 1rem;\r\n        gap: 1rem;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .progress-text {\r\n        font-weight: 700;\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        color: var(--text-primary);\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        flex: 1;\r\n        min-width: 0;\r\n    }\r\n\r\n    .cancel-btn {\r\n        background: rgba(254, 44, 85, 0.15);\r\n        border: 1px solid rgba(254, 44, 85, 0.3);\r\n        color: var(--primary-light);\r\n        padding: clamp(0.4rem, 1.5vw, 0.5rem) clamp(0.8rem, 2vw, 1rem);\r\n        border-radius: 10px;\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        cursor: pointer;\r\n        transition: all 0.3s ease;\r\n        font-weight: 600;\r\n        backdrop-filter: blur(10px);\r\n        min-height: 36px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .cancel-btn:hover,\r\n    .cancel-btn:active {\r\n        background: rgba(254, 44, 85, 0.25);\r\n        transform: scale(1.05);\r\n    }\r\n\r\n    .progress-bar-container {\r\n        width: 100%;\r\n        height: clamp(6px, 2vw, 8px);\r\n        background: rgba(139, 92, 246, 0.2);\r\n        border-radius: 4px;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .progress-bar-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--secondary), var(--secondary-light));\r\n        border-radius: 4px;\r\n        width: 0%;\r\n        transition: width 0.3s ease;\r\n        box-shadow: 0 0 12px rgba(37, 244, 238, 0.4);\r\n        animation: progressGlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    \/* Error Message *\/\r\n    .error-message {\r\n        background: linear-gradient(135deg,\r\n                rgba(254, 44, 85, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n        border: 2px solid rgba(254, 44, 85, 0.3);\r\n        color: var(--accent-light);\r\n        padding: clamp(1rem, 3vw, 1.2rem) clamp(1.2rem, 4vw, 1.8rem);\r\n        border-radius: 16px;\r\n        margin: 1rem 0;\r\n        display: none;\r\n        align-items: center;\r\n        gap: clamp(0.5rem, 2vw, 1rem);\r\n        font-weight: 600;\r\n        backdrop-filter: blur(15px);\r\n        box-shadow: var(--shadow-primary);\r\n        animation: errorShake 0.5s ease-in-out;\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .error-message.show {\r\n        display: flex;\r\n        animation: fadeInUp 0.3s ease-out, errorShake 0.5s ease-in-out;\r\n    }\r\n\r\n    \/* Animations *\/\r\n    @keyframes gradientShift {\r\n        0%, 100% { background-position: 0% 50%; }\r\n        50% { background-position: 100% 50%; }\r\n    }\r\n\r\n    @keyframes backgroundFloat {\r\n        0%, 100% { opacity: 1; transform: translateY(0px); }\r\n        50% { opacity: 0.8; transform: translateY(-10px); }\r\n    }\r\n\r\n    @keyframes fadeInDown {\r\n        from { opacity: 0; transform: translateY(-40px); }\r\n        to { opacity: 1; transform: translateY(0); }\r\n    }\r\n\r\n    @keyframes fadeInUp {\r\n        from { opacity: 0; transform: translateY(40px); }\r\n        to { opacity: 1; transform: translateY(0); }\r\n    }\r\n\r\n    @keyframes slideInRight {\r\n        from { opacity: 0; transform: translateX(100%); }\r\n        to { opacity: 1; transform: translateX(0); }\r\n    }\r\n\r\n    @keyframes spin {\r\n        to { transform: rotate(360deg); }\r\n    }\r\n\r\n    @keyframes logoFloat {\r\n        0%, 100% { transform: translateY(0px) rotate(0deg); }\r\n        50% { transform: translateY(-10px) rotate(5deg); }\r\n    }\r\n\r\n    @keyframes logoShine {\r\n        0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }\r\n        100% { transform: translateX(100%) translateY(100%) rotate(45deg); }\r\n    }\r\n\r\n    @keyframes textGradient {\r\n        0%, 100% { background-position: 0% 50%; }\r\n        50% { background-position: 100% 50%; }\r\n    }\r\n\r\n    @keyframes subtitleGlow {\r\n        0%, 100% { text-shadow: 0 0 5px rgba(176, 190, 197, 0.3); }\r\n        50% { text-shadow: 0 0 15px rgba(176, 190, 197, 0.6); }\r\n    }\r\n\r\n    @keyframes borderFlow {\r\n        0%, 100% { opacity: 0.5; }\r\n        50% { opacity: 1; }\r\n    }\r\n\r\n    @keyframes overlayPulse {\r\n        0%, 100% { opacity: 1; }\r\n        50% { opacity: 0.7; }\r\n    }\r\n\r\n    @keyframes inputFocusGlow {\r\n        0%, 100% { box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.2), var(--glow-primary), inset 0 2px 10px rgba(0, 0, 0, 0.3); }\r\n        50% { box-shadow: 0 0 0 6px rgba(139, 92, 246, 0.4), var(--glow-primary), inset 0 2px 10px rgba(0, 0, 0, 0.3); }\r\n    }\r\n\r\n    @keyframes buttonPulse {\r\n        0%, 100% { box-shadow: var(--shadow-primary), var(--shadow-secondary); }\r\n        50% { box-shadow: var(--shadow-primary), var(--glow-primary); }\r\n    }\r\n\r\n    @keyframes buttonHoverGlow {\r\n        0%, 100% { filter: brightness(1); }\r\n        50% { filter: brightness(1.2); }\r\n    }\r\n\r\n    @keyframes textFade {\r\n        0%, 100% { opacity: 0.7; }\r\n        50% { opacity: 1; }\r\n    }\r\n\r\n    @keyframes avatarPulse {\r\n        0%, 100% { box-shadow: var(--shadow-primary), var(--shadow-secondary); }\r\n        50% { box-shadow: var(--shadow-primary), 0 0 30px rgba(254, 44, 85, 0.6); }\r\n    }\r\n\r\n    @keyframes valueGlow {\r\n        0%, 100% { filter: brightness(1); }\r\n        50% { filter: brightness(1.2); }\r\n    }\r\n\r\n    @keyframes gridMove {\r\n        0% { transform: translate(0, 0); }\r\n        100% { transform: translate(30px, 30px); }\r\n    }\r\n\r\n    @keyframes titlePulse {\r\n        0%, 100% { filter: brightness(1); }\r\n        50% { filter: brightness(1.3); }\r\n    }\r\n\r\n    @keyframes playButtonPulse {\r\n        0%, 100% { transform: scale(1); }\r\n        50% { transform: scale(1.05); }\r\n    }\r\n\r\n    @keyframes buttonGlow {\r\n        0%, 100% { box-shadow: var(--shadow-primary); }\r\n        50% { box-shadow: var(--shadow-primary), var(--shadow-secondary); }\r\n    }\r\n\r\n    @keyframes audioIconPulse {\r\n        0%, 100% { transform: scale(1); }\r\n        50% { transform: scale(1.1); }\r\n    }\r\n\r\n    @keyframes audioWaveRipple {\r\n        0% { opacity: 1; transform: translate(-50%, -50%) scale(0.8); }\r\n        100% { opacity: 0; transform: translate(-50%, -50%) scale(2); }\r\n    }\r\n\r\n    @keyframes audioPlayPulse {\r\n        0%, 100% { box-shadow: var(--shadow-primary), var(--shadow-secondary); }\r\n        50% { box-shadow: var(--shadow-primary), var(--glow-primary); }\r\n    }\r\n\r\n    @keyframes progressGlow {\r\n        0%, 100% { box-shadow: 0 0 12px rgba(37, 244, 238, 0.4); }\r\n        50% { box-shadow: 0 0 20px rgba(37, 244, 238, 0.8); }\r\n    }\r\n\r\n    @keyframes errorShake {\r\n        0%, 100% { transform: translateX(0); }\r\n        25% { transform: translateX(-5px); }\r\n        75% { transform: translateX(5px); }\r\n    }\r\n\r\n    \/* Responsive Design *\/\r\n    @media (max-width: 1024px) {\r\n        .container_tiktok {\r\n            padding: clamp(1rem, 3vw, 1.5rem);\r\n        }\r\n\r\n        .video-stats {\r\n            grid-template-columns: repeat(3, 1fr);\r\n        }\r\n\r\n        .download-grid {\r\n            grid-template-columns: 1fr;\r\n        }\r\n\r\n        .action-buttons {\r\n            grid-template-columns: 1fr;\r\n            gap: 1rem;\r\n        }\r\n\r\n        .search-another-btn {\r\n            width: 100%;\r\n        }\r\n\r\n        .audio-player-section {\r\n            flex-direction: column;\r\n            text-align: center;\r\n            gap: 1rem;\r\n        }\r\n\r\n        .audio-controls {\r\n            flex-direction: row;\r\n            justify-content: center;\r\n            gap: 1rem;\r\n        }\r\n\r\n        .audio-volume-control {\r\n            justify-content: center;\r\n        }\r\n\r\n        .video-player-wrapper {\r\n            max-width: min(320px, 85vw);\r\n        }\r\n\r\n    \/* Responsive Design *\/\r\n\/* Extra Small Devices (phones, 320px and down) *\/\r\n@media (max-width: 320px) {\r\n    .container_tiktok {\r\n        padding: 16px 8px;\r\n    }\r\n    \r\n    .logo-container {\r\n        padding-top: 40px;\r\n    }\r\n    \r\n    .logo-icon {\r\n        font-size: 2rem;\r\n        margin-top: 20px !important;\r\n    }\r\n    \r\n    .logo-text {\r\n        font-size: 1.4rem !important;\r\n    }\r\n    \r\n    .subtitle {\r\n        font-size: 0.8rem;\r\n    }\r\n    \r\n    .search-section {\r\n        padding: 16px;\r\n        margin-bottom: 16px;\r\n    }\r\n    \r\n    .input-field {\r\n        padding: 12px 16px !important;\r\n        font-size: 14px !important;\r\n    }\r\n    \r\n    .search-btn {\r\n        padding: 12px 16px !important;\r\n        font-size: 14px !important;\r\n        min-height: 44px;\r\n    }\r\n    \r\n    .paste-btn {\r\n        padding: 8px 12px !important;\r\n        font-size: 12px !important;\r\n        min-height: 36px;\r\n    }\r\n}\r\n\r\n\/* Small Devices (phones, 321px to 480px) *\/\r\n@media (min-width: 321px) and (max-width: 480px) {\r\n    .container_tiktok {\r\n        padding: 20px 12px;\r\n    }\r\n    \r\n    .logo-container {\r\n        padding-top: 50px;\r\n    }\r\n    \r\n    .logo-icon {\r\n        font-size: 2.5rem;\r\n        margin-top: 25px !important;\r\n    }\r\n    \r\n    .logo-text {\r\n        font-size: 1.6rem !important;\r\n    }\r\n    \r\n    .subtitle {\r\n        font-size: 0.9rem;\r\n    }\r\n    \r\n    .search-section {\r\n        padding: 20px;\r\n        margin-bottom: 20px;\r\n    }\r\n    \r\n    .input-field {\r\n        padding: 14px 18px !important;\r\n        font-size: 15px !important;\r\n    }\r\n    \r\n    .search-btn {\r\n        padding: 14px 20px !important;\r\n        font-size: 15px !important;\r\n        min-height: 48px;\r\n    }\r\n    \r\n    .paste-btn {\r\n        padding: 10px 14px !important;\r\n        font-size: 13px !important;\r\n        min-height: 40px;\r\n    }\r\n}\r\n\r\n\/* Medium Devices (tablets, 481px to 768px) *\/\r\n@media (min-width: 481px) and (max-width: 768px) {\r\n    .container_tiktok {\r\n        padding: 24px 16px;\r\n    }\r\n    \r\n    .logo-container {\r\n        padding-top: 55px;\r\n    }\r\n    \r\n    .logo-icon {\r\n        font-size: 3rem;\r\n        margin-top: 30px !important;\r\n    }\r\n    \r\n    .logo-text {\r\n        font-size: 1.8rem !important;\r\n    }\r\n    \r\n    .subtitle {\r\n        font-size: 1rem;\r\n    }\r\n    \r\n    .search-section {\r\n        padding: 24px;\r\n        margin-bottom: 24px;\r\n    }\r\n    \r\n    .input-field {\r\n        padding: 16px 20px !important;\r\n        font-size: 16px !important;\r\n    }\r\n    \r\n    .search-btn {\r\n        padding: 16px 24px !important;\r\n        font-size: 16px !important;\r\n        min-height: 52px;\r\n    }\r\n    \r\n    .paste-btn {\r\n        padding: 12px 16px !important;\r\n        font-size: 14px !important;\r\n        min-height: 44px;\r\n        margin-bottom: 10px;\r\n    }\r\n}\r\n\r\n\/* Large Devices (desktops, 769px to 1024px) *\/\r\n@media (min-width: 769px) and (max-width: 1024px) {\r\n    .container_tiktok {\r\n        padding: 28px 20px;\r\n    }\r\n    \r\n    .logo-container {\r\n        padding-top: 60px;\r\n    }\r\n    \r\n    .logo-icon {\r\n        font-size: 3.5rem;\r\n        margin-top: 35px !important;\r\n    }\r\n    \r\n    .logo-text {\r\n        font-size: 2rem !important;\r\n    }\r\n    \r\n    .subtitle {\r\n        font-size: 1.1rem;\r\n    }\r\n    \r\n    .search-section {\r\n        padding: 28px;\r\n        margin-bottom: 28px;\r\n    }\r\n    \r\n    .input-field {\r\n        padding: 18px 22px !important;\r\n        font-size: 16px !important;\r\n    }\r\n    \r\n    .search-btn {\r\n        padding: 18px 28px !important;\r\n        font-size: 16px !important;\r\n        min-height: 56px;\r\n    }\r\n    \r\n    .paste-btn {\r\n        padding: 14px 18px !important;\r\n        font-size: 14px !important;\r\n        min-height: 44px;\r\n        margin-bottom: 10px !important;\r\n    }\r\n}\r\n\r\n\/* Extra Large Devices (large desktops, 1025px and up) *\/\r\n@media (min-width: 1025px) {\r\n    .container_tiktok {\r\n        padding: 32px 24px;\r\n    }\r\n    \r\n    .logo-container {\r\n        padding-top: 60px;\r\n    }\r\n    \r\n    .logo-icon {\r\n        font-size: 4rem;\r\n        margin-top: 30px !important;\r\n    }\r\n    \r\n    .logo-text {\r\n        font-size: 2.5rem !important;\r\n    }\r\n    \r\n    .subtitle {\r\n        font-size: 1.2rem;\r\n    }\r\n    \r\n    .search-section {\r\n        padding: 32px;\r\n        margin-bottom: 32px;\r\n    }\r\n    \r\n    .input-field {\r\n        padding: 20px 24px !important;\r\n        font-size: 16px !important;\r\n    }\r\n    \r\n    .search-btn {\r\n        padding: 20px 32px !important;\r\n        font-size: 16px !important;\r\n        min-height: 56px;\r\n    }\r\n    \r\n    .paste-btn {\r\n        padding: 16px 20px !important;\r\n        font-size: 14px !important;\r\n        min-height: 44px;\r\n    }\r\n}\r\n\r\n\/* Landscape orientation adjustments *\/\r\n@media (orientation: landscape) and (max-height: 600px) {\r\n    .header {\r\n        margin-bottom: 20px;\r\n    }\r\n    \r\n    .logo-container {\r\n        padding-top: 30px;\r\n    }\r\n    \r\n    .logo-icon {\r\n        margin-top: 15px !important;\r\n    }\r\n    \r\n    .logo-text {\r\n        font-size: 1.4rem !important;\r\n    }\r\n    \r\n    .subtitle {\r\n        font-size: 0.8rem;\r\n    }\r\n    \r\n    .search-section {\r\n        padding: 16px;\r\n        margin-bottom: 16px;\r\n    }\r\n    \r\n    .input-field {\r\n        padding: 12px 16px !important;\r\n    }\r\n    \r\n    .search-btn {\r\n        padding: 12px 16px !important;\r\n        min-height: 40px;\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    .logo-icon i {\r\n        image-rendering: -webkit-optimize-contrast;\r\n        image-rendering: crisp-edges;\r\n    }\r\n}\r\n\r\n\/* Reduced motion preferences *\/\r\n@media (prefers-reduced-motion: reduce) {\r\n    *,\r\n    *::before,\r\n    *::after {\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\r\n\/* Touch device optimizations *\/\r\n@media (hover: none) and (pointer: coarse) {\r\n    .search-btn:hover,\r\n    .paste-btn:hover {\r\n        transform: none;\r\n    }\r\n    \r\n    .search-btn:active,\r\n    .paste-btn:active {\r\n        transform: scale(0.98);\r\n    }\r\n}\r\n\r\n      .video-controls {\r\n            transform: translateY(0);\r\n            position: relative;\r\n            background: rgba(0, 0, 0, 0.8);\r\n            margin-top: 1rem;\r\n            border-radius: 12px;\r\n        }\r\n\r\n        .video-player-wrapper:hover .video-controls {\r\n            transform: translateY(0);\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n        .container_tiktok {\r\n            padding: 0.8rem;\r\n        }\r\n\r\n        .header {\r\n            margin-bottom: 1.5rem;\r\n        }\r\n\r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n        }\r\n\r\n        .video-stats {\r\n            grid-template-columns: 1fr;\r\n            gap: 0.6rem;\r\n        }\r\n\r\n        .stat-item {\r\n            min-height: 70px;\r\n            padding: 0.8rem;\r\n        }\r\n\r\n        .stat-value {\r\n            font-size: 1.3rem;\r\n        }\r\n\r\n        .audio-player-section {\r\n            gap: 0.8rem;\r\n        }\r\n\r\n        .audio-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            font-size: 1rem;\r\n        }\r\n\r\n        .audio-play-btn {\r\n            width: 44px;\r\n            height: 44px;\r\n            font-size: 1rem;\r\n        }\r\n\r\n        .video-player-wrapper {\r\n            max-width: min(280px, 75vw);\r\n        }\r\n\r\n        .thumbnail-play-btn {\r\n            width: 60px;\r\n            height: 60px;\r\n            font-size: 1.5rem;\r\n        }\r\n\r\n        .download-progress {\r\n            left: 0.5rem;\r\n            right: 0.5rem;\r\n            bottom: 0.5rem;\r\n            padding: 1rem;\r\n        }\r\n\r\n        .progress-header {\r\n            flex-direction: column;\r\n            gap: 0.5rem;\r\n            align-items: stretch;\r\n        }\r\n\r\n        .cancel-btn {\r\n            align-self: center;\r\n            min-width: 80px;\r\n        }\r\n\r\n        .input-field {\r\n            font-size: 16px;\r\n        }\r\n\r\n        .control-btn,\r\n        .audio-play-btn,\r\n        .audio-volume-btn,\r\n        .paste-btn,\r\n        .search-btn,\r\n        .download-btn,\r\n        .download-audio-btn {\r\n            min-height: 44px;\r\n            min-width: 44px;\r\n        }\r\n\r\n        .progress-bar,\r\n        .audio-progress,\r\n        .volume-slider,\r\n        .audio-volume-slider {\r\n            min-height: 44px;\r\n        }\r\n\r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n            margin-top: 60px;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 360px) {\r\n        .container_tiktok {\r\n            padding: 0.5rem;\r\n        }\r\n\r\n        .search-section,\r\n        .video-section,\r\n        .download-section,\r\n        .audio-streaming {\r\n            padding: 1rem;\r\n            border-radius: 16px;\r\n        }\r\n\r\n        .logo-text {\r\n            font-size: 1.5rem;\r\n            letter-spacing: -1px;\r\n        }\r\n\r\n        .subtitle {\r\n            font-size: 0.8rem;\r\n        }\r\n\r\n        .video-player-wrapper {\r\n            max-width: min(260px, 70vw);\r\n        }\r\n\r\n        .audio-wave:nth-child(1) {\r\n            width: 45px;\r\n            height: 45px;\r\n        }\r\n\r\n        .audio-wave:nth-child(2) {\r\n            width: 55px;\r\n            height: 55px;\r\n        }\r\n\r\n        .audio-wave:nth-child(3) {\r\n            width: 65px;\r\n            height: 65px;\r\n        }\r\n\r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n            margin-top: 60px;\r\n        }\r\n    }\r\n\r\n    @media (max-height: 500px) and (orientation: landscape) {\r\n        .container_tiktok {\r\n            padding: 1rem;\r\n        }\r\n\r\n        .header {\r\n            margin-bottom: 1rem;\r\n        }\r\n\r\n        .logo {\r\n            flex-direction: row;\r\n            gap: 1rem;\r\n        }\r\n\r\n        .logo-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            font-size: 16px;\r\n        }\r\n\r\n        .video-player-wrapper {\r\n            max-width: min(200px, 30vw);\r\n        }\r\n\r\n        .video-stats {\r\n            grid-template-columns: repeat(5, 1fr);\r\n            gap: 0.5rem;\r\n        }\r\n\r\n        .stat-item {\r\n            min-height: 60px;\r\n            padding: 0.5rem;\r\n        }\r\n\r\n        .stat-value {\r\n            font-size: 1rem;\r\n        }\r\n\r\n        .stat-label {\r\n            font-size: 0.6rem;\r\n        }\r\n    }\r\n\r\n    @media (-webkit-min-device-pixel-ratio: 2),\r\n    (min-resolution: 192dpi) {\r\n        .logo-icon,\r\n        .author-avatar,\r\n        .audio-icon,\r\n        .thumbnail-play-btn,\r\n        .audio-play-btn {\r\n            image-rendering: -webkit-optimize-contrast;\r\n            image-rendering: crisp-edges;\r\n        }\r\n    }\r\n\r\n    @media (prefers-reduced-motion: reduce) {\r\n        *, *::before, *::after {\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        .video-player-wrapper,\r\n        .search-section,\r\n        .video-section,\r\n        .download-section,\r\n        .audio-streaming {\r\n            animation: none !important;\r\n        }\r\n    }\r\n\r\n    @media (prefers-contrast: high) {\r\n        :root {\r\n            --glass-bg: rgba(0, 0, 0, 0.9);\r\n            --glass-border: rgba(255, 255, 255, 0.8);\r\n            --shadow-primary: 0 4px 20px rgba(0, 0, 0, 0.8);\r\n            --shadow-secondary: 0 8px 40px rgba(0, 0, 0, 0.9);\r\n        }\r\n\r\n        .input-field,\r\n        .search-btn,\r\n        .download-btn,\r\n        .audio-play-btn {\r\n            border: 2px solid var(--text-primary);\r\n        }\r\n    }\r\n\r\n    @media (prefers-color-scheme: dark) {\r\n        body {\r\n            background: linear-gradient(135deg,\r\n                    #000000 0%,\r\n                    var(--background-primary) 25%,\r\n                    var(--background-secondary) 50%,\r\n                    var(--background-tertiary) 75%,\r\n                    #0f0f2e 100%);\r\n        }\r\n    }\r\n\r\n    @media print {\r\n        body {\r\n            background: white !important;\r\n            color: black !important;\r\n        }\r\n\r\n        .container_tiktok {\r\n            max-width: none;\r\n            padding: 0;\r\n        }\r\n\r\n        .video-player-wrapper,\r\n        .download-section,\r\n        .audio-streaming,\r\n        .download-progress {\r\n            display: none !important;\r\n        }\r\n\r\n        .search-section,\r\n        .video-section {\r\n            background: white !important;\r\n            border: 1px solid black !important;\r\n            box-shadow: none !important;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div class=\"tiktok_body\">\r\n    <div class=\"container_tiktok\">\r\n        <!-- Header -->\r\n        <div class=\"header\">\r\n            <div class=\"logo\">\r\n                <div class=\"logo-icon\">\r\n                    <i class=\"fab fa-tiktok\"><\/i>\r\n                <\/div>\r\n                <h1 class=\"logo-text\">TikTok Link Viewer \u2192 Open Videos From URLs<\/h1>\r\n            <\/div>\r\n            <p class=\"subtitle\">Stream & Download TikTok Videos in Ultra Premium Quality<\/p>\r\n        <\/div>\r\n\r\n        <!-- Search Section -->\r\n        <div class=\"search-section\">\r\n            <div class=\"input-group\">\r\n                <input type=\"text\" class=\"input-field\" id=\"videoInput\" placeholder=\"Enter TikTok video URL or video ID\">\r\n                <div class=\"input-actions\">\r\n                    <span>Supports URLs and video IDs<\/span>\r\n                    <button class=\"paste-btn\" onclick=\"pasteFromClipboard()\">\r\n                        <i class=\"fas fa-paste\"><\/i> Paste\r\n                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"action-buttons\">\r\n                <button class=\"search-btn\" onclick=\"loadVideo()\" id=\"loadBtn\">\r\n                    <i class=\"fas fa-play-circle\"><\/i>\r\n                    <span id=\"loadText\">Load Video<\/span>\r\n                <\/button>\r\n                <button class=\"search-another-btn\" onclick=\"searchAnother()\" id=\"searchAnotherBtn\" style=\"display: none;\">\r\n                    <i class=\"fas fa-search\"><\/i> Search Another\r\n                <\/button>\r\n            <\/div>\r\n\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>\r\n\r\n        <!-- Loading Animation -->\r\n        <div class=\"loading\" id=\"loading\">\r\n            <div class=\"loading-spinner\">\r\n                <div class=\"spinner-ring\"><\/div>\r\n                <div class=\"spinner-ring\"><\/div>\r\n                <div class=\"spinner-ring\"><\/div>\r\n            <\/div>\r\n            <div class=\"loading-text\">Loading TikTok Video<\/div>\r\n            <div class=\"loading-subtext\">Fetching video details and preparing premium stream...<\/div>\r\n        <\/div>\r\n\r\n        <!-- Main Video Section -->\r\n        <div class=\"video-section\" id=\"videoSection\">\r\n            <!-- Full Width Title -->\r\n            <h2 class=\"video-title\" id=\"videoTitle\"><\/h2>\r\n\r\n            <!-- Author Info -->\r\n            <div class=\"author-section\" id=\"authorSection\">\r\n                <img decoding=\"async\" class=\"author-avatar\" id=\"authorAvatar\" src=\"\/placeholder.svg\" alt=\"Author\">\r\n                <div class=\"author-details\">\r\n                    <h3 id=\"authorName\"><\/h3>\r\n                    <p class=\"author-username\" id=\"authorUsername\"><\/p>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Stats Grid -->\r\n            <div class=\"video-stats\" id=\"videoStats\"><\/div>\r\n\r\n            <!-- Video Streaming Area -->\r\n            <div class=\"video-streaming-area\">\r\n                <div class=\"streaming-header\">\r\n                    <h3 class=\"streaming-title\">\ud83c\udfac Video Streaming<\/h3>\r\n                    <p class=\"streaming-subtitle\">High Quality Video Player with Premium Controls<\/p>\r\n                <\/div>\r\n\r\n                <div class=\"video-player-wrapper\">\r\n                    <!-- Video Thumbnail -->\r\n                    <img decoding=\"async\" class=\"video-thumbnail\" id=\"videoThumbnail\" src=\"\/placeholder.svg\" alt=\"Video Thumbnail\">\r\n                    <div class=\"thumbnail-overlay\" onclick=\"startVideoPlayback()\">\r\n                        <button class=\"thumbnail-play-btn\">\r\n                            <i class=\"fas fa-play\"><\/i>\r\n                        <\/button>\r\n                    <\/div>\r\n\r\n                    <!-- Video Player -->\r\n                    <video class=\"video-player\" id=\"videoPlayer\" loop preload=\"metadata\">\r\n                        Your browser doesn't support video playback.\r\n                    <\/video>\r\n\r\n                    <div class=\"video-controls\" id=\"videoControls\">\r\n                        <div class=\"progress-bar\" onclick=\"seekVideo(event)\">\r\n                            <div class=\"progress-fill\" id=\"progressFill\"><\/div>\r\n                        <\/div>\r\n\r\n                        <!-- Video Time Display -->\r\n                        <div class=\"video-time\">\r\n                            <span id=\"videoCurrentTime\">0:00<\/span>\r\n                            <span id=\"videoDuration\">0:00<\/span>\r\n                        <\/div>\r\n\r\n                        <div class=\"control-buttons\">\r\n                            <div class=\"control-group volume-control\">\r\n                                <button class=\"control-btn\" onclick=\"toggleMute()\" id=\"muteBtn\">\r\n                                    <i class=\"fas fa-volume-up\"><\/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-btn play-btn\" onclick=\"togglePlay()\" id=\"playBtn\">\r\n                                <i class=\"fas fa-play\"><\/i>\r\n                            <\/button>\r\n\r\n                            <div class=\"control-group\">\r\n                                <button class=\"control-btn\" onclick=\"toggleFullscreen()\" id=\"fullscreenBtn\">\r\n                                    <i class=\"fas fa-expand\"><\/i>\r\n                                <\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Download Section -->\r\n            <div class=\"download-section\">\r\n                <div class=\"download-header\">\r\n                    <h3 class=\"download-title\">\r\n                        <i class=\"fas fa-download\"><\/i>\r\n                        Download Options\r\n                    <\/h3>\r\n                    <p class=\"download-subtitle\">Choose your preferred quality and format<\/p>\r\n                <\/div>\r\n\r\n                <div class=\"download-grid\">\r\n                    <button class=\"download-btn\" onclick=\"downloadVideo('standard')\" id=\"downloadStandard\">\r\n                        <i class=\"fas fa-download\"><\/i>\r\n                        <span>Standard Quality<\/span>\r\n                    <\/button>\r\n                    <button class=\"download-btn hd\" onclick=\"downloadVideo('hd')\" id=\"downloadHD\">\r\n                        <i class=\"fas fa-hd-video\"><\/i>\r\n                        <span>HD Quality<\/span>\r\n                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Audio Streaming Section -->\r\n            <div class=\"audio-streaming\" id=\"audioStreaming\" style=\"display: none;\">\r\n                <div class=\"audio-header\">\r\n                    <h3 class=\"audio-main-title\">\r\n                        <i class=\"fas fa-music\"><\/i>\r\n                        Audio Streaming\r\n                    <\/h3>\r\n                    <p class=\"audio-subtitle\">High Quality Audio Player with Advanced Controls<\/p>\r\n                <\/div>\r\n\r\n                <div class=\"audio-player-section\">\r\n                    <div class=\"audio-icon-wrapper\">\r\n                        <div class=\"audio-wave\"><\/div>\r\n                        <div class=\"audio-wave\"><\/div>\r\n                        <div class=\"audio-wave\"><\/div>\r\n                        <div class=\"audio-icon\">\r\n                            <i class=\"fas fa-music\"><\/i>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"audio-info\">\r\n                        <div class=\"audio-title\" id=\"audioTitle\">Audio Track<\/div>\r\n                        <div class=\"audio-artist\" id=\"audioArtist\">TikTok Audio<\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Audio Progress Bar -->\r\n                <div class=\"audio-progress-container\">\r\n                    <div class=\"audio-progress\" onclick=\"seekAudio(event)\">\r\n                        <div class=\"audio-progress-fill\" id=\"audioProgressFill\"><\/div>\r\n                    <\/div>\r\n                    <div class=\"audio-time\">\r\n                        <span id=\"audioCurrentTime\">0:00<\/span>\r\n                        <span id=\"audioDuration\">0:00<\/span>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Audio Controls -->\r\n                <div class=\"audio-controls\">\r\n                    <button class=\"audio-play-btn\" onclick=\"toggleAudioPlay()\" id=\"audioPlayBtn\">\r\n                        <i class=\"fas fa-play\"><\/i>\r\n                    <\/button>\r\n\r\n                    <!-- Audio Volume Control -->\r\n                    <div class=\"audio-volume-control\">\r\n                        <button class=\"audio-volume-btn\" onclick=\"toggleAudioMute()\" id=\"audioMuteBtn\">\r\n                            <i class=\"fas fa-volume-up\"><\/i>\r\n                        <\/button>\r\n                        <div class=\"audio-volume-slider\" onclick=\"setAudioVolume(event)\">\r\n                            <div class=\"audio-volume-fill\" id=\"audioVolumeFill\"><\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"download-audio-section\">\r\n                    <button class=\"download-audio-btn\" onclick=\"downloadVideo('audio')\" id=\"downloadAudio\">\r\n                        <i class=\"fas fa-download\"><\/i>\r\n                        <span>Download Audio<\/span>\r\n                    <\/button>\r\n                <\/div>\r\n\r\n                <audio id=\"audioElement\" loop><\/audio>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Download Progress -->\r\n    <div class=\"download-progress\" id=\"downloadProgress\">\r\n        <div class=\"progress-header\">\r\n            <span class=\"progress-text\" id=\"progressText\">Downloading...<\/span>\r\n            <button class=\"cancel-btn\" onclick=\"cancelDownload()\">Cancel<\/button>\r\n        <\/div>\r\n        <div class=\"progress-bar-container\">\r\n            <div class=\"progress-bar-fill\" id=\"progressBarFill\"><\/div>\r\n        <\/div>\r\n    <\/div>\r\n\t\r\n\t\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n\t\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n\t\r\n    <script>\r\n        const API_URL = 'https:\/\/tools.xrespond.com\/api\/tiktok\/profile\/videos\/details';\r\n        let currentVideoData = null;\r\n        let isLoading = false;\r\n        let isDownloading = false;\r\n        let downloadController = null;\r\n        let currentVolume = 1;\r\n        let isMuted = false;\r\n        let isFullscreen = false;\r\n        let audioPlaying = false;\r\n        let videoStarted = false;\r\n        let audioCurrentVolume = 1;\r\n        let audioIsMuted = false;\r\n\r\n        \/\/ Mobile detection\r\n        const isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent);\r\n        const isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\r\n\r\n        \/\/ Utility Functions\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        function formatDuration(seconds) {\r\n            const mins = Math.floor(seconds \/ 60);\r\n            const secs = Math.floor(seconds % 60);\r\n            return `${mins}:${secs.toString().padStart(2, '0')}`;\r\n        }\r\n\r\n        function formatFileSize(bytes) {\r\n            if (bytes >= 1024 * 1024) {\r\n                return (bytes \/ (1024 * 1024)).toFixed(1) + ' MB';\r\n            }\r\n            if (bytes >= 1024) {\r\n                return (bytes \/ 1024).toFixed(1) + ' KB';\r\n            }\r\n            return bytes + ' B';\r\n        }\r\n\r\n        \/\/ Mobile-specific functions\r\n        function showVideoControlsOnMobile() {\r\n            if (isMobile || isTouch) {\r\n                const videoControls = document.getElementById('videoControls');\r\n                if (videoControls) {\r\n                    videoControls.classList.add('show');\r\n                    \/\/ Hide after 3 seconds of inactivity\r\n                    setTimeout(() => {\r\n                        if (!videoControls.matches(':hover')) {\r\n                            videoControls.classList.remove('show');\r\n                        }\r\n                    }, 3000);\r\n                }\r\n            }\r\n        }\r\n\r\n        function handleTouchEvents() {\r\n            if (isMobile || isTouch) {\r\n                \/\/ Add touch event listeners for better mobile interaction\r\n                document.addEventListener('touchstart', function (e) {\r\n                    \/\/ Handle touch start\r\n                }, { passive: true });\r\n\r\n                document.addEventListener('touchend', function (e) {\r\n                    \/\/ Handle touch end\r\n                }, { passive: true });\r\n\r\n                \/\/ Prevent zoom on double tap for video controls\r\n                let lastTouchEnd = 0;\r\n                document.addEventListener('touchend', function (e) {\r\n                    const now = (new Date()).getTime();\r\n                    if (now - lastTouchEnd <= 300) {\r\n                        e.preventDefault();\r\n                    }\r\n                    lastTouchEnd = now;\r\n                }, false);\r\n            }\r\n        }\r\n\r\n        \/\/ UI Functions\r\n        function showLoading() {\r\n            document.getElementById('loading').style.display = 'block';\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.classList.add('show');\r\n\r\n            \/\/ Auto-hide error after 5 seconds on mobile\r\n            if (isMobile) {\r\n                setTimeout(() => {\r\n                    hideError();\r\n                }, 5000);\r\n            }\r\n        }\r\n\r\n        function hideError() {\r\n            document.getElementById('errorMessage').classList.remove('show');\r\n        }\r\n\r\n        function showDownloadProgress(text, progress = 0) {\r\n            const progressDiv = document.getElementById('downloadProgress');\r\n            const progressText = document.getElementById('progressText');\r\n            const progressFill = document.getElementById('progressBarFill');\r\n\r\n            \/\/ Add null checks to prevent errors\r\n            if (progressText) {\r\n                progressText.textContent = text;\r\n            }\r\n            if (progressFill) {\r\n                progressFill.style.width = `${progress}%`;\r\n            }\r\n            if (progressDiv) {\r\n                progressDiv.classList.add('show');\r\n            }\r\n        }\r\n\r\n        function hideDownloadProgress() {\r\n            const progressDiv = document.getElementById('downloadProgress');\r\n            if (progressDiv) {\r\n                progressDiv.classList.remove('show');\r\n            }\r\n        }\r\n\r\n        \/\/ Main Functions\r\n        async function pasteFromClipboard() {\r\n            try {\r\n                const text = await navigator.clipboard.readText();\r\n                document.getElementById('videoInput').value = text;\r\n            } catch (err) {\r\n                console.error('Failed to read clipboard:', err);\r\n                \/\/ On mobile, focus the input to show keyboard\r\n                const input = document.getElementById('videoInput');\r\n                input.focus();\r\n                if (isMobile) {\r\n                    input.select();\r\n                }\r\n            }\r\n        }\r\n\r\n        function searchAnother() {\r\n            document.getElementById('videoInput').value = '';\r\n            document.getElementById('videoSection').style.display = 'none';\r\n            document.getElementById('searchAnotherBtn').style.display = 'none';\r\n            document.getElementById('audioStreaming').style.display = 'none';\r\n            currentVideoData = null;\r\n            videoStarted = false;\r\n            hideError();\r\n\r\n            \/\/ Reset players\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const audioElement = document.getElementById('audioElement');\r\n            const videoThumbnail = document.getElementById('videoThumbnail');\r\n            const thumbnailOverlay = document.querySelector('.thumbnail-overlay');\r\n\r\n            videoPlayer.src = '';\r\n            videoPlayer.pause();\r\n            videoPlayer.classList.remove('playing');\r\n            audioElement.src = '';\r\n            audioElement.pause();\r\n            audioPlaying = false;\r\n            document.getElementById('audioPlayBtn').innerHTML = '<i class=\"fas fa-play\"><\/i>';\r\n\r\n            \/\/ Show thumbnail again\r\n            videoThumbnail.style.display = 'block';\r\n            thumbnailOverlay.style.display = 'flex';\r\n\r\n            \/\/ Scroll to top on mobile\r\n            if (isMobile) {\r\n                window.scrollTo({ top: 0, behavior: 'smooth' });\r\n            }\r\n\r\n            document.getElementById('videoInput').focus();\r\n        }\r\n\r\n        async function loadVideo() {\r\n            if (isLoading) return;\r\n\r\n            const input = document.getElementById('videoInput').value.trim();\r\n            if (!input) {\r\n                showError('Please enter a TikTok video URL or ID');\r\n                return;\r\n            }\r\n\r\n            isLoading = true;\r\n            const loadBtn = document.getElementById('loadBtn');\r\n            const loadText = document.getElementById('loadText');\r\n\r\n            loadBtn.disabled = true;\r\n            loadText.textContent = 'Loading...';\r\n            showLoading();\r\n            hideError();\r\n\r\n            try {\r\n                const response = await fetch(API_URL, {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json',\r\n                        'Accept': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: input })\r\n                });\r\n\r\n                const data = await response.json();\r\n\r\n                if (data.status !== 'success') {\r\n                    throw new Error(data.message || 'Failed to load video');\r\n                }\r\n\r\n                currentVideoData = data.data.data;\r\n                displayVideo(currentVideoData);\r\n\r\n                document.getElementById('videoSection').style.display = 'block';\r\n                document.getElementById('searchAnotherBtn').style.display = 'block';\r\n                document.getElementById('videoInput').value = '';\r\n\r\n                \/\/ Scroll to video section on mobile\r\n                if (isMobile) {\r\n                    setTimeout(() => {\r\n                        document.getElementById('videoSection').scrollIntoView({\r\n                            behavior: 'smooth',\r\n                            block: 'start'\r\n                        });\r\n                    }, 500);\r\n                }\r\n\r\n            } catch (error) {\r\n                showError(error.message || 'Error loading video. Please try again.');\r\n                console.error('Load video error:', error);\r\n            } finally {\r\n                isLoading = false;\r\n                loadBtn.disabled = false;\r\n                loadText.textContent = 'Load Video';\r\n                hideLoading();\r\n            }\r\n        }\r\n\r\n        function displayVideo(data) {\r\n            \/\/ Set video title\r\n            document.getElementById('videoTitle').textContent = data.title;\r\n\r\n            \/\/ Set video stats in horizontal grid\r\n            const statsContainer = document.getElementById('videoStats');\r\n            statsContainer.innerHTML = `\r\n                <div class=\"stat-item views\">\r\n                    <span class=\"stat-value\">${formatNumber(data.play_count)}<\/span>\r\n                    <span class=\"stat-label\">Views<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item likes\">\r\n                    <span class=\"stat-value\">${formatNumber(data.digg_count)}<\/span>\r\n                    <span class=\"stat-label\">Likes<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item comments\">\r\n                    <span class=\"stat-value\">${formatNumber(data.comment_count)}<\/span>\r\n                    <span class=\"stat-label\">Comments<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item shares\">\r\n                    <span class=\"stat-value\">${formatNumber(data.share_count)}<\/span>\r\n                    <span class=\"stat-label\">Shares<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item duration\">\r\n                    <span class=\"stat-value\">${formatDuration(data.duration)}<\/span>\r\n                    <span class=\"stat-label\">Duration<\/span>\r\n                <\/div>\r\n            `;\r\n\r\n            \/\/ Set author info\r\n            document.getElementById('authorAvatar').src = data.author.avatar;\r\n            document.getElementById('authorName').textContent = data.author.nickname;\r\n            document.getElementById('authorUsername').textContent = `@${data.author.unique_id}`;\r\n\r\n            \/\/ Set video thumbnail\r\n            const videoThumbnail = document.getElementById('videoThumbnail');\r\n            videoThumbnail.src = data.cover || data.dynamic_cover || '\/placeholder.svg?height=600&width=400';\r\n\r\n            \/\/ Set video player\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            videoPlayer.src = data.play;\r\n            videoPlayer.addEventListener('loadedmetadata', () => {\r\n                videoPlayer.volume = currentVolume;\r\n                videoPlayer.muted = isMuted;\r\n                updateVolumeDisplay();\r\n                \/\/ Set video duration\r\n                document.getElementById('videoDuration').textContent = formatDuration(videoPlayer.duration);\r\n            });\r\n            videoPlayer.addEventListener('timeupdate', updateVideoProgress);\r\n\r\n            \/\/ Mobile-specific video player setup\r\n            if (isMobile) {\r\n                videoPlayer.setAttribute('playsinline', 'true');\r\n                videoPlayer.setAttribute('webkit-playsinline', 'true');\r\n\r\n                \/\/ Show controls on touch\r\n                videoPlayer.addEventListener('touchstart', showVideoControlsOnMobile);\r\n            }\r\n\r\n            \/\/ Set audio player\r\n            if (data.music) {\r\n                const audioElement = document.getElementById('audioElement');\r\n                const audioStreaming = document.getElementById('audioStreaming');\r\n                const audioTitle = document.getElementById('audioTitle');\r\n                const audioArtist = document.getElementById('audioArtist');\r\n\r\n                audioElement.src = data.music;\r\n                audioTitle.textContent = data.music_info?.title || 'Audio Track';\r\n                audioArtist.textContent = data.music_info?.author || data.author.nickname;\r\n                audioStreaming.style.display = 'block';\r\n\r\n                audioElement.addEventListener('timeupdate', updateAudioProgress);\r\n                audioElement.addEventListener('loadedmetadata', () => {\r\n                    document.getElementById('audioDuration').textContent = formatDuration(audioElement.duration);\r\n                    audioElement.volume = audioCurrentVolume;\r\n                    audioElement.muted = audioIsMuted;\r\n                    updateAudioVolumeDisplay();\r\n                });\r\n            }\r\n\r\n            \/\/ Update download buttons\r\n            updateDownloadButtons(data);\r\n        }\r\n\r\n        function updateDownloadButtons(data) {\r\n            const standardBtn = document.getElementById('downloadStandard');\r\n            const hdBtn = document.getElementById('downloadHD');\r\n            const audioBtn = document.getElementById('downloadAudio');\r\n\r\n            \/\/ Standard quality\r\n            standardBtn.innerHTML = `<i class=\"fas fa-download\"><\/i><span>Standard (${formatFileSize(data.size)})<\/span>`;\r\n\r\n            \/\/ HD quality\r\n            if (data.hd_size && data.hdplay) {\r\n                hdBtn.innerHTML = `<i class=\"fas fa-hd-video\"><\/i><span>HD (${formatFileSize(data.hd_size)})<\/span>`;\r\n                hdBtn.style.display = 'flex';\r\n            } else {\r\n                hdBtn.style.display = 'none';\r\n            }\r\n\r\n            \/\/ Audio\r\n            audioBtn.innerHTML = `<i class=\"fas fa-download\"><\/i><span>Download Audio<\/span>`;\r\n        }\r\n\r\n        function startVideoPlayback() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const videoThumbnail = document.getElementById('videoThumbnail');\r\n            const thumbnailOverlay = document.querySelector('.thumbnail-overlay');\r\n\r\n            \/\/ Hide thumbnail and show video\r\n            videoThumbnail.style.display = 'none';\r\n            thumbnailOverlay.style.display = 'none';\r\n            videoPlayer.classList.add('playing');\r\n\r\n            \/\/ Start playing\r\n            videoPlayer.play().catch(e => {\r\n                console.error('Error playing video:', e);\r\n                showError('Unable to play video. Please try again.');\r\n            });\r\n\r\n            document.getElementById('playBtn').innerHTML = '<i class=\"fas fa-pause\"><\/i>';\r\n            videoStarted = true;\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        \/\/ Video Player Controls\r\n        function togglePlay() {\r\n            if (!videoStarted) {\r\n                startVideoPlayback();\r\n                return;\r\n            }\r\n\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const playBtn = document.getElementById('playBtn');\r\n\r\n            if (videoPlayer.paused) {\r\n                videoPlayer.play().catch(e => {\r\n                    console.error('Error playing video:', e);\r\n                    showError('Unable to play video. Please try again.');\r\n                });\r\n                playBtn.innerHTML = '<i class=\"fas fa-pause\"><\/i>';\r\n            } else {\r\n                videoPlayer.pause();\r\n                playBtn.innerHTML = '<i class=\"fas fa-play\"><\/i>';\r\n            }\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function toggleAudioPlay() {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const audioPlayBtn = document.getElementById('audioPlayBtn');\r\n\r\n            if (audioElement.paused) {\r\n                audioElement.play().catch(e => {\r\n                    console.error('Error playing audio:', e);\r\n                    showError('Unable to play audio. Please try again.');\r\n                });\r\n                audioPlayBtn.innerHTML = '<i class=\"fas fa-pause\"><\/i>';\r\n                audioPlaying = true;\r\n            } else {\r\n                audioElement.pause();\r\n                audioPlayBtn.innerHTML = '<i class=\"fas fa-play\"><\/i>';\r\n                audioPlaying = false;\r\n            }\r\n        }\r\n\r\n        function toggleMute() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const muteBtn = document.getElementById('muteBtn');\r\n\r\n            if (isMuted) {\r\n                isMuted = false;\r\n                videoPlayer.muted = false;\r\n                videoPlayer.volume = currentVolume;\r\n                muteBtn.innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            } else {\r\n                isMuted = true;\r\n                videoPlayer.muted = true;\r\n                muteBtn.innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            }\r\n\r\n            updateVolumeDisplay();\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function toggleAudioMute() {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const audioMuteBtn = document.getElementById('audioMuteBtn');\r\n\r\n            if (audioIsMuted) {\r\n                audioIsMuted = false;\r\n                audioElement.muted = false;\r\n                audioElement.volume = audioCurrentVolume;\r\n                audioMuteBtn.innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            } else {\r\n                audioIsMuted = true;\r\n                audioElement.muted = true;\r\n                audioMuteBtn.innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            }\r\n\r\n            updateAudioVolumeDisplay();\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                document.getElementById('muteBtn').innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            } else {\r\n                isMuted = false;\r\n                videoPlayer.muted = false;\r\n                document.getElementById('muteBtn').innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            }\r\n\r\n            updateVolumeDisplay();\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function setAudioVolume(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            audioCurrentVolume = Math.max(0, Math.min(1, pos));\r\n\r\n            const audioElement = document.getElementById('audioElement');\r\n            audioElement.volume = audioCurrentVolume;\r\n\r\n            if (audioCurrentVolume === 0) {\r\n                audioIsMuted = true;\r\n                audioElement.muted = true;\r\n                document.getElementById('audioMuteBtn').innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            } else {\r\n                audioIsMuted = false;\r\n                audioElement.muted = false;\r\n                document.getElementById('audioMuteBtn').innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            }\r\n\r\n            updateAudioVolumeDisplay();\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 updateAudioVolumeDisplay() {\r\n            const volumeFill = document.getElementById('audioVolumeFill');\r\n            const displayVolume = audioIsMuted ? 0 : audioCurrentVolume;\r\n            volumeFill.style.width = `${displayVolume * 100}%`;\r\n        }\r\n\r\n        function seekVideo(event) {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const progressBar = event.currentTarget;\r\n            const rect = progressBar.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            videoPlayer.currentTime = pos * videoPlayer.duration;\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function seekAudio(event) {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const progressBar = event.currentTarget;\r\n            const rect = progressBar.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            audioElement.currentTime = pos * audioElement.duration;\r\n        }\r\n\r\n        function updateVideoProgress() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const progressFill = document.getElementById('progressFill');\r\n            const currentTime = document.getElementById('videoCurrentTime');\r\n\r\n            const progress = (videoPlayer.currentTime \/ videoPlayer.duration) * 100;\r\n            progressFill.style.width = `${progress}%`;\r\n            currentTime.textContent = formatDuration(videoPlayer.currentTime);\r\n        }\r\n\r\n        function updateAudioProgress() {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const progressFill = document.getElementById('audioProgressFill');\r\n            const currentTime = document.getElementById('audioCurrentTime');\r\n\r\n            const progress = (audioElement.currentTime \/ audioElement.duration) * 100;\r\n            progressFill.style.width = `${progress}%`;\r\n            currentTime.textContent = formatDuration(audioElement.currentTime);\r\n        }\r\n\r\n        function toggleFullscreen() {\r\n            const videoWrapper = document.querySelector('.video-player-wrapper');\r\n            const fullscreenBtn = document.getElementById('fullscreenBtn');\r\n\r\n            if (!isFullscreen) {\r\n                if (videoWrapper.requestFullscreen) {\r\n                    videoWrapper.requestFullscreen();\r\n                } else if (videoWrapper.webkitRequestFullscreen) {\r\n                    videoWrapper.webkitRequestFullscreen();\r\n                } else if (videoWrapper.msRequestFullscreen) {\r\n                    videoWrapper.msRequestFullscreen();\r\n                }\r\n                isFullscreen = true;\r\n                fullscreenBtn.innerHTML = '<i class=\"fas fa-compress\"><\/i>';\r\n            } else {\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                fullscreenBtn.innerHTML = '<i class=\"fas fa-expand\"><\/i>';\r\n            }\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        \/\/ Download Functions\r\n        async function downloadVideo(quality) {\r\n            if (!currentVideoData || isDownloading) return;\r\n\r\n            let downloadUrl, filename, expectedSize;\r\n\r\n            switch (quality) {\r\n                case 'hd':\r\n                    if (!currentVideoData.hdplay) {\r\n                        showError('HD quality not available for this video');\r\n                        return;\r\n                    }\r\n                    downloadUrl = currentVideoData.hdplay;\r\n                    filename = `tiktok-${currentVideoData.id}-hd.mp4`;\r\n                    expectedSize = currentVideoData.hd_size;\r\n                    break;\r\n                case 'audio':\r\n                    if (!currentVideoData.music) {\r\n                        showError('Audio not available for this video');\r\n                        return;\r\n                    }\r\n                    downloadUrl = currentVideoData.music;\r\n                    filename = `tiktok-${currentVideoData.id}-audio.mp3`;\r\n                    expectedSize = null;\r\n                    break;\r\n                default:\r\n                    downloadUrl = currentVideoData.play;\r\n                    filename = `tiktok-${currentVideoData.id}.mp4`;\r\n                    expectedSize = currentVideoData.size;\r\n            }\r\n\r\n            isDownloading = true;\r\n            downloadController = new AbortController();\r\n\r\n            \/\/ Disable download buttons\r\n            document.querySelectorAll('.download-btn, .download-audio-btn').forEach(btn => btn.disabled = true);\r\n\r\n            showDownloadProgress(`Starting download...`, 0);\r\n\r\n            try {\r\n                const response = await fetch(downloadUrl, {\r\n                    signal: downloadController.signal\r\n                });\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`HTTP error! status: ${response.status}`);\r\n                }\r\n\r\n                const totalSize = expectedSize || 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                    showDownloadProgress(`Downloading ${quality} quality... ${progress}%`, progress);\r\n                }\r\n\r\n                showDownloadProgress('Processing download...', 95);\r\n\r\n                \/\/ Combine chunks\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 mimeType = quality === 'audio' ? 'audio\/mpeg' : 'video\/mp4';\r\n                const blob = new Blob([chunksAll], { type: mimeType });\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 = filename;\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                showDownloadProgress('Download completed successfully!', 100);\r\n                setTimeout(hideDownloadProgress, 2000);\r\n\r\n            } catch (error) {\r\n                if (error.name === 'AbortError') {\r\n                    showDownloadProgress('Download cancelled', 0);\r\n                } else {\r\n                    showError(`Download failed: ${error.message}`);\r\n                    hideDownloadProgress();\r\n                }\r\n            } finally {\r\n                isDownloading = false;\r\n                downloadController = null;\r\n                document.querySelectorAll('.download-btn, .download-audio-btn').forEach(btn => btn.disabled = false);\r\n            }\r\n        }\r\n\r\n        function cancelDownload() {\r\n            if (downloadController) {\r\n                downloadController.abort();\r\n            }\r\n        }\r\n\r\n        \/\/ Event Listeners\r\n        document.getElementById('videoInput').addEventListener('keypress', (e) => {\r\n            if (e.key === 'Enter' && !isLoading) {\r\n                loadVideo();\r\n            }\r\n        });\r\n\r\n        \/\/ Fullscreen change events\r\n        document.addEventListener('fullscreenchange', () => {\r\n            isFullscreen = !!document.fullscreenElement;\r\n            const fullscreenBtn = document.getElementById('fullscreenBtn');\r\n            if (fullscreenBtn) {\r\n                fullscreenBtn.innerHTML = isFullscreen ? '<i class=\"fas fa-compress\"><\/i>' : '<i class=\"fas fa-expand\"><\/i>';\r\n            }\r\n        });\r\n\r\n        \/\/ Keyboard shortcuts (desktop only)\r\n        document.addEventListener('keydown', (e) => {\r\n            if (!isMobile && currentVideoData && document.getElementById('videoSection').style.display === 'block') {\r\n                switch (e.key) {\r\n                    case ' ':\r\n                        e.preventDefault();\r\n                        togglePlay();\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\r\n        \/\/ Touch event handlers for mobile\r\n        if (isMobile || isTouch) {\r\n            \/\/ Handle touch events for sliders\r\n            function handleTouchSlider(element, callback) {\r\n                element.addEventListener('touchstart', function (e) {\r\n                    e.preventDefault();\r\n                    const touch = e.touches[0];\r\n                    const rect = element.getBoundingClientRect();\r\n                    const pos = (touch.clientX - rect.left) \/ rect.width;\r\n                    callback(pos);\r\n                }, { passive: false });\r\n\r\n                element.addEventListener('touchmove', function (e) {\r\n                    e.preventDefault();\r\n                    const touch = e.touches[0];\r\n                    const rect = element.getBoundingClientRect();\r\n                    const pos = (touch.clientX - rect.left) \/ rect.width;\r\n                    callback(pos);\r\n                }, { passive: false });\r\n            }\r\n\r\n            \/\/ Apply touch handlers to sliders\r\n            document.addEventListener('DOMContentLoaded', () => {\r\n                const volumeSlider = document.getElementById('volumeFill')?.parentElement;\r\n                const audioVolumeSlider = document.getElementById('audioVolumeFill')?.parentElement;\r\n                const progressBar = document.getElementById('progressFill')?.parentElement;\r\n                const audioProgressBar = document.getElementById('audioProgressFill')?.parentElement;\r\n\r\n                if (volumeSlider) {\r\n                    handleTouchSlider(volumeSlider, (pos) => {\r\n                        currentVolume = Math.max(0, Math.min(1, pos));\r\n                        const videoPlayer = document.getElementById('videoPlayer');\r\n                        if (videoPlayer) {\r\n                            videoPlayer.volume = currentVolume;\r\n                            updateVolumeDisplay();\r\n                        }\r\n                    });\r\n                }\r\n\r\n                if (audioVolumeSlider) {\r\n                    handleTouchSlider(audioVolumeSlider, (pos) => {\r\n                        audioCurrentVolume = Math.max(0, Math.min(1, pos));\r\n                        const audioElement = document.getElementById('audioElement');\r\n                        if (audioElement) {\r\n                            audioElement.volume = audioCurrentVolume;\r\n                            updateAudioVolumeDisplay();\r\n                        }\r\n                    });\r\n                }\r\n\r\n                if (progressBar) {\r\n                    handleTouchSlider(progressBar, (pos) => {\r\n                        const videoPlayer = document.getElementById('videoPlayer');\r\n                        if (videoPlayer && videoPlayer.duration) {\r\n                            videoPlayer.currentTime = pos * videoPlayer.duration;\r\n                        }\r\n                    });\r\n                }\r\n\r\n                if (audioProgressBar) {\r\n                    handleTouchSlider(audioProgressBar, (pos) => {\r\n                        const audioElement = document.getElementById('audioElement');\r\n                        if (audioElement && audioElement.duration) {\r\n                            audioElement.currentTime = pos * audioElement.duration;\r\n                        }\r\n                    });\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initialize\r\n        document.addEventListener('DOMContentLoaded', () => {\r\n            document.getElementById('videoInput').focus();\r\n            updateAudioVolumeDisplay();\r\n            handleTouchEvents();\r\n\r\n            \/\/ Prevent zoom on iOS when focusing inputs\r\n            if (\/iPad|iPhone|iPod\/.test(navigator.userAgent)) {\r\n                const viewport = document.querySelector('meta[name=viewport]');\r\n                if (viewport) {\r\n                    viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no');\r\n                }\r\n            }\r\n\r\n            \/\/ Add orientation change handler\r\n            window.addEventListener('orientationchange', () => {\r\n                setTimeout(() => {\r\n                    \/\/ Recalculate dimensions after orientation change\r\n                    window.scrollTo(0, 0);\r\n                }, 100);\r\n            });\r\n\r\n            \/\/ Add resize handler for responsive adjustments\r\n            window.addEventListener('resize', () => {\r\n                \/\/ Handle responsive adjustments\r\n                if (window.innerWidth <= 768) {\r\n                    \/\/ Mobile adjustments\r\n                    showVideoControlsOnMobile();\r\n                }\r\n            });\r\n        });\r\n    <\/script>\r\n<\/div><\/div>\n<div class=\"tc-wp-tool-content\"><div class=\"wpc-scope-141\">\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=\"tl\">\n<div class=\"tl-inner\">\n<div class=\"tl-hb\" style=\"margin-top: 4rem;\"><\/div>\n<\/div><section class=\"tl-sec tl-bg-wh\" aria-labelledby=\"tl-h1\">\n<div class=\"tl-inner\">\n<div class=\"tl-hb\">\n<h2 id=\"tl-h1\">How <span class=\"tl-gx\">TikTok Link Viewer<\/span> Works<\/h2>\n<p>Browse and view TikTok video links seamlessly with our intuitive platform built for speed and privacy.<\/p>\n<\/div>\n<div class=\"tl-g3\" data-tl-grid=\"g1\">\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"\/><path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"\/><\/svg>\n<\/div>\n<h3>Link Open<\/h3>\n<p>Open any TikTok link instantly with our fast and reliable link processing system that loads the complete video content without any delays, making your overall experience on the platform smooth efficient and thoroughly enjoyable.<\/p>\n<\/article>\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polygon points=\"5 3 19 12 5 21\"\/><\/svg>\n<\/div>\n<h3>Video Preview<\/h3>\n<p>See video preview from link before deciding to watch the full content giving you a quick glimpse of what to expect before committing, giving you complete control and flexibility over every aspect of your content journey.<\/p>\n<\/article>\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"\/><\/svg>\n<\/div>\n<h3>Link Info<\/h3>\n<p>Get video details from TikTok link including title duration and upload date so you have all the context you need before watching, ensuring you get the maximum value and utility from every single visit you make.<\/p>\n<\/article>\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\/><path d=\"M21 15l-5-5L5 21\"\/><\/svg>\n<\/div>\n<h3>Thumbnail View<\/h3>\n<p>View thumbnail from shared link to preview the video content quickly helping you decide if the video is worth your time, so you can work smarter achieve more and stay productive throughout your sessions.<\/p>\n<\/article>\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-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>Link History<\/h3>\n<p>Track your viewed TikTok links with a convenient history feature that saves your browsing activity for easy future reference and quick content recall whenever needed.<\/p>\n<\/article>\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-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<h3>Quick Access<\/h3>\n<p>Access videos directly from links without any redirects or delays providing a streamlined and efficient path to your desired content, 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=\"tl-sec tl-bg-ow\" aria-labelledby=\"tl-h2\">\n<div class=\"tl-inner\">\n<div class=\"tl-hb\">\n<h2 id=\"tl-h2\">Key Benefits of <span class=\"tl-gx\">TikTok Link Viewer<\/span><\/h2>\n<p>Discover why thousands of users choose our platform for TikTok link viewing every single day.<\/p>\n<\/div>\n<div class=\"tl-g4\" data-tl-grid=\"g2\">\n<article class=\"tl-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-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=\"tl-cb-body\">\n<h3>Instant Access<\/h3>\n<p>Open TikTok links immediately with zero waiting time.<\/p>\n<\/div>\n<\/article>\n<article class=\"tl-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-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 9.9-1\"\/><\/svg>\n<\/div>\n<div class=\"tl-cb-body\">\n<h3>No Login<\/h3>\n<p>View without TikTok account required for complete privacy.<\/p>\n<\/div>\n<\/article>\n<article class=\"tl-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 12c-2-2.67-4-4-6-4a4 4 0 0 0 0 8c2 0 4-1.33 6-4Zm0 0c2 2.67 4 4 6 4a4 4 0 0 0 0-8c-2 0-4 1.33-6 4Z\"\/><\/svg>\n<\/div>\n<div class=\"tl-cb-body\">\n<h3>Unlimited Use<\/h3>\n<p>No restrictions on link viewing use the service as much as you need.<\/p>\n<\/div>\n<\/article>\n<article class=\"tl-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M8 12l2 2 4-4\"\/><\/svg>\n<\/div>\n<div class=\"tl-cb-body\">\n<h3>Free Service<\/h3>\n<p>All link features at zero cost with no hidden charges.<\/p>\n<\/div>\n<\/article>\n<article class=\"tl-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polygon points=\"1 19 1 5 12 12\"\/><polygon points=\"13 19 13 5 24 12\"\/><\/svg>\n<\/div>\n<div class=\"tl-cb-body\">\n<h3>Quick Load<\/h3>\n<p>Videos load from links instantly for seamless browsing.<\/p>\n<\/div>\n<\/article>\n<article class=\"tl-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg>\n<\/div>\n<div class=\"tl-cb-body\">\n<h3>Safe Browsing<\/h3>\n<p>Secure link opening with no data collection or tracking.<\/p>\n<\/div>\n<\/article>\n<article class=\"tl-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"2\" y=\"3\" width=\"12\" height=\"14\" rx=\"2\"\/><path d=\"M8 21h8\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><rect x=\"15\" y=\"5\" width=\"7\" height=\"12\" rx=\"1\"\/><\/svg>\n<\/div>\n<div class=\"tl-cb-body\">\n<h3>Any Device<\/h3>\n<p>Works on all devices across desktop tablet and mobile platforms.<\/p>\n<\/div>\n<\/article>\n\n<article class=\"tl-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-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=\"tl-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=\"tl-sec tl-bg-wh\" aria-labelledby=\"tl-h3\">\n<div class=\"tl-inner\">\n<div class=\"tl-hb\">\n<h2 id=\"tl-h3\">Who Should Use <span class=\"tl-gx\">TikTok Link 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=\"tl-g3\" data-tl-grid=\"g3\">\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"18\" cy=\"5\" r=\"3\"\/><circle cx=\"6\" cy=\"12\" r=\"3\"\/><circle cx=\"18\" cy=\"19\" r=\"3\"\/><line x1=\"8.59\" y1=\"13.51\" x2=\"15.42\" y2=\"17.49\"\/><line x1=\"15.41\" y1=\"6.51\" x2=\"8.59\" y2=\"10.49\"\/><\/svg>\n<\/div>\n<h3>Link Sharing<\/h3>\n<p>Share TikTok links easily with friends colleagues and social networks using our streamlined sharing interface for quick and convenient distribution.<\/p>\n<\/article>\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"\/><\/svg>\n<\/div>\n<h3>Link Collection<\/h3>\n<p>Build collections of video links organized by topic or interest creating a curated library of TikTok content for easy access and reference.<\/p>\n<\/article>\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"2\" y=\"2\" width=\"8\" height=\"8\"\/><rect x=\"14\" y=\"2\" width=\"8\" height=\"8\"\/><rect x=\"2\" y=\"14\" width=\"8\" height=\"8\"\/><rect x=\"14\" y=\"14\" width=\"8\" height=\"8\"\/><\/svg>\n<\/div>\n<h3>Content Curation<\/h3>\n<p>Curate links for playlists and themed content collections building organized groups of related videos tailored for specific topics audiences or content campaigns.<\/p>\n<\/article>\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-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>Quick Preview<\/h3>\n<p>Preview videos before watching to find what interests you saving time and helping you discover content that matches your preferences.<\/p>\n<\/article>\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-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>Link Research<\/h3>\n<p>Research content through links to discover trending and relevant videos building a comprehensive understanding of content in your area of interest.<\/p>\n<\/article>\n<article class=\"tl-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tl-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><polyline points=\"10 9 9 9 8 9\"\/><\/svg>\n<\/div>\n<h3>Metadata View<\/h3>\n<p>See video metadata from links including descriptions and tags providing complete context about each video before you decide to watch it.<\/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-5602","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5602","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=5602"}],"version-history":[{"count":2,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5602\/revisions"}],"predecessor-version":[{"id":5719,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5602\/revisions\/5719"}],"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=5602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}