{"id":6121,"date":"2026-06-11T00:00:34","date_gmt":"2026-06-11T00:00:34","guid":{"rendered":"https:\/\/viewari.com\/?page_id=6121"},"modified":"2026-06-14T06:24:34","modified_gmt":"2026-06-14T06:24:34","slug":"link","status":"publish","type":"page","link":"https:\/\/viewari.com\/tiktok\/link\/","title":{"rendered":"Tiktok Link Viewer &#8211; Preview Shared Profile URLs Securely"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6121\" class=\"elementor elementor-6121\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7dc90168 e-con-full e-flex e-con e-parent\" data-id=\"7dc90168\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3827269b elementor-widget elementor-widget-shortcode\" data-id=\"3827269b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\n.nstvv {\n    container-type: inline-size;\n    container-name: nstvv;\n    -webkit-text-size-adjust: 100%;\n    --nstvv-ink: #ffffff;\n    --nstvv-muted: #cbd5e1;\n    --nstvv-dim: #94a3b8;\n    --nstvv-panel: rgba(22, 24, 35, 0.94);\n    --nstvv-panel-soft: rgba(255, 255, 255, 0.08);\n    --nstvv-line: rgba(255, 255, 255, 0.12);\n    --nstvv-accent: #ff0050;\n    --nstvv-accent-deep: #ee1d52;\n    --nstvv-cool: #00f2ea;\n    --nstvv-radius: 16px;\n    --nstvv-shadow: 0 16px 36px rgba(0, 0, 0, 0.45);\n    --nstvv-font: \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif;\n    --nstvv-gap: 12px;\n    --nstvv-pad: 12px;\n    box-sizing: border-box;\n    font-family: var(--nstvv-font);\n    color: var(--nstvv-ink);\n    line-height: 1.5;\n    width: 100%;\n    max-width: 100%;\n    min-height: 100vh;\n    min-width: 0;\n    margin: 0 auto;\n    padding: clamp(10px, 2.5vw, 28px) max(clamp(6px, 2vw, 14px), env(safe-area-inset-right, 0px)) max(clamp(14px, 3vw, 28px), env(safe-area-inset-bottom, 0px)) max(clamp(6px, 2vw, 14px), env(safe-area-inset-left, 0px));\n    background:\n      radial-gradient(ellipse 75% 50% at 12% 0%, rgba(255, 0, 80, 0.28), transparent 55%),\n      radial-gradient(ellipse 70% 45% at 92% 8%, rgba(0, 242, 234, 0.18), transparent 50%),\n      linear-gradient(145deg, #0a0a0f 0%, #161823 42%, #1c1917 100%);\n    border-radius: 0;\n    position: relative;\n    isolation: isolate;\n    overflow-x: hidden;\n  }\n\n  .nstvv *,\n  .nstvv *::before,\n  .nstvv *::after {\n    box-sizing: border-box;\n  }\n\n  .nstvv :where(h1, h2, h3, h4, p, ul, ol, li, figure, label, span) {\n    margin: 0;\n    padding: 0;\n    border: 0;\n    font-weight: inherit;\n  }\n\n  .nstvv :where(ul, ol) {\n    list-style: none;\n  }\n\n  .nstvv img {\n    max-width: 100%;\n    height: auto;\n    display: block;\n    border: 0;\n  }\n\n  .nstvv a {\n    color: var(--nstvv-cool);\n    text-decoration: none;\n  }\n\n  .nstvv a:hover {\n    text-decoration: underline;\n  }\n\n  .nstvv-shell {\n    max-width: 1280px;\n    margin: 0 auto;\n    display: flex;\n    flex-direction: column;\n    gap: var(--nstvv-gap);\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstvv-hero {\n    background: transparent;\n    padding: 36px 0 14px;\n    text-align: center;\n    border: 0;\n    box-shadow: none;\n    border-radius: 0;\n  }\n\n  .nstvv-hero__heading {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 12px;\n    flex-wrap: wrap;\n    margin: 0 0 4px;\n  }\n\n  .nstvv-hero__brand {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 44px;\n    height: 44px;\n    min-width: 44px;\n    margin: 0;\n    border-radius: 12px;\n    background: linear-gradient(135deg, var(--nstvv-accent), var(--nstvv-cool));\n    color: #fff;\n    box-shadow: 0 10px 24px rgba(255, 0, 80, 0.35);\n    flex: 0 0 auto;\n  }\n\n  .nstvv .nstvv-hero__brand i {\n    font-size: 1.25rem !important;\n    width: auto;\n    color: #fff !important;\n    display: inline-block !important;\n    line-height: 1 !important;\n  }\n\n  .nstvv-hero__title {\n    font-size: clamp(1.35rem, 4vw, 1.85rem);\n    font-weight: 800;\n    letter-spacing: -0.02em;\n    margin: 0;\n  }\n\n  .nstvv-hero__title-mark {\n    position: relative;\n    color: var(--nstvv-accent);\n    display: inline-block;\n  }\n\n  .nstvv-hero__title-mark::after {\n    content: \"\";\n    position: absolute;\n    left: 0;\n    right: 0;\n    bottom: -2px;\n    height: 3px;\n    background: linear-gradient(90deg, var(--nstvv-accent), var(--nstvv-cool));\n    border-radius: 2px;\n  }\n\n  .nstvv-hero__lead {\n    margin-top: 8px;\n    color: var(--nstvv-muted);\n    font-size: 0.95rem;\n  }\n\n  .nstvv-search {\n    text-align: left;\n    width: 100%;\n    max-width: 100%;\n    min-width: 0;\n    box-sizing: border-box;\n    margin-top: 14px;\n    padding: clamp(14px, 2.5vw, 20px);\n    background: var(--nstvv-panel);\n    border: 1px solid var(--nstvv-line);\n    border-radius: var(--nstvv-radius);\n    box-shadow: var(--nstvv-shadow);\n  }\n\n  .nstvv-search__label {\n    display: block;\n    font-size: 0.82rem;\n    color: var(--nstvv-dim);\n    margin-bottom: 6px;\n    font-weight: 600;\n  }\n\n  .nstvv-search__row {\n    display: flex;\n    flex-direction: column;\n    flex-wrap: wrap;\n    gap: 8px;\n  }\n\n  .nstvv-search__field {\n    flex: 1 1 auto;\n    width: 100%;\n    min-width: 0;\n    border: 1px solid var(--nstvv-line);\n    border-radius: 12px;\n    background: rgba(0, 0, 0, 0.35);\n    color: var(--nstvv-ink);\n    padding: 12px 14px;\n    font-size: 16px;\n    outline: none;\n  }\n\n  .nstvv-search__field:focus {\n    border-color: var(--nstvv-cool);\n    box-shadow: 0 0 0 3px rgba(0, 242, 234, 0.15);\n  }\n\n  .nstvv-search__actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    width: 100%;\n  }\n\n  .nstvv-btn {\n    appearance: none;\n    border: 0;\n    border-radius: 12px;\n    padding: 11px 14px;\n    min-height: 44px;\n    font-weight: 700;\n    font-size: 0.9rem;\n    cursor: pointer;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    color: #fff;\n    flex: 1 1 auto;\n  }\n\n  .nstvv-btn:hover {\n    transform: translateY(-1px);\n  }\n\n  .nstvv-btn:disabled {\n    opacity: .55;\n    cursor: not-allowed;\n    transform: none;\n  }\n\n  .nstvv-btn--paste {\n    background: rgba(255, 255, 255, 0.12);\n    border: 1px solid var(--nstvv-line);\n  }\n\n  .nstvv-btn--view {\n    background: linear-gradient(135deg, var(--nstvv-accent), var(--nstvv-accent-deep));\n  }\n\n  .nstvv-btn--reset {\n    background: linear-gradient(135deg, var(--nstvv-cool), #0891b2);\n    color: #041016;\n  }\n\n  .nstvv-btn.is-hidden {\n    display: none !important;\n  }\n\n  .nstvv-alert {\n    display: none;\n    margin-top: 10px;\n    padding: 10px 12px;\n    border-radius: 10px;\n    background: rgba(255, 77, 109, 0.15);\n    border: 1px solid rgba(255, 77, 109, 0.35);\n    color: #fecdd3;\n    font-size: 0.88rem;\n  }\n\n  .nstvv-alert.is-visible {\n    display: block;\n  }\n\n  .nstvv-alert.is-info {\n    background: rgba(0, 242, 234, 0.12);\n    border-color: rgba(0, 242, 234, 0.35);\n    color: #a5f3fc;\n  }\n\n  .nstvv-search__hint {\n    margin-top: 8px;\n    color: var(--nstvv-dim);\n    font-size: 0.8rem;\n  }\n\n  .nstvv-skeleton {\n    display: none;\n  }\n\n  .nstvv-skeleton.is-visible {\n    display: block;\n  }\n\n  .nstvv-skeleton__panel {\n    background: var(--nstvv-panel);\n    border: 1px solid var(--nstvv-line);\n    border-radius: var(--nstvv-radius);\n    padding: var(--nstvv-pad);\n  }\n\n  .nstvv-sk {\n    background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.06));\n    background-size: 200% 100%;\n    animation: nstvv-shimmer 1.2s ease-in-out infinite;\n    border-radius: 12px;\n  }\n\n  @keyframes nstvv-shimmer {\n    0% {\n      background-position: 200% 0;\n    }\n\n    100% {\n      background-position: -200% 0;\n    }\n  }\n\n  .nstvv-skeleton__profile {\n    display: flex;\n    gap: 14px;\n    align-items: center;\n    margin-bottom: 16px;\n  }\n\n  .nstvv-skeleton__avatar {\n    width: 84px;\n    height: 84px;\n    border-radius: 50%;\n    flex: 0 0 auto;\n  }\n\n  .nstvv-skeleton__lines {\n    flex: 1;\n    min-width: 0;\n  }\n\n  .nstvv-skeleton__line {\n    height: 12px;\n    margin-top: 10px;\n  }\n\n  .nstvv-skeleton__line--lg {\n    width: 70%;\n  }\n\n  .nstvv-skeleton__line--md {\n    width: 45%;\n  }\n\n  .nstvv-skeleton__grid {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 12px;\n  }\n\n  .nstvv-skeleton__card {\n    min-width: 0;\n  }\n\n  .nstvv-skeleton__thumb {\n    aspect-ratio: 9\/14;\n    width: 100%;\n  }\n\n  .nstvv-panel {\n    background: var(--nstvv-panel);\n    border: 1px solid var(--nstvv-line);\n    border-radius: var(--nstvv-radius);\n    box-shadow: var(--nstvv-shadow);\n    padding: var(--nstvv-pad);\n  }\n\n  .nstvv-content.is-hidden {\n    display: none;\n  }\n\n  .nstvv-notice {\n    display: flex;\n    gap: 10px;\n    align-items: flex-start;\n    padding: 10px 12px;\n    margin-bottom: 12px;\n    border-radius: 12px;\n    background: rgba(0, 242, 234, 0.08);\n    border: 1px solid rgba(0, 242, 234, 0.2);\n    color: var(--nstvv-muted);\n    font-size: 0.88rem;\n  }\n\n  .nstvv-notice i {\n    color: var(--nstvv-cool);\n    margin-top: 2px;\n  }\n\n  .nstvv-content:not(.is-placeholder) .nstvv-notice {\n    display: none;\n  }\n\n  .nstvv-profile {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 16px;\n    align-items: flex-start;\n    margin-bottom: 18px;\n    padding-bottom: 16px;\n    border-bottom: 1px solid var(--nstvv-line);\n    justify-content: center;\n  }\n\n  .nstvv-avatar {\n    position: relative;\n    flex: 0 0 auto;\n    margin: 0 auto;\n  }\n\n  .nstvv-avatar__img {\n    width: 96px;\n    height: 96px;\n    border-radius: 50%;\n    object-fit: cover;\n    border: 3px solid rgba(255, 0, 80, 0.45);\n    background: #222;\n  }\n\n  .nstvv-meta {\n    flex: 1 1 220px;\n    min-width: 0;\n    text-align: center;\n  }\n\n  .nstvv-meta__name {\n    font-size: 1.25rem;\n    font-weight: 800;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    flex-wrap: wrap;\n    justify-content: center;\n  }\n\n  .nstvv-meta__verified {\n    color: var(--nstvv-cool);\n  }\n\n  .nstvv-meta__handle {\n    color: var(--nstvv-muted);\n    margin-top: 2px;\n  }\n\n  .nstvv-stats {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 8px;\n    margin-top: 12px;\n  }\n\n  .nstvv-stat {\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    padding: 8px 10px;\n    border-radius: 12px;\n    background: var(--nstvv-panel-soft);\n    border: 1px solid var(--nstvv-line);\n    text-align: center;\n  }\n\n  .nstvv-stat__value {\n    font-weight: 800;\n    font-size: 1rem;\n    overflow-wrap: anywhere;\n  }\n\n  .nstvv-stat__label {\n    color: var(--nstvv-dim);\n    font-size: 0.68rem;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: .04em;\n  }\n\n  .nstvv-bio {\n    width: 100%;\n    color: var(--nstvv-muted);\n    font-size: 0.9rem;\n    white-space: pre-wrap;\n    word-break: break-word;\n    text-align: center;\n  }\n\n  .nstvv-videos__head {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 10px;\n    margin-bottom: 12px;\n  }\n\n  .nstvv-videos__title {\n    font-size: 1.05rem;\n    font-weight: 800;\n    display: inline-flex;\n    gap: 8px;\n    align-items: center;\n  }\n\n  .nstvv-videos__title i {\n    color: var(--nstvv-cool);\n  }\n\n  .nstvv-videos__count {\n    color: var(--nstvv-dim);\n    font-size: 0.85rem;\n    font-weight: 600;\n    margin-right: auto;\n  }\n\n  .nstvv-videos__dlall {\n    appearance: none;\n    border: 0;\n    border-radius: 10px;\n    padding: 9px 12px;\n    font-weight: 700;\n    font-size: 0.82rem;\n    cursor: pointer;\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n    background: linear-gradient(135deg, var(--nstvv-cool), #0891b2);\n    color: #041016;\n  }\n\n  .nstvv-videos__dlall:disabled {\n    opacity: .55;\n    cursor: not-allowed;\n  }\n\n  .nstvv-content.is-placeholder .nstvv-videos__dlall {\n    pointer-events: none;\n    opacity: .45;\n  }\n\n  .nstvv-grid {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: clamp(10px, 2.5vw, 14px);\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstvv-card {\n    display: flex;\n    flex-direction: column;\n    border-radius: 12px;\n    overflow: hidden;\n    background: rgba(255, 255, 255, 0.05);\n    border: 1px solid var(--nstvv-line);\n    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.16);\n    min-width: 0;\n    width: 100%;\n    transition: transform .25s ease, box-shadow .25s ease;\n  }\n\n  .nstvv-card:hover {\n    transform: translateY(-4px);\n    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.24);\n  }\n\n  .nstvv-card--ghost {\n    pointer-events: none;\n    opacity: .7;\n  }\n\n  .nstvv-card__media {\n    position: relative;\n    aspect-ratio: 9\/14;\n    overflow: hidden;\n    background: #12141f;\n    flex: 0 0 auto;\n  }\n\n  .nstvv-card__media--ghost {\n    background:\n      linear-gradient(160deg, rgba(255, 0, 80, 0.22), rgba(0, 242, 234, 0.1) 55%, #0b0b12),\n      repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.03) 0 10px, transparent 10px 20px);\n  }\n\n  .nstvv .nstvv-card__img {\n    width: 100% !important;\n    height: 100% !important;\n    max-width: none;\n    object-fit: cover;\n    transition: transform .45s ease;\n  }\n\n  .nstvv-card:hover .nstvv-card__img {\n    transform: scale(1.05);\n  }\n\n  .nstvv .nstvv-card__dl {\n    position: absolute;\n    top: 8px;\n    right: 8px;\n    z-index: 2;\n    width: 36px;\n    height: 36px;\n    min-width: 36px;\n    border-radius: 9px;\n    border: 0 !important;\n    background: rgba(0, 0, 0, 0.6) !important;\n    color: #fff !important;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    cursor: pointer;\n    appearance: none;\n    touch-action: manipulation;\n  }\n\n  .nstvv .nstvv-card__play {\n    position: absolute;\n    inset: 0;\n    z-index: 1;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    background: rgba(10, 10, 15, 0.35);\n    border: 0 !important;\n    cursor: pointer;\n    color: #fff;\n    appearance: none;\n    touch-action: manipulation;\n  }\n\n  .nstvv .nstvv-card__play span {\n    width: 56px;\n    height: 56px;\n    border-radius: 50%;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    background: rgba(0, 0, 0, 0.55);\n    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);\n    font-size: 1.1rem;\n  }\n\n  .nstvv-card__body {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    padding: 10px 12px 12px;\n    min-width: 0;\n  }\n\n  .nstvv .nstvv-card__title {\n    font-size: 0.88rem;\n    font-weight: 700;\n    color: var(--nstvv-ink);\n    line-height: 1.35;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n    overflow-wrap: anywhere;\n  }\n\n  .nstvv-card__metrics {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 14px;\n    color: var(--nstvv-muted);\n    font-size: 0.78rem;\n    font-weight: 600;\n  }\n\n  .nstvv-card__metrics span {\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n  }\n\n  .nstvv-card__metrics i {\n    color: var(--nstvv-accent);\n  }\n\n  .nstvv-card__metrics span:nth-child(3) i {\n    color: var(--nstvv-cool);\n  }\n\n  .nstvv-empty {\n    text-align: center;\n    padding: 28px 16px;\n    color: var(--nstvv-muted);\n    grid-column: 1 \/ -1;\n  }\n\n  .nstvv-empty i {\n    display: block;\n    font-size: 2.1rem;\n    margin: 0 auto 14px;\n    opacity: .85;\n    color: #fff;\n  }\n\n  .nstvv-more {\n    display: none;\n    width: 100%;\n    margin-top: 14px;\n    appearance: none;\n    border: 1px solid var(--nstvv-line);\n    border-radius: 12px;\n    padding: 12px 14px;\n    font-weight: 800;\n    cursor: pointer;\n    background: rgba(255, 255, 255, 0.06);\n    color: #fff;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n  }\n\n  .nstvv-more.is-visible {\n    display: inline-flex;\n  }\n\n  .nstvv-more:disabled {\n    opacity: .55;\n    cursor: not-allowed;\n  }\n\n  .nstvv-content.is-placeholder .nstvv-more {\n    display: none !important;\n  }\n\n  .nstvv-dlprog {\n    display: none;\n    margin: 12px 0 0;\n    padding: 10px 12px;\n    border-radius: 12px;\n    background: rgba(0, 0, 0, 0.35);\n    border: 1px solid var(--nstvv-line);\n  }\n\n  .nstvv-dlprog.is-visible {\n    display: block;\n  }\n\n  .nstvv-dlprog__top {\n    display: flex;\n    justify-content: space-between;\n    gap: 8px;\n    font-size: 0.82rem;\n    font-weight: 700;\n  }\n\n  .nstvv-dlprog__track {\n    margin-top: 8px;\n    height: 8px;\n    border-radius: 999px;\n    background: rgba(255, 255, 255, 0.1);\n    overflow: hidden;\n  }\n\n  .nstvv-dlprog__fill {\n    height: 100%;\n    width: 0;\n    background: linear-gradient(90deg, var(--nstvv-accent), var(--nstvv-cool));\n  }\n\n  .nstvv-dlprog__meta {\n    margin-top: 6px;\n    display: flex;\n    justify-content: space-between;\n    gap: 8px;\n    color: var(--nstvv-dim);\n    font-size: 0.78rem;\n  }\n\n  .nstvv-modal {\n    position: fixed;\n    inset: 0;\n    z-index: 99999;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    padding: 16px;\n    background: rgba(10, 10, 15, 0.82);\n    backdrop-filter: blur(6px);\n  }\n\n  .nstvv-modal.is-open {\n    display: flex;\n  }\n\n  .nstvv-modal__dialog {\n    position: relative;\n    width: min(720px, 100%);\n    max-height: min(92vh, 900px);\n    overflow: auto;\n    background: var(--nstvv-panel);\n    border: 1px solid var(--nstvv-line);\n    border-radius: 16px;\n    box-shadow: var(--nstvv-shadow);\n    padding: 14px;\n    min-width: 0;\n  }\n\n  .nstvv .nstvv-modal__close {\n    position: absolute;\n    top: 10px;\n    right: 10px;\n    z-index: 3;\n    width: 36px;\n    height: 36px;\n    border: 0;\n    border-radius: 10px;\n    background: rgba(0, 0, 0, 0.55);\n    color: #fff;\n    cursor: pointer;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .nstvv-modal__stage {\n    position: relative;\n    width: min(420px, 100%);\n    margin: 0 auto;\n    aspect-ratio: 9\/14;\n    background: #05050a;\n    border-radius: 12px;\n    overflow: hidden;\n    border: 1px solid var(--nstvv-line);\n  }\n\n  .nstvv-modal__media {\n    width: 100%;\n    height: 100%;\n    object-fit: contain;\n    background: #000;\n    display: block;\n  }\n\n  .nstvv-modal__stage-note {\n    position: absolute;\n    inset: 0;\n    display: none;\n    place-items: center;\n    background: rgba(0, 0, 0, 0.55);\n    color: #fff;\n    font-weight: 800;\n    text-align: center;\n    padding: 16px;\n    z-index: 2;\n  }\n\n  .nstvv-modal__stage-note.is-visible {\n    display: grid;\n  }\n\n  .nstvv-modal__bar {\n    margin-top: 12px;\n  }\n\n  .nstvv-modal__caption {\n    color: var(--nstvv-muted);\n    font-size: 0.9rem;\n    white-space: pre-wrap;\n    word-break: break-word;\n    max-height: 4.5em;\n    overflow: auto;\n    margin-bottom: 10px;\n  }\n\n  .nstvv-modal__actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n  }\n\n  .nstvv-modal__action {\n    appearance: none;\n    border: 0;\n    border-radius: 12px;\n    padding: 11px 14px;\n    font-weight: 800;\n    cursor: pointer;\n    display: inline-flex;\n    gap: 8px;\n    align-items: center;\n    color: #fff;\n    text-decoration: none;\n  }\n\n  .nstvv-modal__action--play {\n    background: var(--nstvv-accent);\n  }\n\n  .nstvv-modal__action--download {\n    background: var(--nstvv-cool);\n    color: #041016;\n  }\n\n  .nstvv-modal__action--open {\n    background: rgba(255, 255, 255, 0.1);\n    border: 1px solid var(--nstvv-line);\n  }\n\n  \/* ------------------------------------------------------------------\n   Responsive \u2014 same pattern as Facebook Friends \/ YouTube Channel\n   JS classes (ResizeObserver on tool width):\n     --narrow  < 480\n     --compact < 768\n     --desktop >= 768\n   Grid columns set inline via JS (beats WP theme CSS).\n------------------------------------------------------------------- *\/\n  .nstvv {\n    --nstvv-cols: 1;\n  }\n\n  .nstvv-search__row {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstvv-search__field {\n    width: 100% !important;\n    max-width: 100% !important;\n    min-width: 0 !important;\n    flex: 1 1 auto !important;\n    font-size: 16px !important;\n  }\n\n  .nstvv-search__actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    width: 100%;\n  }\n\n  .nstvv-btn {\n    flex: 1 1 calc(50% - 4px);\n    justify-content: center;\n    min-height: 44px;\n  }\n\n  .nstvv-grid,\n  .nstvv-skeleton__grid {\n    display: grid;\n    grid-template-columns: repeat(var(--nstvv-cols, 1), minmax(0, 1fr));\n    gap: clamp(10px, 2.5vw, 14px);\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstvv-stats {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 8px;\n  }\n\n  .nstvv.nstvv--desktop .nstvv-stats {\n    grid-template-columns: repeat(4, minmax(0, 1fr));\n  }\n\n  .nstvv.nstvv--compact .nstvv-videos__head {\n    flex-direction: column !important;\n    align-items: stretch !important;\n  }\n\n  .nstvv.nstvv--compact .nstvv-videos__dlall {\n    width: 100% !important;\n    justify-content: center !important;\n  }\n\n  @media (min-width: 768px) {\n    .nstvv:not(.nstvv--compact) .nstvv-search__row {\n      flex-direction: row;\n      flex-wrap: wrap;\n      align-items: stretch;\n    }\n\n    .nstvv:not(.nstvv--compact) .nstvv-search__field {\n      flex: 1 1 220px !important;\n      width: auto !important;\n    }\n\n    .nstvv:not(.nstvv--compact) .nstvv-search__actions {\n      width: auto;\n      flex: 0 0 auto;\n      flex-wrap: nowrap;\n    }\n\n    .nstvv:not(.nstvv--compact) .nstvv-btn {\n      flex: 0 0 auto;\n    }\n  }\n\n  \/* WordPress \/ Live Server narrow container (set by ResizeObserver) *\/\n  .nstvv.nstvv--compact .nstvv-search__row {\n    flex-direction: column !important;\n  }\n\n  .nstvv.nstvv--compact .nstvv-search__actions {\n    width: 100% !important;\n    display: flex !important;\n    flex-wrap: wrap !important;\n  }\n\n  .nstvv.nstvv--compact .nstvv-btn {\n    flex: 1 1 calc(50% - 4px) !important;\n  }\n\n  .nstvv.nstvv--compact .nstvv-search__field {\n    width: 100% !important;\n    flex: 1 1 100% !important;\n  }\n\n  .nstvv.nstvv--narrow .nstvv-btn {\n    flex: 1 1 100% !important;\n  }\n\n  .nstvv.nstvv--narrow .nstvv-search__actions {\n    flex-direction: column !important;\n  }\n\n  .nstvv.nstvv--narrow .nstvv-hero__title {\n    font-size: 1.15rem;\n  }\n\n  @media (hover: none) {\n\n    .nstvv-btn:hover,\n    .nstvv-card:hover {\n      transform: none;\n    }\n\n    .nstvv-card:hover .nstvv-card__img {\n      transform: none;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .nstvv-sk {\n      animation: none;\n    }\n  }\n\n  \/* Turnstile host: keep hidden in-flow; floating panel styles come from turnstile-handler.js *\/\n  .nstvv #xrespond-tools-turnstile-host {\n    display: none;\n  }\n\n  .nstvv #xrespond-tools-turnstile-host.is-visible {\n    display: block !important;\n  }\n\n  \/* Ensure floating Turnstile panel (moved to body) is never clipped\/hidden by tool CSS *\/\n  body>#xrespond-tools-turnstile-host.is-visible {\n    display: block !important;\n    position: fixed !important;\n    z-index: 2147483000 !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    pointer-events: auto !important;\n  }\n\n  \/* Search controls: one row on large screens, wrap on narrow *\/\n  .nstvv .nstvv-search,\n  .nstvv .nstvv-search .nstvv-search__row,\n  .nstvv .nstvv-search .nstvv-search__actions {\n    width: 100% !important;\n    max-width: 100% !important;\n    min-width: 0 !important;\n    box-sizing: border-box !important;\n  }\n\n  .nstvv .nstvv-search .nstvv-search__row {\n    display: flex !important;\n    flex-direction: row !important;\n    flex-wrap: nowrap !important;\n    align-items: stretch !important;\n    gap: 8px !important;\n  }\n\n  .nstvv .nstvv-search .nstvv-search__field,\n  .nstvv .nstvv-search .nstvv-search__row > .nstvv-search__field {\n    flex: 1 1 auto !important;\n    width: auto !important;\n    max-width: none !important;\n    min-width: 0 !important;\n  }\n\n  .nstvv .nstvv-search .nstvv-search__actions,\n  .nstvv .nstvv-search .nstvv-search__row > .nstvv-search__actions {\n    display: flex !important;\n    flex: 0 0 auto !important;\n    flex-direction: row !important;\n    width: auto !important;\n    max-width: none !important;\n    min-width: 0 !important;\n    flex-wrap: nowrap !important;\n    gap: 8px !important;\n  }\n\n  .nstvv .nstvv-search .nstvv-search__row > .nstvv-btn,\n  .nstvv .nstvv-search .nstvv-search__actions .nstvv-btn,\n  .nstvv .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn {\n    flex: 0 0 auto !important;\n    width: auto !important;\n    max-width: none !important;\n    min-width: 110px !important;\n  }\n\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__row,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__row {\n    flex-wrap: wrap !important;\n  }\n\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__field,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__field,\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__row > .nstvv-search__field,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__row > .nstvv-search__field {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__actions,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__actions,\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__row > .nstvv-search__actions,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__row > .nstvv-search__actions {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__row > .nstvv-btn,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__row > .nstvv-btn,\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__actions .nstvv-btn,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__actions .nstvv-btn,\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn {\n    flex: 1 1 calc(50% - 4px) !important;\n    min-width: 0 !important;\n    max-width: 100% !important;\n  }\n\n  @media (max-width: 720px) {\n    .nstvv .nstvv-search .nstvv-search__row {\n      flex-wrap: wrap !important;\n    }\n\n    .nstvv .nstvv-search .nstvv-search__field,\n    .nstvv .nstvv-search .nstvv-search__row > .nstvv-search__field {\n      flex: 1 1 100% !important;\n      width: 100% !important;\n      max-width: 100% !important;\n    }\n\n    .nstvv .nstvv-search .nstvv-search__actions,\n    .nstvv .nstvv-search .nstvv-search__row > .nstvv-search__actions {\n      flex: 1 1 100% !important;\n      width: 100% !important;\n      max-width: 100% !important;\n    }\n\n    .nstvv .nstvv-search .nstvv-search__row > .nstvv-btn,\n    .nstvv .nstvv-search .nstvv-search__actions .nstvv-btn,\n    .nstvv .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn {\n      flex: 1 1 calc(50% - 4px) !important;\n      min-width: 0 !important;\n      max-width: 100% !important;\n    }\n  }\n\n\/* --- Codex CSS updates --- *\/\n.nstvv {\n  container-type: inline-size;\n  container-name: nstvv;\n  -webkit-text-size-adjust: 100%;\n  --nstvv-ink: #f8fafc;\n  --nstvv-muted: #c7d2e3;\n  --nstvv-dim: #91a0b8;\n  --nstvv-panel: rgba(11, 16, 32, 0.82);\n  --nstvv-panel-soft: rgba(255, 255, 255, 0.08);\n  --nstvv-line: rgba(148, 163, 184, 0.2);\n  --nstvv-line-strong: rgba(255, 255, 255, 0.16);\n  --nstvv-accent: #ff2f6d;\n  --nstvv-accent-deep: #d9135a;\n  --nstvv-cool: #4cf6e9;\n  --nstvv-cool-deep: #11c5cb;\n  --nstvv-success: #22c55e;\n  --nstvv-danger: #fb7185;\n  --nstvv-warning: #fbbf24;\n  --nstvv-radius: 20px;\n  --nstvv-radius-sm: 14px;\n  --nstvv-shadow: 0 24px 60px rgba(3, 7, 18, 0.42);\n  --nstvv-shadow-soft: 0 14px 34px rgba(8, 15, 32, 0.26);\n  --nstvv-font: \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif;\n  --nstvv-gap: 18px;\n  --nstvv-pad: clamp(14px, 2.2vw, 22px);\n  --nstvv-cols: 1;\n  box-sizing: border-box;\n  font-family: var(--nstvv-font);\n  color: var(--nstvv-ink);\n  line-height: 1.5;\n  width: 100%;\n  max-width: 100%;\n  min-height: 100vh;\n  min-width: 0;\n  margin: 0 auto;\n  padding: clamp(12px, 2.5vw, 30px) max(clamp(8px, 2vw, 16px), env(safe-area-inset-right, 0px)) max(clamp(18px, 3vw, 32px), env(safe-area-inset-bottom, 0px)) max(clamp(8px, 2vw, 16px), env(safe-area-inset-left, 0px));\n  background:\n    radial-gradient(ellipse 76% 56% at 8% 0%, rgba(255, 47, 109, 0.22), transparent 56%),\n    radial-gradient(ellipse 68% 44% at 96% 10%, rgba(76, 246, 233, 0.16), transparent 54%),\n    radial-gradient(circle at 50% 100%, rgba(59, 130, 246, 0.08), transparent 34%),\n    linear-gradient(145deg, #04070f 0%, #0b1120 38%, #111827 68%, #171b2c 100%);\n  border-radius: 0;\n  position: relative;\n  isolation: isolate;\n  overflow-x: hidden;\n}\n\n.nstvv::before {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent 22%),\n    linear-gradient(120deg, rgba(255, 255, 255, 0.02), transparent 40%);\n  pointer-events: none;\n  z-index: -1;\n}\n\n.nstvv *,\n.nstvv *::before,\n.nstvv *::after {\n  box-sizing: border-box;\n}\n\n.nstvv :where(h1, h2, h3, h4, p, ul, ol, li, figure, label, span) {\n  margin: 0;\n  padding: 0;\n  border: 0;\n  font-weight: inherit;\n}\n\n.nstvv :where(ul, ol) {\n  list-style: none;\n}\n\n.nstvv img {\n  max-width: 100%;\n  height: auto;\n  display: block;\n  border: 0;\n}\n\n.nstvv a {\n  color: var(--nstvv-cool);\n  text-decoration: none;\n  transition: color 0.2s ease, opacity 0.2s ease;\n}\n\n.nstvv a:hover {\n  text-decoration: underline;\n  color: #9dfbf3;\n}\n\n.nstvv .fa-solid,\n.nstvv .fa-brands,\n.nstvv .fa-tiktok,\n.nstvv .fa-film,\n.nstvv .fa-play,\n.nstvv .fa-download,\n.nstvv .fa-paste,\n.nstvv .fa-rotate-left,\n.nstvv .fa-circle-check,\n.nstvv .fa-circle-info,\n.nstvv .fa-angles-down,\n.nstvv .fa-xmark {\n  line-height: 1;\n  vertical-align: middle;\n}\n\n.nstvv-shell {\n  max-width: 1280px;\n  margin: 0 auto;\n  display: flex;\n  flex-direction: column;\n  gap: var(--nstvv-gap);\n  width: 100%;\n  min-width: 0;\n}\n\n.nstvv-hero {\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),\n    linear-gradient(135deg, rgba(255, 47, 109, 0.07), rgba(76, 246, 233, 0.05));\n  padding: clamp(24px, 4vw, 42px) clamp(16px, 3vw, 28px) clamp(18px, 3vw, 24px);\n  text-align: center;\n  border: 1px solid rgba(255, 255, 255, 0.08);\n  box-shadow: var(--nstvv-shadow-soft);\n  border-radius: calc(var(--nstvv-radius) + 6px);\n  position: relative;\n  overflow: hidden;\n}\n\n.nstvv-hero::after {\n  content: \"\";\n  position: absolute;\n  inset: auto -10% -55% auto;\n  width: 240px;\n  height: 240px;\n  border-radius: 50%;\n  background: radial-gradient(circle, rgba(76, 246, 233, 0.14), transparent 68%);\n  pointer-events: none;\n}\n\n.nstvv-hero__heading {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 14px;\n  flex-wrap: wrap;\n  margin: 0 0 8px;\n}\n\n.nstvv-hero__brand {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  width: 52px;\n  height: 52px;\n  min-width: 52px;\n  margin: 0;\n  border-radius: 16px;\n  background: linear-gradient(135deg, var(--nstvv-accent) 0%, #ff6b95 35%, var(--nstvv-cool) 100%);\n  color: #fff;\n  box-shadow:\n    0 16px 32px rgba(255, 47, 109, 0.32),\n    inset 0 1px 0 rgba(255, 255, 255, 0.24);\n  flex: 0 0 auto;\n}\n\n.nstvv .nstvv-hero__brand i {\n  font-size: 1.32rem !important;\n  width: auto;\n  color: #fff !important;\n  display: inline-block !important;\n  line-height: 1 !important;\n}\n\n.nstvv-hero__title {\n  font-size: clamp(1.45rem, 4vw, 2.2rem);\n  font-weight: 800;\n  letter-spacing: -0.035em;\n  margin: 0;\n}\n\n.nstvv-hero__title-mark {\n  position: relative;\n  color: #ffd6e3;\n  display: inline-block;\n  padding-inline: 0.06em;\n}\n\n.nstvv-hero__title-mark::after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -4px;\n  height: 4px;\n  background: linear-gradient(90deg, var(--nstvv-accent), var(--nstvv-cool));\n  border-radius: 999px;\n  box-shadow: 0 0 18px rgba(76, 246, 233, 0.24);\n}\n\n.nstvv-hero__lead {\n  margin-top: 10px;\n  color: var(--nstvv-muted);\n  font-size: 0.98rem;\n  max-width: 720px;\n  margin-inline: auto;\n}\n\n.nstvv-search {\n  text-align: left;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  box-sizing: border-box;\n  margin-top: 6px;\n  padding: clamp(16px, 2.6vw, 24px);\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.03)),\n    var(--nstvv-panel);\n  border: 1px solid var(--nstvv-line);\n  border-radius: var(--nstvv-radius);\n  box-shadow: var(--nstvv-shadow);\n  backdrop-filter: blur(16px);\n}\n\n.nstvv-search__label,\n.xrespond-ts-label {\n  display: block;\n  font-size: 0.82rem;\n  color: var(--nstvv-dim);\n  margin-bottom: 8px;\n  font-weight: 700;\n  letter-spacing: 0.02em;\n}\n\n.nstvv-search__row {\n  display: flex;\n  flex-direction: column;\n  flex-wrap: wrap;\n  gap: 10px;\n  width: 100%;\n  min-width: 0;\n}\n\n.nstvv-search__field {\n  flex: 1 1 auto;\n  width: 100%;\n  min-width: 0;\n  border: 1px solid rgba(148, 163, 184, 0.26);\n  border-radius: 16px;\n  background: linear-gradient(180deg, rgba(10, 16, 30, 0.92), rgba(12, 18, 34, 0.78));\n  color: var(--nstvv-ink);\n  padding: 14px 16px;\n  font-size: 16px;\n  outline: none;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);\n  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, background 0.2s ease;\n}\n\n.nstvv-search__field::placeholder {\n  color: #7f8ca4;\n}\n\n.nstvv-search__field:hover {\n  border-color: rgba(255, 255, 255, 0.18);\n}\n\n.nstvv-search__field:focus,\n.nstvv-search__field:focus-visible {\n  border-color: rgba(76, 246, 233, 0.78);\n  box-shadow:\n    0 0 0 4px rgba(76, 246, 233, 0.12),\n    0 10px 24px rgba(17, 197, 203, 0.12);\n  background: linear-gradient(180deg, rgba(12, 19, 37, 0.96), rgba(15, 22, 40, 0.84));\n}\n\n.nstvv-search__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  width: 100%;\n}\n\n.nstvv-btn {\n  appearance: none;\n  border: 1px solid transparent;\n  border-radius: 14px;\n  padding: 12px 16px;\n  min-height: 46px;\n  font-weight: 800;\n  font-size: 0.92rem;\n  cursor: pointer;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n  color: #fff;\n  flex: 1 1 auto;\n  position: relative;\n  overflow: hidden;\n  box-shadow: 0 10px 22px rgba(4, 9, 20, 0.22);\n  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease, filter 0.22s ease;\n}\n\n.nstvv-btn::before,\n.nstvv-videos__dlall::before,\n.nstvv-more::before,\n.nstvv-modal__action::before {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background: linear-gradient(120deg, rgba(255, 255, 255, 0.22), transparent 35%, transparent 65%, rgba(255, 255, 255, 0.1));\n  opacity: 0.45;\n  pointer-events: none;\n}\n\n.nstvv-btn:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 16px 30px rgba(4, 9, 20, 0.3);\n  filter: saturate(1.06);\n}\n\n.nstvv-btn:active {\n  transform: translateY(0);\n  box-shadow: 0 8px 18px rgba(4, 9, 20, 0.22);\n}\n\n.nstvv-btn:focus-visible,\n.nstvv-videos__dlall:focus-visible,\n.nstvv-more:focus-visible,\n.nstvv-modal__action:focus-visible,\n.nstvv .nstvv-card__dl:focus-visible,\n.nstvv .nstvv-card__play:focus-visible,\n.nstvv .nstvv-modal__close:focus-visible {\n  outline: none;\n  box-shadow:\n    0 0 0 4px rgba(76, 246, 233, 0.16),\n    0 14px 28px rgba(6, 11, 26, 0.24);\n}\n\n.nstvv-btn:disabled {\n  opacity: 0.55;\n  cursor: not-allowed;\n  transform: none;\n  filter: grayscale(0.1);\n  box-shadow: none;\n}\n\n.nstvv-btn--paste {\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));\n  border-color: rgba(255, 255, 255, 0.12);\n}\n\n.nstvv-btn--view {\n  background: linear-gradient(135deg, var(--nstvv-accent) 0%, #ff5b8a 46%, var(--nstvv-accent-deep) 100%);\n}\n\n.nstvv-btn--reset {\n  background: linear-gradient(135deg, var(--nstvv-cool) 0%, #7efcf3 24%, var(--nstvv-cool-deep) 100%);\n  color: #041016;\n  box-shadow: 0 12px 24px rgba(17, 197, 203, 0.25);\n}\n\n.nstvv-btn.is-hidden {\n  display: none !important;\n}\n\n.nstvv-alert {\n  display: none;\n  margin-top: 12px;\n  padding: 12px 14px;\n  border-radius: 14px;\n  background: rgba(251, 113, 133, 0.12);\n  border: 1px solid rgba(251, 113, 133, 0.3);\n  color: #ffd5dc;\n  font-size: 0.88rem;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.nstvv-alert.is-visible {\n  display: block;\n}\n\n.nstvv-alert.is-info {\n  background: rgba(76, 246, 233, 0.1);\n  border-color: rgba(76, 246, 233, 0.28);\n  color: #c7fffb;\n}\n\n.nstvv-search__hint {\n  margin-top: 10px;\n  color: var(--nstvv-dim);\n  font-size: 0.81rem;\n}\n\n.nstvv-skeleton {\n  display: none;\n}\n\n.nstvv-skeleton.is-visible {\n  display: block;\n}\n\n.nstvv-skeleton__panel {\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),\n    var(--nstvv-panel);\n  border: 1px solid var(--nstvv-line);\n  border-radius: var(--nstvv-radius);\n  padding: var(--nstvv-pad);\n  box-shadow: var(--nstvv-shadow);\n}\n\n.nstvv-sk {\n  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.06));\n  background-size: 200% 100%;\n  animation: nstvv-shimmer 1.2s ease-in-out infinite;\n  border-radius: 12px;\n}\n\n@keyframes nstvv-shimmer {\n  0% {\n    background-position: 200% 0;\n  }\n\n  100% {\n    background-position: -200% 0;\n  }\n}\n\n.nstvv-skeleton__profile {\n  display: flex;\n  gap: 16px;\n  align-items: center;\n  margin-bottom: 18px;\n}\n\n.nstvv-skeleton__avatar {\n  width: 84px;\n  height: 84px;\n  border-radius: 50%;\n  flex: 0 0 auto;\n}\n\n.nstvv-skeleton__lines {\n  flex: 1;\n  min-width: 0;\n}\n\n.nstvv-skeleton__line {\n  height: 12px;\n  margin-top: 10px;\n}\n\n.nstvv-skeleton__line--lg {\n  width: 70%;\n}\n\n.nstvv-skeleton__line--md {\n  width: 45%;\n}\n\n.nstvv-skeleton__grid {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 14px;\n  width: 100%;\n  min-width: 0;\n}\n\n.nstvv-skeleton__card {\n  min-width: 0;\n}\n\n.nstvv-skeleton__thumb {\n  aspect-ratio: 9\/14;\n  width: 100%;\n}\n\n.nstvv-panel,\n.nstvv-result,\n.nstvv-videos {\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),\n    var(--nstvv-panel);\n  border: 1px solid var(--nstvv-line);\n  border-radius: var(--nstvv-radius);\n  box-shadow: var(--nstvv-shadow);\n  padding: var(--nstvv-pad);\n  backdrop-filter: blur(16px);\n}\n\n.nstvv-content.is-hidden {\n  display: none;\n}\n\n.nstvv-notice {\n  display: flex;\n  gap: 10px;\n  align-items: flex-start;\n  padding: 12px 14px;\n  margin-bottom: 14px;\n  border-radius: 14px;\n  background: linear-gradient(135deg, rgba(76, 246, 233, 0.1), rgba(76, 246, 233, 0.05));\n  border: 1px solid rgba(76, 246, 233, 0.22);\n  color: var(--nstvv-muted);\n  font-size: 0.89rem;\n}\n\n.nstvv-notice i,\n.nstvv .fa-circle-info {\n  color: var(--nstvv-cool);\n  margin-top: 2px;\n}\n\n.nstvv-content:not(.is-placeholder) .nstvv-notice {\n  display: none;\n}\n\n.nstvv-profile {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 18px;\n  align-items: flex-start;\n  margin-bottom: 20px;\n  padding-bottom: 18px;\n  border-bottom: 1px solid var(--nstvv-line);\n  justify-content: center;\n}\n\n.nstvv-avatar {\n  position: relative;\n  flex: 0 0 auto;\n  margin: 0 auto;\n}\n\n.nstvv-avatar::after {\n  content: \"\";\n  position: absolute;\n  inset: -6px;\n  border-radius: 50%;\n  background: linear-gradient(135deg, rgba(255, 47, 109, 0.5), rgba(76, 246, 233, 0.45));\n  z-index: -1;\n  filter: blur(16px);\n  opacity: 0.45;\n}\n\n.nstvv-avatar__img {\n  width: 104px;\n  height: 104px;\n  border-radius: 50%;\n  object-fit: cover;\n  border: 3px solid rgba(255, 255, 255, 0.18);\n  background: #222;\n  box-shadow: 0 16px 34px rgba(4, 9, 20, 0.28);\n}\n\n.nstvv-meta {\n  flex: 1 1 220px;\n  min-width: 0;\n  text-align: center;\n}\n\n.nstvv-meta__name {\n  font-size: 1.32rem;\n  font-weight: 800;\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  flex-wrap: wrap;\n  justify-content: center;\n  letter-spacing: -0.02em;\n}\n\n.nstvv-meta__verified,\n.nstvv .fa-circle-check {\n  color: var(--nstvv-cool);\n}\n\n.nstvv-meta__handle {\n  color: var(--nstvv-muted);\n  margin-top: 4px;\n  font-size: 0.94rem;\n}\n\n.nstvv-stats {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 10px;\n  margin-top: 14px;\n}\n\n.nstvv-stat {\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n  padding: 12px 12px;\n  border-radius: 16px;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)),\n    var(--nstvv-panel-soft);\n  border: 1px solid var(--nstvv-line);\n  text-align: center;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.nstvv-stat__value {\n  font-weight: 800;\n  font-size: 1.02rem;\n  overflow-wrap: anywhere;\n}\n\n.nstvv-stat__label {\n  color: var(--nstvv-dim);\n  font-size: 0.68rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.08em;\n  margin-top: 3px;\n}\n\n.nstvv-bio {\n  width: 100%;\n  color: var(--nstvv-muted);\n  font-size: 0.92rem;\n  white-space: pre-wrap;\n  word-break: break-word;\n  text-align: center;\n  background: rgba(255, 255, 255, 0.03);\n  border: 1px solid rgba(255, 255, 255, 0.06);\n  border-radius: 14px;\n  padding: 12px 14px;\n}\n\n.nstvv-videos__head {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 12px;\n  margin-bottom: 14px;\n}\n\n.nstvv-videos__title {\n  font-size: 1.08rem;\n  font-weight: 800;\n  display: inline-flex;\n  gap: 8px;\n  align-items: center;\n  letter-spacing: -0.02em;\n}\n\n.nstvv-videos__title i,\n.nstvv .fa-film {\n  color: var(--nstvv-cool);\n}\n\n.nstvv-videos__count {\n  color: var(--nstvv-dim);\n  font-size: 0.85rem;\n  font-weight: 700;\n  margin-right: auto;\n}\n\n.nstvv-videos__dlall {\n  appearance: none;\n  border: 1px solid rgba(76, 246, 233, 0.18);\n  border-radius: 12px;\n  padding: 10px 14px;\n  font-weight: 800;\n  font-size: 0.82rem;\n  cursor: pointer;\n  display: inline-flex;\n  align-items: center;\n  gap: 7px;\n  background: linear-gradient(135deg, var(--nstvv-cool) 0%, #8ffdf4 20%, var(--nstvv-cool-deep) 100%);\n  color: #041016;\n  position: relative;\n  overflow: hidden;\n  box-shadow: 0 14px 26px rgba(17, 197, 203, 0.24);\n  transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;\n}\n\n.nstvv-videos__dlall:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 18px 30px rgba(17, 197, 203, 0.3);\n}\n\n.nstvv-videos__dlall:active {\n  transform: translateY(0);\n}\n\n.nstvv-videos__dlall:disabled {\n  opacity: 0.55;\n  cursor: not-allowed;\n  box-shadow: none;\n}\n\n.nstvv-content.is-placeholder .nstvv-videos__dlall {\n  pointer-events: none;\n  opacity: 0.45;\n}\n\n.nstvv-grid,\n.nstvv-skeleton__grid {\n  display: grid;\n  grid-template-columns: repeat(var(--nstvv-cols, 1), minmax(0, 1fr));\n  gap: clamp(12px, 2.5vw, 16px);\n  width: 100%;\n  min-width: 0;\n}\n\n.nstvv-card {\n  display: flex;\n  flex-direction: column;\n  border-radius: 18px;\n  overflow: hidden;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)),\n    rgba(255, 255, 255, 0.035);\n  border: 1px solid var(--nstvv-line);\n  box-shadow: 0 10px 26px rgba(2, 6, 18, 0.22);\n  min-width: 0;\n  width: 100%;\n  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;\n}\n\n.nstvv-card:hover {\n  transform: translateY(-5px);\n  box-shadow: 0 18px 34px rgba(2, 6, 18, 0.32);\n  border-color: rgba(255, 255, 255, 0.14);\n}\n\n.nstvv-card--ghost {\n  pointer-events: none;\n  opacity: 0.7;\n}\n\n.nstvv-card__media {\n  position: relative;\n  aspect-ratio: 9\/14;\n  overflow: hidden;\n  background: #12141f;\n  flex: 0 0 auto;\n}\n\n.nstvv-card__media::after {\n  content: \"\";\n  position: absolute;\n  inset: auto 0 0;\n  height: 36%;\n  background: linear-gradient(180deg, transparent, rgba(3, 7, 18, 0.56));\n  pointer-events: none;\n  z-index: 1;\n}\n\n.nstvv-card__media--ghost {\n  background:\n    linear-gradient(160deg, rgba(255, 47, 109, 0.24), rgba(76, 246, 233, 0.12) 55%, #0b0b12),\n    repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.03) 0 10px, transparent 10px 20px);\n}\n\n.nstvv .nstvv-card__img {\n  width: 100% !important;\n  height: 100% !important;\n  max-width: none;\n  object-fit: cover;\n  transition: transform 0.45s ease;\n}\n\n.nstvv-card:hover .nstvv-card__img {\n  transform: scale(1.05);\n}\n\n.nstvv .nstvv-card__dl {\n  position: absolute;\n  top: 10px;\n  right: 10px;\n  z-index: 3;\n  width: 38px;\n  height: 38px;\n  min-width: 38px;\n  border-radius: 11px;\n  border: 1px solid rgba(255, 255, 255, 0.12) !important;\n  background: rgba(8, 12, 22, 0.72) !important;\n  color: #fff !important;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  appearance: none;\n  touch-action: manipulation;\n  backdrop-filter: blur(12px);\n  box-shadow: 0 8px 18px rgba(2, 6, 18, 0.28);\n  transition: transform 0.2s ease, background 0.2s ease;\n}\n\n.nstvv .nstvv-card__dl:hover {\n  transform: translateY(-1px);\n  background: rgba(14, 20, 36, 0.84) !important;\n}\n\n.nstvv .nstvv-card__play {\n  position: absolute;\n  inset: 0;\n  z-index: 2;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background: rgba(10, 10, 15, 0.16);\n  border: 0 !important;\n  cursor: pointer;\n  color: #fff;\n  appearance: none;\n  touch-action: manipulation;\n  transition: background 0.24s ease;\n}\n\n.nstvv .nstvv-card__play:hover {\n  background: rgba(10, 10, 15, 0.28);\n}\n\n.nstvv .nstvv-card__play span {\n  width: 62px;\n  height: 62px;\n  border-radius: 50%;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  background: linear-gradient(135deg, rgba(255, 47, 109, 0.88), rgba(76, 246, 233, 0.74));\n  box-shadow:\n    0 12px 28px rgba(0, 0, 0, 0.34),\n    inset 0 1px 0 rgba(255, 255, 255, 0.2);\n  font-size: 1.14rem;\n  transform: scale(1);\n  transition: transform 0.22s ease, box-shadow 0.22s ease;\n}\n\n.nstvv .nstvv-card__play:hover span {\n  transform: scale(1.05);\n  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.42);\n}\n\n.nstvv-card__body {\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n  padding: 12px 13px 14px;\n  min-width: 0;\n}\n\n.nstvv .nstvv-card__title {\n  font-size: 0.9rem;\n  font-weight: 700;\n  color: var(--nstvv-ink);\n  line-height: 1.4;\n  display: -webkit-box;\n  -webkit-line-clamp: 2;\n  -webkit-box-orient: vertical;\n  overflow: hidden;\n  overflow-wrap: anywhere;\n}\n\n.nstvv-card__metrics {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px 14px;\n  color: var(--nstvv-muted);\n  font-size: 0.78rem;\n  font-weight: 700;\n}\n\n.nstvv-card__metrics span {\n  display: inline-flex;\n  align-items: center;\n  gap: 5px;\n}\n\n.nstvv-card__metrics i {\n  color: var(--nstvv-accent);\n}\n\n.nstvv-card__metrics span:nth-child(3) i {\n  color: var(--nstvv-cool);\n}\n\n.nstvv-empty {\n  text-align: center;\n  padding: 34px 18px;\n  color: var(--nstvv-muted);\n  grid-column: 1 \/ -1;\n  border: 1px dashed rgba(255, 255, 255, 0.14);\n  border-radius: 18px;\n  background: rgba(255, 255, 255, 0.03);\n}\n\n.nstvv-empty i {\n  display: block;\n  font-size: 2.1rem;\n  margin: 0 auto 14px;\n  opacity: 0.9;\n  color: #fff;\n}\n\n.nstvv-more {\n  display: none;\n  width: 100%;\n  margin-top: 16px;\n  appearance: none;\n  border: 1px solid var(--nstvv-line-strong);\n  border-radius: 14px;\n  padding: 13px 14px;\n  font-weight: 800;\n  cursor: pointer;\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));\n  color: #fff;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n  position: relative;\n  overflow: hidden;\n  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;\n}\n\n.nstvv-more.is-visible {\n  display: inline-flex;\n}\n\n.nstvv-more:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 14px 26px rgba(2, 6, 18, 0.24);\n}\n\n.nstvv-more:disabled {\n  opacity: 0.55;\n  cursor: not-allowed;\n  box-shadow: none;\n}\n\n.nstvv-content.is-placeholder .nstvv-more {\n  display: none !important;\n}\n\n.nstvv-dlprog {\n  display: none;\n  margin: 14px 0 0;\n  padding: 12px 14px;\n  border-radius: 14px;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),\n    rgba(0, 0, 0, 0.28);\n  border: 1px solid var(--nstvv-line);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.nstvv-dlprog.is-visible {\n  display: block;\n}\n\n.nstvv-dlprog__top {\n  display: flex;\n  justify-content: space-between;\n  gap: 8px;\n  font-size: 0.82rem;\n  font-weight: 800;\n}\n\n.nstvv-dlprog__track {\n  margin-top: 10px;\n  height: 9px;\n  border-radius: 999px;\n  background: rgba(255, 255, 255, 0.08);\n  overflow: hidden;\n}\n\n.nstvv-dlprog__fill {\n  height: 100%;\n  width: 0;\n  background: linear-gradient(90deg, var(--nstvv-accent), #ff7fa4 42%, var(--nstvv-cool));\n  box-shadow: 0 0 18px rgba(76, 246, 233, 0.24);\n}\n\n.nstvv-dlprog__meta {\n  margin-top: 7px;\n  display: flex;\n  justify-content: space-between;\n  gap: 8px;\n  color: var(--nstvv-dim);\n  font-size: 0.78rem;\n}\n\n.nstvv-modal {\n  position: fixed;\n  inset: 0;\n  z-index: 99999;\n  display: none;\n  align-items: center;\n  justify-content: center;\n  padding: 16px;\n  background: rgba(4, 8, 18, 0.82);\n  backdrop-filter: blur(10px);\n}\n\n.nstvv-modal.is-open {\n  display: flex;\n}\n\n.nstvv-modal__dialog {\n  position: relative;\n  width: min(760px, 100%);\n  max-height: min(92vh, 900px);\n  overflow: auto;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.03)),\n    var(--nstvv-panel);\n  border: 1px solid var(--nstvv-line);\n  border-radius: 20px;\n  box-shadow: var(--nstvv-shadow);\n  padding: 16px;\n  min-width: 0;\n}\n\n.nstvv .nstvv-modal__close {\n  position: absolute;\n  top: 12px;\n  right: 12px;\n  z-index: 3;\n  width: 38px;\n  height: 38px;\n  border: 1px solid rgba(255, 255, 255, 0.1);\n  border-radius: 12px;\n  background: rgba(8, 12, 22, 0.66);\n  color: #fff;\n  cursor: pointer;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  backdrop-filter: blur(12px);\n  transition: transform 0.2s ease, background 0.2s ease;\n}\n\n.nstvv .nstvv-modal__close:hover {\n  transform: translateY(-1px);\n  background: rgba(12, 18, 34, 0.88);\n}\n\n.nstvv-modal__stage {\n  position: relative;\n  width: min(420px, 100%);\n  margin: 0 auto;\n  aspect-ratio: 9\/14;\n  background: #05050a;\n  border-radius: 16px;\n  overflow: hidden;\n  border: 1px solid var(--nstvv-line);\n  box-shadow: 0 18px 36px rgba(2, 6, 18, 0.32);\n}\n\n.nstvv-modal__media {\n  width: 100%;\n  height: 100%;\n  object-fit: contain;\n  background: #000;\n  display: block;\n}\n\n.nstvv-modal__stage-note {\n  position: absolute;\n  inset: 0;\n  display: none;\n  place-items: center;\n  background: rgba(0, 0, 0, 0.55);\n  color: #fff;\n  font-weight: 800;\n  text-align: center;\n  padding: 16px;\n  z-index: 2;\n}\n\n.nstvv-modal__stage-note.is-visible {\n  display: grid;\n}\n\n.nstvv-modal__bar {\n  margin-top: 14px;\n}\n\n.nstvv-modal__caption {\n  color: var(--nstvv-muted);\n  font-size: 0.92rem;\n  white-space: pre-wrap;\n  word-break: break-word;\n  max-height: 4.8em;\n  overflow: auto;\n  margin-bottom: 12px;\n  padding: 10px 12px;\n  border-radius: 12px;\n  background: rgba(255, 255, 255, 0.04);\n  border: 1px solid rgba(255, 255, 255, 0.06);\n}\n\n.nstvv-modal__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n}\n\n.nstvv-modal__action {\n  appearance: none;\n  border: 1px solid transparent;\n  border-radius: 14px;\n  padding: 12px 15px;\n  font-weight: 800;\n  cursor: pointer;\n  display: inline-flex;\n  gap: 8px;\n  align-items: center;\n  color: #fff;\n  text-decoration: none;\n  position: relative;\n  overflow: hidden;\n  transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;\n}\n\n.nstvv-modal__action:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 14px 28px rgba(3, 7, 18, 0.28);\n}\n\n.nstvv-modal__action--play {\n  background: linear-gradient(135deg, var(--nstvv-accent), #ff6b95 55%, var(--nstvv-accent-deep));\n}\n\n.nstvv-modal__action--download {\n  background: linear-gradient(135deg, var(--nstvv-cool), #8ffdf4 24%, var(--nstvv-cool-deep));\n  color: #041016;\n}\n\n.nstvv-modal__action--open {\n  background: rgba(255, 255, 255, 0.08);\n  border-color: var(--nstvv-line);\n}\n\n.nstvv-result {\n  width: 100%;\n  min-width: 0;\n}\n\n.nstvv-videos {\n  width: 100%;\n  min-width: 0;\n}\n\n.xrespond-ts-widget {\n  width: 100%;\n  min-width: 0;\n  padding: 12px 14px;\n  border-radius: 14px;\n  background: rgba(255, 255, 255, 0.04);\n  border: 1px solid rgba(255, 255, 255, 0.08);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.xrespond-ts-error {\n  margin-top: 10px;\n  padding: 10px 12px;\n  border-radius: 12px;\n  background: rgba(251, 113, 133, 0.12);\n  border: 1px solid rgba(251, 113, 133, 0.28);\n  color: #ffd5dc;\n  font-size: 0.84rem;\n}\n\n\/* ------------------------------------------------------------------\n Responsive \u2014 same pattern as Facebook Friends \/ YouTube Channel\n JS classes (ResizeObserver on tool width):\n   --narrow  < 480\n   --compact < 768\n   --desktop >= 768\n Grid columns set inline via JS (beats WP theme CSS).\n------------------------------------------------------------------- *\/\n.nstvv-search__field {\n  width: 100% !important;\n  max-width: 100% !important;\n  min-width: 0 !important;\n  flex: 1 1 auto !important;\n  font-size: 16px !important;\n}\n\n.nstvv-btn {\n  flex: 1 1 calc(50% - 5px);\n  justify-content: center;\n  min-height: 46px;\n}\n\n.nstvv-stats {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 10px;\n}\n\n.nstvv.nstvv--desktop .nstvv-stats {\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n\n.nstvv.nstvv--compact .nstvv-videos__head {\n  flex-direction: column !important;\n  align-items: stretch !important;\n}\n\n.nstvv.nstvv--compact .nstvv-videos__dlall {\n  width: 100% !important;\n  justify-content: center !important;\n}\n\n@media (min-width: 768px) {\n  .nstvv:not(.nstvv--compact) .nstvv-search__row {\n    flex-direction: row;\n    flex-wrap: wrap;\n    align-items: stretch;\n  }\n\n  .nstvv:not(.nstvv--compact) .nstvv-search__field {\n    flex: 1 1 220px !important;\n    width: auto !important;\n  }\n\n  .nstvv:not(.nstvv--compact) .nstvv-search__actions {\n    width: auto;\n    flex: 0 0 auto;\n    flex-wrap: nowrap;\n  }\n\n  .nstvv:not(.nstvv--compact) .nstvv-btn {\n    flex: 0 0 auto;\n  }\n}\n\n\/* WordPress \/ Live Server narrow container (set by ResizeObserver) *\/\n.nstvv.nstvv--compact .nstvv-search__row {\n  flex-direction: column !important;\n}\n\n.nstvv.nstvv--compact .nstvv-search__actions {\n  width: 100% !important;\n  display: flex !important;\n  flex-wrap: wrap !important;\n}\n\n.nstvv.nstvv--compact .nstvv-btn {\n  flex: 1 1 calc(50% - 5px) !important;\n}\n\n.nstvv.nstvv--compact .nstvv-search__field {\n  width: 100% !important;\n  flex: 1 1 100% !important;\n}\n\n.nstvv.nstvv--narrow .nstvv-btn {\n  flex: 1 1 100% !important;\n}\n\n.nstvv.nstvv--narrow .nstvv-search__actions {\n  flex-direction: column !important;\n}\n\n.nstvv.nstvv--narrow .nstvv-hero__title {\n  font-size: 1.18rem;\n}\n\n@media (hover: none) {\n  .nstvv-btn:hover,\n  .nstvv-card:hover,\n  .nstvv-videos__dlall:hover,\n  .nstvv-more:hover,\n  .nstvv-modal__action:hover {\n    transform: none;\n  }\n\n  .nstvv-card:hover .nstvv-card__img {\n    transform: none;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nstvv-sk {\n    animation: none;\n  }\n\n  .nstvv *,\n  .nstvv *::before,\n  .nstvv *::after {\n    transition: none !important;\n    scroll-behavior: auto !important;\n  }\n}\n\n\/* Turnstile host: keep hidden in-flow; floating panel styles come from turnstile-handler.js *\/\n.nstvv #xrespond-tools-turnstile-host {\n  display: none;\n}\n\n.nstvv #xrespond-tools-turnstile-host.is-visible {\n  display: block !important;\n}\n\n\/* Ensure floating Turnstile panel (moved to body) is never clipped\/hidden by tool CSS *\/\nbody > #xrespond-tools-turnstile-host.is-visible {\n  display: block !important;\n  position: fixed !important;\n  z-index: 2147483000 !important;\n  visibility: visible !important;\n  opacity: 1 !important;\n  pointer-events: auto !important;\n}\n\n\/* Search controls: one row on large screens, wrap on narrow *\/\n.nstvv .nstvv-search,\n.nstvv .nstvv-search .nstvv-search__row,\n.nstvv .nstvv-search .nstvv-search__actions {\n  width: 100% !important;\n  max-width: 100% !important;\n  min-width: 0 !important;\n  box-sizing: border-box !important;\n}\n\n.nstvv .nstvv-search .nstvv-search__row {\n  display: flex !important;\n  flex-direction: row !important;\n  flex-wrap: nowrap !important;\n  align-items: stretch !important;\n  gap: 10px !important;\n}\n\n.nstvv .nstvv-search .nstvv-search__field,\n.nstvv .nstvv-search .nstvv-search__row > .nstvv-search__field {\n  flex: 1 1 auto !important;\n  width: auto !important;\n  max-width: none !important;\n  min-width: 0 !important;\n}\n\n.nstvv .nstvv-search .nstvv-search__actions,\n.nstvv .nstvv-search .nstvv-search__row > .nstvv-search__actions {\n  display: flex !important;\n  flex: 0 0 auto !important;\n  flex-direction: row !important;\n  width: auto !important;\n  max-width: none !important;\n  min-width: 0 !important;\n  flex-wrap: nowrap !important;\n  gap: 10px !important;\n}\n\n.nstvv .nstvv-search .nstvv-search__row > .nstvv-btn,\n.nstvv .nstvv-search .nstvv-search__actions .nstvv-btn,\n.nstvv .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn {\n  flex: 0 0 auto !important;\n  width: auto !important;\n  max-width: none !important;\n  min-width: 118px !important;\n}\n\n.nstvv.nstvv--compact .nstvv-search .nstvv-search__row,\n.nstvv.nstvv--narrow .nstvv-search .nstvv-search__row {\n  flex-wrap: wrap !important;\n}\n\n.nstvv.nstvv--compact .nstvv-search .nstvv-search__field,\n.nstvv.nstvv--narrow .nstvv-search .nstvv-search__field,\n.nstvv.nstvv--compact .nstvv-search .nstvv-search__row > .nstvv-search__field,\n.nstvv.nstvv--narrow .nstvv-search .nstvv-search__row > .nstvv-search__field {\n  flex: 1 1 100% !important;\n  width: 100% !important;\n  max-width: 100% !important;\n}\n\n.nstvv.nstvv--compact .nstvv-search .nstvv-search__actions,\n.nstvv.nstvv--narrow .nstvv-search .nstvv-search__actions,\n.nstvv.nstvv--compact .nstvv-search .nstvv-search__row > .nstvv-search__actions,\n.nstvv.nstvv--narrow .nstvv-search .nstvv-search__row > .nstvv-search__actions {\n  flex: 1 1 100% !important;\n  width: 100% !important;\n  max-width: 100% !important;\n}\n\n.nstvv.nstvv--compact .nstvv-search .nstvv-search__row > .nstvv-btn,\n.nstvv.nstvv--narrow .nstvv-search .nstvv-search__row > .nstvv-btn,\n.nstvv.nstvv--compact .nstvv-search .nstvv-search__actions .nstvv-btn,\n.nstvv.nstvv--narrow .nstvv-search .nstvv-search__actions .nstvv-btn,\n.nstvv.nstvv--compact .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn,\n.nstvv.nstvv--narrow .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn {\n  flex: 1 1 calc(50% - 5px) !important;\n  min-width: 0 !important;\n  max-width: 100% !important;\n}\n\n@media (max-width: 720px) {\n  .nstvv {\n    --nstvv-gap: 16px;\n    --nstvv-pad: 14px;\n  }\n\n  .nstvv-hero {\n    padding: 22px 14px 16px;\n    border-radius: 20px;\n  }\n\n  .nstvv-hero__heading {\n    gap: 12px;\n  }\n\n  .nstvv-hero__brand {\n    width: 48px;\n    height: 48px;\n    min-width: 48px;\n  }\n\n  .nstvv-search {\n    padding: 14px;\n    border-radius: 18px;\n  }\n\n  .nstvv .nstvv-search .nstvv-search__row {\n    flex-wrap: wrap !important;\n  }\n\n  .nstvv .nstvv-search .nstvv-search__field,\n  .nstvv .nstvv-search .nstvv-search__row > .nstvv-search__field {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstvv .nstvv-search .nstvv-search__actions,\n  .nstvv .nstvv-search .nstvv-search__row > .nstvv-search__actions {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstvv .nstvv-search .nstvv-search__row > .nstvv-btn,\n  .nstvv .nstvv-search .nstvv-search__actions .nstvv-btn,\n  .nstvv .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn {\n    flex: 1 1 calc(50% - 5px) !important;\n    min-width: 0 !important;\n    max-width: 100% !important;\n  }\n\n  .nstvv-panel,\n  .nstvv-result,\n  .nstvv-videos,\n  .nstvv-skeleton__panel {\n    border-radius: 18px;\n  }\n\n  .nstvv-profile {\n    gap: 14px;\n    margin-bottom: 16px;\n    padding-bottom: 16px;\n  }\n\n  .nstvv-avatar__img {\n    width: 92px;\n    height: 92px;\n  }\n\n  .nstvv-card {\n    border-radius: 16px;\n  }\n\n  .nstvv-card__body {\n    padding: 12px;\n  }\n\n  .nstvv-modal {\n    padding: 10px;\n  }\n\n  .nstvv-modal__dialog {\n    padding: 14px;\n    border-radius: 18px;\n  }\n\n  .nstvv-modal__actions {\n    flex-direction: column;\n  }\n\n  .nstvv-modal__action {\n    width: 100%;\n    justify-content: center;\n  }\n}\n\n@media (max-width: 480px) {\n  .nstvv {\n    padding-top: 10px;\n  }\n\n  .nstvv-hero__title {\n    font-size: 1.12rem;\n  }\n\n  .nstvv-hero__lead {\n    font-size: 0.9rem;\n  }\n\n  .nstvv-meta__name {\n    font-size: 1.16rem;\n  }\n\n  .nstvv-stats {\n    grid-template-columns: 1fr;\n  }\n\n  .nstvv-btn,\n  .nstvv-videos__dlall,\n  .nstvv-more {\n    width: 100%;\n  }\n\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__row > .nstvv-btn,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__row > .nstvv-btn,\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__actions .nstvv-btn,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__actions .nstvv-btn,\n  .nstvv.nstvv--compact .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn,\n  .nstvv.nstvv--narrow .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn,\n  .nstvv .nstvv-search .nstvv-search__row > .nstvv-btn,\n  .nstvv .nstvv-search .nstvv-search__actions .nstvv-btn,\n  .nstvv .nstvv-search .nstvv-search__row .nstvv-search__actions .nstvv-btn {\n    flex: 1 1 100% !important;\n  }\n\n  .nstvv-card__metrics {\n    gap: 8px 12px;\n    font-size: 0.76rem;\n  }\n\n  .nstvv-empty {\n    padding: 28px 14px;\n  }\n}\n<\/style>\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\n\n<div class=\"nstvv\" id=\"nstvv-root\" data-nstvv-ready=\"0\">\n  <div class=\"nstvv-shell\">\n    <section class=\"nstvv-hero\" aria-labelledby=\"nstvv-title\">\n      <div class=\"nstvv-hero__heading\">\n        <div class=\"nstvv-hero__brand\" aria-hidden=\"true\">\n          <i class=\"fa-brands fa-tiktok\"><\/i>\n        <\/div>\n<h1 class=\"nstvv-hero__title\" id=\"nstvv-title\">Tiktok Link Viewer - Preview Shared Profile URLs Securely<\/h1>\n      <\/div>\n<p class=\"nstvv-hero__lead\">Browse public videos from a TikTok profile, or preview a single video from its link.\n      <\/p>\n<div class=\"nstvv-search\">\n        <label class=\"nstvv-search__label\" for=\"nstvv-input\">TikTok username, profile URL, or video link<\/label>\n        <div id=\"xrespond-tools-turnstile-host\" aria-hidden=\"true\">\n          <span class=\"xrespond-ts-label\">Please verify you are human to continue:<\/span>\n          <div class=\"xrespond-ts-widget\"><\/div>\n<div class=\"xrespond-ts-error\" role=\"alert\"><\/div>\n        <\/div>\n<div class=\"nstvv-search__row\">\n          <input class=\"nstvv-search__field\" id=\"nstvv-input\" type=\"text\" name=\"nstvv_input\"\n            placeholder=\"@username or https:\/\/www.tiktok.com\/@user\/video\/\u2026\" autocomplete=\"off\" spellcheck=\"false\"\n            inputmode=\"url\">\n          <div class=\"nstvv-search__actions\">\n            <button type=\"button\" class=\"nstvv-btn nstvv-btn--paste\" id=\"nstvv-paste\"><i class=\"fa-solid fa-paste\"\n                aria-hidden=\"true\"><\/i> Paste<\/button>\n            <button type=\"submit\" class=\"nstvv-btn nstvv-btn--view\" id=\"xrespond-tools-turnstile\"><i\n                class=\"fa-solid fa-film\" aria-hidden=\"true\"><\/i> Load Videos<\/button>\n            <button type=\"button\" class=\"nstvv-btn nstvv-btn--reset is-hidden\" id=\"nstvv-reset\"><i\n                class=\"fa-solid fa-rotate-left\" aria-hidden=\"true\"><\/i> Search Another<\/button>\n          <\/div>\n        <\/div>\n<div class=\"nstvv-alert\" id=\"nstvv-alert\" role=\"alert\"><\/div>\n<p class=\"nstvv-search__hint\">Enter a username, profile URL, or a full video link (tiktok.com\/@user\/video\/\u2026)<\/p>\n      <\/div>\n    <\/section>\n\n    <div class=\"nstvv-skeleton\" id=\"nstvv-skeleton\" aria-hidden=\"true\" aria-busy=\"false\">\n      <div class=\"nstvv-skeleton__panel\">\n        <div class=\"nstvv-skeleton__profile\">\n          <div class=\"nstvv-sk nstvv-skeleton__avatar\"><\/div>\n<div class=\"nstvv-skeleton__lines\">\n            <div class=\"nstvv-sk nstvv-skeleton__line nstvv-skeleton__line--lg\"><\/div>\n<div class=\"nstvv-sk nstvv-skeleton__line nstvv-skeleton__line--md\"><\/div>\n          <\/div>\n        <\/div>\n<div class=\"nstvv-skeleton__grid\">\n          <div class=\"nstvv-skeleton__card\">\n            <div class=\"nstvv-sk nstvv-skeleton__thumb\"><\/div>\n          <\/div>\n<div class=\"nstvv-skeleton__card\">\n            <div class=\"nstvv-sk nstvv-skeleton__thumb\"><\/div>\n          <\/div>\n<div class=\"nstvv-skeleton__card\">\n            <div class=\"nstvv-sk nstvv-skeleton__thumb\"><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <section class=\"nstvv-result\" id=\"nstvv-result\" aria-live=\"polite\">\n      <div class=\"nstvv-panel nstvv-content is-placeholder\" id=\"nstvv-content\">\n        <div class=\"nstvv-notice\" role=\"status\">\n          <i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\"><\/i>\n          <span>Enter a TikTok username, profile URL, or video link above to load public videos.<\/span>\n        <\/div>\n<div class=\"nstvv-profile\" id=\"nstvv-profile\">\n          <div class=\"nstvv-avatar\">\n            <img decoding=\"async\" class=\"nstvv-avatar__img\" id=\"nstvv-avatar\" alt=\"Profile avatar\"\n              src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='96' height='96'%3E%3Crect fill='%2322222a' width='96' height='96'\/%3E%3C\/svg%3E\">\n          <\/div>\n<div class=\"nstvv-meta\">\n            <h2 class=\"nstvv-meta__name\">\n              <span id=\"nstvv-name\">Display name<\/span>\n              <span class=\"nstvv-meta__verified\" id=\"nstvv-verified\" hidden title=\"Verified\"><i\n                  class=\"fa-solid fa-circle-check\" aria-hidden=\"true\"><\/i><\/span>\n            <\/h2>\n            <span class=\"nstvv-meta__handle\" id=\"nstvv-handle\">@username<\/span>\n            <ul class=\"nstvv-stats\">\n              <li class=\"nstvv-stat\"><span class=\"nstvv-stat__value\" id=\"nstvv-following\">0<\/span><span\n                  class=\"nstvv-stat__label\">Following<\/span><\/li>\n              <li class=\"nstvv-stat\"><span class=\"nstvv-stat__value\" id=\"nstvv-followers\">0<\/span><span\n                  class=\"nstvv-stat__label\">Followers<\/span><\/li>\n              <li class=\"nstvv-stat\"><span class=\"nstvv-stat__value\" id=\"nstvv-likes\">0<\/span><span\n                  class=\"nstvv-stat__label\">Likes<\/span><\/li>\n              <li class=\"nstvv-stat\"><span class=\"nstvv-stat__value\" id=\"nstvv-videos-count\">0<\/span><span\n                  class=\"nstvv-stat__label\">Videos<\/span><\/li>\n            <\/ul>\n          <\/div>\n<div class=\"nstvv-bio\" id=\"nstvv-bio\">Profile bio will appear here.<\/div>\n        <\/div>\n<div class=\"nstvv-videos\" id=\"nstvv-videos\">\n          <div class=\"nstvv-videos__head\">\n            <h3 class=\"nstvv-videos__title\"><i class=\"fa-solid fa-film\" aria-hidden=\"true\"><\/i> Videos<\/h3>\n            <span class=\"nstvv-videos__count\" id=\"nstvv-found\">Found 0 videos<\/span>\n            <button type=\"button\" class=\"nstvv-videos__dlall\" id=\"nstvv-download-all\" disabled>\n              <i class=\"fa-solid fa-download\" aria-hidden=\"true\"><\/i> Download All\n            <\/button>\n          <\/div>\n<div class=\"nstvv-grid\" id=\"nstvv-grid\" aria-busy=\"false\"><\/div>\n          <button type=\"button\" class=\"nstvv-more\" id=\"nstvv-more\" hidden>\n            <i class=\"fa-solid fa-angles-down\" aria-hidden=\"true\"><\/i> Load more videos\n          <\/button>\n          <div class=\"nstvv-dlprog\" id=\"nstvv-dlprog\" aria-live=\"polite\">\n            <div class=\"nstvv-dlprog__top\"><span id=\"nstvv-dlprog-name\">Download<\/span><span\n                id=\"nstvv-dlprog-pct\">0%<\/span><\/div>\n<div class=\"nstvv-dlprog__track\">\n              <div class=\"nstvv-dlprog__fill\" id=\"nstvv-dlprog-fill\"><\/div>\n            <\/div>\n<div class=\"nstvv-dlprog__meta\"><span id=\"nstvv-dlprog-status\"><\/span><span id=\"nstvv-dlprog-bytes\"><\/span>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n  <\/div>\n<div class=\"nstvv-modal\" id=\"nstvv-video-modal\" aria-hidden=\"true\">\n    <div class=\"nstvv-modal__dialog\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Video preview\">\n      <button type=\"button\" class=\"nstvv-modal__close\" id=\"nstvv-video-modal-close\" aria-label=\"Close video preview\">\n        <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"><\/i>\n      <\/button>\n      <div class=\"nstvv-modal__stage\">\n        <video class=\"nstvv-modal__media\" id=\"nstvv-video-el\" loop playsinline preload=\"auto\"\n          controlsList=\"nodownload\"><\/video>\n        <div class=\"nstvv-modal__stage-note\" id=\"nstvv-video-note\" aria-live=\"polite\"><\/div>\n      <\/div>\n<div class=\"nstvv-modal__bar\">\n        <p class=\"nstvv-modal__caption\" id=\"nstvv-video-caption\"><\/p>\n<div class=\"nstvv-modal__actions\">\n          <button type=\"button\" class=\"nstvv-modal__action nstvv-modal__action--play\" id=\"nstvv-video-play\">\n            <i class=\"fa-solid fa-play\" aria-hidden=\"true\"><\/i> <span id=\"nstvv-video-play-label\">Play<\/span>\n          <\/button>\n          <button type=\"button\" class=\"nstvv-modal__action nstvv-modal__action--download\" id=\"nstvv-video-download\">\n            <i class=\"fa-solid fa-download\" aria-hidden=\"true\"><\/i> Download\n          <\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\r\n\r\n\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap\" rel=\"stylesheet\">\r\n<link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\" rel=\"stylesheet\">\r\n<style>\r\n    :root {\r\n        \/* New Color Scheme *\/\r\n        --primary: #1a237e;\r\n        --secondary: #00bcd4;\r\n        --accent: #7c4dff;\r\n        --primary-light: #534bae;\r\n        --primary-dark: #0d47a1;\r\n        --secondary-light: #62efff;\r\n        --secondary-dark: #0097a7;\r\n        --accent-light: #b388ff;\r\n        --accent-dark: #651fff;\r\n        --text-primary: #ffffff;\r\n        --text-secondary: #b0bec5;\r\n        --text-tertiary: #90a4ae;\r\n        --background-primary: #0a0e27;\r\n        --background-secondary: #151932;\r\n        --background-tertiary: #1e2351;\r\n        --card-bg: rgba(30, 35, 75, 0.7);\r\n        --glass-bg: rgba(26, 35, 126, 0.2);\r\n        --glass-border: rgba(100, 188, 212, 0.3);\r\n        --shadow-primary: 0 8px 32px rgba(0, 0, 0, 0.3);\r\n        --shadow-secondary: 0 4px 16px rgba(124, 77, 255, 0.2);\r\n        --shadow-accent: 0 4px 20px rgba(100, 188, 212, 0.3);\r\n        --glow-primary: 0 0 20px rgba(124, 77, 255, 0.4);\r\n        --glow-secondary: 0 0 20px rgba(100, 188, 212, 0.4);\r\n    }\r\n\r\n    * {\r\n        margin: 0;\r\n        padding: 0;\r\n        box-sizing: border-box;\r\n    }\r\n\r\n    .tiktok_body {\r\n        font-family: 'Inter', sans-serif;\r\n        background: linear-gradient(135deg, \r\n            var(--background-primary) 0%, \r\n            var(--background-secondary) 25%, \r\n            var(--background-tertiary) 50%, \r\n            #1a1a3a 75%, \r\n            #0f0f2e 100%);\r\n        background-size: 400% 400%;\r\n        animation: gradientShift 20s ease infinite;\r\n        color: var(--text-primary);\r\n        min-height: 60vh;\r\n        overflow-x: hidden;\r\n        position: relative;\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            radial-gradient(circle at 20% 30%, rgba(124, 77, 255, 0.1) 0%, transparent 50%),\r\n            radial-gradient(circle at 80% 70%, rgba(100, 188, 212, 0.1) 0%, transparent 50%),\r\n            radial-gradient(circle at 50% 50%, rgba(26, 35, 126, 0.08) 0%, transparent 60%);\r\n        pointer-events: none;\r\n        z-index: -1;\r\n        animation: backgroundFloat 15s ease-in-out infinite;\r\n    }\r\n\r\n    .container_tiktok {\r\n        max-width: 1200px;\r\n        margin: 0 auto;\r\n        padding: 4rem;\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(--primary), var(--accent), var(--secondary));\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-primary), 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(255, 255, 255, 0.1);\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    .logo-text {\r\n        font-size: clamp(1.8rem, 5vw, 3.5rem);\r\n        font-weight: 900;\r\n        background: linear-gradient(135deg, var(--secondary), var(--accent), var(--primary-light));\r\n        background-size: 300% 300%;\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        letter-spacing: -2px;\r\n        animation: textGradient 4s ease infinite;\r\n        filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));\r\n        text-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-secondary);\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-bg) 0%,\r\n                rgba(124, 77, 255, 0.15) 50%,\r\n                rgba(100, 188, 212, 0.15) 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-primary), var(--shadow-secondary);\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(--primary),\r\n                var(--accent),\r\n                var(--secondary),\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(124, 77, 255, 0.05) 0%,\r\n                rgba(100, 188, 212, 0.05) 50%,\r\n                rgba(26, 35, 126, 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: linear-gradient(135deg,\r\n                rgba(30, 35, 75, 0.9) 0%,\r\n                rgba(26, 35, 126, 0.7) 100%) !important;\r\n        border: 2px solid rgba(124, 77, 255, 0.3) !important;\r\n        border-radius: 20px !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-primary), inset 0 2px 10px rgba(0, 0, 0, 0.2) !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(124, 77, 255, 0.1) 0%,\r\n                rgba(100, 188, 212, 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(--accent) !important;\r\n        box-shadow:\r\n            0 0 0 4px rgba(124, 77, 255, 0.2),\r\n            var(--glow-primary),\r\n            inset 0 2px 10px rgba(0, 0, 0, 0.3);\r\n        background: linear-gradient(135deg,\r\n                rgba(30, 35, 75, 0.95) 0%,\r\n                rgba(26, 35, 126, 0.8) 100%) !important;\r\n        transform: translateY(-3px) scale(1.01) !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-secondary);\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(--accent-light);\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-secondary);\r\n        z-index: 2;\r\n        position: relative;\r\n        flex-wrap: wrap;\r\n        gap: 0.5rem;\r\n    }\r\n\r\n    .paste-btn {\r\n        background: linear-gradient(135deg, var(--secondary), var(--secondary-light));\r\n        border: none;\r\n        color: white;\r\n        cursor: pointer;\r\n        padding: clamp(0.5rem, 2vw, 0.7rem) clamp(0.8rem, 3vw, 1.4rem);\r\n        border-radius: 14px;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 0.5rem;\r\n        font-weight: 600;\r\n        box-shadow: var(--shadow-primary), var(--shadow-accent);\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        border: 1px solid rgba(100, 188, 212, 0.3);\r\n        min-height: 44px;\r\n        width: 100%;\r\n        display: flex;\r\n        justify-content: center;\r\n    }\r\n\r\n    .paste-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .paste-btn:hover::before,\r\n    .paste-btn:active::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .paste-btn:hover,\r\n    .paste-btn:active {\r\n        transform: translateY(-3px) scale(1.05);\r\n        box-shadow: var(--shadow-primary), var(--glow-secondary);\r\n        background: linear-gradient(135deg, var(--secondary-light), var(--secondary));\r\n    }\r\n\r\n    .action-buttons {\r\n        display: grid;\r\n        grid-template-columns: 1fr;\r\n        gap: 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, var(--primary), var(--primary-light), var(--accent));\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-primary), var(--shadow-secondary);\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(124, 77, 255, 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-primary), 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, var(--accent), var(--accent-dark));\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(0.8rem, 2.5vw, 1.1rem) clamp(1rem, 3vw, 1.6rem);\r\n        border-radius: 18px;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        min-height: 48px;\r\n        width: 100%;\r\n        font-weight: 600;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        border: 2px solid rgba(124, 77, 255, 0.3);\r\n    }\r\n\r\n    .search-another-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .search-another-btn:hover::before,\r\n    .search-another-btn:active::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .search-another-btn:hover,\r\n    .search-another-btn:active {\r\n        transform: translateY(-3px) scale(1.05);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    \/* Loading Animation *\/\r\n    .loading {\r\n        display: none;\r\n        text-align: center;\r\n        padding: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 4vw, 2.5rem);\r\n        background: linear-gradient(135deg,\r\n                var(--glass-bg) 0%,\r\n                rgba(124, 77, 255, 0.15) 50%,\r\n                rgba(100, 188, 212, 0.15) 100%);\r\n        backdrop-filter: blur(25px);\r\n        border: 2px solid var(--glass-border);\r\n        border-radius: 24px;\r\n        margin: 2rem 0;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n    }\r\n\r\n    .loading::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--primary),\r\n                var(--accent),\r\n                transparent);\r\n        border-radius: 24px 24px 0 0;\r\n    }\r\n\r\n    .loading-spinner {\r\n        width: clamp(60px, 15vw, 100px);\r\n        height: clamp(60px, 15vw, 100px);\r\n        margin: 0 auto 2rem;\r\n        position: relative;\r\n    }\r\n\r\n    .spinner-ring {\r\n        position: absolute;\r\n        border: 4px solid transparent;\r\n        border-radius: 50%;\r\n        animation: spin 2s linear infinite;\r\n    }\r\n\r\n    .spinner-ring:nth-child(1) {\r\n        width: 100%;\r\n        height: 100%;\r\n        border-top-color: var(--primary);\r\n        border-right-color: var(--primary);\r\n        animation-duration: 2s;\r\n        box-shadow: 0 0 20px rgba(26, 35, 126, 0.4);\r\n    }\r\n\r\n    .spinner-ring:nth-child(2) {\r\n        width: 75%;\r\n        height: 75%;\r\n        top: 12.5%;\r\n        left: 12.5%;\r\n        border-bottom-color: var(--secondary);\r\n        border-left-color: var(--secondary);\r\n        animation-duration: 1.5s;\r\n        animation-direction: reverse;\r\n        box-shadow: 0 0 15px rgba(100, 188, 212, 0.4);\r\n    }\r\n\r\n    .spinner-ring:nth-child(3) {\r\n        width: 50%;\r\n        height: 50%;\r\n        top: 25%;\r\n        left: 25%;\r\n        border-top-color: var(--accent);\r\n        animation-duration: 1s;\r\n        box-shadow: 0 0 10px rgba(124, 77, 255, 0.4);\r\n    }\r\n\r\n    .loading-text {\r\n        font-size: clamp(1rem, 3vw, 1.4rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.5rem;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary), var(--accent));\r\n        background-size: 200% 200%;\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        animation: textGradient 3s ease infinite;\r\n    }\r\n\r\n    .loading-subtext {\r\n        color: var(--text-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        animation: textFade 2s ease-in-out infinite;\r\n    }\r\n\r\n    \/* Main Video Section *\/\r\n    .video-section {\r\n        display: none;\r\n        animation: fadeInUp 0.8s ease-out;\r\n        background: linear-gradient(135deg,\r\n                var(--glass-bg) 0%,\r\n                rgba(124, 77, 255, 0.15) 30%,\r\n                rgba(100, 188, 212, 0.15) 70%,\r\n                var(--glass-bg) 100%);\r\n        backdrop-filter: blur(25px);\r\n        border: 2px solid var(--glass-border);\r\n        border-radius: 24px;\r\n        padding: clamp(1.5rem, 4vw, 2.5rem);\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .video-section::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--primary),\r\n                var(--secondary),\r\n                var(--accent),\r\n                transparent);\r\n        animation: borderFlow 4s ease-in-out infinite;\r\n    }\r\n\r\n    \/* Author Info *\/\r\n    .author-section {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.8rem, 3vw, 1.2rem);\r\n        margin-bottom: 1.5rem;\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        background: linear-gradient(135deg,\r\n                rgba(124, 77, 255, 0.15) 0%,\r\n                rgba(100, 188, 212, 0.15) 50%,\r\n                rgba(26, 35, 126, 0.15) 100%);\r\n        border-radius: 20px;\r\n        border: 1px solid rgba(124, 77, 255, 0.3);\r\n        width: 100%;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        transition: all 0.4s ease;\r\n        flex-wrap: wrap;\r\n        justify-content: center;\r\n        text-align: center;\r\n    }\r\n\r\n    .author-section:hover,\r\n    .author-section:active {\r\n        transform: translateY(-3px);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    .author-avatar {\r\n        width: clamp(50px, 12vw, 60px);\r\n        height: clamp(50px, 12vw, 60px);\r\n        border-radius: 50%;\r\n        object-fit: cover;\r\n        border: 3px solid transparent;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        padding: 2px;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        animation: avatarPulse 4s ease-in-out infinite;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .author-details {\r\n        flex: 1;\r\n        min-width: 0;\r\n    }\r\n\r\n    .author-details h3 {\r\n        font-size: clamp(1rem, 3vw, 1.2rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        word-break: break-word;\r\n    }\r\n\r\n    .author-username {\r\n        color: var(--text-secondary);\r\n        font-size: clamp(0.8rem, 2.5vw, 0.95rem);\r\n        font-weight: 500;\r\n        word-break: break-word;\r\n    }\r\n\r\n    \/* Title *\/\r\n    .video-title {\r\n        font-size: clamp(1.2rem, 4vw, 1.6rem);\r\n        font-weight: 800;\r\n        margin-bottom: 1.5rem;\r\n        line-height: 1.4;\r\n        color: var(--text-primary);\r\n        width: 100%;\r\n        text-align: center;\r\n        text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\r\n        word-break: break-word;\r\n        padding: 0 1rem;\r\n    }\r\n\r\n    \/* Stats Grid *\/\r\n    .video-stats {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\r\n        gap: clamp(0.5rem, 2vw, 1rem);\r\n        margin-bottom: 2rem;\r\n    }\r\n\r\n    .stat-item {\r\n        background: linear-gradient(135deg,\r\n                var(--glass-bg) 0%,\r\n                rgba(124, 77, 255, 0.15) 100%);\r\n        padding: clamp(0.8rem, 3vw, 1.2rem);\r\n        border-radius: 18px;\r\n        text-align: center;\r\n        border: 1px solid var(--glass-border);\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-primary);\r\n        backdrop-filter: blur(15px);\r\n        min-height: 80px;\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: center;\r\n    }\r\n\r\n    .stat-item::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(124, 77, 255, 0.3), transparent);\r\n        transition: left 0.6s;\r\n    }\r\n\r\n    .stat-item:hover::before,\r\n    .stat-item:active::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .stat-item:hover,\r\n    .stat-item:active {\r\n        transform: translateY(-5px) scale(1.02);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    .stat-item.views {\r\n        border-color: rgba(26, 35, 126, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(26, 35, 126, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n    }\r\n\r\n    .stat-item.likes {\r\n        border-color: rgba(100, 188, 212, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(100, 188, 212, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n    }\r\n\r\n    .stat-item.comments {\r\n        border-color: rgba(124, 77, 255, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(124, 77, 255, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n    }\r\n\r\n    .stat-item.shares {\r\n        border-color: rgba(179, 136, 255, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(179, 136, 255, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n    }\r\n\r\n    .stat-item.duration {\r\n        border-color: rgba(98, 239, 255, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(98, 239, 255, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n    }\r\n\r\n    .stat-value {\r\n        font-size: clamp(1.2rem, 4vw, 1.6rem);\r\n        font-weight: 900;\r\n        display: block;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        animation: valueGlow 4s ease-in-out infinite;\r\n    }\r\n\r\n    .stat-label {\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        color: var(--text-secondary);\r\n        font-weight: 600;\r\n        text-transform: uppercase;\r\n        letter-spacing: 0.5px;\r\n    }\r\n\r\n    \/* Video Streaming Area *\/\r\n    .video-streaming-area {\r\n        background: linear-gradient(135deg,\r\n                rgba(26, 35, 126, 0.08) 0%,\r\n                rgba(100, 188, 212, 0.08) 50%,\r\n                rgba(124, 77, 255, 0.08) 100%);\r\n        border: 2px solid rgba(26, 35, 126, 0.3);\r\n        border-radius: 24px;\r\n        padding: clamp(1.5rem, 4vw, 2.5rem);\r\n        margin-bottom: 1.5rem;\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        backdrop-filter: blur(15px);\r\n    }\r\n\r\n    .video-streaming-area::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background-image:\r\n            linear-gradient(rgba(26, 35, 126, 0.05) 1px, transparent 1px),\r\n            linear-gradient(90deg, rgba(100, 188, 212, 0.05) 1px, transparent 1px);\r\n        background-size: 30px 30px;\r\n        opacity: 0.6;\r\n        pointer-events: none;\r\n        z-index: 1;\r\n        animation: gridMove 12s linear infinite;\r\n    }\r\n\r\n    .video-streaming-area::after {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--primary),\r\n                var(--secondary),\r\n                var(--accent),\r\n                transparent);\r\n        z-index: 2;\r\n        animation: borderFlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    .streaming-header {\r\n        text-align: center;\r\n        margin-bottom: 2rem;\r\n        position: relative;\r\n        z-index: 3;\r\n    }\r\n\r\n    .streaming-title {\r\n        font-size: clamp(1rem, 3vw, 1.3rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.5rem;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        animation: titlePulse 4s ease-in-out infinite;\r\n    }\r\n\r\n    .streaming-subtitle {\r\n        color: var(--text-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        font-weight: 500;\r\n    }\r\n\r\n    \/* Video Player *\/\r\n    .video-player-wrapper {\r\n        position: relative;\r\n        width: 100%;\r\n        max-width: min(380px, 90vw);\r\n        margin: 0 auto;\r\n        aspect-ratio: 9\/16;\r\n        border-radius: 24px;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        background: #000;\r\n        z-index: 3;\r\n        border: 2px solid rgba(26, 35, 126, 0.3);\r\n    }\r\n\r\n    .video-thumbnail {\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        object-fit: cover;\r\n        z-index: 4;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n    }\r\n\r\n    .video-thumbnail:hover,\r\n    .video-thumbnail:active {\r\n        transform: scale(1.02);\r\n    }\r\n\r\n    .thumbnail-overlay {\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: rgba(0, 0, 0, 0.4);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        z-index: 5;\r\n        cursor: pointer;\r\n        transition: all 0.4s ease;\r\n        backdrop-filter: blur(2px);\r\n    }\r\n\r\n    .thumbnail-overlay:hover,\r\n    .thumbnail-overlay:active {\r\n        background: rgba(0, 0, 0, 0.6);\r\n        backdrop-filter: blur(4px);\r\n    }\r\n\r\n    .thumbnail-play-btn {\r\n        width: clamp(60px, 15vw, 80px);\r\n        height: clamp(60px, 15vw, 80px);\r\n        background: linear-gradient(135deg, var(--primary), var(--accent));\r\n        border: none;\r\n        border-radius: 50%;\r\n        color: white;\r\n        font-size: clamp(1.5rem, 4vw, 2rem);\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        position: relative;\r\n        overflow: hidden;\r\n        animation: playButtonPulse 3s ease-in-out infinite;\r\n        border: 2px solid rgba(255, 255, 255, 0.2);\r\n        min-height: 44px;\r\n    }\r\n\r\n    .thumbnail-play-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transform: translateX(-100%);\r\n        transition: transform 0.6s;\r\n    }\r\n\r\n    .thumbnail-play-btn:hover,\r\n    .thumbnail-play-btn:active {\r\n        transform: translateX(100%);\r\n    }\r\n\r\n    .thumbnail-play-btn:hover,\r\n    .thumbnail-play-btn:active {\r\n        transform: scale(1.15);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    .video-player {\r\n        width: 100%;\r\n        height: 100%;\r\n        object-fit: contain;\r\n        background: #000;\r\n        position: relative;\r\n        z-index: 2;\r\n        display: none;\r\n    }\r\n\r\n    .video-player.playing {\r\n        display: block;\r\n    }\r\n\r\n    .video-controls {\r\n        position: absolute;\r\n        bottom: 0;\r\n        left: 0;\r\n        right: 0;\r\n        background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        transform: translateY(100%);\r\n        transition: transform 0.4s ease;\r\n        z-index: 10;\r\n        backdrop-filter: blur(10px);\r\n    }\r\n\r\n    .video-player-wrapper:hover .video-controls,\r\n    .video-controls.show {\r\n        transform: translateY(0);\r\n    }\r\n\r\n    .progress-bar {\r\n        width: 100%;\r\n        height: clamp(4px, 1.5vw, 6px);\r\n        background: rgba(255, 255, 255, 0.2);\r\n        border-radius: 3px;\r\n        margin-bottom: 0.5rem;\r\n        cursor: pointer;\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .progress-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--primary), var(--accent));\r\n        border-radius: 3px;\r\n        width: 0%;\r\n        transition: width 0.1s linear;\r\n        box-shadow: 0 0 10px rgba(26, 35, 126, 0.5);\r\n    }\r\n\r\n    \/* Video Time Display *\/\r\n    .video-time {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        color: var(--text-secondary);\r\n        margin-bottom: 1rem;\r\n    }\r\n\r\n    .control-buttons {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        flex-wrap: wrap;\r\n        gap: 1rem;\r\n    }\r\n\r\n    .control-group {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.5rem, 2vw, 0.75rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .control-btn {\r\n        background: rgba(255, 255, 255, 0.15);\r\n        border: none;\r\n        color: white;\r\n        width: clamp(40px, 10vw, 44px);\r\n        height: clamp(40px, 10vw, 44px);\r\n        border-radius: 50%;\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        transition: all 0.3s ease;\r\n        backdrop-filter: blur(10px);\r\n        border: 1px solid rgba(255, 255, 255, 0.2);\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        min-height: 44px;\r\n        min-width: 44px;\r\n    }\r\n\r\n    .control-btn:hover,\r\n    .control-btn:active {\r\n        background: rgba(255, 255, 255, 0.25);\r\n        transform: scale(1.1);\r\n        box-shadow: var(--shadow-primary);\r\n    }\r\n\r\n    .play-btn {\r\n        width: clamp(50px, 12vw, 60px);\r\n        height: clamp(50px, 12vw, 60px);\r\n        background: linear-gradient(135deg, var(--primary), var(--accent));\r\n        font-size: clamp(1rem, 3vw, 1.4rem);\r\n        border: none;\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    .volume-control {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.3rem, 1.5vw, 0.5rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .volume-slider {\r\n        width: clamp(60px, 15vw, 80px);\r\n        height: clamp(4px, 1.5vw, 6px);\r\n        background: rgba(255, 255, 255, 0.2);\r\n        border-radius: 3px;\r\n        cursor: pointer;\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .volume-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--secondary), var(--secondary-light));\r\n        border-radius: 3px;\r\n        width: 100%;\r\n        transition: width 0.1s ease;\r\n        box-shadow: 0 0 8px rgba(100, 188, 212, 0.4);\r\n    }\r\n\r\n    \/* Download Section *\/\r\n    .download-section {\r\n        background: linear-gradient(135deg,\r\n                rgba(100, 188, 212, 0.1) 0%,\r\n                rgba(98, 239, 255, 0.1) 50%,\r\n                var(--glass-bg) 100%);\r\n        border: 2px solid rgba(100, 188, 212, 0.3);\r\n        border-radius: 20px;\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        margin-bottom: 1.5rem;\r\n        box-shadow: var(--shadow-primary), var(--shadow-accent);\r\n        position: relative;\r\n        overflow: hidden;\r\n        backdrop-filter: blur(15px);\r\n    }\r\n\r\n    .download-section::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--secondary),\r\n                var(--secondary-light),\r\n                transparent);\r\n        animation: borderFlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    .download-header {\r\n        text-align: center;\r\n        margin-bottom: clamp(0.8rem, 2.5vw, 1.2rem);\r\n    }\r\n\r\n    .download-title {\r\n        font-size: clamp(1rem, 3vw, 1.2rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--secondary), var(--secondary-light));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        animation: titlePulse 4s ease-in-out infinite;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .download-subtitle {\r\n        color: var(--text-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n    }\r\n\r\n    .download-grid {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\r\n        gap: clamp(0.8rem, 2vw, 1rem);\r\n    }\r\n\r\n    .download-btn {\r\n        background: linear-gradient(135deg, var(--secondary), var(--secondary-light));\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(0.8rem, 3vw, 1rem) clamp(1rem, 3vw, 1.5rem);\r\n        border-radius: 16px;\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        box-shadow: var(--shadow-primary), var(--shadow-accent);\r\n        position: relative;\r\n        overflow: hidden;\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        animation: buttonGlow 5s ease-in-out infinite;\r\n        border: 1px solid rgba(100, 188, 212, 0.3);\r\n        min-height: 48px;\r\n        text-align: center;\r\n    }\r\n\r\n    .download-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .download-btn:hover:not(:disabled)::before,\r\n    .download-btn:active:not(:disabled)::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .download-btn:hover:not(:disabled),\r\n    .download-btn:active:not(:disabled) {\r\n        transform: translateY(-3px) scale(1.02);\r\n        box-shadow: var(--shadow-primary), var(--glow-secondary);\r\n    }\r\n\r\n    .download-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n        animation: none;\r\n    }\r\n\r\n    .download-btn.hd {\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        border-color: rgba(124, 77, 255, 0.3);\r\n    }\r\n\r\n    .download-btn.hd:hover:not(:disabled),\r\n    .download-btn.hd:active:not(:disabled) {\r\n        box-shadow: var(--shadow-primary), 0 0 30px rgba(124, 77, 255, 0.5);\r\n    }\r\n\r\n    \/* Audio Streaming Section *\/\r\n    .audio-streaming {\r\n        background: linear-gradient(135deg,\r\n                rgba(124, 77, 255, 0.12) 0%,\r\n                rgba(179, 136, 255, 0.12) 50%,\r\n                var(--glass-bg) 100%);\r\n        border: 2px solid rgba(124, 77, 255, 0.3);\r\n        border-radius: 20px;\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        backdrop-filter: blur(15px);\r\n    }\r\n\r\n    .audio-streaming::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--accent),\r\n                var(--accent-light),\r\n                transparent);\r\n        animation: borderFlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    .audio-header {\r\n        text-align: center;\r\n        margin-bottom: clamp(0.8rem, 2.5vw, 1.2rem);\r\n    }\r\n\r\n    .audio-main-title {\r\n        font-size: clamp(1rem, 3vw, 1.2rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        animation: titlePulse 4s ease-in-out infinite;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .audio-subtitle {\r\n        color: var(--text-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n        margin-bottom: clamp(0.8rem, 2.5vw, 1.2rem);\r\n    }\r\n\r\n    .audio-player-section {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.8rem, 3vw, 1.2rem);\r\n        margin-bottom: 1.5rem;\r\n        flex-wrap: wrap;\r\n        justify-content: center;\r\n    }\r\n\r\n    \/* Audio Icon - Left Side, Smaller *\/\r\n    .audio-icon-wrapper {\r\n        position: relative;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .audio-icon {\r\n        width: clamp(40px, 10vw, 50px);\r\n        height: clamp(40px, 10vw, 50px);\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        border-radius: 50%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        font-size: clamp(1rem, 2.5vw, 1.2rem);\r\n        color: white;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        animation: audioIconPulse 4s ease-in-out infinite;\r\n        position: relative;\r\n        z-index: 2;\r\n        border: 2px solid rgba(124, 77, 255, 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(124, 77, 255, 0.2);\r\n        border-radius: 50%;\r\n        animation: audioWaveRipple 2s ease-out infinite;\r\n    }\r\n\r\n    .audio-wave:nth-child(1) {\r\n        width: clamp(50px, 12vw, 60px);\r\n        height: clamp(50px, 12vw, 60px);\r\n        animation-delay: 0s;\r\n    }\r\n\r\n    .audio-wave:nth-child(2) {\r\n        width: clamp(60px, 15vw, 75px);\r\n        height: clamp(60px, 15vw, 75px);\r\n        animation-delay: 0.5s;\r\n    }\r\n\r\n    .audio-wave:nth-child(3) {\r\n        width: clamp(70px, 18vw, 90px);\r\n        height: clamp(70px, 18vw, 90px);\r\n        animation-delay: 1s;\r\n    }\r\n\r\n    .audio-info {\r\n        flex: 1;\r\n        min-width: 0;\r\n        text-align: center;\r\n    }\r\n\r\n    .audio-title {\r\n        font-size: clamp(0.9rem, 2.5vw, 1rem);\r\n        font-weight: 700;\r\n        color: var(--text-primary);\r\n        margin-bottom: 0.25rem;\r\n        word-break: break-word;\r\n    }\r\n\r\n    .audio-artist {\r\n        font-size: clamp(0.75rem, 2vw, 0.85rem);\r\n        color: var(--text-secondary);\r\n        margin-bottom: 1rem;\r\n        word-break: break-word;\r\n    }\r\n\r\n    \/* Audio Progress Bar *\/\r\n    .audio-progress-container {\r\n        width: 100%;\r\n        margin-bottom: 1rem;\r\n    }\r\n\r\n    .audio-progress {\r\n        height: clamp(6px, 2vw, 8px);\r\n        background: rgba(124, 77, 255, 0.2);\r\n        border-radius: 4px;\r\n        position: relative;\r\n        cursor: pointer;\r\n        overflow: hidden;\r\n        margin-bottom: 0.5rem;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .audio-progress-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--accent), var(--accent-light));\r\n        border-radius: 4px;\r\n        width: 0%;\r\n        transition: width 0.1s ease;\r\n        box-shadow: 0 0 10px rgba(124, 77, 255, 0.4);\r\n    }\r\n\r\n    .audio-time {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        color: var(--text-secondary);\r\n        margin-bottom: 1rem;\r\n    }\r\n\r\n    \/* Audio Controls *\/\r\n    .audio-controls {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: clamp(0.8rem, 3vw, 1rem);\r\n        margin-bottom: 1rem;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .audio-play-btn {\r\n        width: clamp(44px, 10vw, 50px);\r\n        height: clamp(44px, 10vw, 50px);\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        border: none;\r\n        border-radius: 50%;\r\n        color: white;\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        font-size: clamp(1rem, 2.5vw, 1.2rem);\r\n        flex-shrink: 0;\r\n        animation: audioPlayPulse 4s ease-in-out infinite;\r\n        border: 2px solid rgba(124, 77, 255, 0.3);\r\n        min-height: 44px;\r\n        min-width: 44px;\r\n    }\r\n\r\n    .audio-play-btn:hover,\r\n    .audio-play-btn:active {\r\n        transform: scale(1.1);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    \/* Audio Volume Control *\/\r\n    .audio-volume-control {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.5rem, 2vw, 0.75rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .audio-volume-btn {\r\n        background: rgba(124, 77, 255, 0.15);\r\n        border: none;\r\n        color: var(--accent-light);\r\n        width: clamp(36px, 8vw, 40px);\r\n        height: clamp(36px, 8vw, 40px);\r\n        border-radius: 50%;\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        transition: all 0.3s ease;\r\n        backdrop-filter: blur(10px);\r\n        border: 1px solid rgba(124, 77, 255, 0.2);\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        min-height: 44px;\r\n        min-width: 44px;\r\n    }\r\n\r\n    .audio-volume-btn:hover,\r\n    .audio-volume-btn:active {\r\n        background: rgba(124, 77, 255, 0.25);\r\n        transform: scale(1.1);\r\n        box-shadow: var(--shadow-primary);\r\n    }\r\n\r\n    .audio-volume-slider {\r\n        width: clamp(60px, 15vw, 80px);\r\n        height: clamp(4px, 1.5vw, 6px);\r\n        background: rgba(124, 77, 255, 0.2);\r\n        border-radius: 3px;\r\n        cursor: pointer;\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .audio-volume-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--accent), var(--accent-light));\r\n        border-radius: 3px;\r\n        width: 100%;\r\n        transition: width 0.1s ease;\r\n        box-shadow: 0 0 8px rgba(124, 77, 255, 0.4);\r\n    }\r\n\r\n    .download-audio-section {\r\n        text-align: center;\r\n    }\r\n\r\n    .download-audio-btn {\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-dark));\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(0.8rem, 3vw, 1rem) clamp(1rem, 3vw, 1.5rem);\r\n        border-radius: 16px;\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: inline-flex;\r\n        align-items: center;\r\n        gap: 0.5rem;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        animation: buttonGlow 5s ease-in-out infinite;\r\n        border: 1px solid rgba(124, 77, 255, 0.3);\r\n        min-height: 48px;\r\n        width: 100%;\r\n        max-width: 300px;\r\n        justify-content: center;\r\n    }\r\n\r\n    .download-audio-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .download-audio-btn:hover:not(:disabled)::before,\r\n    .download-audio-btn:active:not(:disabled)::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .download-audio-btn:hover:not(:disabled),\r\n    .download-audio-btn:active:not(:disabled) {\r\n        transform: translateY(-3px) scale(1.02);\r\n        box-shadow: var(--shadow-primary), var(--glow-primary);\r\n    }\r\n\r\n    .download-audio-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n        animation: none;\r\n    }\r\n\r\n    \/* Download Progress *\/\r\n    .download-progress {\r\n        position: fixed;\r\n        bottom: 1.5rem;\r\n        right: 1.5rem;\r\n        background: linear-gradient(135deg,\r\n                var(--glass-bg) 0%,\r\n                rgba(124, 77, 255, 0.15) 100%);\r\n        backdrop-filter: blur(25px);\r\n        border: 2px solid var(--glass-border);\r\n        border-radius: 18px;\r\n        padding: clamp(1rem, 3vw, 1.5rem) clamp(1.5rem, 4vw, 2rem);\r\n        min-width: min(320px, 90vw);\r\n        max-width: 90vw;\r\n        box-shadow: var(--shadow-primary), var(--shadow-secondary);\r\n        z-index: 1000;\r\n        display: none;\r\n    }\r\n\r\n    .download-progress.show {\r\n        display: block;\r\n        animation: slideInRight 0.4s ease-out;\r\n    }\r\n\r\n    .progress-header {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        margin-bottom: 1rem;\r\n        gap: 1rem;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .progress-text {\r\n        font-weight: 700;\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        color: var(--text-primary);\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        flex: 1;\r\n        min-width: 0;\r\n    }\r\n\r\n    .cancel-btn {\r\n        background: rgba(26, 35, 126, 0.15);\r\n        border: 1px solid rgba(26, 35, 126, 0.3);\r\n        color: var(--primary-light);\r\n        padding: clamp(0.4rem, 1.5vw, 0.5rem) clamp(0.8rem, 2vw, 1rem);\r\n        border-radius: 10px;\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        cursor: pointer;\r\n        transition: all 0.3s ease;\r\n        font-weight: 600;\r\n        backdrop-filter: blur(10px);\r\n        min-height: 36px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .cancel-btn:hover,\r\n    .cancel-btn:active {\r\n        background: rgba(26, 35, 126, 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(124, 77, 255, 0.2);\r\n        border-radius: 4px;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .progress-bar-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--secondary), var(--secondary-light));\r\n        border-radius: 4px;\r\n        width: 0%;\r\n        transition: width 0.3s ease;\r\n        box-shadow: 0 0 12px rgba(100, 188, 212, 0.4);\r\n        animation: progressGlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    \/* Error Message *\/\r\n    .error-message {\r\n        background: linear-gradient(135deg,\r\n                rgba(26, 35, 126, 0.1) 0%,\r\n                var(--glass-bg) 100%);\r\n        border: 2px solid rgba(26, 35, 126, 0.3);\r\n        color: var(--accent-light);\r\n        padding: clamp(1rem, 3vw, 1.2rem) clamp(1.2rem, 4vw, 1.8rem);\r\n        border-radius: 16px;\r\n        margin: 1rem 0;\r\n        display: none;\r\n        align-items: center;\r\n        gap: clamp(0.5rem, 2vw, 1rem);\r\n        font-weight: 600;\r\n        backdrop-filter: blur(15px);\r\n        box-shadow: var(--shadow-primary);\r\n        animation: errorShake 0.5s ease-in-out;\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .error-message.show {\r\n        display: flex;\r\n        animation: fadeInUp 0.3s ease-out, errorShake 0.5s ease-in-out;\r\n    }\r\n\r\n    \/* Animations *\/\r\n    @keyframes gradientShift {\r\n        0%, 100% { background-position: 0% 50%; }\r\n        50% { background-position: 100% 50%; }\r\n    }\r\n\r\n    @keyframes backgroundFloat {\r\n        0%, 100% { opacity: 1; transform: translateY(0px); }\r\n        50% { opacity: 0.8; transform: translateY(-10px); }\r\n    }\r\n\r\n    @keyframes fadeInDown {\r\n        from { opacity: 0; transform: translateY(-40px); }\r\n        to { opacity: 1; transform: translateY(0); }\r\n    }\r\n\r\n    @keyframes fadeInUp {\r\n        from { opacity: 0; transform: translateY(40px); }\r\n        to { opacity: 1; transform: translateY(0); }\r\n    }\r\n\r\n    @keyframes slideInRight {\r\n        from { opacity: 0; transform: translateX(100%); }\r\n        to { opacity: 1; transform: translateX(0); }\r\n    }\r\n\r\n    @keyframes spin {\r\n        to { transform: rotate(360deg); }\r\n    }\r\n\r\n    @keyframes logoFloat {\r\n        0%, 100% { transform: translateY(0px) rotate(0deg); }\r\n        50% { transform: translateY(-10px) rotate(5deg); }\r\n    }\r\n\r\n    @keyframes logoShine {\r\n        0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }\r\n        100% { transform: translateX(100%) translateY(100%) rotate(45deg); }\r\n    }\r\n\r\n    @keyframes textGradient {\r\n        0%, 100% { background-position: 0% 50%; }\r\n        50% { background-position: 100% 50%; }\r\n    }\r\n\r\n    @keyframes subtitleGlow {\r\n        0%, 100% { text-shadow: 0 0 5px rgba(176, 190, 197, 0.3); }\r\n        50% { text-shadow: 0 0 15px rgba(176, 190, 197, 0.6); }\r\n    }\r\n\r\n    @keyframes borderFlow {\r\n        0%, 100% { opacity: 0.5; }\r\n        50% { opacity: 1; }\r\n    }\r\n\r\n    @keyframes overlayPulse {\r\n        0%, 100% { opacity: 1; }\r\n        50% { opacity: 0.7; }\r\n    }\r\n\r\n    @keyframes inputFocusGlow {\r\n        0%, 100% { box-shadow: 0 0 0 4px rgba(124, 77, 255, 0.2), var(--glow-primary), inset 0 2px 10px rgba(0, 0, 0, 0.3); }\r\n        50% { box-shadow: 0 0 0 6px rgba(124, 77, 255, 0.4), var(--glow-primary), inset 0 2px 10px rgba(0, 0, 0, 0.3); }\r\n    }\r\n\r\n    @keyframes buttonPulse {\r\n        0%, 100% { box-shadow: var(--shadow-primary), var(--shadow-secondary); }\r\n        50% { box-shadow: var(--shadow-primary), var(--glow-primary); }\r\n    }\r\n\r\n    @keyframes buttonHoverGlow {\r\n        0%, 100% { filter: brightness(1); }\r\n        50% { filter: brightness(1.2); }\r\n    }\r\n\r\n    @keyframes textFade {\r\n        0%, 100% { opacity: 0.7; }\r\n        50% { opacity: 1; }\r\n    }\r\n\r\n    @keyframes avatarPulse {\r\n        0%, 100% { box-shadow: var(--shadow-primary), var(--shadow-secondary); }\r\n        50% { box-shadow: var(--shadow-primary), 0 0 30px rgba(26, 35, 126, 0.6); }\r\n    }\r\n\r\n    @keyframes valueGlow {\r\n        0%, 100% { filter: brightness(1); }\r\n        50% { filter: brightness(1.2); }\r\n    }\r\n\r\n    @keyframes gridMove {\r\n        0% { transform: translate(0, 0); }\r\n        100% { transform: translate(30px, 30px); }\r\n    }\r\n\r\n    @keyframes titlePulse {\r\n        0%, 100% { filter: brightness(1); }\r\n        50% { filter: brightness(1.3); }\r\n    }\r\n\r\n    @keyframes playButtonPulse {\r\n        0%, 100% { transform: scale(1); }\r\n        50% { transform: scale(1.05); }\r\n    }\r\n\r\n    @keyframes buttonGlow {\r\n        0%, 100% { box-shadow: var(--shadow-primary); }\r\n        50% { box-shadow: var(--shadow-primary), var(--shadow-secondary); }\r\n    }\r\n\r\n    @keyframes audioIconPulse {\r\n        0%, 100% { transform: scale(1); }\r\n        50% { transform: scale(1.1); }\r\n    }\r\n\r\n    @keyframes audioWaveRipple {\r\n        0% { opacity: 1; transform: translate(-50%, -50%) scale(0.8); }\r\n        100% { opacity: 0; transform: translate(-50%, -50%) scale(2); }\r\n    }\r\n\r\n    @keyframes audioPlayPulse {\r\n        0%, 100% { box-shadow: var(--shadow-primary), var(--shadow-secondary); }\r\n        50% { box-shadow: var(--shadow-primary), var(--glow-primary); }\r\n    }\r\n\r\n    @keyframes progressGlow {\r\n        0%, 100% { box-shadow: 0 0 12px rgba(100, 188, 212, 0.4); }\r\n        50% { box-shadow: 0 0 20px rgba(100, 188, 212, 0.8); }\r\n    }\r\n\r\n    @keyframes errorShake {\r\n        0%, 100% { transform: translateX(0); }\r\n        25% { transform: translateX(-5px); }\r\n        75% { transform: translateX(5px); }\r\n    }\r\n\r\n    \/* Responsive Design *\/\r\n    @media (max-width: 1024px) {\r\n        .container_tiktok {\r\n            padding: clamp(1rem, 3vw, 1.5rem);\r\n        }\r\n\r\n        .video-stats {\r\n            grid-template-columns: repeat(3, 1fr);\r\n        }\r\n\r\n        .download-grid {\r\n            grid-template-columns: 1fr;\r\n        }\r\n\r\n        .action-buttons {\r\n            grid-template-columns: 1fr;\r\n            gap: 1rem;\r\n        }\r\n\r\n        .search-another-btn {\r\n            width: 100%;\r\n        }\r\n\r\n        .audio-player-section {\r\n            flex-direction: column;\r\n            text-align: center;\r\n            gap: 1rem;\r\n        }\r\n\r\n        .audio-controls {\r\n            flex-direction: row;\r\n            justify-content: center;\r\n            gap: 1rem;\r\n        }\r\n\r\n        .audio-volume-control {\r\n            justify-content: center;\r\n        }\r\n\r\n        .video-player-wrapper {\r\n            max-width: min(320px, 85vw);\r\n        }\r\n\r\n        .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            flex-direction: column !important;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 768px) {\r\n        .container_tiktok {\r\n            padding: 1rem;\r\n        }\r\n\r\n        .header {\r\n            margin-bottom: 1.5rem;\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        .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    @media (max-width: 480px) {\r\n        .container_tiktok {\r\n            padding: 0.8rem;\r\n        }\r\n\r\n        .header {\r\n            margin-bottom: 1.5rem;\r\n        }\r\n\r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n        }\r\n\r\n        .video-stats {\r\n            grid-template-columns: 1fr;\r\n            gap: 0.6rem;\r\n        }\r\n\r\n        .stat-item {\r\n            min-height: 70px;\r\n            padding: 0.8rem;\r\n        }\r\n\r\n        .stat-value {\r\n            font-size: 1.3rem;\r\n        }\r\n\r\n        .audio-player-section {\r\n            gap: 0.8rem;\r\n        }\r\n\r\n        .audio-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            font-size: 1rem;\r\n        }\r\n\r\n        .audio-play-btn {\r\n            width: 44px;\r\n            height: 44px;\r\n            font-size: 1rem;\r\n        }\r\n\r\n        .video-player-wrapper {\r\n            max-width: min(280px, 75vw);\r\n        }\r\n\r\n        .thumbnail-play-btn {\r\n            width: 60px;\r\n            height: 60px;\r\n            font-size: 1.5rem;\r\n        }\r\n\r\n        .download-progress {\r\n            left: 0.5rem;\r\n            right: 0.5rem;\r\n            bottom: 0.5rem;\r\n            padding: 1rem;\r\n        }\r\n\r\n        .progress-header {\r\n            flex-direction: column;\r\n            gap: 0.5rem;\r\n            align-items: stretch;\r\n        }\r\n\r\n        .cancel-btn {\r\n            align-self: center;\r\n            min-width: 80px;\r\n        }\r\n\r\n        .input-field {\r\n            font-size: 16px;\r\n        }\r\n\r\n        .control-btn,\r\n        .audio-play-btn,\r\n        .audio-volume-btn,\r\n        .paste-btn,\r\n        .search-btn,\r\n        .download-btn,\r\n        .download-audio-btn {\r\n            min-height: 44px;\r\n            min-width: 44px;\r\n        }\r\n\r\n        .progress-bar,\r\n        .audio-progress,\r\n        .volume-slider,\r\n        .audio-volume-slider {\r\n            min-height: 44px;\r\n        }\r\n\r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n            margin-top: 60px;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 360px) {\r\n        .container_tiktok {\r\n            padding: 0.5rem;\r\n        }\r\n\r\n        .search-section,\r\n        .video-section,\r\n        .download-section,\r\n        .audio-streaming {\r\n            padding: 1rem;\r\n            border-radius: 16px;\r\n        }\r\n\r\n        .logo-text {\r\n            font-size: 1.5rem;\r\n            letter-spacing: -1px;\r\n        }\r\n\r\n        .subtitle {\r\n            font-size: 0.8rem;\r\n        }\r\n\r\n        .video-player-wrapper {\r\n            max-width: min(260px, 70vw);\r\n        }\r\n\r\n        .audio-wave:nth-child(1) {\r\n            width: 45px;\r\n            height: 45px;\r\n        }\r\n\r\n        .audio-wave:nth-child(2) {\r\n            width: 55px;\r\n            height: 55px;\r\n        }\r\n\r\n        .audio-wave:nth-child(3) {\r\n            width: 65px;\r\n            height: 65px;\r\n        }\r\n\r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n            margin-top: 60px;\r\n        }\r\n    }\r\n\r\n    @media (max-height: 500px) and (orientation: landscape) {\r\n        .container_tiktok {\r\n            padding: 1rem;\r\n        }\r\n\r\n        .header {\r\n            margin-bottom: 1rem;\r\n        }\r\n\r\n        .logo {\r\n            flex-direction: row;\r\n            gap: 1rem;\r\n        }\r\n\r\n        .logo-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            font-size: 16px;\r\n        }\r\n\r\n        .video-player-wrapper {\r\n            max-width: min(200px, 30vw);\r\n        }\r\n\r\n        .video-stats {\r\n            grid-template-columns: repeat(5, 1fr);\r\n            gap: 0.5rem;\r\n        }\r\n\r\n        .stat-item {\r\n            min-height: 60px;\r\n            padding: 0.5rem;\r\n        }\r\n\r\n        .stat-value {\r\n            font-size: 1rem;\r\n        }\r\n\r\n        .stat-label {\r\n            font-size: 0.6rem;\r\n        }\r\n    }\r\n\r\n    @media (-webkit-min-device-pixel-ratio: 2),\r\n    (min-resolution: 192dpi) {\r\n        .logo-icon,\r\n        .author-avatar,\r\n        .audio-icon,\r\n        .thumbnail-play-btn,\r\n        .audio-play-btn {\r\n            image-rendering: -webkit-optimize-contrast;\r\n            image-rendering: crisp-edges;\r\n        }\r\n    }\r\n\r\n    @media (prefers-reduced-motion: reduce) {\r\n        *, *::before, *::after {\r\n            animation-duration: 0.01ms !important;\r\n            animation-iteration-count: 1 !important;\r\n            transition-duration: 0.01ms !important;\r\n        }\r\n\r\n        .video-player-wrapper,\r\n        .search-section,\r\n        .video-section,\r\n        .download-section,\r\n        .audio-streaming {\r\n            animation: none !important;\r\n        }\r\n    }\r\n\r\n    @media (prefers-contrast: high) {\r\n        :root {\r\n            --glass-bg: rgba(0, 0, 0, 0.9);\r\n            --glass-border: rgba(255, 255, 255, 0.8);\r\n            --shadow-primary: 0 4px 20px rgba(0, 0, 0, 0.8);\r\n            --shadow-secondary: 0 8px 40px rgba(0, 0, 0, 0.9);\r\n        }\r\n\r\n        .input-field,\r\n        .search-btn,\r\n        .download-btn,\r\n        .audio-play-btn {\r\n            border: 2px solid var(--text-primary);\r\n        }\r\n    }\r\n\r\n    @media (prefers-color-scheme: dark) {\r\n        body {\r\n            background: linear-gradient(135deg,\r\n                    #000000 0%,\r\n                    var(--background-primary) 25%,\r\n                    var(--background-secondary) 50%,\r\n                    var(--background-tertiary) 75%,\r\n                    #0f0f2e 100%);\r\n        }\r\n    }\r\n\r\n    @media print {\r\n        body {\r\n            background: white !important;\r\n            color: black !important;\r\n        }\r\n\r\n        .container_tiktok {\r\n            max-width: none;\r\n            padding: 0;\r\n        }\r\n\r\n        .video-player-wrapper,\r\n        .download-section,\r\n        .audio-streaming,\r\n        .download-progress {\r\n            display: none !important;\r\n        }\r\n\r\n        .search-section,\r\n        .video-section {\r\n            background: white !important;\r\n            border: 1px solid black !important;\r\n            box-shadow: none !important;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n\t\r\n\t\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n\t\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n\t\r\n    <script>\r\n        const API_URL = 'https:\/\/tools.xrespond.com\/api\/tiktok\/profile\/videos\/details';\r\n        let currentVideoData = null;\r\n        let isLoading = false;\r\n        let isDownloading = false;\r\n        let downloadController = null;\r\n        let currentVolume = 1;\r\n        let isMuted = false;\r\n        let isFullscreen = false;\r\n        let audioPlaying = false;\r\n        let videoStarted = false;\r\n        let audioCurrentVolume = 1;\r\n        let audioIsMuted = false;\r\n\r\n        \/\/ Mobile detection\r\n        const isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent);\r\n        const isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\r\n\r\n        \/\/ Utility Functions\r\n        function formatNumber(num) {\r\n            if (num >= 1000000) {\r\n                return (num \/ 1000000).toFixed(1) + 'M';\r\n            }\r\n            if (num >= 1000) {\r\n                return (num \/ 1000).toFixed(1) + 'K';\r\n            }\r\n            return num.toString();\r\n        }\r\n\r\n        function formatDuration(seconds) {\r\n            const mins = Math.floor(seconds \/ 60);\r\n            const secs = Math.floor(seconds % 60);\r\n            return `${mins}:${secs.toString().padStart(2, '0')}`;\r\n        }\r\n\r\n        function formatFileSize(bytes) {\r\n            if (bytes >= 1024 * 1024) {\r\n                return (bytes \/ (1024 * 1024)).toFixed(1) + ' MB';\r\n            }\r\n            if (bytes >= 1024) {\r\n                return (bytes \/ 1024).toFixed(1) + ' KB';\r\n            }\r\n            return bytes + ' B';\r\n        }\r\n\r\n        \/\/ Mobile-specific functions\r\n        function showVideoControlsOnMobile() {\r\n            if (isMobile || isTouch) {\r\n                const videoControls = document.getElementById('videoControls');\r\n                if (videoControls) {\r\n                    videoControls.classList.add('show');\r\n                    \/\/ Hide after 3 seconds of inactivity\r\n                    setTimeout(() => {\r\n                        if (!videoControls.matches(':hover')) {\r\n                            videoControls.classList.remove('show');\r\n                        }\r\n                    }, 3000);\r\n                }\r\n            }\r\n        }\r\n\r\n        function handleTouchEvents() {\r\n            if (isMobile || isTouch) {\r\n                \/\/ Add touch event listeners for better mobile interaction\r\n                document.addEventListener('touchstart', function (e) {\r\n                    \/\/ Handle touch start\r\n                }, { passive: true });\r\n\r\n                document.addEventListener('touchend', function (e) {\r\n                    \/\/ Handle touch end\r\n                }, { passive: true });\r\n\r\n                \/\/ Prevent zoom on double tap for video controls\r\n                let lastTouchEnd = 0;\r\n                document.addEventListener('touchend', function (e) {\r\n                    const now = (new Date()).getTime();\r\n                    if (now - lastTouchEnd <= 300) {\r\n                        e.preventDefault();\r\n                    }\r\n                    lastTouchEnd = now;\r\n                }, false);\r\n            }\r\n        }\r\n\r\n        \/\/ UI Functions\r\n        function showLoading() {\r\n            document.getElementById('loading').style.display = 'block';\r\n        }\r\n\r\n        function hideLoading() {\r\n            document.getElementById('loading').style.display = 'none';\r\n        }\r\n\r\n        function showError(message) {\r\n            const errorDiv = document.getElementById('errorMessage');\r\n            const errorText = document.getElementById('errorText');\r\n            errorText.textContent = message;\r\n            errorDiv.classList.add('show');\r\n\r\n            \/\/ Auto-hide error after 5 seconds on mobile\r\n            if (isMobile) {\r\n                setTimeout(() => {\r\n                    hideError();\r\n                }, 5000);\r\n            }\r\n        }\r\n\r\n        function hideError() {\r\n            document.getElementById('errorMessage').classList.remove('show');\r\n        }\r\n\r\n        function showDownloadProgress(text, progress = 0) {\r\n            const progressDiv = document.getElementById('downloadProgress');\r\n            const progressText = document.getElementById('progressText');\r\n            const progressFill = document.getElementById('progressBarFill');\r\n\r\n            \/\/ Add null checks to prevent errors\r\n            if (progressText) {\r\n                progressText.textContent = text;\r\n            }\r\n            if (progressFill) {\r\n                progressFill.style.width = `${progress}%`;\r\n            }\r\n            if (progressDiv) {\r\n                progressDiv.classList.add('show');\r\n            }\r\n        }\r\n\r\n        function hideDownloadProgress() {\r\n            const progressDiv = document.getElementById('downloadProgress');\r\n            if (progressDiv) {\r\n                progressDiv.classList.remove('show');\r\n            }\r\n        }\r\n\r\n        \/\/ Main Functions\r\n        async function pasteFromClipboard() {\r\n            try {\r\n                const text = await navigator.clipboard.readText();\r\n                document.getElementById('videoInput').value = text;\r\n            } catch (err) {\r\n                console.error('Failed to read clipboard:', err);\r\n                \/\/ On mobile, focus the input to show keyboard\r\n                const input = document.getElementById('videoInput');\r\n                input.focus();\r\n                if (isMobile) {\r\n                    input.select();\r\n                }\r\n            }\r\n        }\r\n\r\n        function searchAnother() {\r\n            document.getElementById('videoInput').value = '';\r\n            document.getElementById('videoSection').style.display = 'none';\r\n            document.getElementById('searchAnotherBtn').style.display = 'none';\r\n            document.getElementById('audioStreaming').style.display = 'none';\r\n            currentVideoData = null;\r\n            videoStarted = false;\r\n            hideError();\r\n\r\n            \/\/ Reset players\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const audioElement = document.getElementById('audioElement');\r\n            const videoThumbnail = document.getElementById('videoThumbnail');\r\n            const thumbnailOverlay = document.querySelector('.thumbnail-overlay');\r\n\r\n            videoPlayer.src = '';\r\n            videoPlayer.pause();\r\n            videoPlayer.classList.remove('playing');\r\n            audioElement.src = '';\r\n            audioElement.pause();\r\n            audioPlaying = false;\r\n            document.getElementById('audioPlayBtn').innerHTML = '<i class=\"fas fa-play\"><\/i>';\r\n\r\n            \/\/ Show thumbnail again\r\n            videoThumbnail.style.display = 'block';\r\n            thumbnailOverlay.style.display = 'flex';\r\n\r\n            \/\/ Scroll to top on mobile\r\n            if (isMobile) {\r\n                window.scrollTo({ top: 0, behavior: 'smooth' });\r\n            }\r\n\r\n            document.getElementById('videoInput').focus();\r\n        }\r\n\r\n        async function loadVideo() {\r\n            if (isLoading) return;\r\n\r\n            const input = document.getElementById('videoInput').value.trim();\r\n            if (!input) {\r\n                showError('Please enter a TikTok video URL or ID');\r\n                return;\r\n            }\r\n\r\n            isLoading = true;\r\n            const loadBtn = document.getElementById('loadBtn');\r\n            const loadText = document.getElementById('loadText');\r\n\r\n            loadBtn.disabled = true;\r\n            loadText.textContent = 'Loading...';\r\n            showLoading();\r\n            hideError();\r\n\r\n            try {\r\n                const response = await fetch(API_URL, {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json',\r\n                        'Accept': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: input })\r\n                });\r\n\r\n                const data = await response.json();\r\n\r\n                if (data.status !== 'success') {\r\n                    throw new Error(data.message || 'Failed to load video');\r\n                }\r\n\r\n                currentVideoData = data.data.data;\r\n                displayVideo(currentVideoData);\r\n\r\n                document.getElementById('videoSection').style.display = 'block';\r\n                document.getElementById('searchAnotherBtn').style.display = 'block';\r\n                document.getElementById('videoInput').value = '';\r\n\r\n                \/\/ Scroll to video section on mobile\r\n                if (isMobile) {\r\n                    setTimeout(() => {\r\n                        document.getElementById('videoSection').scrollIntoView({\r\n                            behavior: 'smooth',\r\n                            block: 'start'\r\n                        });\r\n                    }, 500);\r\n                }\r\n\r\n            } catch (error) {\r\n                showError(error.message || 'Error loading video. Please try again.');\r\n                console.error('Load video error:', error);\r\n            } finally {\r\n                isLoading = false;\r\n                loadBtn.disabled = false;\r\n                loadText.textContent = 'Load Video';\r\n                hideLoading();\r\n            }\r\n        }\r\n\r\n        function displayVideo(data) {\r\n            \/\/ Set video title\r\n            document.getElementById('videoTitle').textContent = data.title;\r\n\r\n            \/\/ Set video stats in horizontal grid\r\n            const statsContainer = document.getElementById('videoStats');\r\n            statsContainer.innerHTML = `\r\n                <div class=\"stat-item views\">\r\n                    <span class=\"stat-value\">${formatNumber(data.play_count)}<\/span>\r\n                    <span class=\"stat-label\">Views<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item likes\">\r\n                    <span class=\"stat-value\">${formatNumber(data.digg_count)}<\/span>\r\n                    <span class=\"stat-label\">Likes<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item comments\">\r\n                    <span class=\"stat-value\">${formatNumber(data.comment_count)}<\/span>\r\n                    <span class=\"stat-label\">Comments<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item shares\">\r\n                    <span class=\"stat-value\">${formatNumber(data.share_count)}<\/span>\r\n                    <span class=\"stat-label\">Shares<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item duration\">\r\n                    <span class=\"stat-value\">${formatDuration(data.duration)}<\/span>\r\n                    <span class=\"stat-label\">Duration<\/span>\r\n                <\/div>\r\n            `;\r\n\r\n            \/\/ Set author info\r\n            document.getElementById('authorAvatar').src = data.author.avatar;\r\n            document.getElementById('authorName').textContent = data.author.nickname;\r\n            document.getElementById('authorUsername').textContent = `@${data.author.unique_id}`;\r\n\r\n            \/\/ Set video thumbnail\r\n            const videoThumbnail = document.getElementById('videoThumbnail');\r\n            videoThumbnail.src = data.cover || data.dynamic_cover || '\/placeholder.svg?height=600&width=400';\r\n\r\n            \/\/ Set video player\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            videoPlayer.src = data.play;\r\n            videoPlayer.addEventListener('loadedmetadata', () => {\r\n                videoPlayer.volume = currentVolume;\r\n                videoPlayer.muted = isMuted;\r\n                updateVolumeDisplay();\r\n                \/\/ Set video duration\r\n                document.getElementById('videoDuration').textContent = formatDuration(videoPlayer.duration);\r\n            });\r\n            videoPlayer.addEventListener('timeupdate', updateVideoProgress);\r\n\r\n            \/\/ Mobile-specific video player setup\r\n            if (isMobile) {\r\n                videoPlayer.setAttribute('playsinline', 'true');\r\n                videoPlayer.setAttribute('webkit-playsinline', 'true');\r\n\r\n                \/\/ Show controls on touch\r\n                videoPlayer.addEventListener('touchstart', showVideoControlsOnMobile);\r\n            }\r\n\r\n            \/\/ Set audio player\r\n            if (data.music) {\r\n                const audioElement = document.getElementById('audioElement');\r\n                const audioStreaming = document.getElementById('audioStreaming');\r\n                const audioTitle = document.getElementById('audioTitle');\r\n                const audioArtist = document.getElementById('audioArtist');\r\n\r\n                audioElement.src = data.music;\r\n                audioTitle.textContent = data.music_info?.title || 'Audio Track';\r\n                audioArtist.textContent = data.music_info?.author || data.author.nickname;\r\n                audioStreaming.style.display = 'block';\r\n\r\n                audioElement.addEventListener('timeupdate', updateAudioProgress);\r\n                audioElement.addEventListener('loadedmetadata', () => {\r\n                    document.getElementById('audioDuration').textContent = formatDuration(audioElement.duration);\r\n                    audioElement.volume = audioCurrentVolume;\r\n                    audioElement.muted = audioIsMuted;\r\n                    updateAudioVolumeDisplay();\r\n                });\r\n            }\r\n\r\n            \/\/ Update download buttons\r\n            updateDownloadButtons(data);\r\n        }\r\n\r\n        function updateDownloadButtons(data) {\r\n            const standardBtn = document.getElementById('downloadStandard');\r\n            const hdBtn = document.getElementById('downloadHD');\r\n            const audioBtn = document.getElementById('downloadAudio');\r\n\r\n            \/\/ Standard quality\r\n            standardBtn.innerHTML = `<i class=\"fas fa-download\"><\/i><span>Standard (${formatFileSize(data.size)})<\/span>`;\r\n\r\n            \/\/ HD quality\r\n            if (data.hd_size && data.hdplay) {\r\n                hdBtn.innerHTML = `<i class=\"fas fa-hd-video\"><\/i><span>HD (${formatFileSize(data.hd_size)})<\/span>`;\r\n                hdBtn.style.display = 'flex';\r\n            } else {\r\n                hdBtn.style.display = 'none';\r\n            }\r\n\r\n            \/\/ Audio\r\n            audioBtn.innerHTML = `<i class=\"fas fa-download\"><\/i><span>Download Audio<\/span>`;\r\n        }\r\n\r\n        function startVideoPlayback() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const videoThumbnail = document.getElementById('videoThumbnail');\r\n            const thumbnailOverlay = document.querySelector('.thumbnail-overlay');\r\n\r\n            \/\/ Hide thumbnail and show video\r\n            videoThumbnail.style.display = 'none';\r\n            thumbnailOverlay.style.display = 'none';\r\n            videoPlayer.classList.add('playing');\r\n\r\n            \/\/ Start playing\r\n            videoPlayer.play().catch(e => {\r\n                console.error('Error playing video:', e);\r\n                showError('Unable to play video. Please try again.');\r\n            });\r\n\r\n            document.getElementById('playBtn').innerHTML = '<i class=\"fas fa-pause\"><\/i>';\r\n            videoStarted = true;\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        \/\/ Video Player Controls\r\n        function togglePlay() {\r\n            if (!videoStarted) {\r\n                startVideoPlayback();\r\n                return;\r\n            }\r\n\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const playBtn = document.getElementById('playBtn');\r\n\r\n            if (videoPlayer.paused) {\r\n                videoPlayer.play().catch(e => {\r\n                    console.error('Error playing video:', e);\r\n                    showError('Unable to play video. Please try again.');\r\n                });\r\n                playBtn.innerHTML = '<i class=\"fas fa-pause\"><\/i>';\r\n            } else {\r\n                videoPlayer.pause();\r\n                playBtn.innerHTML = '<i class=\"fas fa-play\"><\/i>';\r\n            }\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function toggleAudioPlay() {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const audioPlayBtn = document.getElementById('audioPlayBtn');\r\n\r\n            if (audioElement.paused) {\r\n                audioElement.play().catch(e => {\r\n                    console.error('Error playing audio:', e);\r\n                    showError('Unable to play audio. Please try again.');\r\n                });\r\n                audioPlayBtn.innerHTML = '<i class=\"fas fa-pause\"><\/i>';\r\n                audioPlaying = true;\r\n            } else {\r\n                audioElement.pause();\r\n                audioPlayBtn.innerHTML = '<i class=\"fas fa-play\"><\/i>';\r\n                audioPlaying = false;\r\n            }\r\n        }\r\n\r\n        function toggleMute() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const muteBtn = document.getElementById('muteBtn');\r\n\r\n            if (isMuted) {\r\n                isMuted = false;\r\n                videoPlayer.muted = false;\r\n                videoPlayer.volume = currentVolume;\r\n                muteBtn.innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            } else {\r\n                isMuted = true;\r\n                videoPlayer.muted = true;\r\n                muteBtn.innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            }\r\n\r\n            updateVolumeDisplay();\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function toggleAudioMute() {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const audioMuteBtn = document.getElementById('audioMuteBtn');\r\n\r\n            if (audioIsMuted) {\r\n                audioIsMuted = false;\r\n                audioElement.muted = false;\r\n                audioElement.volume = audioCurrentVolume;\r\n                audioMuteBtn.innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            } else {\r\n                audioIsMuted = true;\r\n                audioElement.muted = true;\r\n                audioMuteBtn.innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            }\r\n\r\n            updateAudioVolumeDisplay();\r\n        }\r\n\r\n        function setVolume(event) {\r\n            const volumeSlider = event.currentTarget;\r\n            const rect = volumeSlider.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            currentVolume = Math.max(0, Math.min(1, pos));\r\n\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            videoPlayer.volume = currentVolume;\r\n\r\n            if (currentVolume === 0) {\r\n                isMuted = true;\r\n                videoPlayer.muted = true;\r\n                document.getElementById('muteBtn').innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            } else {\r\n                isMuted = false;\r\n                videoPlayer.muted = false;\r\n                document.getElementById('muteBtn').innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            }\r\n\r\n            updateVolumeDisplay();\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function setAudioVolume(event) {\r\n            const volumeSlider = event.currentTarget;\r\n            const rect = volumeSlider.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            audioCurrentVolume = Math.max(0, Math.min(1, pos));\r\n\r\n            const audioElement = document.getElementById('audioElement');\r\n            audioElement.volume = audioCurrentVolume;\r\n\r\n            if (audioCurrentVolume === 0) {\r\n                audioIsMuted = true;\r\n                audioElement.muted = true;\r\n                document.getElementById('audioMuteBtn').innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            } else {\r\n                audioIsMuted = false;\r\n                audioElement.muted = false;\r\n                document.getElementById('audioMuteBtn').innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            }\r\n\r\n            updateAudioVolumeDisplay();\r\n        }\r\n\r\n        function updateVolumeDisplay() {\r\n            const volumeFill = document.getElementById('volumeFill');\r\n            const displayVolume = isMuted ? 0 : currentVolume;\r\n            volumeFill.style.width = `${displayVolume * 100}%`;\r\n        }\r\n\r\n        function updateAudioVolumeDisplay() {\r\n            const volumeFill = document.getElementById('audioVolumeFill');\r\n            const displayVolume = audioIsMuted ? 0 : audioCurrentVolume;\r\n            volumeFill.style.width = `${displayVolume * 100}%`;\r\n        }\r\n\r\n        function seekVideo(event) {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const progressBar = event.currentTarget;\r\n            const rect = progressBar.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            videoPlayer.currentTime = pos * videoPlayer.duration;\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function seekAudio(event) {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const progressBar = event.currentTarget;\r\n            const rect = progressBar.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            audioElement.currentTime = pos * audioElement.duration;\r\n        }\r\n\r\n        function updateVideoProgress() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const progressFill = document.getElementById('progressFill');\r\n            const currentTime = document.getElementById('videoCurrentTime');\r\n\r\n            const progress = (videoPlayer.currentTime \/ videoPlayer.duration) * 100;\r\n            progressFill.style.width = `${progress}%`;\r\n            currentTime.textContent = formatDuration(videoPlayer.currentTime);\r\n        }\r\n\r\n        function updateAudioProgress() {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const progressFill = document.getElementById('audioProgressFill');\r\n            const currentTime = document.getElementById('audioCurrentTime');\r\n\r\n            const progress = (audioElement.currentTime \/ audioElement.duration) * 100;\r\n            progressFill.style.width = `${progress}%`;\r\n            currentTime.textContent = formatDuration(audioElement.currentTime);\r\n        }\r\n\r\n        function toggleFullscreen() {\r\n            const videoWrapper = document.querySelector('.video-player-wrapper');\r\n            const fullscreenBtn = document.getElementById('fullscreenBtn');\r\n\r\n            if (!isFullscreen) {\r\n                if (videoWrapper.requestFullscreen) {\r\n                    videoWrapper.requestFullscreen();\r\n                } else if (videoWrapper.webkitRequestFullscreen) {\r\n                    videoWrapper.webkitRequestFullscreen();\r\n                } else if (videoWrapper.msRequestFullscreen) {\r\n                    videoWrapper.msRequestFullscreen();\r\n                }\r\n                isFullscreen = true;\r\n                fullscreenBtn.innerHTML = '<i class=\"fas fa-compress\"><\/i>';\r\n            } else {\r\n                if (document.exitFullscreen) {\r\n                    document.exitFullscreen();\r\n                } else if (document.webkitExitFullscreen) {\r\n                    document.webkitExitFullscreen();\r\n                } else if (document.msExitFullscreen) {\r\n                    document.msExitFullscreen();\r\n                }\r\n                isFullscreen = false;\r\n                fullscreenBtn.innerHTML = '<i class=\"fas fa-expand\"><\/i>';\r\n            }\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        \/\/ Download Functions\r\n        async function downloadVideo(quality) {\r\n            if (!currentVideoData || isDownloading) return;\r\n\r\n            let downloadUrl, filename, expectedSize;\r\n\r\n            switch (quality) {\r\n                case 'hd':\r\n                    if (!currentVideoData.hdplay) {\r\n                        showError('HD quality not available for this video');\r\n                        return;\r\n                    }\r\n                    downloadUrl = currentVideoData.hdplay;\r\n                    filename = `tiktok-${currentVideoData.id}-hd.mp4`;\r\n                    expectedSize = currentVideoData.hd_size;\r\n                    break;\r\n                case 'audio':\r\n                    if (!currentVideoData.music) {\r\n                        showError('Audio not available for this video');\r\n                        return;\r\n                    }\r\n                    downloadUrl = currentVideoData.music;\r\n                    filename = `tiktok-${currentVideoData.id}-audio.mp3`;\r\n                    expectedSize = null;\r\n                    break;\r\n                default:\r\n                    downloadUrl = currentVideoData.play;\r\n                    filename = `tiktok-${currentVideoData.id}.mp4`;\r\n                    expectedSize = currentVideoData.size;\r\n            }\r\n\r\n            isDownloading = true;\r\n            downloadController = new AbortController();\r\n\r\n            \/\/ Disable download buttons\r\n            document.querySelectorAll('.download-btn, .download-audio-btn').forEach(btn => btn.disabled = true);\r\n\r\n            showDownloadProgress(`Starting download...`, 0);\r\n\r\n            try {\r\n                const response = await fetch(downloadUrl, {\r\n                    signal: downloadController.signal\r\n                });\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`HTTP error! status: ${response.status}`);\r\n                }\r\n\r\n                const totalSize = expectedSize || parseInt(response.headers.get('content-length') || '0');\r\n                const reader = response.body.getReader();\r\n                let receivedSize = 0;\r\n                const chunks = [];\r\n\r\n                while (true) {\r\n                    const { done, value } = await reader.read();\r\n\r\n                    if (done) break;\r\n\r\n                    chunks.push(value);\r\n                    receivedSize += value.length;\r\n\r\n                    const progress = totalSize ? Math.round((receivedSize \/ totalSize) * 100) : 0;\r\n                    showDownloadProgress(`Downloading ${quality} quality... ${progress}%`, progress);\r\n                }\r\n\r\n                showDownloadProgress('Processing download...', 95);\r\n\r\n                \/\/ Combine chunks\r\n                const chunksAll = new Uint8Array(receivedSize);\r\n                let position = 0;\r\n                for (const chunk of chunks) {\r\n                    chunksAll.set(chunk, position);\r\n                    position += chunk.length;\r\n                }\r\n\r\n                const mimeType = quality === 'audio' ? 'audio\/mpeg' : 'video\/mp4';\r\n                const blob = new Blob([chunksAll], { type: mimeType });\r\n                const url = URL.createObjectURL(blob);\r\n\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = filename;\r\n                a.style.display = 'none';\r\n                document.body.appendChild(a);\r\n                a.click();\r\n                document.body.removeChild(a);\r\n                URL.revokeObjectURL(url);\r\n\r\n                showDownloadProgress('Download completed successfully!', 100);\r\n                setTimeout(hideDownloadProgress, 2000);\r\n\r\n            } catch (error) {\r\n                if (error.name === 'AbortError') {\r\n                    showDownloadProgress('Download cancelled', 0);\r\n                } else {\r\n                    showError(`Download failed: ${error.message}`);\r\n                    hideDownloadProgress();\r\n                }\r\n            } finally {\r\n                isDownloading = false;\r\n                downloadController = null;\r\n                document.querySelectorAll('.download-btn, .download-audio-btn').forEach(btn => btn.disabled = false);\r\n            }\r\n        }\r\n\r\n        function cancelDownload() {\r\n            if (downloadController) {\r\n                downloadController.abort();\r\n            }\r\n        }\r\n\r\n        \/\/ Event Listeners\r\n        document.getElementById('videoInput').addEventListener('keypress', (e) => {\r\n            if (e.key === 'Enter' && !isLoading) {\r\n                loadVideo();\r\n            }\r\n        });\r\n\r\n        \/\/ Fullscreen change events\r\n        document.addEventListener('fullscreenchange', () => {\r\n            isFullscreen = !!document.fullscreenElement;\r\n            const fullscreenBtn = document.getElementById('fullscreenBtn');\r\n            if (fullscreenBtn) {\r\n                fullscreenBtn.innerHTML = isFullscreen ? '<i class=\"fas fa-compress\"><\/i>' : '<i class=\"fas fa-expand\"><\/i>';\r\n            }\r\n        });\r\n\r\n        \/\/ Keyboard shortcuts (desktop only)\r\n        document.addEventListener('keydown', (e) => {\r\n            if (!isMobile && currentVideoData && document.getElementById('videoSection').style.display === 'block') {\r\n                switch (e.key) {\r\n                    case ' ':\r\n                        e.preventDefault();\r\n                        togglePlay();\r\n                        break;\r\n                    case 'f':\r\n                    case 'F':\r\n                        toggleFullscreen();\r\n                        break;\r\n                    case 'm':\r\n                    case 'M':\r\n                        toggleMute();\r\n                        break;\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Touch event handlers for mobile\r\n        if (isMobile || isTouch) {\r\n            \/\/ Handle touch events for sliders\r\n            function handleTouchSlider(element, callback) {\r\n                element.addEventListener('touchstart', function (e) {\r\n                    e.preventDefault();\r\n                    const touch = e.touches[0];\r\n                    const rect = element.getBoundingClientRect();\r\n                    const pos = (touch.clientX - rect.left) \/ rect.width;\r\n                    callback(pos);\r\n                }, { passive: false });\r\n\r\n                element.addEventListener('touchmove', function (e) {\r\n                    e.preventDefault();\r\n                    const touch = e.touches[0];\r\n                    const rect = element.getBoundingClientRect();\r\n                    const pos = (touch.clientX - rect.left) \/ rect.width;\r\n                    callback(pos);\r\n                }, { passive: false });\r\n            }\r\n\r\n            \/\/ Apply touch handlers to sliders\r\n            document.addEventListener('DOMContentLoaded', () => {\r\n                const volumeSlider = document.getElementById('volumeFill')?.parentElement;\r\n                const audioVolumeSlider = document.getElementById('audioVolumeFill')?.parentElement;\r\n                const progressBar = document.getElementById('progressFill')?.parentElement;\r\n                const audioProgressBar = document.getElementById('audioProgressFill')?.parentElement;\r\n\r\n                if (volumeSlider) {\r\n                    handleTouchSlider(volumeSlider, (pos) => {\r\n                        currentVolume = Math.max(0, Math.min(1, pos));\r\n                        const videoPlayer = document.getElementById('videoPlayer');\r\n                        if (videoPlayer) {\r\n                            videoPlayer.volume = currentVolume;\r\n                            updateVolumeDisplay();\r\n                        }\r\n                    });\r\n                }\r\n\r\n                if (audioVolumeSlider) {\r\n                    handleTouchSlider(audioVolumeSlider, (pos) => {\r\n                        audioCurrentVolume = Math.max(0, Math.min(1, pos));\r\n                        const audioElement = document.getElementById('audioElement');\r\n                        if (audioElement) {\r\n                            audioElement.volume = audioCurrentVolume;\r\n                            updateAudioVolumeDisplay();\r\n                        }\r\n                    });\r\n                }\r\n\r\n                if (progressBar) {\r\n                    handleTouchSlider(progressBar, (pos) => {\r\n                        const videoPlayer = document.getElementById('videoPlayer');\r\n                        if (videoPlayer && videoPlayer.duration) {\r\n                            videoPlayer.currentTime = pos * videoPlayer.duration;\r\n                        }\r\n                    });\r\n                }\r\n\r\n                if (audioProgressBar) {\r\n                    handleTouchSlider(audioProgressBar, (pos) => {\r\n                        const audioElement = document.getElementById('audioElement');\r\n                        if (audioElement && audioElement.duration) {\r\n                            audioElement.currentTime = pos * audioElement.duration;\r\n                        }\r\n                    });\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initialize\r\n        document.addEventListener('DOMContentLoaded', () => {\r\n            document.getElementById('videoInput').focus();\r\n            updateAudioVolumeDisplay();\r\n            handleTouchEvents();\r\n\r\n            \/\/ Prevent zoom on iOS when focusing inputs\r\n            if (\/iPad|iPhone|iPod\/.test(navigator.userAgent)) {\r\n                const viewport = document.querySelector('meta[name=viewport]');\r\n                if (viewport) {\r\n                    viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no');\r\n                }\r\n            }\r\n\r\n            \/\/ Add orientation change handler\r\n            window.addEventListener('orientationchange', () => {\r\n                setTimeout(() => {\r\n                    \/\/ Recalculate dimensions after orientation change\r\n                    window.scrollTo(0, 0);\r\n                }, 100);\r\n            });\r\n\r\n            \/\/ Add resize handler for responsive adjustments\r\n            window.addEventListener('resize', () => {\r\n                \/\/ Handle responsive adjustments\r\n                if (window.innerWidth <= 768) {\r\n                    \/\/ Mobile adjustments\r\n                    showVideoControlsOnMobile();\r\n                }\r\n            });\r\n        });\r\n    <\/script>\r\n<\/div>\r\n\r\n\r\n<!-- ======== Content Section Start ======== -->\r\n<!-- TikTok Link Viewer - 3 Content Sections + Shortcode -->\r\n\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\" \/>\r\n\r\n<style>\r\n  .ttlv-s1-root { --s1-bg: #ffffff; --s1-card-bg: #f0fdfa; --s1-text: #0f172a; --s1-text-soft: #334155; --s1-text-muted: #64748b; --s1-primary: #25F4EE; --s1-accent: #FE2C55; width: 100%; background: var(--s1-bg); padding: 80px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .ttlv-s1-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttlv-s1-header { text-align: center; margin-bottom: 30px; }\r\n  .ttlv-s1-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .ttlv-highlight { background: linear-gradient(135deg, #25F4EE 0%, #FE2C55 50%, #ff6b8a 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }\r\n  .ttlv-s1-subheading { font-size: clamp(0.8rem, 2vw, 1rem); color: var(--s1-text-muted); max-width: 700px; margin: 0 auto; line-height: 1.6; }\r\n  .ttlv-s1-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .ttlv-s1-card { background: var(--s1-card-bg); border-radius: 10px; padding: 32px 28px; position: relative; overflow: hidden; transition: all 0.4s ease; cursor: pointer; border: 2px solid transparent; opacity: 0; animation: ttlv-s1-fadeSlideUp 0.6s ease forwards; }\r\n  .ttlv-s1-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .ttlv-s1-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .ttlv-s1-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .ttlv-s1-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .ttlv-s1-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .ttlv-s1-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes ttlv-s1-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .ttlv-s1-card::before { content: \"\"; position: absolute; inset: 0; border-radius: 10px; padding: 2px; background: linear-gradient(90deg, var(--s1-primary), var(--s1-accent), var(--s1-primary)); background-size: 300% 100%; -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity 0.3s ease; animation: ttlv-s1-borderTrace 2s linear infinite; }\r\n  .ttlv-s1-card:hover::before { opacity: 1; }\r\n  @keyframes ttlv-s1-borderTrace { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }\r\n  .ttlv-s1-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(254, 44, 85, 0.15); }\r\n  .ttlv-s1-icon-wrap { width: 56px; height: 56px; background: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%); border: 2px solid #e2e8f0; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; transition: all 0.4s ease; }\r\n  .ttlv-s1-card:hover .ttlv-s1-icon-wrap { border-color: var(--s1-accent); background: linear-gradient(135deg, var(--s1-primary) 0%, var(--s1-accent) 100%); }\r\n  .ttlv-s1-icon { font-size: 24px; color: var(--s1-accent); transition: all 0.4s ease; }\r\n  .ttlv-s1-card:hover .ttlv-s1-icon { color: #ffffff; transform: rotate(15deg) scale(1.1); }\r\n  .ttlv-s1-card-title { font-size: 1.2rem; font-weight: 700; color: var(--s1-text); margin-bottom: 12px; }\r\n  .ttlv-s1-card-desc { font-size: 0.95rem; color: var(--s1-text-soft); line-height: 1.6; }\r\n\r\n  .ttlv-s2-root { --s2-bg: #f0fdfa; --s2-card-bg: #ffffff; --s2-text: #0f172a; --s2-text-soft: #334155; --s2-text-muted: #64748b; --s2-primary: #25F4EE; --s2-accent: #FE2C55; width: 100%; background: var(--s2-bg); padding: 80px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .ttlv-s2-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttlv-s2-header { text-align: center; margin-bottom: 30px; }\r\n  .ttlv-s2-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .ttlv-s2-subheading { font-size: clamp(0.8rem, 2vw, 1rem); color: var(--s2-text-muted); max-width: 700px; margin: 0 auto; line-height: 1.6; }\r\n  .ttlv-s2-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .ttlv-s2-card { background: var(--s2-card-bg); border-radius: 10px; padding: 32px 28px; text-align: center; position: relative; transition: all 0.4s ease; cursor: pointer; border: 1px solid #e2e8f0; opacity: 0; animation: ttlv-s2-fadeSlideUp 0.6s ease forwards; }\r\n  .ttlv-s2-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .ttlv-s2-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .ttlv-s2-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .ttlv-s2-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .ttlv-s2-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .ttlv-s2-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes ttlv-s2-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .ttlv-s2-card::after { content: \"\"; position: absolute; inset: 0; border-radius: 10px; box-shadow: 0 0 0 0 rgba(254, 44, 85, 0.4); opacity: 0; pointer-events: none; }\r\n  .ttlv-s2-card:hover::after { animation: ttlv-s2-pulseEcho 1.5s ease-out infinite; }\r\n  @keyframes ttlv-s2-pulseEcho { 0% { box-shadow: 0 0 0 0 rgba(254, 44, 85, 0.4); opacity: 1; } 100% { box-shadow: 0 0 0 20px rgba(254, 44, 85, 0); opacity: 0; } }\r\n  .ttlv-s2-card:hover { transform: translateY(-8px); }\r\n  .ttlv-s2-icon-wrap { width: 64px; height: 64px; margin: 0 auto 20px; background: linear-gradient(135deg, var(--s2-primary) 0%, var(--s2-accent) 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); }\r\n  .ttlv-s2-card:hover .ttlv-s2-icon-wrap { animation: ttlv-s2-elasticBounce 0.6s ease; }\r\n  @keyframes ttlv-s2-elasticBounce { 0% { transform: scale(1); } 30% { transform: scale(0.85) translateY(5px); } 50% { transform: scale(1.15) translateY(-10px); } 70% { transform: scale(0.95) translateY(2px); } 100% { transform: scale(1) translateY(0); } }\r\n  .ttlv-s2-icon { font-size: 26px; color: #ffffff; transition: transform 0.3s ease; }\r\n  .ttlv-s2-card:hover .ttlv-s2-icon { transform: rotate(10deg); }\r\n  .ttlv-s2-card-title { font-size: 1.2rem; font-weight: 700; color: var(--s2-text); margin-bottom: 12px; }\r\n  .ttlv-s2-card-desc { font-size: 0.95rem; color: var(--s2-text-soft); line-height: 1.6; }\r\n\r\n  .ttlv-s3-root { --s3-bg: #ffffff; --s3-card-bg: #f0fdfa; --s3-text: #0f172a; --s3-text-soft: #334155; --s3-text-muted: #64748b; --s3-primary: #25F4EE; --s3-accent: #FE2C55; width: 100%; background: var(--s3-bg); padding: 80px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .ttlv-s3-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttlv-s3-header { text-align: center; margin-bottom: 30px; }\r\n  .ttlv-s3-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .ttlv-s3-subheading { font-size: clamp(0.8rem, 2vw, 1rem); color: var(--s3-text-muted); max-width: 700px; margin: 0 auto; line-height: 1.6; }\r\n  .ttlv-s3-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .ttlv-s3-card { background: var(--s3-card-bg); border-radius: 10px; padding: 28px; position: relative; overflow: hidden; transition: all 0.4s ease; cursor: pointer; border: 1px solid transparent; opacity: 0; animation: ttlv-s3-fadeSlideUp 0.6s ease forwards; }\r\n  .ttlv-s3-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .ttlv-s3-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .ttlv-s3-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .ttlv-s3-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .ttlv-s3-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .ttlv-s3-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes ttlv-s3-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .ttlv-s3-card::before { content: \"\"; position: absolute; width: 200px; height: 200px; background: radial-gradient(circle, rgba(254, 44, 85, 0.25) 0%, transparent 70%); border-radius: 50%; pointer-events: none; opacity: 0; transform: translate(-50%, -50%); transition: opacity 0.4s ease; left: var(--mouse-x, 50%); top: var(--mouse-y, 50%); }\r\n  .ttlv-s3-card:hover::before { opacity: 1; }\r\n  .ttlv-s3-card:hover { border-color: rgba(254, 44, 85, 0.3); transform: translateY(-4px); box-shadow: 0 12px 30px rgba(254, 44, 85, 0.1); }\r\n  .ttlv-s3-step-badge { position: absolute; top: 16px; right: 16px; width: 28px; height: 28px; background: linear-gradient(135deg, var(--s3-primary) 0%, var(--s3-accent) 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 700; color: #ffffff; transition: transform 0.3s ease; }\r\n  .ttlv-s3-card:hover .ttlv-s3-step-badge { transform: scale(1.2) rotate(10deg); }\r\n  .ttlv-s3-icon-wrap { width: 52px; height: 52px; background: #ffffff; border: 2px solid #e2e8f0; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; transition: all 0.4s ease; transform-style: preserve-3d; }\r\n  .ttlv-s3-card:hover .ttlv-s3-icon-wrap { transform: rotateY(180deg); border-color: var(--s3-accent); background: linear-gradient(135deg, var(--s3-primary) 0%, var(--s3-accent) 100%); }\r\n  .ttlv-s3-icon { font-size: 22px; color: var(--s3-accent); transition: all 0.4s ease; backface-visibility: hidden; }\r\n  .ttlv-s3-card:hover .ttlv-s3-icon { color: #ffffff; transform: rotateY(180deg); }\r\n  .ttlv-s3-card-title { font-size: 1.1rem; font-weight: 700; color: var(--s3-text); margin-bottom: 10px; position: relative; z-index: 1; }\r\n  .ttlv-s3-card-desc { font-size: 0.9rem; color: var(--s3-text-soft); line-height: 1.5; position: relative; z-index: 1; }\r\n\r\n  .ttlv-shortcode { --sc-bg: #ffffff; --sc-border: #e2e8f0; --sc-text: #0f172a; --sc-text-muted: #64748b; --sc-primary: #25F4EE; --sc-accent: #FE2C55; width: 100%; background: var(--sc-bg); padding: 60px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .ttlv-shortcode-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttlv-shortcode-inner { border: 2px dashed var(--sc-border); border-radius: 12px; padding: 40px; text-align: center; background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); transition: border-color 0.3s ease; }\r\n  .ttlv-shortcode-inner:hover { border-color: var(--sc-accent); }\r\n  .ttlv-shortcode-placeholder { display: inline-block; background: linear-gradient(135deg, var(--sc-primary) 0%, var(--sc-accent) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-size: clamp(1.2rem, 3vw, 1.8rem); font-weight: 800; letter-spacing: 1px; }\r\n  .ttlv-shortcode-hint { margin-top: 12px; font-size: 0.9rem; color: var(--sc-text-muted); }\r\n\r\n  @media (max-width: 1024px) { .ttlv-s1-grid, .ttlv-s2-grid, .ttlv-s3-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }\r\n  @media (max-width: 640px) { .ttlv-s1-root, .ttlv-s2-root, .ttlv-s3-root, .ttlv-shortcode { padding: 50px 10px; } .ttlv-s1-grid, .ttlv-s2-grid, .ttlv-s3-grid { grid-template-columns: 1fr; gap: 16px; } .ttlv-s1-card, .ttlv-s2-card, .ttlv-s3-card { padding: 28px 24px; } .ttlv-shortcode-inner { padding: 24px 16px; } }\r\n<\/style>\r\n\r\n<section class=\"ttlv-shortcode\"><div class=\"ttlv-shortcode-container\"><\/div><\/section>\r\n\r\n<section class=\"ttlv-s1-root\" id=\"what-is-tiktok-link-viewer\">\r\n  <div class=\"ttlv-s1-container\">\r\n    <div class=\"ttlv-s1-header\">\r\n      <h2 class=\"ttlv-s1-heading\">What Is a <span class=\"ttlv-highlight\">TikTok Link Viewer<\/span>?<\/h2>\r\n      <p class=\"ttlv-s1-subheading\">Parse, analyze, and extract data from any TikTok URL<\/p>\r\n    <\/div>\r\n    <div class=\"ttlv-s1-grid\">\r\n      <article class=\"ttlv-s1-card\"><div class=\"ttlv-s1-icon-wrap\"><i class=\"fa-solid fa-link ttlv-s1-icon\"><\/i><\/div><h3 class=\"ttlv-s1-card-title\">Link Parser<\/h3><p class=\"ttlv-s1-card-desc\">Parse TikTok URLs into readable components<\/p><\/article>\r\n      <article class=\"ttlv-s1-card\"><div class=\"ttlv-s1-icon-wrap\"><i class=\"fa-solid fa-hashtag ttlv-s1-icon\"><\/i><\/div><h3 class=\"ttlv-s1-card-title\">Video ID Extract<\/h3><p class=\"ttlv-s1-card-desc\">Extract video IDs from any TikTok link<\/p><\/article>\r\n      <article class=\"ttlv-s1-card\"><div class=\"ttlv-s1-icon-wrap\"><i class=\"fa-solid fa-user ttlv-s1-icon\"><\/i><\/div><h3 class=\"ttlv-s1-card-title\">Profile Link<\/h3><p class=\"ttlv-s1-card-desc\">Parse profile links and extract usernames<\/p><\/article>\r\n      <article class=\"ttlv-s1-card\"><div class=\"ttlv-s1-icon-wrap\"><i class=\"fa-solid fa-hashtag ttlv-s1-icon\"><\/i><\/div><h3 class=\"ttlv-s1-card-title\">Hashtag Link<\/h3><p class=\"ttlv-s1-card-desc\">Extract hashtag information from URLs<\/p><\/article>\r\n      <article class=\"ttlv-s1-card\"><div class=\"ttlv-s1-icon-wrap\"><i class=\"fa-solid fa-music ttlv-s1-icon\"><\/i><\/div><h3 class=\"ttlv-s1-card-title\">Music Link<\/h3><p class=\"ttlv-s1-card-desc\">Parse music and sound links from TikTok<\/p><\/article>\r\n      <article class=\"ttlv-s1-card\"><div class=\"ttlv-s1-icon-wrap\"><i class=\"fa-solid fa-share ttlv-s1-icon\"><\/i><\/div><h3 class=\"ttlv-s1-card-title\">Share URL<\/h3><p class=\"ttlv-s1-card-desc\">Generate clean share URLs from TikTok links<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"ttlv-s2-root\" id=\"why-use-tiktok-link-viewer\">\r\n  <div class=\"ttlv-s2-container\">\r\n    <div class=\"ttlv-s2-header\">\r\n      <h2 class=\"ttlv-s2-heading\">Why Use a <span class=\"ttlv-highlight\">TikTok Link Viewer<\/span>?<\/h2>\r\n      <p class=\"ttlv-s2-subheading\">Understand URL structures and extract valuable data from TikTok links<\/p>\r\n    <\/div>\r\n    <div class=\"ttlv-s2-grid\">\r\n      <article class=\"ttlv-s2-card\"><div class=\"ttlv-s2-icon-wrap\"><i class=\"fa-solid fa-microscope ttlv-s2-icon\"><\/i><\/div><h3 class=\"ttlv-s2-card-title\">Link Analysis<\/h3><p class=\"ttlv-s2-card-desc\">Analyze TikTok link structure in detail<\/p><\/article>\r\n      <article class=\"ttlv-s2-card\"><div class=\"ttlv-s2-icon-wrap\"><i class=\"fa-solid fa-check-circle ttlv-s2-icon\"><\/i><\/div><h3 class=\"ttlv-s2-card-title\">URL Validation<\/h3><p class=\"ttlv-s2-card-desc\">Validate whether TikTok URLs are correct<\/p><\/article>\r\n      <article class=\"ttlv-s2-card\"><div class=\"ttlv-s2-icon-wrap\"><i class=\"fa-solid fa-database ttlv-s2-icon\"><\/i><\/div><h3 class=\"ttlv-s2-card-title\">Data Extraction<\/h3><p class=\"ttlv-s2-card-desc\">Extract embedded data from TikTok URLs<\/p><\/article>\r\n      <article class=\"ttlv-s2-card\"><div class=\"ttlv-s2-icon-wrap\"><i class=\"fa-solid fa-bug ttlv-s2-icon\"><\/i><\/div><h3 class=\"ttlv-s2-card-title\">Sharing Debug<\/h3><p class=\"ttlv-s2-card-desc\">Debug and troubleshoot TikTok sharing links<\/p><\/article>\r\n      <article class=\"ttlv-s2-card\"><div class=\"ttlv-s2-icon-wrap\"><i class=\"fa-solid fa-arrow-right-arrow-left ttlv-s2-icon\"><\/i><\/div><h3 class=\"ttlv-s2-card-title\">Redirect Check<\/h3><p class=\"ttlv-s2-card-desc\">Check redirect paths from shortened TikTok URLs<\/p><\/article>\r\n      <article class=\"ttlv-s2-card\"><div class=\"ttlv-s2-icon-wrap\"><i class=\"fa-solid fa-sliders ttlv-s2-icon\"><\/i><\/div><h3 class=\"ttlv-s2-card-title\">Parameter View<\/h3><p class=\"ttlv-s2-card-desc\">View all query parameters in TikTok URLs<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"ttlv-s3-root\" id=\"how-to-use-tiktok-link-viewer\">\r\n  <div class=\"ttlv-s3-container\">\r\n    <div class=\"ttlv-s3-header\">\r\n      <h2 class=\"ttlv-s3-heading\">How to Use the <span class=\"ttlv-highlight\">TikTok Link Viewer<\/span>?<\/h2>\r\n      <p class=\"ttlv-s3-subheading\">Parse and understand any TikTok URL in simple steps<\/p>\r\n    <\/div>\r\n    <div class=\"ttlv-s3-grid\">\r\n      <article class=\"ttlv-s3-card\"><span class=\"ttlv-s3-step-badge\">1<\/span><div class=\"ttlv-s3-icon-wrap\"><i class=\"fa-solid fa-link ttlv-s3-icon\"><\/i><\/div><h3 class=\"ttlv-s3-card-title\">Paste TikTok Link<\/h3><p class=\"ttlv-s3-card-desc\">Paste any TikTok URL into the viewer<\/p><\/article>\r\n      <article class=\"ttlv-s3-card\"><span class=\"ttlv-s3-step-badge\">2<\/span><div class=\"ttlv-s3-icon-wrap\"><i class=\"fa-solid fa-code ttlv-s3-icon\"><\/i><\/div><h3 class=\"ttlv-s3-card-title\">Parse URL<\/h3><p class=\"ttlv-s3-card-desc\">Automatically parse the URL components<\/p><\/article>\r\n      <article class=\"ttlv-s3-card\"><span class=\"ttlv-s3-step-badge\">3<\/span><div class=\"ttlv-s3-icon-wrap\"><i class=\"fa-solid fa-eye ttlv-s3-icon\"><\/i><\/div><h3 class=\"ttlv-s3-card-title\">View Components<\/h3><p class=\"ttlv-s3-card-desc\">View all parsed link components in detail<\/p><\/article>\r\n      <article class=\"ttlv-s3-card\"><span class=\"ttlv-s3-step-badge\">4<\/span><div class=\"ttlv-s3-icon-wrap\"><i class=\"fa-solid fa-fingerprint ttlv-s3-icon\"><\/i><\/div><h3 class=\"ttlv-s3-card-title\">Extract IDs<\/h3><p class=\"ttlv-s3-card-desc\">Extract video, user, and music IDs<\/p><\/article>\r\n      <article class=\"ttlv-s3-card\"><span class=\"ttlv-s3-step-badge\">5<\/span><div class=\"ttlv-s3-icon-wrap\"><i class=\"fa-solid fa-list ttlv-s3-icon\"><\/i><\/div><h3 class=\"ttlv-s3-card-title\">Check Parameters<\/h3><p class=\"ttlv-s3-card-desc\">Review all URL parameters and their values<\/p><\/article>\r\n      <article class=\"ttlv-s3-card\"><span class=\"ttlv-s3-step-badge\">6<\/span><div class=\"ttlv-s3-icon-wrap\"><i class=\"fa-solid fa-copy ttlv-s3-icon\"><\/i><\/div><h3 class=\"ttlv-s3-card-title\">Copy Data<\/h3><p class=\"ttlv-s3-card-desc\">Copy parsed link data to your clipboard<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n  (function () {\r\n    var cards = document.querySelectorAll(\".ttlv-s3-card\");\r\n    cards.forEach(function (card) {\r\n      card.addEventListener(\"mousemove\", function (e) {\r\n        var rect = card.getBoundingClientRect();\r\n        card.style.setProperty(\"--mouse-x\", ((e.clientX - rect.left) \/ rect.width) * 100 + \"%\");\r\n        card.style.setProperty(\"--mouse-y\", ((e.clientY - rect.top) \/ rect.height) * 100 + \"%\");\r\n      });\r\n    });\r\n  })();\r\n<\/script><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":4,"featured_media":0,"parent":5496,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-homepage.php","meta":{"footnotes":""},"class_list":["post-6121","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/6121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/comments?post=6121"}],"version-history":[{"count":4,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/6121\/revisions"}],"predecessor-version":[{"id":6125,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/6121\/revisions\/6125"}],"up":[{"embeddable":true,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/5496"}],"wp:attachment":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/media?parent=6121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}