{"id":5617,"date":"2026-06-02T09:47:22","date_gmt":"2026-06-02T09:47:22","guid":{"rendered":"https:\/\/viiewerr.com\/tiktok\/drafts\/"},"modified":"2026-06-27T11:34:31","modified_gmt":"2026-06-27T11:34:31","slug":"drafts","status":"publish","type":"page","link":"https:\/\/viiewerr.com\/tiktok\/drafts\/","title":{"rendered":"Tiktok Drafts Viewer: Manage Clips"},"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    --secondary: #ff4fa3;\r\n    --accent: #ff4fa3;\r\n    --accent-purple: #ff7a59;\r\n    \r\n    \/* Gradient Colors *\/\r\n    --gradient-start: #2af0ea;\r\n    --gradient-mid: #ff4fa3;\r\n    --gradient-end: #ff7a59;\r\n    --gradient-aqua: #25f4ee;\r\n    \r\n    \/* Background Colors - Dark Theme *\/\r\n    --bg-primary: #09040d;\r\n    --bg-secondary: #120917;\r\n    --bg-tertiary: #2e2142;\r\n    --card-dark: rgba(22, 12, 32, 0.78);\r\n    --card-teal: rgba(22, 12, 32, 0.78);\r\n    --card-cyan: rgba(22, 12, 32, 0.78);\r\n    \r\n    \/* Text Colors *\/\r\n    --text-light: #ffffff;\r\n    --text-primary: #ffffff;\r\n    --text-secondary: #d9c7ef;\r\n    --text-gray: #9f8dbd;\r\n    --text-teal: #2af0ea;\r\n    --text-aqua: #ff4fa3;\r\n\r\n    \/* Glass Effects *\/\r\n    --glass-dark: rgba(22, 12, 32, 0.78);\r\n    --glass-teal: rgba(22, 12, 32, 0.78);\r\n    --glass-cyan: rgba(22, 12, 32, 0.78);\r\n    --glass-border: rgba(122, 243, 238, 0.22);\r\n\r\n    \/* Shadows *\/\r\n    --shadow: 0 4px 20px rgba(8, 4, 18, 0.3);\r\n    --shadow-lg: 0 24px 56px rgba(8, 4, 18, 0.56);\r\n    --shadow-xl: 0 24px 56px rgba(8, 4, 18, 0.56);\r\n    --shadow-teal: 0 8px 32px rgba(42, 240, 234, 0.3);\r\n    --shadow-cyan: 0 8px 32px rgba(255, 79, 163, 0.3);\r\n    --shadow-aqua: 0 8px 32px rgba(255, 122, 89, 0.3);\r\n\r\n    \/* Glow Effects *\/\r\n    --glow-teal: 0 0 30px rgba(42, 240, 234, 0.5);\r\n    --glow-cyan: 0 0 30px rgba(255, 79, 163, 0.5);\r\n    --glow-aqua: 0 0 30px rgba(255, 122, 89, 0.5);\r\n    --glow-primary: 0 0 40px rgba(42, 240, 234, 0.6);\r\n\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}\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    overflow-x: hidden;\r\n    padding: 40px 10px;\r\n}\r\n\r\n.tiktok_body::before {\r\n    content: '';\r\n    position: fixed;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\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    pointer-events: none;\r\n    z-index: -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: 1200px;\r\n    margin: 0 auto;\r\n    padding: 100px 20px;\r\n    position: relative;\r\n    z-index: 1;\r\n}\r\n\r\n\/* Header *\/\r\n.header {\r\n    text-align: center;\r\n    margin-bottom: 2.5rem;\r\n    animation: fadeInDown 1s ease-out;\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.logo-icon {\r\n    width: 70px;\r\n    height: 70px;\r\n    background: linear-gradient(135deg, var(--gradient-start), var(--gradient-mid), var(--gradient-end));\r\n    border-radius: 20px;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    font-size: 28px;\r\n    color: white;\r\n    box-shadow: var(--shadow-xl), var(--glow-primary);\r\n    animation: logoFloat 4s ease-in-out infinite;\r\n    position: relative;\r\n    overflow: hidden;\r\n    border: 2px solid rgba(122, 243, 238, 0.3);\r\n    flex-shrink: 0;\r\n}\r\n\r\n.logo-icon::before {\r\n    content: '';\r\n    position: absolute;\r\n    top: -50%;\r\n    left: -50%;\r\n    width: 200%;\r\n    height: 200%;\r\n    background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n    animation: logoShine 3s ease-in-out infinite;\r\n}\r\n\r\n\r\n\r\n.logo-text {\r\n\tfont-size: clamp(1.5rem, 5vw, 2.5rem) !important;\r\n\tfont-weight: 900;\r\n\tbackground: linear-gradient(135deg, var(--gradient-start), var(--gradient-mid), var(--gradient-end), var(--gradient-aqua));\r\n\tbackground-size: 300% 300%;\r\n\t-webkit-background-clip: text;\r\n\t-webkit-text-fill-color: transparent;\r\n\tletter-spacing: -2px;\r\n\tanimation: textGradient 4s ease infinite;\r\n\tfilter: drop-shadow(0 4px 8px rgba(42, 240, 234, 0.3));\r\n\ttext-align: center;\r\n}\r\n\r\n.subtitle {\r\n    font-size: clamp(0.9rem, 2.5vw, 1.1rem);\r\n    color: var(--text-gray);\r\n    font-weight: 500;\r\n    margin-top: 0.5rem;\r\n    animation: subtitleGlow 3s ease-in-out infinite;\r\n    text-align: center;\r\n    padding: 0 1rem;\r\n}\r\n\r\n\/* Enhanced Search Section *\/\r\n.search-section {\r\n    background: linear-gradient(135deg,\r\n            var(--glass-dark) 0%,\r\n            var(--glass-teal) 50%,\r\n            var(--glass-cyan) 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    margin-bottom: 2rem;\r\n    box-shadow: var(--shadow-xl), var(--shadow-teal);\r\n    animation: fadeInUp 1s ease-out 0.2s both;\r\n    position: relative;\r\n    overflow: hidden;\r\n}\r\n\r\n.search-section::before {\r\n    content: '';\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    right: 0;\r\n    height: 2px;\r\n    background: linear-gradient(90deg,\r\n            transparent,\r\n            var(--gradient-start),\r\n            var(--gradient-mid),\r\n            var(--gradient-end),\r\n            transparent);\r\n    animation: borderFlow 3s ease-in-out infinite;\r\n}\r\n\r\n.search-section::after {\r\n    content: '';\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    background: linear-gradient(135deg,\r\n            rgba(42, 240, 234, 0.05) 0%,\r\n            rgba(255, 79, 163, 0.05) 50%,\r\n            rgba(255, 122, 89, 0.05) 100%);\r\n    pointer-events: none;\r\n    border-radius: 24px;\r\n    animation: overlayPulse 6s ease-in-out infinite;\r\n}\r\n\r\n.input-group {\r\n    position: relative;\r\n    margin-bottom: 1.5rem;\r\n    z-index: 2;\r\n}\r\n\r\n.input-field {\r\n    width: 100% !important;\r\n    padding: clamp(1rem, 3vw, 1.5rem) clamp(1.2rem, 4vw, 2rem) !important;\r\n    background: rgba(18, 9, 23, 0.68) !important;\r\n    border: 2px solid rgba(122, 243, 238, 0.18) !important;\r\n    border-radius: var(--radius-lg) !important;\r\n    color: var(--text-primary) !important;\r\n    font-size: clamp(0.9rem, 2.5vw, 1.1rem) !important;\r\n    font-weight: 500 !important;\r\n    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;\r\n    outline: none !important;\r\n    backdrop-filter: blur(15px) !important;\r\n    box-shadow: var(--shadow), inset 0 2px 10px rgba(0, 0, 0, 0.1) !important;\r\n    position: relative;\r\n}\r\n\r\n.input-field::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(135deg,\r\n            rgba(42, 240, 234, 0.1) 0%,\r\n            rgba(255, 79, 163, 0.1) 100%);\r\n    border-radius: 20px;\r\n    opacity: 0;\r\n    transition: opacity 0.4s ease;\r\n    pointer-events: none;\r\n}\r\n\r\n.input-field:focus {\r\n    border-color: var(--primary) !important;\r\n    box-shadow:\r\n        0 0 0 4px rgba(42, 240, 234, 0.2),\r\n        var(--glow-teal),\r\n        inset 0 2px 10px rgba(0, 0, 0, 0.1);\r\n    background:  rgba(18, 9, 23, 0.68) !important;\r\n    animation: inputFocusGlow 2s ease-in-out infinite !important;\r\n}\r\n\r\n.input-field:focus::before {\r\n    opacity: 1;\r\n}\r\n\r\n.input-field::placeholder {\r\n    color: var(--text-gray);\r\n    transition: all 0.3s ease;\r\n    font-weight: 400;\r\n}\r\n\r\n.input-field:focus::placeholder {\r\n    color: var(--text-teal);\r\n    transform: translateY(-2px);\r\n    opacity: 0.8;\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-gray);\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, #00f2ea67 0%, #25f4ed52 25%, #ff4fa3 75%, #ff0050 100%);\r\n    border: 1px solid rgba(122, 243, 238, 0.3);\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    justify-content: center;\r\n    gap: 0.5rem;\r\n    font-weight: 600;\r\n    box-shadow: var(--shadow), var(--shadow-teal);\r\n    font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n    position: relative;\r\n    overflow: hidden;\r\n    min-height: 44px !important;\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-lg), var(--glow-teal);\r\n    background: linear-gradient(135deg, var(--gradient-start), var(--gradient-end));\r\n}\r\n\r\n.action-buttons {\r\n    display: grid;\r\n    grid-template-columns: 1fr;\r\n    gap: 1rem;\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%, #ff4fa3 75%, #ff0050 100%);\r\n    background-size: 200% 200%;\r\n    color: white;\r\n    border: none;\r\n    padding: clamp(1rem, 3vw, 1.4rem) clamp(1.5rem, 4vw, 2.8rem);\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), var(--shadow-teal);\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 0.75rem;\r\n    min-height: 56px;\r\n    animation: buttonPulse 4s ease-in-out infinite;\r\n    border: 2px solid rgba(122, 243, 238, 0.3);\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-xl), var(--glow-primary);\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, #00f2ea67 0%, #25f4ed52 25%, #ff4fa3 75%, #ff0050 100%);;\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), var(--shadow-cyan);\r\n    font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n    position: relative;\r\n    overflow: hidden;\r\n    border: 2px solid rgba(122, 243, 238, 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-lg), var(--glow-cyan);\r\n}\r\n\r\n\/* Loading Animation - NO FLOATING *\/\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-dark) 0%,\r\n            var(--glass-teal) 50%,\r\n            var(--glass-cyan) 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-xl), var(--shadow-teal);\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(--gradient-start),\r\n            var(--gradient-mid),\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(--gradient-start);\r\n    border-right-color: var(--gradient-start);\r\n    animation-duration: 2s;\r\n    box-shadow: 0 0 20px rgba(42, 240, 234, 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(--gradient-mid);\r\n    border-left-color: var(--gradient-mid);\r\n    animation-duration: 1.5s;\r\n    animation-direction: reverse;\r\n    box-shadow: 0 0 15px rgba(255, 79, 163, 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(--gradient-end);\r\n    animation-duration: 1s;\r\n    box-shadow: 0 0 10px rgba(255, 122, 89, 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(--gradient-start), var(--gradient-mid), var(--gradient-end));\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-gray);\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 - NO FLOATING *\/\r\n.video-section {\r\n    display: none;\r\n    animation: fadeInUp 0.8s ease-out;\r\n    background: linear-gradient(135deg,\r\n            rgba(255, 255, 255, 0.9) 0%,\r\n            rgba(245, 255, 233, 0.9) 30%,\r\n            rgba(232, 245, 217, 0.9) 70%,\r\n            rgba(255, 255, 255, 0.9) 100%);\r\n    backdrop-filter: blur(25px);\r\n    border: 2px solid rgba(122, 243, 238, 0.25);\r\n    border-radius: 24px;\r\n    padding: clamp(1.5rem, 4vw, 2.5rem);\r\n    box-shadow: var(--shadow-xl), var(--shadow-teal);\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(--gradient-start),\r\n            var(--gradient-mid),\r\n            var(--gradient-end),\r\n            var(--gradient-aqua),\r\n            transparent);\r\n    animation: borderFlow 4s ease-in-out infinite;\r\n}\r\n\r\n\/* Author Info - NO FLOATING *\/\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(42, 240, 234, 0.15) 0%,\r\n            rgba(255, 79, 163, 0.15) 50%,\r\n            rgba(255, 122, 89, 0.15) 100%);\r\n    border-radius: 20px;\r\n    border: 1px solid rgba(122, 243, 238, 0.3);\r\n    width: 100%;\r\n    box-shadow: var(--shadow), var(--shadow-teal);\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-lg), var(--glow-teal);\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(--gradient-start), var(--gradient-mid));\r\n    padding: 2px;\r\n    box-shadow: var(--shadow), var(--shadow-teal);\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(--gradient-start), var(--gradient-mid));\r\n    -webkit-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-gray);\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 - NO FLOATING *\/\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.1);\r\n    word-break: break-word;\r\n    padding: 0 1rem;\r\n}\r\n\r\n\/* Stats Grid - NO FLOATING - REMOVED SIZE *\/\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            rgba(255, 255, 255, 0.8) 0%,\r\n            rgba(245, 255, 233, 0.8) 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 rgba(122, 243, 238, 0.25);\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);\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(42, 240, 234, 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-lg), var(--glow-teal);\r\n}\r\n\r\n.stat-item.views {\r\n    border-color: rgba(42, 240, 234, 0.4);\r\n    background: linear-gradient(135deg,\r\n            rgba(42, 240, 234, 0.1) 0%,\r\n            rgba(255, 255, 255, 0.8) 100%);\r\n}\r\n\r\n.stat-item.likes {\r\n    border-color: rgba(255, 79, 163, 0.4);\r\n    background: linear-gradient(135deg,\r\n            rgba(255, 79, 163, 0.1) 0%,\r\n            rgba(255, 255, 255, 0.8) 100%);\r\n}\r\n\r\n.stat-item.comments {\r\n    border-color: rgba(255, 122, 89, 0.4);\r\n    background: linear-gradient(135deg,\r\n            rgba(255, 122, 89, 0.1) 0%,\r\n            rgba(255, 255, 255, 0.8) 100%);\r\n}\r\n\r\n.stat-item.shares {\r\n    border-color: rgba(174, 213, 129, 0.4);\r\n    background: linear-gradient(135deg,\r\n            rgba(174, 213, 129, 0.1) 0%,\r\n            rgba(255, 255, 255, 0.8) 100%);\r\n}\r\n\r\n.stat-item.duration {\r\n    border-color: rgba(42, 240, 234, 0.4);\r\n    background: linear-gradient(135deg,\r\n            rgba(42, 240, 234, 0.1) 0%,\r\n            rgba(255, 255, 255, 0.8) 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(--gradient-start), var(--gradient-mid));\r\n    -webkit-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-gray);\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 - NO FLOATING *\/\r\n.video-streaming-area {\r\n    background: linear-gradient(135deg,\r\n            rgba(42, 240, 234, 0.08) 0%,\r\n            rgba(255, 79, 163, 0.08) 50%,\r\n            rgba(255, 122, 89, 0.08) 100%);\r\n    border: 2px solid rgba(122, 243, 238, 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-lg), var(--shadow-teal);\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(42, 240, 234, 0.05) 1px, transparent 1px),\r\n        linear-gradient(90deg, rgba(255, 79, 163, 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(--gradient-start),\r\n            var(--gradient-mid),\r\n            var(--gradient-end),\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(--gradient-start), var(--gradient-mid));\r\n    -webkit-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-gray);\r\n    font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n    font-weight: 500;\r\n}\r\n\r\n\/* Video Player - NO FLOATING *\/\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-xl), var(--shadow-teal);\r\n    background: #000;\r\n    z-index: 3;\r\n    border: 2px solid rgba(122, 243, 238, 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(--gradient-start), var(--gradient-mid));\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-xl), 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    \/* Touch-friendly *\/\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-xl), 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    \/* Touch-friendly *\/\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(--gradient-start), var(--gradient-mid));\r\n    border-radius: 3px;\r\n    width: 0%;\r\n    transition: width 0.1s linear;\r\n    box-shadow: 0 0 10px rgba(42, 240, 234, 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-gray);\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    \/* Touch-friendly *\/\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);\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(--gradient-start), var(--gradient-mid));\r\n    font-size: clamp(1rem, 3vw, 1.4rem);\r\n    border: none;\r\n    box-shadow: var(--shadow-lg), 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    \/* Touch-friendly *\/\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(--gradient-start), var(--gradient-end));\r\n    border-radius: 3px;\r\n    width: 100%;\r\n    transition: width 0.1s ease;\r\n    box-shadow: 0 0 8px rgba(42, 240, 234, 0.4);\r\n}\r\n\r\n\/* Download Section - NO FLOATING *\/\r\n.download-section {\r\n    background: linear-gradient(135deg,\r\n            rgba(42, 240, 234, 0.1) 0%,\r\n            rgba(255, 79, 163, 0.1) 50%,\r\n            rgba(255, 122, 89, 0.1) 100%);\r\n    border: 2px solid rgba(122, 243, 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), var(--shadow-teal);\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(--gradient-start),\r\n            var(--gradient-end),\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(--gradient-start), var(--gradient-end));\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-gray);\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(--gradient-start), var(--gradient-mid));\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), var(--shadow-teal);\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(122, 243, 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-lg), var(--glow-teal);\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(--gradient-mid), var(--gradient-end));\r\n    border-color: rgba(255, 122, 89, 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-lg), 0 0 30px rgba(255, 122, 89, 0.5);\r\n}\r\n\r\n\/* Audio Streaming Section - NO FLOATING *\/\r\n.audio-streaming {\r\n    background: linear-gradient(135deg,\r\n            rgba(42, 240, 234, 0.12) 0%,\r\n            rgba(255, 79, 163, 0.12) 50%,\r\n            rgba(255, 122, 89, 0.12) 100%);\r\n    border: 2px solid rgba(122, 243, 238, 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), var(--shadow-teal);\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(--gradient-start),\r\n            var(--gradient-mid),\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(--gradient-start), var(--gradient-mid));\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-gray);\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(--gradient-start), var(--gradient-mid));\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), var(--shadow-teal);\r\n    animation: audioIconPulse 4s ease-in-out infinite;\r\n    position: relative;\r\n    z-index: 2;\r\n    border: 2px solid rgba(122, 243, 238, 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(42, 240, 234, 0.4);\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-gray);\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(42, 240, 234, 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    \/* Touch-friendly *\/\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(--gradient-start), var(--gradient-mid));\r\n    border-radius: 4px;\r\n    width: 0%;\r\n    transition: width 0.1s ease;\r\n    box-shadow: 0 0 10px rgba(42, 240, 234, 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-gray);\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(--gradient-start), var(--gradient-mid));\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), var(--shadow-teal);\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(122, 243, 238, 0.3);\r\n    min-height: 44px;\r\n    \/* Touch-friendly *\/\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-lg), var(--glow-teal);\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(42, 240, 234, 0.15);\r\n    border: none;\r\n    color: var(--text-teal);\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(42, 240, 234, 0.2);\r\n    font-size: clamp(0.8rem, 2vw, 1rem);\r\n    min-height: 44px;\r\n    \/* Touch-friendly *\/\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(42, 240, 234, 0.25);\r\n    transform: scale(1.1);\r\n    box-shadow: var(--shadow);\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(42, 240, 234, 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    \/* Touch-friendly *\/\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(--gradient-start), var(--gradient-mid));\r\n    border-radius: 3px;\r\n    width: 100%;\r\n    transition: width 0.1s ease;\r\n    box-shadow: 0 0 8px rgba(42, 240, 234, 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(--gradient-mid), var(--primary-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), var(--shadow-cyan);\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(122, 243, 238, 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-lg), var(--glow-cyan);\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 - NO FLOATING *\/\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-dark) 0%,\r\n            var(--glass-teal) 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-xl), var(--shadow-teal);\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-light);\r\n    background: linear-gradient(135deg, var(--gradient-start), var(--gradient-mid));\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(255, 51, 102, 0.15);\r\n    border: 1px solid rgba(255, 51, 102, 0.3);\r\n    color: #ff3366;\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(255, 51, 102, 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(42, 240, 234, 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(--gradient-start), var(--gradient-end));\r\n    border-radius: 4px;\r\n    width: 0%;\r\n    transition: width 0.3s ease;\r\n    box-shadow: 0 0 12px rgba(105, 176, 69, 0.4);\r\n    animation: progressGlow 3s ease-in-out infinite;\r\n}\r\n\r\n\/* Error Message - NO FLOATING *\/\r\n.error-message {\r\n    background: linear-gradient(135deg,\r\n            rgba(255, 51, 102, 0.1) 0%,\r\n            rgba(255, 255, 255, 0.9) 100%);\r\n    border: 2px solid rgba(255, 51, 102, 0.3);\r\n    color: #ff6b6b;\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);\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 - KEPT ONLY DECORATIVE ONES *\/\r\n@keyframes gradientShift {\r\n    0%, 100% {\r\n        background-position: 0% 50%;\r\n    }\r\n    50% {\r\n        background-position: 100% 50%;\r\n    }\r\n}\r\n\r\n@keyframes backgroundFloat {\r\n    0%, 100% {\r\n        opacity: 1;\r\n        transform: translateY(0px);\r\n    }\r\n    50% {\r\n        opacity: 0.8;\r\n        transform: translateY(-10px);\r\n    }\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 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@keyframes slideInRight {\r\n    from {\r\n        opacity: 0;\r\n        transform: translateX(100%);\r\n    }\r\n    to {\r\n        opacity: 1;\r\n        transform: translateX(0);\r\n    }\r\n}\r\n\r\n@keyframes spin {\r\n    to {\r\n        transform: rotate(360deg);\r\n    }\r\n}\r\n\r\n@keyframes logoFloat {\r\n    0%, 100% {\r\n        transform: translateY(0px) rotate(0deg);\r\n    }\r\n    50% {\r\n        transform: translateY(-10px) rotate(5deg);\r\n    }\r\n}\r\n\r\n@keyframes logoShine {\r\n    0% {\r\n        transform: translateX(-100%) translateY(-100%) rotate(45deg);\r\n    }\r\n    100% {\r\n        transform: translateX(100%) translateY(100%) rotate(45deg);\r\n    }\r\n}\r\n\r\n@keyframes textGradient {\r\n    0%, 100% {\r\n        background-position: 0% 50%;\r\n    }\r\n    50% {\r\n        background-position: 100% 50%;\r\n    }\r\n}\r\n\r\n@keyframes subtitleGlow {\r\n    0%, 100% {\r\n        text-shadow: 0 0 5px rgba(160, 160, 160, 0.3);\r\n    }\r\n    50% {\r\n        text-shadow: 0 0 15px rgba(160, 160, 160, 0.6);\r\n    }\r\n}\r\n\r\n@keyframes borderFlow {\r\n    0%, 100% {\r\n        opacity: 0.5;\r\n    }\r\n    50% {\r\n        opacity: 1;\r\n    }\r\n}\r\n\r\n@keyframes overlayPulse {\r\n    0%, 100% {\r\n        opacity: 1;\r\n    }\r\n    50% {\r\n        opacity: 0.7;\r\n    }\r\n}\r\n\r\n@keyframes inputFocusGlow {\r\n    0%, 100% {\r\n        box-shadow: 0 0 0 4px rgba(42, 240, 234, 0.2), var(--glow-teal), inset 0 2px 10px rgba(0, 0, 0, 0.1);\r\n    }\r\n    50% {\r\n        box-shadow: 0 0 0 6px rgba(42, 240, 234, 0.4), var(--glow-teal), inset 0 2px 10px rgba(0, 0, 0, 0.1);\r\n    }\r\n}\r\n\r\n@keyframes buttonPulse {\r\n    0%, 100% {\r\n        box-shadow: var(--shadow-lg), var(--shadow-teal);\r\n    }\r\n    50% {\r\n        box-shadow: var(--shadow-xl), var(--glow-primary);\r\n    }\r\n}\r\n\r\n@keyframes buttonHoverGlow {\r\n    0%, 100% {\r\n        filter: brightness(1);\r\n    }\r\n    50% {\r\n        filter: brightness(1.2);\r\n    }\r\n}\r\n\r\n@keyframes textFade {\r\n    0%, 100% {\r\n        opacity: 0.7;\r\n    }\r\n    50% {\r\n        opacity: 1;\r\n    }\r\n}\r\n\r\n@keyframes avatarPulse {\r\n    0%, 100% {\r\n        box-shadow: var(--shadow), var(--shadow-teal);\r\n    }\r\n    50% {\r\n        box-shadow: var(--shadow), 0 0 30px rgba(42, 240, 234, 0.6);\r\n    }\r\n}\r\n\r\n@keyframes valueGlow {\r\n    0%, 100% {\r\n        filter: brightness(1);\r\n    }\r\n    50% {\r\n        filter: brightness(1.2);\r\n    }\r\n}\r\n\r\n@keyframes gridMove {\r\n    0% {\r\n        transform: translate(0, 0);\r\n    }\r\n    100% {\r\n        transform: translate(30px, 30px);\r\n    }\r\n}\r\n\r\n@keyframes titlePulse {\r\n    0%, 100% {\r\n        filter: brightness(1);\r\n    }\r\n    50% {\r\n        filter: brightness(1.3);\r\n    }\r\n}\r\n\r\n@keyframes playButtonPulse {\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@keyframes buttonGlow {\r\n    0%, 100% {\r\n        box-shadow: var(--shadow);\r\n    }\r\n    50% {\r\n        box-shadow: var(--shadow-lg);\r\n    }\r\n}\r\n\r\n@keyframes audioIconPulse {\r\n    0%, 100% {\r\n        transform: scale(1);\r\n    }\r\n    50% {\r\n        transform: scale(1.1);\r\n    }\r\n}\r\n\r\n@keyframes audioWaveRipple {\r\n    0% {\r\n        opacity: 1;\r\n        transform: translate(-50%, -50%) scale(0.8);\r\n    }\r\n    100% {\r\n        opacity: 0;\r\n        transform: translate(-50%, -50%) scale(2);\r\n    }\r\n}\r\n\r\n@keyframes audioPlayPulse {\r\n    0%, 100% {\r\n        box-shadow: var(--shadow), var(--shadow-teal);\r\n    }\r\n    50% {\r\n        box-shadow: var(--shadow-lg), var(--glow-teal);\r\n    }\r\n}\r\n\r\n@keyframes progressGlow {\r\n    0%, 100% {\r\n        box-shadow: 0 0 12px rgba(69, 123, 157, 0.4);\r\n    }\r\n    50% {\r\n        box-shadow: 0 0 20px rgba(69, 123, 157, 0.8);\r\n    }\r\n}\r\n\r\n@keyframes errorShake {\r\n    0%, 100% {\r\n        transform: translateX(0);\r\n    }\r\n    25% {\r\n        transform: translateX(-5px);\r\n    }\r\n    75% {\r\n        transform: translateX(5px);\r\n    }\r\n}\r\n\r\n\/* Enhanced Responsive Design *\/\r\n\r\n\/* Large Tablets and Small Desktops *\/\r\n@media (max-width: 1024px) {\r\n    .container {\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    .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    .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        flex-direction: column !important;\r\n    }\r\n}\r\n\r\n\/* Tablets *\/\r\n@media (max-width: 768px) {\r\n    .container {\r\n        padding: 1rem;\r\n    }\r\n\r\n    .logo {\r\n        flex-direction: column;\r\n        gap: 1rem;\r\n    }\r\n\r\n    .logo-icon {\r\n        width: 60px;\r\n        height: 60px;\r\n        font-size: 24px;\r\n    }\r\n\r\n    .video-stats {\r\n        grid-template-columns: repeat(2, 1fr);\r\n        gap: 0.8rem;\r\n    }\r\n\r\n    .author-section {\r\n        flex-direction: column;\r\n        text-align: center;\r\n        gap: 1rem;\r\n    }\r\n\r\n    .download-progress {\r\n        left: 1rem;\r\n        right: 1rem;\r\n        bottom: 1rem;\r\n        min-width: auto;\r\n    }\r\n\r\n    .control-buttons {\r\n        flex-direction: column;\r\n        gap: 1rem;\r\n        align-items: center;\r\n    }\r\n\r\n    .volume-control {\r\n        order: 3;\r\n        width: 100%;\r\n        justify-content: center;\r\n    }\r\n\r\n    .audio-controls {\r\n        flex-direction: column;\r\n        gap: 1rem;\r\n    }\r\n\r\n    .audio-volume-control {\r\n        width: 100%;\r\n        justify-content: center;\r\n    }\r\n\r\n    .video-player-wrapper {\r\n        max-width: min(300px, 80vw);\r\n    }\r\n\r\n    \/* Show video controls on mobile *\/\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    .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\/* Mobile Phones *\/\r\n@media (max-width: 480px) {\r\n    .container {\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    \/* Touch-friendly adjustments *\/\r\n    .input-field {\r\n        font-size: 16px;\r\n        \/* Prevents zoom on iOS *\/\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\/* Small Mobile Phones *\/\r\n@media (max-width: 360px) {\r\n    .container {\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\/* Landscape Mobile *\/\r\n@media (max-height: 500px) and (orientation: landscape) {\r\n    .container {\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\/* High DPI Displays *\/\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\/* Reduced Motion *\/\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    .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\/* High Contrast Mode *\/\r\n@media (prefers-contrast: high) {\r\n    :root {\r\n        --glass-dark: rgba(0, 0, 0, 0.9);\r\n        --glass-purple: rgba(0, 0, 0, 0.9);\r\n        --glass-blue: rgba(0, 0, 0, 0.9);\r\n        --glass-border: rgba(255, 255, 255, 0.8);\r\n        --shadow: 0 4px 20px rgba(0, 0, 0, 0.8);\r\n        --shadow-lg: 0 8px 40px rgba(0, 0, 0, 0.9);\r\n        --shadow-xl: 0 16px 60px rgba(0, 0, 0, 1);\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-light);\r\n    }\r\n}\r\n\r\n\/* Dark Mode Support *\/\r\n@media (prefers-color-scheme: dark) {\r\n    \/* Already using light theme, but can add specific adjustments *\/\r\n    body {\r\n        background: linear-gradient(135deg,\r\n                #f5ffe9 0%,\r\n                #fff 25%,\r\n                #f5ffe9 50%,\r\n                #e8f5d9 75%,\r\n                #fff 100%);\r\n    }\r\n}\r\n\r\n\/* Print Styles *\/\r\n@media print {\r\n    body {\r\n        background: white !important;\r\n        color: black !important;\r\n    }\r\n\r\n    .container {\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 Draft Viewer \u2013 Content Preview Tool<\/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\"\r\n            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\r\n<script>\r\nconst API_URL = 'https:\/\/tools.xrespond.com\/api\/tiktok\/profile\/videos\/details';\r\nlet currentVideoData = null;\r\nlet isLoading = false;\r\nlet isDownloading = false;\r\nlet downloadController = null;\r\nlet currentVolume = 1;\r\nlet isMuted = false;\r\nlet isFullscreen = false;\r\nlet audioPlaying = false;\r\nlet videoStarted = false;\r\nlet audioCurrentVolume = 1;\r\nlet audioIsMuted = false;\r\n\r\n\/\/ Mobile detection\r\nconst isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent);\r\nconst isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\r\n\r\n\/\/ Utility Functions\r\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction showLoading() {\r\n    document.getElementById('loading').style.display = 'block';\r\n}\r\n\r\nfunction hideLoading() {\r\n    document.getElementById('loading').style.display = 'none';\r\n}\r\n\r\nfunction 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\nfunction hideError() {\r\n    document.getElementById('errorMessage').classList.remove('show');\r\n}\r\n\r\nfunction 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\nfunction 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\nasync 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\nfunction 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\nasync 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\nfunction 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 - REMOVED SIZE STAT\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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\/\/ Updated video progress function with time display\r\nfunction 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\nfunction 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\nfunction 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\nasync 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\nfunction cancelDownload() {\r\n    if (downloadController) {\r\n        downloadController.abort();\r\n    }\r\n}\r\n\r\n\/\/ Event Listeners\r\ndocument.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\ndocument.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\ndocument.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\nif (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\ndocument.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-178\">\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=\"dr\">\n<div class=\"dr-inner\">\n<div class=\"dr-hb\" style=\"margin-top: 4rem;\"><\/div>\n<\/div><section class=\"dr-sec dr-bg-wh\" aria-labelledby=\"dr-h1\">\n<div class=\"dr-inner\">\n<div class=\"dr-hb\">\n<h2 id=\"dr-h1\">How <span class=\"dr-gx\">TikTok Drafts Viewer<\/span> Works<\/h2>\n<p>Browse and manage your TikTok drafts with an intuitive interface built for speed and convenience.<\/p>\n<\/div>\n<div class=\"dr-g3\" data-dr-grid=\"g1\">\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-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>Drafts View<\/h3>\n<p>View TikTok drafts and saved content with full playback and browsing capabilities allowing you to review your unpublished videos anytime, making your overall experience on the platform smooth efficient and thoroughly enjoyable.<\/p>\n<\/article>\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><\/svg>\n<\/div>\n<h3>Draft List<\/h3>\n<p>Browse all draft videos in one place organized for quick scanning and selection making it easy to find and manage your saved content, giving you complete control and flexibility over every aspect of your content journey.<\/p>\n<\/article>\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polygon points=\"5 3 19 12 5 21 5 3\"\/><\/svg>\n<\/div>\n<h3>Draft Preview<\/h3>\n<p>Preview draft videos before posting with full-screen playback and quality checks ensuring your content meets your standards before publishing, ensuring you get the maximum value and utility from every single visit you make.<\/p>\n<\/article>\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"\/><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"\/><\/svg>\n<\/div>\n<h3>Draft Edit<\/h3>\n<p>Edit draft content captions hashtags and settings before publishing your video giving you complete control over your final post, so you can work smarter achieve more and stay productive throughout your sessions.<\/p>\n<\/article>\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-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>Draft Organize<\/h3>\n<p>Organize drafts by date category or status for efficient content management keeping your creative pipeline organized and easy to navigate, providing a seamless intuitive workflow that enhances your daily content management tasks.<\/p>\n<\/article>\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-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>Draft Search<\/h3>\n<p>Find specific drafts quickly with smart search and instant filtering results saving you time when working with large volumes of saved 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=\"dr-sec dr-bg-ow\" aria-labelledby=\"dr-h2\">\n<div class=\"dr-inner\">\n<div class=\"dr-hb\">\n<h2 id=\"dr-h2\">Key Benefits of <span class=\"dr-gx\">TikTok Drafts Viewer<\/span><\/h2>\n<p>Discover why content creators trust our platform for draft management and viewing.<\/p>\n<\/div>\n<div class=\"dr-g4\" data-dr-grid=\"g2\">\n<article class=\"dr-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-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=\"dr-cb-body\">\n<h3>Full Access<\/h3>\n<p>View all drafts from your TikTok account without any restrictions or limitations.<\/p>\n<\/div>\n<\/article>\n<article class=\"dr-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"\/><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"\/><\/svg>\n<\/div>\n<div class=\"dr-cb-body\">\n<h3>No Detection<\/h3>\n<p>Access drafts privately with no tracking notifications or activity logs saved.<\/p>\n<\/div>\n<\/article>\n<article class=\"dr-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"\/><\/svg>\n<\/div>\n<div class=\"dr-cb-body\">\n<h3>Unlimited Use<\/h3>\n<p>No restrictions on draft viewing frequency or the number of drafts you can access.<\/p>\n<\/div>\n<\/article>\n<article class=\"dr-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg>\n<\/div>\n<div class=\"dr-cb-body\">\n<h3>Free Service<\/h3>\n<p>All draft features available at zero cost with no premium tiers or hidden fees.<\/p>\n<\/div>\n<\/article>\n<article class=\"dr-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-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=\"dr-cb-body\">\n<h3>Quick Load<\/h3>\n<p>Drafts load instantly with optimized delivery and minimal wait time for access.<\/p>\n<\/div>\n<\/article>\n<article class=\"dr-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"\/><\/svg>\n<\/div>\n<div class=\"dr-cb-body\">\n<h3>Any Draft<\/h3>\n<p>Access any saved draft from your account regardless of creation date or status.<\/p>\n<\/div>\n<\/article>\n<article class=\"dr-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"\/><\/svg>\n<\/div>\n<div class=\"dr-cb-body\">\n<h3>Safe Storage<\/h3>\n<p>Drafts stored securely with encrypted data handling and no unauthorized access.<\/p>\n<\/div>\n<\/article>\n\n<article class=\"dr-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-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=\"dr-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=\"dr-sec dr-bg-wh\" aria-labelledby=\"dr-h3\">\n<div class=\"dr-inner\">\n<div class=\"dr-hb\">\n<h2 id=\"dr-h3\">Who Should Use <span class=\"dr-gx\">TikTok Drafts 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=\"dr-g3\" data-dr-grid=\"g3\">\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><\/svg>\n<\/div>\n<h3>Content Planning<\/h3>\n<p>Plan content using drafts to map out your posting schedule and creative strategy ensuring a consistent and organized publishing workflow.<\/p>\n<\/article>\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\/><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\"\/><polyline points=\"9 14 12 17 15 11\"\/><\/svg>\n<\/div>\n<h3>Draft Review<\/h3>\n<p>Review draft content thoroughly before publishing to ensure quality and accuracy catching any issues before your content goes live.<\/p>\n<\/article>\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M9 18h6\"\/><path d=\"M10 22h4\"\/><path d=\"M15.09 14c.18-.98.65-1.74 1.41-2.5A4.65 4.65 0 0 0 18 8 6 6 0 0 0 6 8c0 1 .23 2.23 1.5 3.5A4.61 4.61 0 0 1 8.91 14\"\/><\/svg>\n<\/div>\n<h3>Ideas Collection<\/h3>\n<p>Collect content ideas as drafts to build a library of concepts ready for production maintaining a pipeline of creative possibilities.<\/p>\n<\/article>\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-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>Schedule Prep<\/h3>\n<p>Prepare scheduled posts as drafts to streamline your content publishing workflow making it easy to queue up content in advance.<\/p>\n<\/article>\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n<\/div>\n<h3>Collaboration<\/h3>\n<p>Share drafts with team members for collaborative feedback and content refinement enabling efficient teamwork on content creation projects.<\/p>\n<\/article>\n<article class=\"dr-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"dr-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2L2 7l10 5 10-5-10-5z\"\/><path d=\"M2 17l10 5 10-5\"\/><path d=\"M2 12l10 5 10-5\"\/><\/svg>\n<\/div>\n<h3>Version Control<\/h3>\n<p>Keep multiple draft versions to track changes and revert when needed for flexibility ensuring you never lose earlier creative work.<\/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-5617","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5617","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=5617"}],"version-history":[{"count":2,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5617\/revisions"}],"predecessor-version":[{"id":5745,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5617\/revisions\/5745"}],"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=5617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}