{"id":6061,"date":"2026-06-01T00:00:10","date_gmt":"2026-06-01T00:00:10","guid":{"rendered":"https:\/\/viewari.com\/?page_id=6061"},"modified":"2026-06-14T06:08:35","modified_gmt":"2026-06-14T06:08:35","slug":"comments","status":"publish","type":"page","link":"https:\/\/viewari.com\/tiktok\/comments\/","title":{"rendered":"Tiktok Comments Viewer &#8211; Read Video Threads Secretly Free"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6061\" class=\"elementor elementor-6061\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d52e5f9 e-con-full e-flex e-con e-parent\" data-id=\"d52e5f9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a9fc0e3 elementor-widget elementor-widget-shortcode\" data-id=\"5a9fc0e3\" 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.nstcv {\n    container-type: inline-size;\n    container-name: nstcv;\n    -webkit-text-size-adjust: 100%;\n    --nstcv-ink: #ffffff;\n    --nstcv-muted: #cbd5e1;\n    --nstcv-dim: #94a3b8;\n    --nstcv-panel: rgba(22, 24, 35, 0.94);\n    --nstcv-panel-soft: rgba(255, 255, 255, 0.08);\n    --nstcv-line: rgba(255, 255, 255, 0.12);\n    --nstcv-accent: #ff0050;\n    --nstcv-accent-deep: #ee1d52;\n    --nstcv-cool: #00f2ea;\n    --nstcv-danger: #ff4d6d;\n    --nstcv-radius: 16px;\n    --nstcv-shadow: 0 16px 36px rgba(0, 0, 0, 0.45);\n    --nstcv-font: \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif;\n    --nstcv-gap: 12px;\n    --nstcv-pad: 12px;\n    box-sizing: border-box;\n    font-family: var(--nstcv-font);\n    color: var(--nstcv-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    -webkit-text-size-adjust: 100%;\n  }\n\n  .nstcv *,\n  .nstcv *::before,\n  .nstcv *::after {\n    box-sizing: border-box;\n  }\n\n  .nstcv :where(h1, h2, h3, p, ul, ol, li, figure, label, span) {\n    margin: 0;\n    padding: 0;\n    border: 0;\n    font-weight: inherit;\n  }\n\n  .nstcv :where(ul, ol) {\n    list-style: none;\n  }\n\n  .nstcv img {\n    max-width: 100%;\n    height: auto;\n    display: block;\n    border: 0;\n  }\n\n  .nstcv a {\n    color: var(--nstcv-cool);\n    text-decoration: none;\n  }\n\n  .nstcv a:hover {\n    text-decoration: underline;\n  }\n\n  .nstcv-shell {\n    max-width: 1280px;\n    margin: 0 auto;\n    display: flex;\n    flex-direction: column;\n    gap: var(--nstcv-gap);\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstcv-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  .nstcv-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  .nstcv-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(--nstcv-accent), var(--nstcv-cool));\n    color: #fff;\n    box-shadow: 0 10px 24px rgba(255, 0, 80, 0.35);\n    flex: 0 0 auto;\n  }\n\n  .nstcv .nstcv-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    font-style: normal !important;\n    -webkit-font-smoothing: antialiased;\n  }\n\n  .nstcv-hero__title {\n    font-size: clamp(1.35rem, 4vw, 1.85rem);\n    font-weight: 800;\n    letter-spacing: -0.02em;\n    line-height: 1.2;\n    margin: 0;\n  }\n\n  .nstcv-hero__title-mark {\n    position: relative;\n    color: var(--nstcv-accent);\n    display: inline-block;\n  }\n\n  .nstcv-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(--nstcv-accent), var(--nstcv-cool));\n    border-radius: 2px;\n  }\n\n  .nstcv-hero__lead {\n    margin-top: 8px;\n    color: var(--nstcv-muted);\n    font-size: 0.95rem;\n  }\n\n  .nstcv-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(--nstcv-panel);\n    border: 1px solid var(--nstcv-line);\n    border-radius: var(--nstcv-radius);\n    box-shadow: var(--nstcv-shadow);\n  }\n\n  .nstcv-search__label {\n    display: block;\n    font-size: 0.82rem;\n    color: var(--nstcv-dim);\n    margin-bottom: 6px;\n    font-weight: 600;\n  }\n\n  .nstcv-search__row {\n    display: flex;\n    flex-direction: column;\n    flex-wrap: wrap;\n    gap: 8px;\n  }\n\n  .nstcv-search__field {\n    flex: 1 1 auto;\n    width: 100%;\n    min-width: 0;\n    border: 1px solid var(--nstcv-line);\n    border-radius: 12px;\n    background: rgba(0, 0, 0, 0.35);\n    color: var(--nstcv-ink);\n    padding: 12px 14px;\n    font-size: 16px;\n    outline: none;\n  }\n\n  .nstcv-search__field:focus {\n    border-color: var(--nstcv-cool);\n    box-shadow: 0 0 0 3px rgba(0, 242, 234, 0.15);\n  }\n\n  .nstcv-search__actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    width: 100%;\n  }\n\n  .nstcv-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    transition: transform .15s, opacity .15s;\n  }\n\n  .nstcv-btn:hover {\n    transform: translateY(-1px);\n  }\n\n  .nstcv-btn:disabled {\n    opacity: .55;\n    cursor: not-allowed;\n    transform: none;\n  }\n\n  .nstcv-btn--paste {\n    background: rgba(255, 255, 255, 0.12);\n    border: 1px solid var(--nstcv-line);\n  }\n\n  .nstcv-btn--view {\n    background: linear-gradient(135deg, var(--nstcv-accent), var(--nstcv-accent-deep));\n  }\n\n  .nstcv-btn--reset {\n    background: linear-gradient(135deg, var(--nstcv-cool), #0891b2);\n    color: #041016;\n  }\n\n  .nstcv-btn.is-hidden {\n    display: none !important;\n  }\n\n  .nstcv-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  .nstcv-alert.is-visible {\n    display: block;\n  }\n\n  .nstcv-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  .nstcv-search__hint {\n    margin-top: 8px;\n    color: var(--nstcv-dim);\n    font-size: 0.8rem;\n  }\n\n  .nstcv-skeleton {\n    display: none;\n  }\n\n  .nstcv-skeleton.is-visible {\n    display: block;\n  }\n\n  .nstcv-skeleton__panel {\n    background: var(--nstcv-panel);\n    border: 1px solid var(--nstcv-line);\n    border-radius: var(--nstcv-radius);\n    padding: var(--nstcv-pad);\n    display: grid;\n    gap: 14px;\n  }\n\n  .nstcv-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: nstcv-shimmer 1.2s ease-in-out infinite;\n    border-radius: 10px;\n  }\n\n  @keyframes nstcv-shimmer {\n    0% {\n      background-position: 200% 0;\n    }\n\n    100% {\n      background-position: -200% 0;\n    }\n  }\n\n  .nstcv-skeleton__media {\n    aspect-ratio: 9\/12;\n    width: 100%;\n    max-width: 260px;\n    margin: 0 auto;\n  }\n\n  .nstcv-skeleton__line {\n    height: 12px;\n    margin-top: 8px;\n  }\n\n  .nstcv-skeleton__line--lg {\n    width: 70%;\n  }\n\n  .nstcv-skeleton__line--md {\n    width: 45%;\n  }\n\n  .nstcv-skeleton__line--full {\n    width: 100%;\n  }\n\n  .nstcv-skeleton__citem {\n    display: flex;\n    gap: 10px;\n    margin-top: 12px;\n  }\n\n  .nstcv-skeleton__cavatar {\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    flex: 0 0 auto;\n  }\n\n  .nstcv-panel {\n    background: var(--nstcv-panel);\n    border: 1px solid var(--nstcv-line);\n    border-radius: var(--nstcv-radius);\n    box-shadow: var(--nstcv-shadow);\n    padding: var(--nstcv-pad);\n  }\n\n  .nstcv-content.is-hidden {\n    display: none;\n  }\n\n  .nstcv-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(--nstcv-muted);\n    font-size: 0.88rem;\n  }\n\n  .nstcv-notice i {\n    color: var(--nstcv-cool);\n    margin-top: 2px;\n  }\n\n  .nstcv-content:not(.is-placeholder) .nstcv-notice {\n    display: none;\n  }\n\n  .nstcv-layout {\n    display: grid;\n    gap: 14px;\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstcv-video__media-wrap {\n    max-width: 360px;\n    margin: 0 auto;\n  }\n\n  .nstcv-video {\n    border: 1px solid var(--nstcv-line);\n    border-radius: 14px;\n    overflow: hidden;\n    background: rgba(0, 0, 0, 0.25);\n  }\n\n  .nstcv-video__media-wrap {\n    position: relative;\n    aspect-ratio: 9\/12;\n    background: #0b0b10;\n  }\n\n  .nstcv-video__thumb {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n  }\n\n  .nstcv-video__badge {\n    position: absolute;\n    left: 10px;\n    top: 10px;\n    z-index: 2;\n    display: inline-flex;\n    gap: 6px;\n    align-items: center;\n    padding: 6px 10px;\n    border-radius: 999px;\n    background: rgba(0, 0, 0, 0.55);\n    font-size: 0.75rem;\n    font-weight: 700;\n  }\n\n  .nstcv-video__actions {\n    position: absolute;\n    right: 10px;\n    bottom: 10px;\n    z-index: 2;\n    display: flex;\n    gap: 8px;\n  }\n\n  .nstcv-video__fab {\n    width: 42px;\n    height: 42px;\n    border: 0;\n    border-radius: 50%;\n    cursor: pointer;\n    color: #fff;\n    background: rgba(0, 0, 0, 0.55);\n    display: grid;\n    place-items: center;\n  }\n\n  .nstcv-video__fab--play {\n    background: var(--nstcv-accent);\n  }\n\n  .nstcv-video__fab--dl {\n    background: var(--nstcv-cool);\n    color: #041016;\n  }\n\n  .nstcv-content.is-placeholder .nstcv-video__fab {\n    pointer-events: none;\n    opacity: .45;\n  }\n\n  .nstcv-video__body {\n    padding: 12px;\n  }\n\n  .nstcv-video__author {\n    display: flex;\n    gap: 10px;\n    align-items: center;\n  }\n\n  .nstcv-video__avatar {\n    width: 44px;\n    height: 44px;\n    border-radius: 50%;\n    object-fit: cover;\n    border: 2px solid rgba(255, 0, 80, 0.55);\n    background: #222;\n  }\n\n  .nstcv-video__user {\n    font-weight: 800;\n    color: #fff;\n  }\n\n  .nstcv-video__name {\n    color: var(--nstcv-muted);\n    font-size: 0.85rem;\n  }\n\n  .nstcv-video__title {\n    margin-top: 10px;\n    color: var(--nstcv-muted);\n    font-size: 0.92rem;\n    white-space: pre-wrap;\n    word-break: break-word;\n  }\n\n  .nstcv-stats {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    margin-top: 12px;\n  }\n\n  .nstcv-stat {\n    display: inline-flex;\n    gap: 6px;\n    align-items: center;\n    padding: 7px 10px;\n    border-radius: 999px;\n    background: var(--nstcv-panel-soft);\n    border: 1px solid var(--nstcv-line);\n    font-size: 0.82rem;\n    font-weight: 700;\n  }\n\n  .nstcv-stat i {\n    color: var(--nstcv-accent);\n  }\n\n  .nstcv-comments__head {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 10px;\n    margin-bottom: 10px;\n  }\n\n  .nstcv-comments__title {\n    font-size: 1.05rem;\n    font-weight: 800;\n    display: flex;\n    gap: 8px;\n    align-items: center;\n  }\n\n  .nstcv-comments__title i {\n    color: var(--nstcv-cool);\n  }\n\n  .nstcv-comments__count {\n    min-width: 34px;\n    text-align: center;\n    padding: 4px 10px;\n    border-radius: 999px;\n    font-size: 0.8rem;\n    font-weight: 800;\n    background: rgba(255, 0, 80, 0.18);\n    border: 1px solid rgba(255, 0, 80, 0.35);\n  }\n\n  .nstcv-filters {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    margin-bottom: 10px;\n  }\n\n  .nstcv-filters__btn {\n    appearance: none;\n    border: 1px solid var(--nstcv-line);\n    background: rgba(255, 255, 255, 0.05);\n    color: var(--nstcv-muted);\n    border-radius: 999px;\n    padding: 7px 12px;\n    font-size: 0.8rem;\n    font-weight: 700;\n    cursor: pointer;\n    display: inline-flex;\n    gap: 6px;\n    align-items: center;\n  }\n\n  .nstcv-filters__btn.is-active {\n    color: #fff;\n    border-color: rgba(255, 0, 80, 0.55);\n    background: rgba(255, 0, 80, 0.2);\n  }\n\n  .nstcv-find {\n    width: 100%;\n    margin-bottom: 10px;\n    border: 1px solid var(--nstcv-line);\n    border-radius: 10px;\n    background: rgba(0, 0, 0, 0.3);\n    color: #fff;\n    padding: 10px 12px;\n    font-size: 0.88rem;\n    outline: none;\n  }\n\n  .nstcv-comments__list {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    max-height: min(62vh, 720px);\n    overflow: auto;\n    padding-right: 4px;\n  }\n\n  .nstcv-citem {\n    display: grid;\n    grid-template-columns: 40px minmax(0, 1fr);\n    gap: 10px;\n    padding: 10px;\n    border-radius: 12px;\n    border: 1px solid var(--nstcv-line);\n    background: rgba(255, 255, 255, 0.03);\n  }\n\n  .nstcv-citem__avatar {\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    object-fit: cover;\n    background: #222;\n  }\n\n  .nstcv-citem__top {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px 10px;\n    align-items: baseline;\n  }\n\n  .nstcv-citem__nick {\n    font-weight: 800;\n    font-size: 0.9rem;\n  }\n\n  .nstcv-citem__user {\n    color: var(--nstcv-dim);\n    font-size: 0.8rem;\n  }\n\n  .nstcv-citem__verified {\n    color: var(--nstcv-cool);\n    font-size: 0.75rem;\n  }\n\n  .nstcv-citem__text {\n    margin-top: 4px;\n    color: var(--nstcv-muted);\n    font-size: 0.9rem;\n    white-space: pre-wrap;\n    word-break: break-word;\n  }\n\n  .nstcv-citem__meta {\n    margin-top: 8px;\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    color: var(--nstcv-dim);\n    font-size: 0.78rem;\n    font-weight: 600;\n  }\n\n  .nstcv-citem__meta i {\n    color: var(--nstcv-accent);\n  }\n\n  .nstcv-empty {\n    text-align: center;\n    padding: 28px 12px;\n    color: var(--nstcv-dim);\n    border: 1px dashed var(--nstcv-line);\n    border-radius: 12px;\n  }\n\n  .nstcv-empty i {\n    font-size: 1.6rem;\n    color: var(--nstcv-accent);\n    margin-bottom: 8px;\n    display: block;\n  }\n\n  .nstcv-more {\n    appearance: none;\n    width: 100%;\n    margin-top: 10px;\n    border: 1px solid rgba(0, 242, 234, 0.45);\n    background: rgba(0, 242, 234, 0.12);\n    color: #fff;\n    border-radius: 12px;\n    padding: 11px 14px;\n    font-weight: 800;\n    font-size: 0.88rem;\n    cursor: pointer;\n    display: inline-flex;\n    gap: 8px;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .nstcv-more:hover {\n    background: rgba(0, 242, 234, 0.2);\n  }\n\n  .nstcv-more:disabled {\n    opacity: .55;\n    cursor: not-allowed;\n  }\n\n  .nstcv-more.is-hidden {\n    display: none !important;\n  }\n\n  .nstcv-export {\n    margin-top: 12px;\n    padding-top: 12px;\n    border-top: 1px solid var(--nstcv-line);\n  }\n\n  .nstcv-export__title {\n    font-size: 0.92rem;\n    font-weight: 800;\n    margin-bottom: 8px;\n    display: flex;\n    gap: 8px;\n    align-items: center;\n  }\n\n  .nstcv-export__row {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n  }\n\n  .nstcv-export__btn {\n    appearance: none;\n    border: 1px solid var(--nstcv-line);\n    background: rgba(255, 255, 255, 0.06);\n    color: #fff;\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    gap: 7px;\n    align-items: center;\n  }\n\n  .nstcv-export__btn--csv {\n    border-color: rgba(0, 242, 234, 0.4);\n  }\n\n  .nstcv-content.is-placeholder .nstcv-export {\n    opacity: .45;\n    pointer-events: none;\n  }\n\n  .nstcv-thumb--ghost {\n    background:\n      linear-gradient(135deg, rgba(255, 0, 80, 0.25), rgba(0, 242, 234, 0.12)),\n      repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.04) 0 8px, transparent 8px 16px);\n  }\n\n  .nstcv-modal {\n    position: fixed;\n    inset: 0;\n    z-index: 99999;\n    display: none;\n    place-items: center;\n    padding: 16px;\n    background: rgba(0, 0, 0, 0.72);\n    backdrop-filter: blur(4px);\n  }\n\n  .nstcv-modal.is-open {\n    display: grid;\n  }\n\n  .nstcv-modal__dialog {\n    width: min(920px, 100%);\n    max-height: min(92vh, 900px);\n    overflow: auto;\n    background: #12131a;\n    border: 1px solid var(--nstcv-line);\n    border-radius: 16px;\n    padding: 12px;\n    position: relative;\n  }\n\n  .nstcv-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: 50%;\n    background: rgba(0, 0, 0, 0.55);\n    color: #fff;\n    cursor: pointer;\n  }\n\n  .nstcv-modal__stage {\n    position: relative;\n    background: #000;\n    border-radius: 12px;\n    overflow: hidden;\n    min-height: 220px;\n  }\n\n  .nstcv-modal__media,\n  .nstcv-modal__video {\n    width: 100%;\n    max-height: min(70vh, 720px);\n    display: block;\n    margin: 0 auto;\n    background: #000;\n  }\n\n  .nstcv-modal__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  }\n\n  .nstcv-modal__note.is-visible {\n    display: grid;\n  }\n\n  .nstcv-modal__bar {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    align-items: center;\n    justify-content: space-between;\n    margin-top: 10px;\n  }\n\n  .nstcv-modal__caption {\n    color: var(--nstcv-muted);\n    font-size: 0.88rem;\n    flex: 1 1 180px;\n  }\n\n  .nstcv-modal__actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n  }\n\n  .nstcv-modal__action {\n    appearance: none;\n    border: 0;\n    border-radius: 10px;\n    padding: 10px 14px;\n    font-weight: 800;\n    cursor: pointer;\n    color: #fff;\n    display: inline-flex;\n    gap: 8px;\n    align-items: center;\n  }\n\n  .nstcv-modal__action--play {\n    background: var(--nstcv-accent);\n  }\n\n  .nstcv-modal__action--download {\n    background: var(--nstcv-cool);\n    color: #041016;\n  }\n\n  .nstcv-dlprog {\n    display: none;\n    margin-top: 10px;\n    padding: 10px 12px;\n    border-radius: 12px;\n    background: rgba(0, 0, 0, 0.35);\n    border: 1px solid var(--nstcv-line);\n  }\n\n  .nstcv-dlprog.is-visible {\n    display: block;\n  }\n\n  .nstcv-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  .nstcv-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  .nstcv-dlprog__fill {\n    height: 100%;\n    width: 0;\n    background: linear-gradient(90deg, var(--nstcv-accent), var(--nstcv-cool));\n  }\n\n  .nstcv-dlprog__meta {\n    margin-top: 6px;\n    display: flex;\n    justify-content: space-between;\n    gap: 8px;\n    color: var(--nstcv-dim);\n    font-size: 0.78rem;\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  .nstcv {\n    --nstcv-cols: 1;\n  }\n\n  .nstcv-search__row {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstcv-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  .nstcv-search__actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    width: 100%;\n  }\n\n  .nstcv-btn {\n    flex: 1 1 calc(50% - 4px);\n    justify-content: center;\n    min-height: 44px;\n  }\n\n  .nstcv-layout {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 14px;\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstcv-video__media-wrap {\n    max-width: 360px;\n    margin: 0 auto;\n  }\n\n  .nstcv.nstcv--desktop .nstcv-layout {\n    grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);\n    align-items: start;\n  }\n\n  .nstcv.nstcv--desktop .nstcv-video__media-wrap {\n    max-width: none;\n    margin: 0;\n  }\n\n  .nstcv.nstcv--compact .nstcv-export__row {\n    flex-direction: column;\n  }\n\n  .nstcv.nstcv--compact .nstcv-export__btn {\n    width: 100%;\n    justify-content: center;\n  }\n\n  @media (min-width: 768px) {\n    .nstcv:not(.nstcv--compact) .nstcv-search__row {\n      flex-direction: row;\n      flex-wrap: wrap;\n      align-items: stretch;\n    }\n\n    .nstcv:not(.nstcv--compact) .nstcv-search__field {\n      flex: 1 1 220px !important;\n      width: auto !important;\n    }\n\n    .nstcv:not(.nstcv--compact) .nstcv-search__actions {\n      width: auto;\n      flex: 0 0 auto;\n      flex-wrap: nowrap;\n    }\n\n    .nstcv:not(.nstcv--compact) .nstcv-btn {\n      flex: 0 0 auto;\n    }\n  }\n\n  \/* WordPress \/ Live Server narrow container (set by ResizeObserver) *\/\n  .nstcv.nstcv--compact .nstcv-search__row {\n    flex-direction: column !important;\n  }\n\n  .nstcv.nstcv--compact .nstcv-search__actions {\n    width: 100% !important;\n    display: flex !important;\n    flex-wrap: wrap !important;\n  }\n\n  .nstcv.nstcv--compact .nstcv-btn {\n    flex: 1 1 calc(50% - 4px) !important;\n  }\n\n  .nstcv.nstcv--compact .nstcv-search__field {\n    width: 100% !important;\n    flex: 1 1 100% !important;\n  }\n\n  .nstcv.nstcv--narrow .nstcv-btn {\n    flex: 1 1 100% !important;\n  }\n\n  .nstcv.nstcv--narrow .nstcv-search__actions {\n    flex-direction: column !important;\n  }\n\n  .nstcv.nstcv--narrow .nstcv-hero__title {\n    font-size: 1.15rem;\n  }\n\n  @media (hover: none) {\n\n    .nstcv-btn:hover,\n    .nstcv-more:hover {\n      transform: none;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .nstcv-sk {\n      animation: none;\n    }\n\n    .nstcv-btn {\n      transition: none;\n    }\n  }\n\n  \/* Turnstile host: keep hidden in-flow; floating panel styles come from turnstile-handler.js *\/\n  .nstcv #xrespond-tools-turnstile-host {\n    display: none;\n  }\n\n  .nstcv #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  .nstcv .nstcv-search,\n  .nstcv .nstcv-search .nstcv-search__row,\n  .nstcv .nstcv-search .nstcv-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  .nstcv .nstcv-search .nstcv-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  .nstcv .nstcv-search .nstcv-search__field,\n  .nstcv .nstcv-search .nstcv-search__row > .nstcv-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  .nstcv .nstcv-search .nstcv-search__actions,\n  .nstcv .nstcv-search .nstcv-search__row > .nstcv-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  .nstcv .nstcv-search .nstcv-search__row > .nstcv-btn,\n  .nstcv .nstcv-search .nstcv-search__actions .nstcv-btn,\n  .nstcv .nstcv-search .nstcv-search__row .nstcv-search__actions .nstcv-btn {\n    flex: 0 0 auto !important;\n    width: auto !important;\n    max-width: none !important;\n    min-width: 110px !important;\n  }\n\n  .nstcv.nstcv--compact .nstcv-search .nstcv-search__row,\n  .nstcv.nstcv--narrow .nstcv-search .nstcv-search__row {\n    flex-wrap: wrap !important;\n  }\n\n  .nstcv.nstcv--compact .nstcv-search .nstcv-search__field,\n  .nstcv.nstcv--narrow .nstcv-search .nstcv-search__field,\n  .nstcv.nstcv--compact .nstcv-search .nstcv-search__row > .nstcv-search__field,\n  .nstcv.nstcv--narrow .nstcv-search .nstcv-search__row > .nstcv-search__field {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstcv.nstcv--compact .nstcv-search .nstcv-search__actions,\n  .nstcv.nstcv--narrow .nstcv-search .nstcv-search__actions,\n  .nstcv.nstcv--compact .nstcv-search .nstcv-search__row > .nstcv-search__actions,\n  .nstcv.nstcv--narrow .nstcv-search .nstcv-search__row > .nstcv-search__actions {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstcv.nstcv--compact .nstcv-search .nstcv-search__row > .nstcv-btn,\n  .nstcv.nstcv--narrow .nstcv-search .nstcv-search__row > .nstcv-btn,\n  .nstcv.nstcv--compact .nstcv-search .nstcv-search__actions .nstcv-btn,\n  .nstcv.nstcv--narrow .nstcv-search .nstcv-search__actions .nstcv-btn,\n  .nstcv.nstcv--compact .nstcv-search .nstcv-search__row .nstcv-search__actions .nstcv-btn,\n  .nstcv.nstcv--narrow .nstcv-search .nstcv-search__row .nstcv-search__actions .nstcv-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    .nstcv .nstcv-search .nstcv-search__row {\n      flex-wrap: wrap !important;\n    }\n\n    .nstcv .nstcv-search .nstcv-search__field,\n    .nstcv .nstcv-search .nstcv-search__row > .nstcv-search__field {\n      flex: 1 1 100% !important;\n      width: 100% !important;\n      max-width: 100% !important;\n    }\n\n    .nstcv .nstcv-search .nstcv-search__actions,\n    .nstcv .nstcv-search .nstcv-search__row > .nstcv-search__actions {\n      flex: 1 1 100% !important;\n      width: 100% !important;\n      max-width: 100% !important;\n    }\n\n    .nstcv .nstcv-search .nstcv-search__row > .nstcv-btn,\n    .nstcv .nstcv-search .nstcv-search__actions .nstcv-btn,\n    .nstcv .nstcv-search .nstcv-search__row .nstcv-search__actions .nstcv-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.nstcv {\n  container-type: inline-size;\n  container-name: nstcv;\n  -webkit-text-size-adjust: 100%;\n  --nstcv-ink: #f8fafc;\n  --nstcv-muted: #cbd5e1;\n  --nstcv-dim: #94a3b8;\n  --nstcv-panel: rgba(10, 15, 30, 0.82);\n  --nstcv-panel-soft: rgba(255, 255, 255, 0.08);\n  --nstcv-line: rgba(148, 163, 184, 0.2);\n  --nstcv-line-strong: rgba(148, 163, 184, 0.34);\n  --nstcv-accent: #ff2d78;\n  --nstcv-accent-deep: #f31260;\n  --nstcv-cool: #22d3ee;\n  --nstcv-cool-deep: #0891b2;\n  --nstcv-danger: #fb7185;\n  --nstcv-success: #34d399;\n  --nstcv-warning: #fbbf24;\n  --nstcv-radius: 22px;\n  --nstcv-radius-sm: 14px;\n  --nstcv-shadow: 0 24px 60px rgba(2, 8, 23, 0.42);\n  --nstcv-shadow-soft: 0 12px 30px rgba(2, 8, 23, 0.24);\n  --nstcv-glow: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 18px 44px rgba(2, 8, 23, 0.28);\n  --nstcv-font: \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif;\n  --nstcv-gap: 18px;\n  --nstcv-pad: 18px;\n  box-sizing: border-box;\n  font-family: var(--nstcv-font);\n  color: var(--nstcv-ink);\n  line-height: 1.55;\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, 32px) max(clamp(8px, 2vw, 18px), env(safe-area-inset-right, 0px)) max(clamp(18px, 3vw, 34px), env(safe-area-inset-bottom, 0px)) max(clamp(8px, 2vw, 18px), env(safe-area-inset-left, 0px));\n  background:\n    radial-gradient(ellipse 78% 54% at 10% 0%, rgba(255, 45, 120, 0.2), transparent 58%),\n    radial-gradient(ellipse 70% 50% at 95% 10%, rgba(34, 211, 238, 0.16), transparent 52%),\n    radial-gradient(circle at 50% 100%, rgba(56, 189, 248, 0.08), transparent 38%),\n    linear-gradient(155deg, #060816 0%, #0f172a 48%, #111827 100%);\n  border-radius: 0;\n  position: relative;\n  isolation: isolate;\n  overflow-x: hidden;\n  -webkit-text-size-adjust: 100%;\n}\n\n.nstcv::before {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  pointer-events: none;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 18%),\n    linear-gradient(120deg, rgba(255, 255, 255, 0.02), transparent 42%);\n  opacity: 0.9;\n}\n\n.nstcv *,\n.nstcv *::before,\n.nstcv *::after {\n  box-sizing: border-box;\n}\n\n.nstcv :where(h1, h2, h3, p, ul, ol, li, figure, label, span) {\n  margin: 0;\n  padding: 0;\n  border: 0;\n  font-weight: inherit;\n}\n\n.nstcv :where(ul, ol) {\n  list-style: none;\n}\n\n.nstcv img {\n  max-width: 100%;\n  height: auto;\n  display: block;\n  border: 0;\n}\n\n.nstcv a {\n  color: var(--nstcv-cool);\n  text-decoration: none;\n  transition: color 0.22s ease, opacity 0.22s ease;\n}\n\n.nstcv a:hover {\n  text-decoration: underline;\n  color: #7ee7f7;\n}\n\n.nstcv-shell {\n  max-width: 1280px;\n  margin: 0 auto;\n  display: flex;\n  flex-direction: column;\n  gap: var(--nstcv-gap);\n  width: 100%;\n  min-width: 0;\n  position: relative;\n  z-index: 1;\n}\n\n.nstcv-hero {\n  background: transparent;\n  padding: clamp(30px, 5vw, 46px) 0 12px;\n  text-align: center;\n  border: 0;\n  box-shadow: none;\n  border-radius: 0;\n}\n\n.nstcv-hero__heading {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 14px;\n  flex-wrap: wrap;\n  margin: 0 0 6px;\n}\n\n.nstcv-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, rgba(255, 45, 120, 0.95), rgba(34, 211, 238, 0.9));\n  color: #fff;\n  box-shadow: 0 16px 36px rgba(255, 45, 120, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.24);\n  flex: 0 0 auto;\n  position: relative;\n  overflow: hidden;\n}\n\n.nstcv-hero__brand::after {\n  content: \"\";\n  position: absolute;\n  inset: 1px;\n  border-radius: inherit;\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.2), transparent 55%);\n  pointer-events: none;\n}\n\n.nstcv .nstcv-hero__brand i {\n  font-size: 1.3rem !important;\n  width: auto;\n  color: #fff !important;\n  display: inline-block !important;\n  line-height: 1 !important;\n  font-style: normal !important;\n  -webkit-font-smoothing: antialiased;\n  position: relative;\n  z-index: 1;\n}\n\n.nstcv-hero__title {\n  font-size: clamp(1.45rem, 4vw, 2.1rem);\n  font-weight: 800;\n  letter-spacing: -0.03em;\n  line-height: 1.12;\n  margin: 0;\n  text-wrap: balance;\n}\n\n.nstcv-hero__title-mark {\n  position: relative;\n  color: #ffd5e3;\n  display: inline-block;\n  text-shadow: 0 0 20px rgba(255, 45, 120, 0.2);\n}\n\n.nstcv-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(--nstcv-accent), var(--nstcv-cool));\n  border-radius: 999px;\n  opacity: 0.9;\n}\n\n.nstcv-hero__lead {\n  margin-top: 10px;\n  color: var(--nstcv-muted);\n  font-size: 0.98rem;\n  max-width: 760px;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.nstcv-search {\n  text-align: left;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  box-sizing: border-box;\n  margin-top: 12px;\n  padding: clamp(16px, 2.8vw, 24px);\n  background: linear-gradient(180deg, rgba(15, 23, 42, 0.88), rgba(8, 15, 29, 0.78));\n  border: 1px solid var(--nstcv-line);\n  border-radius: var(--nstcv-radius);\n  box-shadow: var(--nstcv-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.05);\n  backdrop-filter: blur(14px);\n  position: relative;\n  overflow: hidden;\n}\n\n.nstcv-search::before {\n  content: \"\";\n  position: absolute;\n  inset: 0 0 auto;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.28), transparent);\n  opacity: 0.7;\n  pointer-events: none;\n}\n\n.nstcv-search__label {\n  display: block;\n  font-size: 0.82rem;\n  color: var(--nstcv-dim);\n  margin-bottom: 8px;\n  font-weight: 700;\n  letter-spacing: 0.02em;\n  text-transform: uppercase;\n}\n\n.nstcv-search__row {\n  display: flex;\n  flex-direction: column;\n  flex-wrap: wrap;\n  gap: 10px;\n}\n\n.nstcv-search__field {\n  flex: 1 1 auto;\n  width: 100%;\n  min-width: 0;\n  border: 1px solid var(--nstcv-line);\n  border-radius: 16px;\n  background: linear-gradient(180deg, rgba(15, 23, 42, 0.88), rgba(15, 23, 42, 0.72));\n  color: var(--nstcv-ink);\n  padding: 14px 16px;\n  font-size: 16px;\n  outline: none;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n  transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease, transform 0.22s ease;\n}\n\n.nstcv-search__field::placeholder,\n.nstcv-find::placeholder {\n  color: rgba(203, 213, 225, 0.52);\n}\n\n.nstcv-search__field:hover,\n.nstcv-find:hover {\n  border-color: var(--nstcv-line-strong);\n}\n\n.nstcv-search__field:focus {\n  border-color: rgba(34, 211, 238, 0.9);\n  box-shadow: 0 0 0 4px rgba(34, 211, 238, 0.14), 0 10px 30px rgba(34, 211, 238, 0.08);\n  background: rgba(15, 23, 42, 0.96);\n  transform: translateY(-1px);\n}\n\n.nstcv-search__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  width: 100%;\n}\n\n.nstcv-btn {\n  appearance: none;\n  border: 1px solid transparent;\n  border-radius: 16px;\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  transition: transform 0.18s ease, opacity 0.18s ease, box-shadow 0.22s ease, border-color 0.22s ease, filter 0.22s ease, background 0.22s ease;\n  box-shadow: var(--nstcv-shadow-soft);\n  position: relative;\n  overflow: hidden;\n}\n\n.nstcv-btn::before,\n.nstcv-video__fab::before,\n.nstcv-more::before,\n.nstcv-export__btn::before,\n.nstcv-modal__action::before,\n.nstcv-filters__btn::before {\n  content: \"\";\n  position: absolute;\n  inset: 1px;\n  border-radius: inherit;\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.16), transparent 55%);\n  opacity: 0.7;\n  pointer-events: none;\n}\n\n.nstcv-btn:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 18px 36px rgba(2, 8, 23, 0.34);\n}\n\n.nstcv-btn:active,\n.nstcv-video__fab:active,\n.nstcv-more:active,\n.nstcv-export__btn:active,\n.nstcv-modal__action:active,\n.nstcv-filters__btn:active {\n  transform: translateY(0);\n}\n\n.nstcv-btn:focus-visible,\n.nstcv-video__fab:focus-visible,\n.nstcv-more:focus-visible,\n.nstcv-export__btn:focus-visible,\n.nstcv-modal__action:focus-visible,\n.nstcv-filters__btn:focus-visible,\n.nstcv-modal__close:focus-visible {\n  outline: none;\n  box-shadow: 0 0 0 4px rgba(34, 211, 238, 0.16), 0 18px 36px rgba(2, 8, 23, 0.28);\n}\n\n.nstcv-btn:disabled {\n  opacity: 0.55;\n  cursor: not-allowed;\n  transform: none;\n  box-shadow: none;\n}\n\n.nstcv-btn--paste {\n  background: linear-gradient(180deg, rgba(30, 41, 59, 0.95), rgba(15, 23, 42, 0.95));\n  border: 1px solid var(--nstcv-line);\n}\n\n.nstcv-btn--view {\n  background: linear-gradient(135deg, var(--nstcv-accent), var(--nstcv-accent-deep));\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.nstcv-btn--reset {\n  background: linear-gradient(135deg, var(--nstcv-cool), var(--nstcv-cool-deep));\n  color: #041016;\n  border-color: rgba(255, 255, 255, 0.14);\n}\n\n.nstcv-btn.is-hidden {\n  display: none !important;\n}\n\n.nstcv-alert {\n  display: none;\n  margin-top: 12px;\n  padding: 12px 14px;\n  border-radius: 14px;\n  background: rgba(251, 113, 133, 0.14);\n  border: 1px solid rgba(251, 113, 133, 0.32);\n  color: #ffe4e8;\n  font-size: 0.9rem;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);\n}\n\n.nstcv-alert.is-visible {\n  display: block;\n}\n\n.nstcv-alert.is-info {\n  background: rgba(34, 211, 238, 0.12);\n  border-color: rgba(34, 211, 238, 0.28);\n  color: #c9f8ff;\n}\n\n.nstcv-search__hint {\n  margin-top: 10px;\n  color: var(--nstcv-dim);\n  font-size: 0.82rem;\n}\n\n.nstcv-skeleton {\n  display: none;\n}\n\n.nstcv-skeleton.is-visible {\n  display: block;\n}\n\n.nstcv-skeleton__panel {\n  background: linear-gradient(180deg, rgba(10, 15, 30, 0.86), rgba(15, 23, 42, 0.78));\n  border: 1px solid var(--nstcv-line);\n  border-radius: var(--nstcv-radius);\n  padding: var(--nstcv-pad);\n  display: grid;\n  gap: 14px;\n  box-shadow: var(--nstcv-glow);\n}\n\n.nstcv-sk {\n  background: linear-gradient(90deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.05));\n  background-size: 200% 100%;\n  animation: nstcv-shimmer 1.2s ease-in-out infinite;\n  border-radius: 12px;\n}\n\n@keyframes nstcv-shimmer {\n  0% {\n    background-position: 200% 0;\n  }\n\n  100% {\n    background-position: -200% 0;\n  }\n}\n\n.nstcv-skeleton__media {\n  aspect-ratio: 9 \/ 12;\n  width: 100%;\n  max-width: 260px;\n  margin: 0 auto;\n}\n\n.nstcv-skeleton__line {\n  height: 12px;\n  margin-top: 8px;\n}\n\n.nstcv-skeleton__line--lg {\n  width: 70%;\n}\n\n.nstcv-skeleton__line--md {\n  width: 45%;\n}\n\n.nstcv-skeleton__line--full {\n  width: 100%;\n}\n\n.nstcv-skeleton__citem {\n  display: flex;\n  gap: 10px;\n  margin-top: 12px;\n}\n\n.nstcv-skeleton__cavatar {\n  width: 40px;\n  height: 40px;\n  border-radius: 50%;\n  flex: 0 0 auto;\n}\n\n.nstcv-panel {\n  background: linear-gradient(180deg, rgba(10, 15, 30, 0.82), rgba(15, 23, 42, 0.74));\n  border: 1px solid var(--nstcv-line);\n  border-radius: var(--nstcv-radius);\n  box-shadow: var(--nstcv-shadow);\n  padding: var(--nstcv-pad);\n  backdrop-filter: blur(14px);\n}\n\n.nstcv-content.is-hidden {\n  display: none;\n}\n\n.nstcv-notice {\n  display: flex;\n  gap: 12px;\n  align-items: flex-start;\n  padding: 12px 14px;\n  margin-bottom: 14px;\n  border-radius: 16px;\n  background: linear-gradient(135deg, rgba(34, 211, 238, 0.1), rgba(125, 211, 252, 0.06));\n  border: 1px solid rgba(34, 211, 238, 0.18);\n  color: var(--nstcv-muted);\n  font-size: 0.9rem;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.nstcv-notice i {\n  color: var(--nstcv-cool);\n  margin-top: 2px;\n}\n\n.nstcv-content:not(.is-placeholder) .nstcv-notice {\n  display: none;\n}\n\n.nstcv-layout {\n  display: grid;\n  gap: 18px;\n  width: 100%;\n  min-width: 0;\n}\n\n.nstcv-video__media-wrap {\n  max-width: 360px;\n  margin: 0 auto;\n}\n\n.nstcv-video {\n  border: 1px solid var(--nstcv-line);\n  border-radius: 18px;\n  overflow: hidden;\n  background: linear-gradient(180deg, rgba(2, 6, 23, 0.92), rgba(15, 23, 42, 0.78));\n  box-shadow: var(--nstcv-glow);\n  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;\n}\n\n.nstcv-video:hover {\n  transform: translateY(-2px);\n  border-color: rgba(148, 163, 184, 0.32);\n  box-shadow: 0 24px 48px rgba(2, 8, 23, 0.32);\n}\n\n.nstcv-video__media-wrap {\n  position: relative;\n  aspect-ratio: 9 \/ 12;\n  background: #0b0b10;\n}\n\n.nstcv-video__thumb {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n\n.nstcv-video__badge {\n  position: absolute;\n  left: 12px;\n  top: 12px;\n  z-index: 2;\n  display: inline-flex;\n  gap: 6px;\n  align-items: center;\n  padding: 7px 12px;\n  border-radius: 999px;\n  background: rgba(2, 6, 23, 0.68);\n  border: 1px solid rgba(255, 255, 255, 0.1);\n  font-size: 0.75rem;\n  font-weight: 800;\n  box-shadow: 0 10px 24px rgba(2, 8, 23, 0.22);\n  backdrop-filter: blur(10px);\n}\n\n.nstcv-video__actions {\n  position: absolute;\n  right: 12px;\n  bottom: 12px;\n  z-index: 2;\n  display: flex;\n  gap: 10px;\n}\n\n.nstcv-video__fab {\n  width: 44px;\n  height: 44px;\n  border: 1px solid transparent;\n  border-radius: 50%;\n  cursor: pointer;\n  color: #fff;\n  background: rgba(2, 6, 23, 0.7);\n  display: grid;\n  place-items: center;\n  box-shadow: 0 12px 24px rgba(2, 8, 23, 0.26);\n  position: relative;\n  overflow: hidden;\n  transition: transform 0.18s ease, box-shadow 0.22s ease, background 0.22s ease;\n}\n\n.nstcv-video__fab:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 16px 28px rgba(2, 8, 23, 0.34);\n}\n\n.nstcv-video__fab--play {\n  background: linear-gradient(135deg, var(--nstcv-accent), var(--nstcv-accent-deep));\n}\n\n.nstcv-video__fab--dl {\n  background: linear-gradient(135deg, var(--nstcv-cool), #67e8f9);\n  color: #041016;\n}\n\n.nstcv-content.is-placeholder .nstcv-video__fab {\n  pointer-events: none;\n  opacity: 0.45;\n}\n\n.nstcv-video__body {\n  padding: 14px;\n}\n\n.nstcv-video__author {\n  display: flex;\n  gap: 12px;\n  align-items: center;\n}\n\n.nstcv-video__avatar {\n  width: 48px;\n  height: 48px;\n  border-radius: 50%;\n  object-fit: cover;\n  border: 2px solid rgba(255, 45, 120, 0.5);\n  background: #222;\n  box-shadow: 0 8px 20px rgba(255, 45, 120, 0.16);\n}\n\n.nstcv-video__user {\n  font-weight: 800;\n  color: #fff;\n  line-height: 1.2;\n}\n\n.nstcv-video__name {\n  color: var(--nstcv-muted);\n  font-size: 0.85rem;\n  margin-top: 2px;\n}\n\n.nstcv-video__title {\n  margin-top: 12px;\n  color: var(--nstcv-muted);\n  font-size: 0.93rem;\n  white-space: pre-wrap;\n  word-break: break-word;\n}\n\n.nstcv-stats {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  margin-top: 14px;\n}\n\n.nstcv-stat {\n  display: inline-flex;\n  gap: 7px;\n  align-items: center;\n  padding: 8px 11px;\n  border-radius: 999px;\n  background: rgba(255, 255, 255, 0.05);\n  border: 1px solid var(--nstcv-line);\n  font-size: 0.82rem;\n  font-weight: 700;\n  color: #e2e8f0;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.nstcv-stat i {\n  color: var(--nstcv-accent);\n}\n\n.nstcv-comments,\n.nstcv-comments__panel,\n.nstcv-comments__wrap,\n.nstcv-comments__body,\n.nstcv-comments__section,\n.nstcv-comments__list-wrap,\n.nstcv-comments__box,\n.nstcv-comments__shell,\n.nstcv-comments__container,\n.nstcv-comments__area,\n.nstcv-comments__card,\n.nstcv-comments__content,\n.nstcv-comments__stack,\n.nstcv-comments__feed,\n.nstcv-comments__inner,\n.nstcv-comments__surface,\n.nstcv-comments__results,\n.nstcv-comments__root,\n.nstcv-comments__column,\n.nstcv-comments__group,\n.nstcv-comments__module,\n.nstcv-comments__pane,\n.nstcv-comments__view,\n.nstcv-comments__frame,\n.nstcv-comments__region,\n.nstcv-comments__holder,\n.nstcv-comments__grid,\n.nstcv-comments__items,\n.nstcv-comments__block,\n.nstcv-comments__listing,\n.nstcv-comments__meta {\n  min-width: 0;\n}\n\n.nstcv-comments__head {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 10px;\n  margin-bottom: 12px;\n}\n\n.nstcv-comments__title {\n  font-size: 1.08rem;\n  font-weight: 800;\n  display: flex;\n  gap: 8px;\n  align-items: center;\n  letter-spacing: -0.01em;\n}\n\n.nstcv-comments__title i {\n  color: var(--nstcv-cool);\n}\n\n.nstcv-comments__count {\n  min-width: 36px;\n  text-align: center;\n  padding: 5px 10px;\n  border-radius: 999px;\n  font-size: 0.8rem;\n  font-weight: 800;\n  background: rgba(255, 45, 120, 0.16);\n  border: 1px solid rgba(255, 45, 120, 0.3);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.nstcv-filters {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-bottom: 12px;\n}\n\n.nstcv-filters__btn {\n  appearance: none;\n  border: 1px solid var(--nstcv-line);\n  background: linear-gradient(180deg, rgba(30, 41, 59, 0.84), rgba(15, 23, 42, 0.78));\n  color: var(--nstcv-muted);\n  border-radius: 999px;\n  padding: 8px 13px;\n  font-size: 0.8rem;\n  font-weight: 700;\n  cursor: pointer;\n  display: inline-flex;\n  gap: 6px;\n  align-items: center;\n  position: relative;\n  overflow: hidden;\n  transition: color 0.22s ease, border-color 0.22s ease, transform 0.18s ease, box-shadow 0.22s ease, background 0.22s ease;\n}\n\n.nstcv-filters__btn:hover {\n  color: #fff;\n  border-color: rgba(148, 163, 184, 0.34);\n  transform: translateY(-1px);\n}\n\n.nstcv-filters__btn.is-active {\n  color: #fff;\n  border-color: rgba(255, 45, 120, 0.4);\n  background: linear-gradient(135deg, rgba(255, 45, 120, 0.24), rgba(34, 211, 238, 0.12));\n  box-shadow: 0 14px 28px rgba(2, 8, 23, 0.2);\n}\n\n.nstcv-find {\n  width: 100%;\n  margin-bottom: 12px;\n  border: 1px solid var(--nstcv-line);\n  border-radius: 14px;\n  background: linear-gradient(180deg, rgba(15, 23, 42, 0.86), rgba(15, 23, 42, 0.68));\n  color: #fff;\n  padding: 11px 13px;\n  font-size: 0.9rem;\n  outline: none;\n  transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;\n}\n\n.nstcv-find:focus {\n  border-color: rgba(34, 211, 238, 0.86);\n  box-shadow: 0 0 0 4px rgba(34, 211, 238, 0.14);\n  background: rgba(15, 23, 42, 0.94);\n}\n\n.nstcv-comments__list {\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  max-height: min(62vh, 720px);\n  overflow: auto;\n  padding-right: 4px;\n  scrollbar-width: thin;\n  scrollbar-color: rgba(148, 163, 184, 0.35) transparent;\n}\n\n.nstcv-comments__list::-webkit-scrollbar {\n  width: 8px;\n}\n\n.nstcv-comments__list::-webkit-scrollbar-track {\n  background: transparent;\n}\n\n.nstcv-comments__list::-webkit-scrollbar-thumb {\n  background: rgba(148, 163, 184, 0.26);\n  border-radius: 999px;\n}\n\n.nstcv-citem {\n  display: grid;\n  grid-template-columns: 40px minmax(0, 1fr);\n  gap: 12px;\n  padding: 12px;\n  border-radius: 16px;\n  border: 1px solid var(--nstcv-line);\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.02));\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n  transition: transform 0.2s ease, border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;\n}\n\n.nstcv-citem:hover {\n  transform: translateY(-1px);\n  border-color: rgba(148, 163, 184, 0.28);\n  box-shadow: 0 14px 28px rgba(2, 8, 23, 0.14);\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.025));\n}\n\n.nstcv-citem__avatar {\n  width: 40px;\n  height: 40px;\n  border-radius: 50%;\n  object-fit: cover;\n  background: #222;\n  border: 1px solid rgba(255, 255, 255, 0.08);\n}\n\n.nstcv-citem__top {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 6px 10px;\n  align-items: baseline;\n}\n\n.nstcv-citem__nick {\n  font-weight: 800;\n  font-size: 0.92rem;\n  color: #f8fafc;\n}\n\n.nstcv-citem__user {\n  color: var(--nstcv-dim);\n  font-size: 0.8rem;\n}\n\n.nstcv-citem__verified {\n  color: var(--nstcv-cool);\n  font-size: 0.75rem;\n}\n\n.nstcv-citem__text {\n  margin-top: 5px;\n  color: var(--nstcv-muted);\n  font-size: 0.9rem;\n  white-space: pre-wrap;\n  word-break: break-word;\n}\n\n.nstcv-citem__meta {\n  margin-top: 9px;\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  color: var(--nstcv-dim);\n  font-size: 0.78rem;\n  font-weight: 600;\n}\n\n.nstcv-citem__meta i {\n  color: var(--nstcv-accent);\n}\n\n.nstcv-empty {\n  text-align: center;\n  padding: 30px 14px;\n  color: var(--nstcv-dim);\n  border: 1px dashed rgba(148, 163, 184, 0.28);\n  border-radius: 18px;\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.012));\n}\n\n.nstcv-empty i {\n  font-size: 1.7rem;\n  color: var(--nstcv-accent);\n  margin-bottom: 10px;\n  display: block;\n}\n\n.nstcv-more {\n  appearance: none;\n  width: 100%;\n  margin-top: 12px;\n  border: 1px solid rgba(34, 211, 238, 0.26);\n  background: linear-gradient(135deg, rgba(34, 211, 238, 0.16), rgba(8, 145, 178, 0.16));\n  color: #fff;\n  border-radius: 16px;\n  padding: 12px 16px;\n  font-weight: 800;\n  font-size: 0.9rem;\n  cursor: pointer;\n  display: inline-flex;\n  gap: 8px;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  transition: transform 0.18s ease, box-shadow 0.22s ease, background 0.22s ease, border-color 0.22s ease;\n}\n\n.nstcv-more:hover {\n  background: linear-gradient(135deg, rgba(34, 211, 238, 0.22), rgba(8, 145, 178, 0.22));\n  transform: translateY(-2px);\n  box-shadow: 0 16px 28px rgba(2, 8, 23, 0.22);\n}\n\n.nstcv-more:disabled {\n  opacity: 0.55;\n  cursor: not-allowed;\n}\n\n.nstcv-more.is-hidden {\n  display: none !important;\n}\n\n.nstcv-export {\n  margin-top: 14px;\n  padding-top: 14px;\n  border-top: 1px solid var(--nstcv-line);\n}\n\n.nstcv-export__title {\n  font-size: 0.94rem;\n  font-weight: 800;\n  margin-bottom: 10px;\n  display: flex;\n  gap: 8px;\n  align-items: center;\n}\n\n.nstcv-export__row {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n}\n\n.nstcv-export__btn {\n  appearance: none;\n  border: 1px solid var(--nstcv-line);\n  background: linear-gradient(180deg, rgba(30, 41, 59, 0.88), rgba(15, 23, 42, 0.8));\n  color: #fff;\n  border-radius: 14px;\n  padding: 10px 13px;\n  font-weight: 700;\n  font-size: 0.83rem;\n  cursor: pointer;\n  display: inline-flex;\n  gap: 7px;\n  align-items: center;\n  position: relative;\n  overflow: hidden;\n  transition: transform 0.18s ease, box-shadow 0.22s ease, border-color 0.22s ease, background 0.22s ease;\n}\n\n.nstcv-export__btn:hover {\n  transform: translateY(-1px);\n  border-color: rgba(148, 163, 184, 0.34);\n  box-shadow: 0 14px 24px rgba(2, 8, 23, 0.2);\n}\n\n.nstcv-export__btn--csv {\n  border-color: rgba(34, 211, 238, 0.32);\n}\n\n.nstcv-content.is-placeholder .nstcv-export {\n  opacity: 0.45;\n  pointer-events: none;\n}\n\n.nstcv-thumb--ghost {\n  background:\n    linear-gradient(135deg, rgba(255, 45, 120, 0.22), rgba(34, 211, 238, 0.12)),\n    repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.045) 0 8px, transparent 8px 16px);\n}\n\n.nstcv-modal {\n  position: fixed;\n  inset: 0;\n  z-index: 99999;\n  display: none;\n  place-items: center;\n  padding: 18px;\n  background: rgba(2, 6, 23, 0.74);\n  backdrop-filter: blur(8px);\n}\n\n.nstcv-modal.is-open {\n  display: grid;\n}\n\n.nstcv-modal__dialog {\n  width: min(920px, 100%);\n  max-height: min(92vh, 900px);\n  overflow: auto;\n  background: linear-gradient(180deg, rgba(10, 15, 30, 0.96), rgba(15, 23, 42, 0.94));\n  border: 1px solid var(--nstcv-line);\n  border-radius: 22px;\n  padding: 14px;\n  position: relative;\n  box-shadow: 0 30px 70px rgba(2, 8, 23, 0.45);\n}\n\n.nstcv-modal__close {\n  position: absolute;\n  top: 12px;\n  right: 12px;\n  z-index: 3;\n  width: 40px;\n  height: 40px;\n  border: 1px solid rgba(255, 255, 255, 0.08);\n  border-radius: 50%;\n  background: rgba(2, 6, 23, 0.72);\n  color: #fff;\n  cursor: pointer;\n  box-shadow: 0 10px 24px rgba(2, 8, 23, 0.22);\n  transition: transform 0.18s ease, background 0.22s ease, box-shadow 0.22s ease;\n}\n\n.nstcv-modal__close:hover {\n  transform: translateY(-1px);\n  background: rgba(15, 23, 42, 0.92);\n}\n\n.nstcv-modal__stage {\n  position: relative;\n  background: #000;\n  border-radius: 18px;\n  overflow: hidden;\n  min-height: 220px;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.nstcv-modal__media,\n.nstcv-modal__video {\n  width: 100%;\n  max-height: min(70vh, 720px);\n  display: block;\n  margin: 0 auto;\n  background: #000;\n}\n\n.nstcv-modal__note {\n  position: absolute;\n  inset: 0;\n  display: none;\n  place-items: center;\n  background: rgba(2, 6, 23, 0.58);\n  color: #fff;\n  font-weight: 800;\n  text-align: center;\n  padding: 16px;\n}\n\n.nstcv-modal__note.is-visible {\n  display: grid;\n}\n\n.nstcv-modal__bar {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  align-items: center;\n  justify-content: space-between;\n  margin-top: 12px;\n}\n\n.nstcv-modal__caption {\n  color: var(--nstcv-muted);\n  font-size: 0.88rem;\n  flex: 1 1 180px;\n}\n\n.nstcv-modal__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n}\n\n.nstcv-modal__action {\n  appearance: none;\n  border: 1px solid transparent;\n  border-radius: 14px;\n  padding: 10px 14px;\n  font-weight: 800;\n  cursor: pointer;\n  color: #fff;\n  display: inline-flex;\n  gap: 8px;\n  align-items: center;\n  position: relative;\n  overflow: hidden;\n  box-shadow: var(--nstcv-shadow-soft);\n  transition: transform 0.18s ease, box-shadow 0.22s ease, filter 0.22s ease;\n}\n\n.nstcv-modal__action:hover {\n  transform: translateY(-1px);\n  box-shadow: 0 14px 28px rgba(2, 8, 23, 0.3);\n}\n\n.nstcv-modal__action--play {\n  background: linear-gradient(135deg, var(--nstcv-accent), var(--nstcv-accent-deep));\n}\n\n.nstcv-modal__action--download {\n  background: linear-gradient(135deg, var(--nstcv-cool), #67e8f9);\n  color: #041016;\n}\n\n.nstcv-dlprog {\n  display: none;\n  margin-top: 12px;\n  padding: 12px 14px;\n  border-radius: 16px;\n  background: linear-gradient(180deg, rgba(15, 23, 42, 0.86), rgba(15, 23, 42, 0.72));\n  border: 1px solid var(--nstcv-line);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.nstcv-dlprog.is-visible {\n  display: block;\n}\n\n.nstcv-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.nstcv-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.nstcv-dlprog__fill {\n  height: 100%;\n  width: 0;\n  background: linear-gradient(90deg, var(--nstcv-accent), var(--nstcv-cool));\n  box-shadow: 0 0 18px rgba(34, 211, 238, 0.28);\n}\n\n.nstcv-dlprog__meta {\n  margin-top: 7px;\n  display: flex;\n  justify-content: space-between;\n  gap: 8px;\n  color: var(--nstcv-dim);\n  font-size: 0.78rem;\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.nstcv {\n  --nstcv-cols: 1;\n}\n\n.nstcv-search__row {\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n  width: 100%;\n  min-width: 0;\n}\n\n.nstcv-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.nstcv-search__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  width: 100%;\n}\n\n.nstcv-btn {\n  flex: 1 1 calc(50% - 5px);\n  justify-content: center;\n  min-height: 46px;\n}\n\n.nstcv-layout {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 18px;\n  width: 100%;\n  min-width: 0;\n}\n\n.nstcv-video__media-wrap {\n  max-width: 360px;\n  margin: 0 auto;\n}\n\n.nstcv.nstcv--desktop .nstcv-layout {\n  grid-template-columns: minmax(240px, 340px) minmax(0, 1fr);\n  align-items: start;\n}\n\n.nstcv.nstcv--desktop .nstcv-video__media-wrap {\n  max-width: none;\n  margin: 0;\n}\n\n.nstcv.nstcv--compact .nstcv-export__row {\n  flex-direction: column;\n}\n\n.nstcv.nstcv--compact .nstcv-export__btn {\n  width: 100%;\n  justify-content: center;\n}\n\n@media (min-width: 768px) {\n  .nstcv:not(.nstcv--compact) .nstcv-search__row {\n    flex-direction: row;\n    flex-wrap: wrap;\n    align-items: stretch;\n  }\n\n  .nstcv:not(.nstcv--compact) .nstcv-search__field {\n    flex: 1 1 220px !important;\n    width: auto !important;\n  }\n\n  .nstcv:not(.nstcv--compact) .nstcv-search__actions {\n    width: auto;\n    flex: 0 0 auto;\n    flex-wrap: nowrap;\n  }\n\n  .nstcv:not(.nstcv--compact) .nstcv-btn {\n    flex: 0 0 auto;\n  }\n}\n\n\/* WordPress \/ Live Server narrow container (set by ResizeObserver) *\/\n.nstcv.nstcv--compact .nstcv-search__row {\n  flex-direction: column !important;\n}\n\n.nstcv.nstcv--compact .nstcv-search__actions {\n  width: 100% !important;\n  display: flex !important;\n  flex-wrap: wrap !important;\n}\n\n.nstcv.nstcv--compact .nstcv-btn {\n  flex: 1 1 calc(50% - 5px) !important;\n}\n\n.nstcv.nstcv--compact .nstcv-search__field {\n  width: 100% !important;\n  flex: 1 1 100% !important;\n}\n\n.nstcv.nstcv--narrow .nstcv-btn {\n  flex: 1 1 100% !important;\n}\n\n.nstcv.nstcv--narrow .nstcv-search__actions {\n  flex-direction: column !important;\n}\n\n.nstcv.nstcv--narrow .nstcv-hero__title {\n  font-size: 1.2rem;\n}\n\n@media (hover: none) {\n  .nstcv-btn:hover,\n  .nstcv-more:hover,\n  .nstcv-video:hover,\n  .nstcv-video__fab:hover,\n  .nstcv-export__btn:hover,\n  .nstcv-modal__action:hover,\n  .nstcv-filters__btn:hover {\n    transform: none;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nstcv-sk {\n    animation: none;\n  }\n\n  .nstcv-btn,\n  .nstcv-video,\n  .nstcv-video__fab,\n  .nstcv-more,\n  .nstcv-export__btn,\n  .nstcv-modal__action,\n  .nstcv-filters__btn,\n  .nstcv-search__field,\n  .nstcv-find,\n  .nstcv-modal__close,\n  .nstcv-citem {\n    transition: none;\n  }\n}\n\n\/* Turnstile host: keep hidden in-flow; floating panel styles come from turnstile-handler.js *\/\n.nstcv #xrespond-tools-turnstile-host {\n  display: none;\n}\n\n.nstcv #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.nstcv .nstcv-search,\n.nstcv .nstcv-search .nstcv-search__row,\n.nstcv .nstcv-search .nstcv-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.nstcv .nstcv-search .nstcv-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.nstcv .nstcv-search .nstcv-search__field,\n.nstcv .nstcv-search .nstcv-search__row > .nstcv-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.nstcv .nstcv-search .nstcv-search__actions,\n.nstcv .nstcv-search .nstcv-search__row > .nstcv-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.nstcv .nstcv-search .nstcv-search__row > .nstcv-btn,\n.nstcv .nstcv-search .nstcv-search__actions .nstcv-btn,\n.nstcv .nstcv-search .nstcv-search__row .nstcv-search__actions .nstcv-btn {\n  flex: 0 0 auto !important;\n  width: auto !important;\n  max-width: none !important;\n  min-width: 118px !important;\n}\n\n.nstcv.nstcv--compact .nstcv-search .nstcv-search__row,\n.nstcv.nstcv--narrow .nstcv-search .nstcv-search__row {\n  flex-wrap: wrap !important;\n}\n\n.nstcv.nstcv--compact .nstcv-search .nstcv-search__field,\n.nstcv.nstcv--narrow .nstcv-search .nstcv-search__field,\n.nstcv.nstcv--compact .nstcv-search .nstcv-search__row > .nstcv-search__field,\n.nstcv.nstcv--narrow .nstcv-search .nstcv-search__row > .nstcv-search__field {\n  flex: 1 1 100% !important;\n  width: 100% !important;\n  max-width: 100% !important;\n}\n\n.nstcv.nstcv--compact .nstcv-search .nstcv-search__actions,\n.nstcv.nstcv--narrow .nstcv-search .nstcv-search__actions,\n.nstcv.nstcv--compact .nstcv-search .nstcv-search__row > .nstcv-search__actions,\n.nstcv.nstcv--narrow .nstcv-search .nstcv-search__row > .nstcv-search__actions {\n  flex: 1 1 100% !important;\n  width: 100% !important;\n  max-width: 100% !important;\n}\n\n.nstcv.nstcv--compact .nstcv-search .nstcv-search__row > .nstcv-btn,\n.nstcv.nstcv--narrow .nstcv-search .nstcv-search__row > .nstcv-btn,\n.nstcv.nstcv--compact .nstcv-search .nstcv-search__actions .nstcv-btn,\n.nstcv.nstcv--narrow .nstcv-search .nstcv-search__actions .nstcv-btn,\n.nstcv.nstcv--compact .nstcv-search .nstcv-search__row .nstcv-search__actions .nstcv-btn,\n.nstcv.nstcv--narrow .nstcv-search .nstcv-search__row .nstcv-search__actions .nstcv-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  .nstcv {\n    --nstcv-gap: 14px;\n    --nstcv-pad: 14px;\n  }\n\n  .nstcv .nstcv-search .nstcv-search__row {\n    flex-wrap: wrap !important;\n  }\n\n  .nstcv .nstcv-search .nstcv-search__field,\n  .nstcv .nstcv-search .nstcv-search__row > .nstcv-search__field {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstcv .nstcv-search .nstcv-search__actions,\n  .nstcv .nstcv-search .nstcv-search__row > .nstcv-search__actions {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstcv .nstcv-search .nstcv-search__row > .nstcv-btn,\n  .nstcv .nstcv-search .nstcv-search__actions .nstcv-btn,\n  .nstcv .nstcv-search .nstcv-search__row .nstcv-search__actions .nstcv-btn {\n    flex: 1 1 calc(50% - 5px) !important;\n    min-width: 0 !important;\n    max-width: 100% !important;\n  }\n\n  .nstcv-modal {\n    padding: 12px;\n  }\n\n  .nstcv-modal__dialog {\n    padding: 12px;\n    border-radius: 18px;\n  }\n\n  .nstcv-modal__bar {\n    flex-direction: column;\n    align-items: stretch;\n  }\n\n  .nstcv-modal__actions {\n    width: 100%;\n  }\n\n  .nstcv-modal__action {\n    flex: 1 1 100%;\n    justify-content: center;\n  }\n}\n\n@media (max-width: 560px) {\n  .nstcv-hero {\n    padding-top: 24px;\n  }\n\n  .nstcv-hero__heading {\n    gap: 10px;\n  }\n\n  .nstcv-hero__brand {\n    width: 46px;\n    height: 46px;\n    min-width: 46px;\n    border-radius: 14px;\n  }\n\n  .nstcv-search,\n  .nstcv-panel,\n  .nstcv-skeleton__panel {\n    border-radius: 18px;\n  }\n\n  .nstcv-video {\n    border-radius: 16px;\n  }\n\n  .nstcv-citem {\n    grid-template-columns: 36px minmax(0, 1fr);\n    gap: 10px;\n    padding: 11px;\n  }\n\n  .nstcv-citem__avatar {\n    width: 36px;\n    height: 36px;\n  }\n\n  .nstcv-stats,\n  .nstcv-filters,\n  .nstcv-export__row {\n    gap: 8px;\n  }\n\n  .nstcv-comments__head {\n    align-items: flex-start;\n    flex-direction: column;\n  }\n}\n\n@media (max-width: 420px) {\n  .nstcv {\n    padding-top: 10px;\n  }\n\n  .nstcv-search__actions,\n  .nstcv-export__row,\n  .nstcv-modal__actions {\n    flex-direction: column;\n  }\n\n  .nstcv-btn,\n  .nstcv-more,\n  .nstcv-export__btn,\n  .nstcv-modal__action {\n    width: 100%;\n  }\n\n  .nstcv-video__actions {\n    right: 10px;\n    bottom: 10px;\n    gap: 8px;\n  }\n\n  .nstcv-video__fab {\n    width: 40px;\n    height: 40px;\n  }\n\n  .nstcv-comments__count {\n    min-width: 0;\n  }\n}\n\n\/* Added selectors required by fixed HTML *\/\n.nstcv-result {\n  width: 100%;\n  min-width: 0;\n}\n\n.nstcv-comments {\n  width: 100%;\n  min-width: 0;\n}\n\n.xrespond-ts-widget {\n  margin-top: 12px;\n  padding: 12px 14px;\n  border-radius: 16px;\n  background: linear-gradient(180deg, rgba(15, 23, 42, 0.84), rgba(15, 23, 42, 0.72));\n  border: 1px solid var(--nstcv-line);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n  color: var(--nstcv-muted);\n  min-width: 0;\n}\n\n.xrespond-ts-label {\n  display: block;\n  margin-bottom: 8px;\n  font-size: 0.82rem;\n  font-weight: 700;\n  color: var(--nstcv-dim);\n  letter-spacing: 0.02em;\n  text-transform: uppercase;\n}\n\n.xrespond-ts-error {\n  margin-top: 8px;\n  padding: 10px 12px;\n  border-radius: 12px;\n  background: rgba(251, 113, 133, 0.14);\n  border: 1px solid rgba(251, 113, 133, 0.28);\n  color: #ffe4e8;\n  font-size: 0.84rem;\n}\n\n.nstcv .fa-solid,\n.nstcv .fa-brands,\n.nstcv .fa-circle,\n.nstcv .fa-code,\n.nstcv .fa-comment,\n.nstcv .fa-comments,\n.nstcv .fa-download,\n.nstcv .fa-file-export,\n.nstcv .fa-heart,\n.nstcv .fa-list,\n.nstcv .fa-paste,\n.nstcv .fa-play,\n.nstcv .fa-reply,\n.nstcv .fa-rotate-left,\n.nstcv .fa-table,\n.nstcv .fa-tiktok,\n.nstcv .fa-xmark,\n.nstcv .fa-circle-info,\n.nstcv .fa-certificate,\n.nstcv .fa-angles-down {\n  display: inline-block;\n  line-height: 1;\n  vertical-align: middle;\n}\n\n.nstcv .fa-tiktok,\n.nstcv .fa-play,\n.nstcv .fa-download,\n.nstcv .fa-file-export,\n.nstcv .fa-paste,\n.nstcv .fa-rotate-left,\n.nstcv .fa-comments,\n.nstcv .fa-comment,\n.nstcv .fa-heart,\n.nstcv .fa-list,\n.nstcv .fa-table,\n.nstcv .fa-code,\n.nstcv .fa-reply,\n.nstcv .fa-circle-info,\n.nstcv .fa-certificate,\n.nstcv .fa-angles-down {\n  color: currentColor;\n}\n\n.nstcv .fa-certificate,\n.nstcv .fa-circle {\n  color: var(--nstcv-cool);\n}\n\n.nstcv .fa-xmark {\n  color: #fff;\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=\"nstcv\" id=\"nstcv-root\" data-nstcv-ready=\"0\">\n  <div class=\"nstcv-shell\">\n    <section class=\"nstcv-hero\" aria-labelledby=\"nstcv-title\">\n      <div class=\"nstcv-hero__heading\">\n        <div class=\"nstcv-hero__brand\" aria-hidden=\"true\">\n          <i class=\"fa-brands fa-tiktok\"><\/i>\n        <\/div>\n<h1 class=\"nstcv-hero__title\" id=\"nstcv-title\">TikTok Comments Viewer<\/h1>\n      <\/div>\n<p class=\"nstcv-hero__lead\">Preview a public TikTok video and browse its comments.<\/p>\n<div class=\"nstcv-search\">\n        <label class=\"nstcv-search__label\" for=\"nstcv-input\">Paste TikTok video URL<\/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=\"nstcv-search__row\">\n          <input class=\"nstcv-search__field\" id=\"nstcv-input\" type=\"text\" name=\"nstcv_input\"\n            placeholder=\"https:\/\/www.tiktok.com\/@user\/video\/1234567890\" autocomplete=\"off\" spellcheck=\"false\"\n            inputmode=\"url\">\n          <div class=\"nstcv-search__actions\">\n            <button type=\"button\" class=\"nstcv-btn nstcv-btn--paste\" id=\"nstcv-paste\" aria-label=\"Paste from clipboard\">\n              <i class=\"fa-solid fa-paste\" aria-hidden=\"true\"><\/i> Paste\n            <\/button>\n            <button type=\"submit\" class=\"nstcv-btn nstcv-btn--view\" id=\"xrespond-tools-turnstile\">\n              <i class=\"fa-solid fa-comments\" aria-hidden=\"true\"><\/i> Analyze Comments\n            <\/button>\n            <button type=\"button\" class=\"nstcv-btn nstcv-btn--reset is-hidden\" id=\"nstcv-reset\">\n              <i class=\"fa-solid fa-rotate-left\" aria-hidden=\"true\"><\/i> Search Another\n            <\/button>\n          <\/div>\n        <\/div>\n<div class=\"nstcv-alert\" id=\"nstcv-alert\" role=\"alert\"><\/div>\n<p class=\"nstcv-search__hint\">Paste a full TikTok video link (tiktok.com\/@user\/video\/\u2026)<\/p>\n      <\/div>\n    <\/section>\n\n    <div class=\"nstcv-skeleton\" id=\"nstcv-skeleton\" aria-hidden=\"true\" aria-busy=\"false\">\n      <div class=\"nstcv-skeleton__panel\">\n        <div class=\"nstcv-sk nstcv-skeleton__media\" aria-hidden=\"true\"><\/div>\n<div class=\"nstcv-sk nstcv-skeleton__line nstcv-skeleton__line--lg\"><\/div>\n<div class=\"nstcv-sk nstcv-skeleton__line nstcv-skeleton__line--md\"><\/div>\n<div class=\"nstcv-skeleton__citem\">\n          <div class=\"nstcv-sk nstcv-skeleton__cavatar\"><\/div>\n<div style=\"flex:1\">\n            <div class=\"nstcv-sk nstcv-skeleton__line nstcv-skeleton__line--md\"><\/div>\n<div class=\"nstcv-sk nstcv-skeleton__line nstcv-skeleton__line--full\"><\/div>\n          <\/div>\n        <\/div>\n<div class=\"nstcv-skeleton__citem\">\n          <div class=\"nstcv-sk nstcv-skeleton__cavatar\"><\/div>\n<div style=\"flex:1\">\n            <div class=\"nstcv-sk nstcv-skeleton__line nstcv-skeleton__line--md\"><\/div>\n<div class=\"nstcv-sk nstcv-skeleton__line nstcv-skeleton__line--full\"><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <section class=\"nstcv-result\" id=\"nstcv-result\" aria-live=\"polite\">\n      <div class=\"nstcv-panel nstcv-content is-placeholder\" id=\"nstcv-content\">\n        <div class=\"nstcv-notice\" role=\"status\">\n          <i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\"><\/i>\n          <span id=\"nstcv-notice-text\">Paste a TikTok video URL above to load comments.<\/span>\n        <\/div>\n<div class=\"nstcv-layout\">\n          <article class=\"nstcv-video\" id=\"nstcv-video\">\n            <div class=\"nstcv-video__media-wrap\">\n              <img decoding=\"async\" class=\"nstcv-video__thumb nstcv-thumb--ghost\" id=\"nstcv-thumb\" alt=\"Video thumbnail\"\n                src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='400' height='540'%3E%3Crect fill='%23111827' width='400' height='540'\/%3E%3C\/svg%3E\">\n              <span class=\"nstcv-video__badge\"><i class=\"fa-brands fa-tiktok\" aria-hidden=\"true\"><\/i> Video<\/span>\n              <div class=\"nstcv-video__actions\">\n                <button type=\"button\" class=\"nstcv-video__fab nstcv-video__fab--play\" id=\"nstcv-play\"\n                  aria-label=\"Play video\"><i class=\"fa-solid fa-play\" aria-hidden=\"true\"><\/i><\/button>\n                <button type=\"button\" class=\"nstcv-video__fab nstcv-video__fab--dl\" id=\"nstcv-download\"\n                  aria-label=\"Download video\"><i class=\"fa-solid fa-download\" aria-hidden=\"true\"><\/i><\/button>\n              <\/div>\n            <\/div>\n<div class=\"nstcv-video__body\">\n              <div class=\"nstcv-video__author\">\n                <img decoding=\"async\" class=\"nstcv-video__avatar\" id=\"nstcv-avatar\" alt=\"Author\"\n                  src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='88' height='88'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23ff0050'\/%3E%3Cstop offset='1' stop-color='%2300f2ea'\/%3E%3C\/linearGradient%3E%3C\/defs%3E%3Crect width='88' height='88' fill='url(%23g)'\/%3E%3Ccircle cx='44' cy='32' r='14' fill='%23fff'\/%3E%3Cellipse cx='44' cy='72' rx='26' ry='18' fill='%23fff'\/%3E%3C\/svg%3E\">\n                <div>\n                  <span class=\"nstcv-video__user\" id=\"nstcv-username\">@username<\/span>\n                  <p class=\"nstcv-video__name\" id=\"nstcv-author\">Creator name<\/p>\n                <\/div>\n              <\/div>\n<p class=\"nstcv-video__title\" id=\"nstcv-caption\">Video caption will appear here.<\/p>\n<ul class=\"nstcv-stats\">\n                <li class=\"nstcv-stat\"><i class=\"fa-solid fa-comment\" aria-hidden=\"true\"><\/i> <span\n                    id=\"nstcv-total\">0<\/span><\/li>\n                <li class=\"nstcv-stat\"><i class=\"fa-solid fa-list\" aria-hidden=\"true\"><\/i> <span id=\"nstcv-loaded\">0\n                    loaded<\/span><\/li>\n              <\/ul>\n<div class=\"nstcv-dlprog\" id=\"nstcv-dlprog\" aria-live=\"polite\">\n                <div class=\"nstcv-dlprog__top\"><span id=\"nstcv-dlprog-name\">Download<\/span><span\n                    id=\"nstcv-dlprog-pct\">0%<\/span><\/div>\n<div class=\"nstcv-dlprog__track\">\n                  <div class=\"nstcv-dlprog__fill\" id=\"nstcv-dlprog-fill\"><\/div>\n                <\/div>\n<div class=\"nstcv-dlprog__meta\"><span id=\"nstcv-dlprog-status\"><\/span><span\n                    id=\"nstcv-dlprog-bytes\"><\/span><\/div>\n              <\/div>\n            <\/div>\n          <\/article>\n\n          <div class=\"nstcv-comments\">\n            <div class=\"nstcv-comments__head\">\n              <h2 class=\"nstcv-comments__title\"><i class=\"fa-solid fa-comments\" aria-hidden=\"true\"><\/i> Comments<\/h2>\n              <span class=\"nstcv-comments__count\" id=\"nstcv-filter-count\">0<\/span>\n            <\/div>\n<div class=\"nstcv-filters\" role=\"tablist\" aria-label=\"Comment filters\">\n              <button type=\"button\" class=\"nstcv-filters__btn is-active\" role=\"tab\" aria-selected=\"true\"\n                data-nstcv-filter=\"all\"><i class=\"fa-solid fa-circle\" aria-hidden=\"true\"><\/i> All<\/button>\n              <button type=\"button\" class=\"nstcv-filters__btn\" role=\"tab\" aria-selected=\"false\"\n                data-nstcv-filter=\"likes\"><i class=\"fa-solid fa-heart\" aria-hidden=\"true\"><\/i> With Likes<\/button>\n              <button type=\"button\" class=\"nstcv-filters__btn\" role=\"tab\" aria-selected=\"false\"\n                data-nstcv-filter=\"replies\"><i class=\"fa-solid fa-reply\" aria-hidden=\"true\"><\/i> With Replies<\/button>\n              <button type=\"button\" class=\"nstcv-filters__btn\" role=\"tab\" aria-selected=\"false\"\n                data-nstcv-filter=\"verified\"><i class=\"fa-solid fa-certificate\" aria-hidden=\"true\"><\/i>\n                Verified<\/button>\n            <\/div>\n            <input class=\"nstcv-find\" id=\"nstcv-find\" type=\"search\" placeholder=\"Filter by text or username\u2026\"\n              autocomplete=\"off\">\n            <div class=\"nstcv-comments__list\" id=\"nstcv-list\" role=\"tabpanel\">\n              <div class=\"nstcv-empty\" id=\"nstcv-empty\">\n                <i class=\"fa-solid fa-comments\" aria-hidden=\"true\"><\/i>\n                <p>Paste a TikTok video URL to view comments.<\/p>\n              <\/div>\n            <\/div>\n            <button type=\"button\" class=\"nstcv-more is-hidden\" id=\"nstcv-more\">\n              <i class=\"fa-solid fa-angles-down\" aria-hidden=\"true\"><\/i> Load more comments\n            <\/button>\n            <div class=\"nstcv-export\">\n              <h3 class=\"nstcv-export__title\"><i class=\"fa-solid fa-file-export\" aria-hidden=\"true\"><\/i> Export comments\n              <\/h3>\n<div class=\"nstcv-export__row\">\n                <button type=\"button\" class=\"nstcv-export__btn\" id=\"nstcv-export-json\"><i class=\"fa-solid fa-code\"\n                    aria-hidden=\"true\"><\/i> Export JSON<\/button>\n                <button type=\"button\" class=\"nstcv-export__btn nstcv-export__btn--csv\" id=\"nstcv-export-csv\"><i\n                    class=\"fa-solid fa-table\" aria-hidden=\"true\"><\/i> Export CSV<\/button>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n  <\/div>\n<div class=\"nstcv-modal\" id=\"nstcv-modal\" aria-hidden=\"true\">\n    <div class=\"nstcv-modal__dialog\" role=\"dialog\" aria-modal=\"true\" aria-label=\"TikTok video player\">\n      <button type=\"button\" class=\"nstcv-modal__close\" id=\"nstcv-modal-close\" aria-label=\"Close\"><i\n          class=\"fa-solid fa-xmark\" aria-hidden=\"true\"><\/i><\/button>\n      <div class=\"nstcv-modal__stage\">\n        <video class=\"nstcv-modal__video\" id=\"nstcv-video-el\" controls playsinline preload=\"metadata\"><\/video>\n        <div class=\"nstcv-modal__note\" id=\"nstcv-video-note\"><\/div>\n      <\/div>\n<div class=\"nstcv-modal__bar\">\n        <p class=\"nstcv-modal__caption\" id=\"nstcv-modal-caption\"><\/p>\n<div class=\"nstcv-modal__actions\">\n          <button type=\"button\" class=\"nstcv-modal__action nstcv-modal__action--play\" id=\"nstcv-modal-play\"><i\n              class=\"fa-solid fa-play\" aria-hidden=\"true\"><\/i> <span id=\"nstcv-modal-play-label\">Play<\/span><\/button>\n          <button type=\"button\" class=\"nstcv-modal__action nstcv-modal__action--download\" id=\"nstcv-modal-download\"><i\n              class=\"fa-solid fa-download\" aria-hidden=\"true\"><\/i> Download<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\r\n\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap\"\r\nrel=\"stylesheet\">\r\n<link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.0\/css\/all.min.css\" rel=\"stylesheet\">\r\n<style>\r\n:root {\r\n    --primary: #ff0050;\r\n    --secondary: #00f2ea;\r\n    --accent: #ff4081;\r\n    --purple: #8b5cf6;\r\n    --orange: #ff8800;\r\n    --green: #00ff88;\r\n    --blue: #0ea5e9;\r\n    --bg-primary: #0f172a;\r\n    --bg-secondary: #1e293b;\r\n    --bg-tertiary: #334155;\r\n    --bg-card: rgba(30, 41, 59, 0.8);\r\n    --text-primary: #ffffff;\r\n    --text-secondary: #cbd5e1;\r\n    --text-muted: #64748b;\r\n    --border: #475569;\r\n    --border-light: #64748b;\r\n    --shadow: 0 4px 20px rgba(0, 0, 0, 0.4);\r\n    --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.6);\r\n    --shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.8);\r\n    --glow-primary: 0 0 30px rgba(255, 0, 80, 0.3);\r\n    --glow-secondary: 0 0 30px rgba(0, 242, 234, 0.3);\r\n    --gradient-primary: linear-gradient(135deg, #ff0050, #ff4081, #ff6b9d);\r\n    --gradient-secondary: linear-gradient(135deg, #00f2ea, #00d4aa, #00ff88);\r\n    --gradient-purple: linear-gradient(135deg, #8b5cf6, #a855f7, #c084fc);\r\n    --gradient-bg: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #334155 100%);\r\n}\r\n\r\n* {\r\n    margin: 0;\r\n    padding: 0;\r\n    box-sizing: border-box;\r\n    transition: all 0.3s ease;\r\n}\r\n\r\n.tiktok_body {\r\n    font-family: 'Inter', sans-serif;\r\n    background: var(--gradient-bg);\r\n    color: var(--text-primary);\r\n    overflow-x: hidden;\r\n    min-height: 100vh;\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% 20%, rgba(255, 0, 80, 0.1) 0%, transparent 50%),\r\n        radial-gradient(circle at 80% 80%, rgba(0, 242, 234, 0.1) 0%, transparent 50%),\r\n        radial-gradient(circle at 40% 60%, rgba(139, 92, 246, 0.05) 0%, transparent 50%);\r\n    pointer-events: none;\r\n    z-index: -1;\r\n}\r\n\r\n.container_tiktok{\r\n    max-width: 1600px;\r\n    margin: 0 auto;\r\n    padding: 1.5rem;\r\n    min-height: 100vh;\r\n    display: flex;\r\n    flex-direction: column;\r\n}\r\n\r\n\/* Header *\/\r\n.header {\r\n    background: var(--bg-card);\r\n    backdrop-filter: blur(20px);\r\n    border: 1px solid var(--border);\r\n    border-radius: 20px;\r\n    padding: 2rem;\r\n    margin-bottom: 1.5rem;\r\n    box-shadow: var(--shadow-lg);\r\n    position: relative;\r\n    overflow: hidden;\r\n}\r\n\r\n.header::before {\r\n    content: '';\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    right: 0;\r\n    height: 2px;\r\n    background: var(--gradient-primary);\r\n}\r\n\r\n.header-content {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: space-between;\r\n    flex-wrap: wrap;\r\n    gap: 1.5rem;\r\n}\r\n\r\n.logo {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 1.5rem;\r\n}\r\n\r\n.logo-icon {\r\n    width: 60px;\r\n    height: 60px;\r\n    background: var(--gradient-primary);\r\n    border-radius: 16px;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    font-size: 1.8rem;\r\n    color: white;\r\n    box-shadow: var(--shadow-lg), var(--glow-primary);\r\n    animation: logoFloat 3s ease-in-out infinite;\r\n    position: relative;\r\n    overflow: hidden;\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.2), transparent);\r\n    animation: logoShine 3s ease-in-out infinite;\r\n}\r\n\r\n.logo-text {\r\n    font-size: 2.2rem;\r\n    font-weight: 900;\r\n    background: var(--gradient-primary);\r\n    -webkit-background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n    letter-spacing: -1px;\r\n}\r\n\r\n.logo-subtitle {\r\n    font-size: 0.9rem;\r\n    color: var(--text-secondary);\r\n    font-weight: 500;\r\n    margin-top: 0.25rem;\r\n}\r\n\r\n.search-container {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 1rem;\r\n    flex: 1;\r\n    max-width: 700px;\r\n    width: 100%;\r\n}\r\n\r\n.search-form {\r\n    display: flex;\r\n    gap: 1rem;\r\n    position: relative;\r\n    width: 100%;\r\n}\r\n\r\n.search-input {\r\n    flex: 1 !important;\r\n    padding: 1rem 1.5rem !important;\r\n    background: rgba(30, 41, 59, 0.9) !important;\r\n    backdrop-filter: blur(15px) !important;\r\n    border: 2px solid var(--border) !important;\r\n    border-radius: 16px !important;\r\n    color: var(--text-primary) !important;\r\n    font-size: 1rem !important;\r\n    font-weight: 500 !important;\r\n    outline: none !important;\r\n    transition: all 0.3s ease !important;\r\n    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1) !important;\r\n}\r\n\r\n.search-input:focus {\r\n    border-color: var(--primary) !important;\r\n    box-shadow: 0 0 0 4px rgba(255, 0, 80, 0.1), var(--glow-primary), inset 0 2px 4px rgba(0, 0, 0, 0.1) !important;\r\n    transform: translateY(-2px) !important;\r\n    background: rgba(30, 41, 59, 0.95) !important;\r\n}\r\n\r\n.search-input::placeholder {\r\n    color: var(--text-muted);\r\n    font-weight: 400;\r\n}\r\n\r\n.search-input:not(:placeholder-shown) {\r\n    background: rgba(30, 41, 59, 0.95);\r\n    border-color: var(--border-light);\r\n    font-weight: 600;\r\n}\r\n\r\n.search-btn {\r\n    background: var(--gradient-primary);\r\n    border: none;\r\n    color: white;\r\n    padding: 1rem 2rem;\r\n    border-radius: 16px;\r\n    font-weight: 700;\r\n    cursor: pointer;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.75rem;\r\n    box-shadow: var(--shadow-lg);\r\n    position: relative;\r\n    overflow: hidden;\r\n    white-space: nowrap;\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.2), transparent);\r\n    transition: left 0.5s;\r\n}\r\n\r\n.search-btn:hover:not(:disabled)::before {\r\n    left: 100%;\r\n}\r\n\r\n.search-btn:hover:not(:disabled) {\r\n    transform: translateY(-3px);\r\n    box-shadow: var(--shadow-xl), var(--glow-primary);\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}\r\n\r\n.search-another-btn {\r\n    background: var(--bg-secondary);\r\n    border: 1px solid var(--border);\r\n    color: var(--text-primary);\r\n    padding: 1rem 1.5rem;\r\n    border-radius: 16px;\r\n    font-weight: 600;\r\n    cursor: pointer;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.5rem;\r\n    transition: all 0.3s ease;\r\n    white-space: nowrap;\r\n}\r\n\r\n.search-another-btn:hover {\r\n    background: var(--bg-tertiary);\r\n    transform: translateY(-2px);\r\n    box-shadow: var(--shadow);\r\n}\r\n\r\n.button-group {\r\n    display: flex;\r\n    gap: 1rem;\r\n    flex-wrap: wrap;\r\n    flex-shrink: 0;\r\n}\r\n\r\n\/* Main Content *\/\r\n.main-content {\r\n    flex: 1;\r\n    display: grid;\r\n    grid-template-columns: 450px 1fr;\r\n    gap: 1.5rem;\r\n    min-height: 0;\r\n}\r\n\r\n\/* Video Section *\/\r\n.video-section {\r\n    background: var(--bg-card);\r\n    backdrop-filter: blur(20px);\r\n    border: 1px solid var(--border);\r\n    border-radius: 20px;\r\n    box-shadow: var(--shadow-lg);\r\n    display: flex;\r\n    flex-direction: column;\r\n    overflow: hidden;\r\n    position: relative;\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: var(--gradient-secondary);\r\n}\r\n\r\n\/* Video Stats Bar *\/\r\n.video-stats-bar {\r\n    padding: 1rem 1.5rem;\r\n    background: linear-gradient(135deg, rgba(255, 0, 80, 0.1), rgba(139, 92, 246, 0.1));\r\n    border-bottom: 1px solid var(--border);\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 1rem;\r\n    flex-wrap: wrap;\r\n}\r\n\r\n.video-stat-item {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.5rem;\r\n    font-size: 0.9rem;\r\n    color: var(--text-secondary);\r\n    padding: 0.5rem 1rem;\r\n    background: rgba(255, 255, 255, 0.05);\r\n    border-radius: 12px;\r\n    backdrop-filter: blur(10px);\r\n    border: 1px solid rgba(255, 255, 255, 0.1);\r\n}\r\n\r\n.video-stat-item i {\r\n    font-size: 1rem;\r\n}\r\n\r\n.video-stat-item .fa-eye {\r\n    color: #ec4899;\r\n}\r\n\r\n.video-stat-item .fa-heart {\r\n    color: #ef4444;\r\n}\r\n\r\n.video-stat-item .fa-comment {\r\n    color: #3b82f6;\r\n}\r\n\r\n.video-stat-item .fa-share {\r\n    color: #10b981;\r\n}\r\n\r\n.video-stat-value {\r\n    font-weight: 700;\r\n    color: var(--text-primary);\r\n}\r\n\r\n.video-header {\r\n    padding: 1.5rem;\r\n    border-bottom: 1px solid var(--border);\r\n}\r\n\r\n.video-title {\r\n    font-size: 1.1rem;\r\n    font-weight: 700;\r\n    margin-bottom: 1rem;\r\n    line-height: 1.4;\r\n    color: var(--text-primary);\r\n}\r\n\r\n.video-author {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 1rem;\r\n    padding: 1rem;\r\n    background: linear-gradient(135deg, rgba(0, 242, 234, 0.1), rgba(59, 130, 246, 0.1));\r\n    border-radius: 16px;\r\n    border: 1px solid rgba(0, 242, 234, 0.2);\r\n    box-shadow: var(--shadow);\r\n}\r\n\r\n.author-avatar {\r\n    width: 50px;\r\n    height: 50px;\r\n    border-radius: 50%;\r\n    object-fit: cover;\r\n    border: 3px solid var(--secondary);\r\n    box-shadow: var(--shadow);\r\n    background: var(--gradient-secondary);\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    font-size: 1.2rem;\r\n    color: white;\r\n    font-weight: 700;\r\n    flex-shrink: 0;\r\n}\r\n\r\n.author-info {\r\n    flex: 1;\r\n}\r\n\r\n.author-info h4 {\r\n    font-size: 1.1rem;\r\n    font-weight: 700;\r\n    margin-bottom: 0.25rem;\r\n    color: var(--text-primary);\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.5rem;\r\n}\r\n\r\n.author-username {\r\n    font-size: 0.9rem;\r\n    color: var(--text-secondary);\r\n    font-weight: 500;\r\n}\r\n\r\n.author-verified {\r\n    color: var(--blue);\r\n    font-size: 0.9rem;\r\n}\r\n\r\n.video-player-container {\r\n    flex: 1;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    padding: 1.5rem;\r\n    position: relative;\r\n}\r\n\r\n.video-player-wrapper {\r\n    position: relative;\r\n    width: 100%;\r\n    max-width: 320px;\r\n    aspect-ratio: 9\/16;\r\n    border-radius: 20px;\r\n    overflow: hidden;\r\n    box-shadow: var(--shadow-xl);\r\n    background: #000;\r\n}\r\n\r\n.video-thumbnail {\r\n    width: 100%;\r\n    height: 100%;\r\n    object-fit: cover;\r\n    cursor: pointer;\r\n    transition: all 0.3s ease;\r\n}\r\n\r\n.video-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    cursor: pointer;\r\n    transition: all 0.3s ease;\r\n}\r\n\r\n.video-overlay:hover {\r\n    background: rgba(0, 0, 0, 0.6);\r\n}\r\n\r\n.play-button {\r\n    width: 80px;\r\n    height: 80px;\r\n    background: var(--gradient-primary);\r\n    border: none;\r\n    border-radius: 50%;\r\n    color: white;\r\n    font-size: 2rem;\r\n    cursor: pointer;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    box-shadow: var(--shadow-xl), var(--glow-primary);\r\n    transition: all 0.3s ease;\r\n    position: relative;\r\n    overflow: hidden;\r\n}\r\n\r\n.play-button::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.5s;\r\n}\r\n\r\n.play-button:hover::before {\r\n    transform: translateX(100%);\r\n}\r\n\r\n.play-button:hover {\r\n    transform: scale(1.1);\r\n    box-shadow: var(--shadow-xl), var(--glow-primary);\r\n}\r\n\r\n.video-player {\r\n    width: 100%;\r\n    height: 100%;\r\n    object-fit: contain;\r\n    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.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: 1.5rem;\r\n    transform: translateY(100%);\r\n    transition: transform 0.3s ease;\r\n    z-index: 10;\r\n}\r\n\r\n.video-player-wrapper:hover .video-controls {\r\n    transform: translateY(0);\r\n}\r\n\r\n.progress-container {\r\n    margin-bottom: 1rem;\r\n}\r\n\r\n.progress-bar {\r\n    width: 100%;\r\n    height: 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}\r\n\r\n.progress-fill {\r\n    height: 100%;\r\n    background: var(--gradient-primary);\r\n    border-radius: 3px;\r\n    width: 0%;\r\n    transition: width 0.1s linear;\r\n    box-shadow: 0 0 10px rgba(255, 0, 80, 0.5);\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}\r\n\r\n.control-group {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.75rem;\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: 42px;\r\n    height: 42px;\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}\r\n\r\n.control-btn:hover {\r\n    background: rgba(255, 255, 255, 0.25);\r\n    transform: scale(1.1);\r\n    box-shadow: var(--shadow);\r\n}\r\n\r\n.play-control-btn {\r\n    width: 50px;\r\n    height: 50px;\r\n    background: var(--gradient-primary);\r\n    font-size: 1.2rem;\r\n    border: none;\r\n    box-shadow: var(--shadow-lg), var(--glow-primary);\r\n}\r\n\r\n.volume-control {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.75rem;\r\n}\r\n\r\n.volume-slider {\r\n    width: 80px;\r\n    height: 6px;\r\n    background: rgba(255, 255, 255, 0.2);\r\n    border-radius: 3px;\r\n    cursor: pointer;\r\n    position: relative;\r\n    overflow: hidden;\r\n}\r\n\r\n.volume-fill {\r\n    height: 100%;\r\n    background: var(--gradient-secondary);\r\n    border-radius: 3px;\r\n    width: 100%;\r\n    transition: width 0.1s ease;\r\n    box-shadow: 0 0 8px rgba(0, 242, 234, 0.4);\r\n}\r\n\r\n.time-display {\r\n    font-size: 0.8rem;\r\n    color: white;\r\n    font-weight: 500;\r\n}\r\n\r\n\/* Loading States *\/\r\n.loading-state {\r\n    display: none;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    justify-content: center;\r\n    padding: 3rem;\r\n    text-align: center;\r\n}\r\n\r\n.loading-spinner {\r\n    width: 60px;\r\n    height: 60px;\r\n    border: 3px solid var(--border);\r\n    border-top: 3px solid var(--primary);\r\n    border-radius: 50%;\r\n    animation: spin 1s linear infinite;\r\n    margin-bottom: 1.5rem;\r\n}\r\n\r\n.loading-text {\r\n    font-size: 1.2rem;\r\n    font-weight: 700;\r\n    margin-bottom: 0.5rem;\r\n    background: var(--gradient-primary);\r\n    -webkit-background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.loading-subtext {\r\n    color: var(--text-secondary);\r\n    font-size: 0.9rem;\r\n}\r\n\r\n\/* Comments Section *\/\r\n.comments-section {\r\n    background: var(--bg-card);\r\n    backdrop-filter: blur(20px);\r\n    border: 1px solid var(--border);\r\n    border-radius: 20px;\r\n    box-shadow: var(--shadow-lg);\r\n    display: flex;\r\n    flex-direction: column;\r\n    overflow: hidden;\r\n    position: relative;\r\n}\r\n\r\n.comments-section::before {\r\n    content: '';\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    right: 0;\r\n    height: 2px;\r\n    background: var(--gradient-purple);\r\n}\r\n\r\n.comments-header {\r\n    padding: 1.5rem;\r\n    border-bottom: 1px solid var(--border);\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: space-between;\r\n    background: linear-gradient(135deg, rgba(139, 92, 246, 0.1), rgba(255, 64, 129, 0.1));\r\n}\r\n\r\n.comments-title {\r\n    font-size: 1.3rem;\r\n    font-weight: 800;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.75rem;\r\n    color: var(--text-primary);\r\n}\r\n\r\n.comments-count {\r\n    background: var(--gradient-purple);\r\n    color: white;\r\n    padding: 0.375rem 0.75rem;\r\n    border-radius: 8px;\r\n    font-size: 0.85rem;\r\n    font-weight: 700;\r\n    box-shadow: var(--shadow);\r\n    min-width: 40px;\r\n    text-align: center;\r\n}\r\n\r\n.comments-container {\r\n    flex: 1;\r\n    overflow-y: auto;\r\n    padding: 0;\r\n    max-height: calc(100vh - 300px);\r\n    min-height: 400px;\r\n    position: relative;\r\n}\r\n\r\n\/* Always visible scrollbar *\/\r\n.comments-container::-webkit-scrollbar {\r\n    width: 12px;\r\n}\r\n\r\n.comments-container::-webkit-scrollbar-track {\r\n    background: var(--bg-secondary);\r\n    border-radius: 6px;\r\n    margin: 4px;\r\n}\r\n\r\n.comments-container::-webkit-scrollbar-thumb {\r\n    background: var(--gradient-purple);\r\n    border-radius: 6px;\r\n    border: 2px solid var(--bg-secondary);\r\n}\r\n\r\n.comments-container::-webkit-scrollbar-thumb:hover {\r\n    background: var(--purple);\r\n}\r\n\r\n\/* Firefox scrollbar *\/\r\n.comments-container {\r\n    scrollbar-width: auto;\r\n    scrollbar-color: var(--purple) var(--bg-secondary);\r\n}\r\n\r\n\/* Scroll Indicator *\/\r\n.scroll-indicator {\r\n    position: absolute;\r\n    bottom: 20px;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    background: var(--gradient-purple);\r\n    color: white;\r\n    padding: 0.75rem 1.5rem;\r\n    border-radius: 25px;\r\n    font-size: 0.85rem;\r\n    font-weight: 600;\r\n    box-shadow: var(--shadow-lg);\r\n    z-index: 100;\r\n    display: none;\r\n    align-items: center;\r\n    gap: 0.5rem;\r\n    animation: scrollPulse 2s ease-in-out infinite;\r\n    cursor: pointer;\r\n    transition: all 0.3s ease;\r\n}\r\n\r\n.scroll-indicator:hover {\r\n    transform: translateX(-50%) translateY(-5px);\r\n    box-shadow: var(--shadow-xl);\r\n}\r\n\r\n.scroll-indicator.show {\r\n    display: flex;\r\n}\r\n\r\n.scroll-indicator i {\r\n    animation: scrollBounce 1.5s ease-in-out infinite;\r\n}\r\n\r\n.comments-list {\r\n    padding: 0;\r\n}\r\n\r\n.comment-item {\r\n    padding: 1.25rem 1.5rem;\r\n    border-bottom: 1px solid var(--border);\r\n    transition: all 0.3s ease;\r\n    position: relative;\r\n    animation: commentSlideIn 0.5s ease-out;\r\n}\r\n\r\n.comment-item:hover {\r\n    background: rgba(139, 92, 246, 0.05);\r\n    transform: translateX(5px);\r\n}\r\n\r\n.comment-item::before {\r\n    content: '';\r\n    position: absolute;\r\n    left: 0;\r\n    top: 0;\r\n    bottom: 0;\r\n    width: 3px;\r\n    background: var(--gradient-purple);\r\n    transform: scaleY(0);\r\n    transition: transform 0.3s ease;\r\n}\r\n\r\n.comment-item:hover::before {\r\n    transform: scaleY(1);\r\n}\r\n\r\n.comment-header {\r\n    display: flex;\r\n    align-items: flex-start;\r\n    gap: 1rem;\r\n    margin-bottom: 0.75rem;\r\n}\r\n\r\n.comment-avatar {\r\n    width: 42px;\r\n    height: 42px;\r\n    border-radius: 50%;\r\n    object-fit: cover;\r\n    border: 2px solid var(--border-light);\r\n    flex-shrink: 0;\r\n    transition: all 0.3s ease;\r\n    box-shadow: var(--shadow);\r\n    background: var(--gradient-purple);\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    font-size: 1rem;\r\n    color: white;\r\n    font-weight: 700;\r\n}\r\n\r\n.comment-avatar:hover {\r\n    border-color: var(--purple);\r\n    transform: scale(1.05);\r\n}\r\n\r\n.comment-info {\r\n    flex: 1;\r\n    min-width: 0;\r\n}\r\n\r\n.comment-user-info {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.75rem;\r\n    margin-bottom: 0.5rem;\r\n    flex-wrap: wrap;\r\n}\r\n\r\n.comment-author {\r\n    font-size: 0.95rem;\r\n    font-weight: 700;\r\n    color: var(--text-primary);\r\n}\r\n\r\n.comment-username {\r\n    font-size: 0.85rem;\r\n    color: var(--text-secondary);\r\n    font-weight: 500;\r\n}\r\n\r\n.comment-verified {\r\n    color: var(--blue);\r\n    font-size: 0.8rem;\r\n}\r\n\r\n.comment-region {\r\n    background: rgba(0, 242, 234, 0.1);\r\n    color: var(--secondary);\r\n    padding: 0.125rem 0.5rem;\r\n    border-radius: 4px;\r\n    font-size: 0.7rem;\r\n    font-weight: 600;\r\n    text-transform: uppercase;\r\n}\r\n\r\n.comment-text {\r\n    font-size: 0.95rem;\r\n    line-height: 1.5;\r\n    color: var(--text-primary);\r\n    word-wrap: break-word;\r\n    margin-bottom: 0.75rem;\r\n}\r\n\r\n.comment-footer {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: space-between;\r\n    flex-wrap: wrap;\r\n    gap: 1rem;\r\n}\r\n\r\n.comment-stats {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 1.5rem;\r\n}\r\n\r\n.comment-stat {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.375rem;\r\n    font-size: 0.85rem;\r\n    color: var(--text-secondary);\r\n    transition: all 0.3s ease;\r\n    cursor: pointer;\r\n}\r\n\r\n.comment-stat:hover {\r\n    color: var(--primary);\r\n    transform: scale(1.05);\r\n}\r\n\r\n.comment-stat i {\r\n    font-size: 0.9rem;\r\n}\r\n\r\n.comment-meta {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 1rem;\r\n    font-size: 0.8rem;\r\n    color: var(--text-muted);\r\n}\r\n\r\n.comment-time {\r\n    font-weight: 500;\r\n}\r\n\r\n.comment-id {\r\n    font-family: 'Courier New', monospace;\r\n    background: rgba(107, 114, 128, 0.1);\r\n    padding: 0.125rem 0.375rem;\r\n    border-radius: 4px;\r\n}\r\n\r\n.empty-state {\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    justify-content: center;\r\n    padding: 4rem 2rem;\r\n    text-align: center;\r\n    color: var(--text-secondary);\r\n}\r\n\r\n.empty-state i {\r\n    font-size: 4rem;\r\n    margin-bottom: 1.5rem;\r\n    opacity: 0.5;\r\n    background: var(--gradient-purple);\r\n    -webkit-background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.empty-state h3 {\r\n    font-size: 1.5rem;\r\n    font-weight: 700;\r\n    margin-bottom: 0.5rem;\r\n    color: var(--text-primary);\r\n}\r\n\r\n.error-message {\r\n    background: rgba(239, 68, 68, 0.1);\r\n    border: 1px solid rgba(239, 68, 68, 0.3);\r\n    color: #ef4444;\r\n    padding: 1rem 1.5rem;\r\n    margin: 1rem;\r\n    border-radius: 12px;\r\n    display: none;\r\n    align-items: center;\r\n    gap: 0.75rem;\r\n    font-weight: 600;\r\n}\r\n\r\n.error-message.show {\r\n    display: flex;\r\n    animation: errorSlideIn 0.3s ease-out;\r\n}\r\n\r\n\/* Animations *\/\r\n@keyframes spin {\r\n    to {\r\n        transform: rotate(360deg);\r\n    }\r\n}\r\n\r\n@keyframes logoFloat {\r\n\r\n    0%,\r\n    100% {\r\n        transform: translateY(0px);\r\n    }\r\n\r\n    50% {\r\n        transform: translateY(-5px);\r\n    }\r\n}\r\n\r\n@keyframes logoShine {\r\n    0% {\r\n        transform: translateX(-100%) translateY(-100%) rotate(45deg);\r\n    }\r\n\r\n    100% {\r\n        transform: translateX(100%) translateY(100%) rotate(45deg);\r\n    }\r\n}\r\n\r\n@keyframes commentSlideIn {\r\n    from {\r\n        opacity: 0;\r\n        transform: translateX(-20px);\r\n    }\r\n\r\n    to {\r\n        opacity: 1;\r\n        transform: translateX(0);\r\n    }\r\n}\r\n\r\n@keyframes errorSlideIn {\r\n    from {\r\n        opacity: 0;\r\n        transform: translateY(-10px);\r\n    }\r\n\r\n    to {\r\n        opacity: 1;\r\n        transform: translateY(0);\r\n    }\r\n}\r\n\r\n@keyframes scrollPulse {\r\n\r\n    0%,\r\n    100% {\r\n        opacity: 0.8;\r\n    }\r\n\r\n    50% {\r\n        opacity: 1;\r\n    }\r\n}\r\n\r\n@keyframes scrollBounce {\r\n\r\n    0%,\r\n    100% {\r\n        transform: translateY(0);\r\n    }\r\n\r\n    50% {\r\n        transform: translateY(3px);\r\n    }\r\n}\r\n    \r\n    .button-group {\r\ndisplay: flex;\r\ngap: 1rem;\r\nflex-wrap: wrap;\r\nflex-shrink: 0;\r\njustify-content: center;\r\n}\r\n    \r\n    .header-content {\r\ndisplay: flex;\r\nalign-items: center;\r\njustify-content: space-between;\r\nflex-wrap: wrap;\r\ngap: 1.5rem;\r\nflex-direction: column;\r\n}\r\n    .search-container {\r\ndisplay: flex;\r\nflex-direction: column;\r\ngap: 1rem;\r\nflex: 1;\r\nmax-width: 700px;\r\nwidth: 100%;\r\n}\r\n    \r\n    .search-form {\r\ndisplay: flex;\r\ngap: 1rem;\r\nposition: relative;\r\nwidth: 100%;\r\nflex-direction: column;\r\n}\r\n\r\n\/* Responsive Design *\/\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\/* Landscape orientation on mobile *\/\r\n@media (max-height: 500px) and (orientation: landscape) {\r\n    .container {\r\n        padding: 0.5rem;\r\n    }\r\n\r\n    .header {\r\n        padding: 0.75rem;\r\n        margin-bottom: 0.5rem;\r\n    }\r\n\r\n    .main-content {\r\n        gap: 0.75rem;\r\n    }\r\n\r\n    .video-player-wrapper {\r\n        max-width: 200px;\r\n    }\r\n\r\n    .comments-container {\r\n        max-height: calc(100vh - 150px);\r\n        min-height: 200px;\r\n    }\r\n\r\n    .comment-item {\r\n        padding: 0.75rem 1rem;\r\n    }\r\n}\r\n\r\n\/* Fix for input width consistency *\/\r\n.search-input {\r\n    flex: 1;\r\n    min-width: 0;\r\n    \/* Prevents flex item from growing beyond container *\/\r\n    width: 100%;\r\n    \/* Ensures consistent width *\/\r\n    box-sizing: border-box;\r\n}\r\n\r\n.search-form {\r\n    display: flex;\r\n    gap: 1rem;\r\n    position: relative;\r\n    width: 100%;\r\n    \/* Ensures form takes full width *\/\r\n}\r\n\r\n.search-container {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 1rem;\r\n    flex: 1;\r\n    max-width: 700px;\r\n    width: 100%;\r\n    \/* Ensures container takes full width *\/\r\n}\r\n\r\n\/* Ensure button group maintains consistent width *\/\r\n.button-group {\r\n    display: flex;\r\n    gap: 1rem;\r\n    flex-wrap: wrap;\r\n    flex-shrink: 0;\r\n    \/* Prevents buttons from shrinking *\/\r\n}\r\n\r\n\/* Ensure search buttons maintain consistent width *\/\r\n.search-btn,\r\n.search-another-btn {\r\n    white-space: nowrap;\r\n    flex-shrink: 0;\r\n    \/* Prevents buttons from shrinking *\/\r\n}\r\n\r\n\/* Additional fixes for input consistency *\/\r\n.search-input:focus,\r\n.search-input:not(:placeholder-shown),\r\n.search-input:disabled {\r\n    width: 100% !important;\r\n    min-width: 0 !important;\r\n    max-width: none !important;\r\n    flex: 1 !important;\r\n}\r\n\r\n\/* Ensure form layout consistency *\/\r\n.search-form:has(.search-input:focus),\r\n.search-form:has(.search-input:not(:placeholder-shown)) {\r\n    width: 100% !important;\r\n    display: flex !important;\r\n    gap: 1rem !important;\r\n}\r\n\r\n\/* Prevent any width changes during loading states *\/\r\n.search-container:has(.search-btn:disabled) .search-input,\r\n.search-container:has(.search-btn:disabled) .search-form {\r\n    width: 100% !important;\r\n    min-width: 0 !important;\r\n}\r\n    \r\n    \r\n    \/* Responsive Design for smaller screens *\/\r\n@media (max-width: 992px) {\r\n.main-content {\r\ngrid-template-columns: 1fr; \/* Stack video and comments vertically *\/\r\n}\r\n\r\n.video-section,\r\n.comments-section {\r\nmargin-bottom: 1.5rem; \/* Add spacing between stacked sections *\/\r\n}\r\n\r\n.comments-container {\r\nmax-height: 600px; \/* Adjust max height for comments when stacked *\/\r\nmin-height: 300px;\r\n}\r\n}\r\n\r\n@media (max-width: 768px) {\r\n.container_tiktok {\r\npadding: 1rem;\r\n}\r\n\r\n.header {\r\npadding: 1.5rem;\r\n}\r\n\r\n.header-content {\r\nflex-direction: column; \/* Stack logo, search, and buttons *\/\r\nalign-items: center;\r\ntext-align: center;\r\n}\r\n\r\n.logo {\r\nflex-direction: column;\r\ngap: 0.75rem;\r\nmargin-bottom: 1rem;\r\n}\r\n\r\n.logo-icon {\r\nwidth: 50px;\r\nheight: 50px;\r\nfont-size: 1.5rem;\r\n}\r\n\r\n.logo-text {\r\nfont-size: 1.8rem;\r\n}\r\n\r\n.logo-subtitle {\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.search-container {\r\nmax-width: 100%; \/* Allow search to take full width *\/\r\n}\r\n\r\n.search-form {\r\nflex-direction: column; \/* Stack search input and button *\/\r\ngap: 0.75rem;\r\n}\r\n\r\n.search-input {\r\npadding: 0.75rem 1rem !important;\r\nfont-size: 0.9rem !important;\r\n}\r\n\r\n.search-btn {\r\npadding: 0.75rem 1.5rem;\r\nfont-size: 0.9rem;\r\nwidth: 100%; \/* Make search button full width *\/\r\n}\r\n\r\n.button-group {\r\nwidth: 100%; \/* Ensure button group takes full width *\/\r\njustify-content: center; \/* Center buttons *\/\r\ngap: 0.75rem;\r\n}\r\n\r\n.search-another-btn {\r\npadding: 0.75rem 1rem;\r\nfont-size: 0.9rem;\r\nflex-grow: 1; \/* Allow buttons to grow and share space *\/\r\n}\r\n\r\n.video-stats-bar {\r\npadding: 0.75rem 1rem;\r\ngap: 0.75rem;\r\n}\r\n\r\n.video-stat-item {\r\npadding: 0.4rem 0.8rem;\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.video-header {\r\npadding: 1rem;\r\n}\r\n\r\n.video-title {\r\nfont-size: 1rem;\r\n}\r\n\r\n.video-author {\r\npadding: 0.75rem;\r\ngap: 0.75rem;\r\n}\r\n\r\n.author-avatar {\r\nwidth: 40px;\r\nheight: 40px;\r\nfont-size: 1rem;\r\n}\r\n\r\n.author-info h4 {\r\nfont-size: 1rem;\r\n}\r\n\r\n.author-username {\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.video-player-container {\r\npadding: 1rem;\r\n}\r\n\r\n.video-player-wrapper {\r\nmax-width: 280px; \/* Slightly smaller video player *\/\r\n}\r\n\r\n.play-button {\r\nwidth: 60px;\r\nheight: 60px;\r\nfont-size: 1.5rem;\r\n}\r\n\r\n.video-controls {\r\npadding: 1rem;\r\n}\r\n\r\n.control-btn {\r\nwidth: 36px;\r\nheight: 36px;\r\nfont-size: 0.9rem;\r\n}\r\n\r\n.play-control-btn {\r\nwidth: 42px;\r\nheight: 42px;\r\nfont-size: 1rem;\r\n}\r\n\r\n.volume-slider {\r\nwidth: 60px;\r\n}\r\n\r\n.time-display {\r\nfont-size: 0.75rem;\r\n}\r\n\r\n.comments-header {\r\npadding: 1rem;\r\n}\r\n\r\n.comments-title {\r\nfont-size: 1.1rem;\r\ngap: 0.5rem;\r\n}\r\n\r\n.comments-count {\r\npadding: 0.25rem 0.6rem;\r\nfont-size: 0.75rem;\r\nmin-width: 35px;\r\n}\r\n\r\n.comment-item {\r\npadding: 1rem 1.25rem;\r\n}\r\n\r\n.comment-avatar {\r\nwidth: 38px;\r\nheight: 38px;\r\nfont-size: 0.9rem;\r\n}\r\n\r\n.comment-user-info {\r\nflex-direction: column; \/* Stack user info elements if needed *\/\r\nalign-items: flex-start;\r\ngap: 0.25rem;\r\n}\r\n\r\n.comment-author {\r\nfont-size: 0.9rem;\r\n}\r\n\r\n.comment-username {\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.comment-text {\r\nfont-size: 0.9rem;\r\n}\r\n\r\n.comment-footer {\r\nflex-direction: column; \/* Stack footer elements *\/\r\nalign-items: flex-start;\r\ngap: 0.75rem;\r\n}\r\n\r\n.comment-stats {\r\ngap: 1rem;\r\n}\r\n\r\n.comment-stat {\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.comment-meta {\r\nfont-size: 0.7rem;\r\n}\r\n}\r\n\r\n@media (max-width: 600px) {\r\n.container_tiktok {\r\npadding: 0.75rem;\r\n}\r\n\r\n.header {\r\npadding: 1rem;\r\nborder-radius: 15px;\r\n}\r\n\r\n.logo-text {\r\nfont-size: 1.6rem;\r\n}\r\n\r\n.search-input {\r\nfont-size: 0.85rem !important;\r\n}\r\n\r\n.search-btn,\r\n.search-another-btn {\r\nfont-size: 0.85rem;\r\npadding: 0.65rem 1.25rem;\r\nborder-radius: 12px;\r\n}\r\n\r\n.video-section,\r\n.comments-section {\r\nborder-radius: 15px;\r\n}\r\n\r\n.video-stat-item {\r\nfont-size: 0.75rem;\r\npadding: 0.3rem 0.6rem;\r\n}\r\n\r\n.video-title {\r\nfont-size: 0.95rem;\r\n}\r\n\r\n.author-info h4 {\r\nfont-size: 0.95rem;\r\n}\r\n\r\n.author-username {\r\nfont-size: 0.75rem;\r\n}\r\n\r\n.video-player-wrapper {\r\nmax-width: 250px; \/* Smaller video player *\/\r\n}\r\n\r\n.play-button {\r\nwidth: 50px;\r\nheight: 50px;\r\nfont-size: 1.2rem;\r\n}\r\n\r\n.control-btn {\r\nwidth: 32px;\r\nheight: 32px;\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.play-control-btn {\r\nwidth: 38px;\r\nheight: 38px;\r\nfont-size: 0.9rem;\r\n}\r\n\r\n.comments-title {\r\nfont-size: 1rem;\r\n}\r\n\r\n.comment-item {\r\npadding: 0.9rem 1rem;\r\n}\r\n\r\n.comment-avatar {\r\nwidth: 34px;\r\nheight: 34px;\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.comment-author {\r\nfont-size: 0.85rem;\r\n}\r\n\r\n.comment-username {\r\nfont-size: 0.75rem;\r\n}\r\n\r\n.comment-text {\r\nfont-size: 0.85rem;\r\n}\r\n\r\n.comment-stat {\r\nfont-size: 0.75rem;\r\n}\r\n.scroll-indicator {\r\nposition: absolute;\r\nbottom: 20px;\r\nleft: 50%;\r\ntransform: translateX(-50%);\r\nbackground: var(--gradient-purple);\r\ncolor: white;\r\npadding: 0.75rem 1.5rem;\r\nborder-radius: 25px;\r\nfont-size: 0.85rem;\r\nfont-weight: 600;\r\nbox-shadow: var(--shadow-lg);\r\nz-index: 100;\r\ndisplay: none !important;\r\nalign-items: center;\r\ngap: 0.5rem;\r\nanimation: scrollPulse 2s ease-in-out infinite;\r\ncursor: pointer;\r\ntransition: all 0.3s ease;\r\n}\r\n}\r\n\r\n@media (max-width: 400px) {\r\n.container_tiktok {\r\npadding: 0.5rem;\r\n}\r\n\r\n.header {\r\npadding: 0.75rem;\r\nborder-radius: 12px;\r\n}\r\n\r\n.logo-icon {\r\nwidth: 45px;\r\nheight: 45px;\r\nfont-size: 1.3rem;\r\n}\r\n\r\n.logo-text {\r\nfont-size: 1.4rem;\r\n}\r\n\r\n.search-input {\r\npadding: 0.6rem 0.8rem !important;\r\nfont-size: 0.8rem !important;\r\n}\r\n\r\n.search-btn,\r\n.search-another-btn {\r\nfont-size: 0.8rem;\r\npadding: 0.5rem 1rem;\r\nborder-radius: 10px;\r\n}\r\n\r\n.video-section,\r\n.comments-section {\r\nborder-radius: 12px;\r\n}\r\n\r\n.video-stat-item {\r\nfont-size: 0.7rem;\r\npadding: 0.25rem 0.5rem;\r\nflex-shrink: 0; \/* Prevent items from squishing too much *\/\r\n}\r\n\r\n.video-title {\r\nfont-size: 0.9rem;\r\n}\r\n\r\n.author-avatar {\r\nwidth: 35px;\r\nheight: 35px;\r\nfont-size: 0.9rem;\r\n}\r\n\r\n.author-info h4 {\r\nfont-size: 0.9rem;\r\n}\r\n\r\n.author-username {\r\nfont-size: 0.7rem;\r\n}\r\n\r\n.video-player-wrapper {\r\nmax-width: 220px; \/* Even smaller video player *\/\r\n}\r\n\r\n.play-button {\r\nwidth: 45px;\r\nheight: 45px;\r\nfont-size: 1.1rem;\r\n}\r\n\r\n.control-btn {\r\nwidth: 30px;\r\nheight: 30px;\r\nfont-size: 0.75rem;\r\n}\r\n\r\n.play-control-btn {\r\nwidth: 35px;\r\nheight: 35px;\r\nfont-size: 0.85rem;\r\n}\r\n\r\n.volume-control {\r\ngap: 0.5rem;\r\n}\r\n\r\n.volume-slider {\r\nwidth: 50px;\r\n}\r\n\r\n.time-display {\r\nfont-size: 0.7rem;\r\n}\r\n\r\n.comments-header {\r\npadding: 0.75rem;\r\n}\r\n\r\n.comments-title {\r\nfont-size: 0.9rem;\r\n}\r\n\r\n.comments-count {\r\npadding: 0.2rem 0.5rem;\r\nfont-size: 0.7rem;\r\nmin-width: 30px;\r\n}\r\n\r\n.comment-item {\r\npadding: 0.8rem 0.9rem;\r\n}\r\n\r\n.comment-avatar {\r\nwidth: 30px;\r\nheight: 30px;\r\nfont-size: 0.75rem;\r\n}\r\n\r\n.comment-author {\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.comment-username {\r\nfont-size: 0.7rem;\r\n}\r\n\r\n.comment-text {\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.comment-stats {\r\ngap: 0.8rem;\r\n}\r\n\r\n.comment-stat {\r\nfont-size: 0.7rem;\r\n}\r\n.scroll-indicator {\r\nposition: absolute;\r\nbottom: 20px;\r\nleft: 50%;\r\ntransform: translateX(-50%);\r\nbackground: var(--gradient-purple);\r\ncolor: white;\r\npadding: 0.75rem 1.5rem;\r\nborder-radius: 25px;\r\nfont-size: 0.85rem;\r\nfont-weight: 600;\r\nbox-shadow: var(--shadow-lg);\r\nz-index: 100;\r\ndisplay: none !important;\r\nalign-items: center;\r\ngap: 0.5rem;\r\nanimation: scrollPulse 2s ease-in-out infinite;\r\ncursor: pointer;\r\ntransition: all 0.3s ease;\r\n}\r\n}\r\n\r\n@media (max-width: 375px) {\r\n.container_tiktok {\r\npadding: 0.4rem;\r\n}\r\n\r\n.header {\r\npadding: 0.6rem;\r\nborder-radius: 10px;\r\n}\r\n\r\n.logo-icon {\r\nwidth: 40px;\r\nheight: 40px;\r\nfont-size: 1.2rem;\r\n}\r\n\r\n.logo-text {\r\nfont-size: 1.3rem;\r\n}\r\n\r\n.logo-subtitle {\r\nfont-size: 0.7rem;\r\n}\r\n\r\n.search-input {\r\npadding: 0.5rem 0.7rem !important;\r\nfont-size: 0.75rem !important;\r\n}\r\n\r\n.search-btn,\r\n.search-another-btn {\r\nfont-size: 0.75rem;\r\npadding: 0.45rem 0.9rem;\r\nborder-radius: 8px;\r\n}\r\n\r\n.video-section,\r\n.comments-section {\r\nborder-radius: 10px;\r\n}\r\n\r\n.video-stats-bar {\r\npadding: 0.6rem 0.7rem;\r\ngap: 0.5rem;\r\n}\r\n\r\n.video-stat-item {\r\nfont-size: 0.65rem;\r\npadding: 0.2rem 0.4rem;\r\n}\r\n\r\n.video-title {\r\nfont-size: 0.85rem;\r\nmargin-bottom: 0.75rem;\r\n}\r\n\r\n.author-avatar {\r\nwidth: 32px;\r\nheight: 32px;\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.author-info h4 {\r\nfont-size: 0.85rem;\r\n}\r\n\r\n.author-username {\r\nfont-size: 0.65rem;\r\n}\r\n\r\n.video-player-wrapper {\r\nmax-width: 190px; \/* Smallest video player *\/\r\n}\r\n\r\n.play-button {\r\nwidth: 40px;\r\nheight: 40px;\r\nfont-size: 1rem;\r\n}\r\n\r\n.control-btn {\r\nwidth: 28px;\r\nheight: 28px;\r\nfont-size: 0.7rem;\r\n}\r\n\r\n.play-control-btn {\r\nwidth: 32px;\r\nheight: 32px;\r\nfont-size: 0.8rem;\r\n}\r\n\r\n.volume-slider {\r\nwidth: 45px;\r\n}\r\n\r\n.time-display {\r\nfont-size: 0.65rem;\r\n}\r\n\r\n.comments-header {\r\npadding: 0.6rem;\r\n}\r\n\r\n.comments-title {\r\nfont-size: 0.85rem;\r\ngap: 0.4rem;\r\n}\r\n\r\n.comments-count {\r\npadding: 0.15rem 0.4rem;\r\nfont-size: 0.65rem;\r\nmin-width: 28px;\r\n}\r\n\r\n.comment-item {\r\npadding: 0.7rem 0.8rem;\r\n}\r\n\r\n.comment-avatar {\r\nwidth: 28px;\r\nheight: 28px;\r\nfont-size: 0.7rem;\r\n}\r\n\r\n.comment-author {\r\nfont-size: 0.75rem;\r\n}\r\n\r\n.comment-username {\r\nfont-size: 0.65rem;\r\n}\r\n\r\n.comment-text {\r\nfont-size: 0.75rem;\r\nmargin-bottom: 0.6rem;\r\n}\r\n\r\n.comment-stats {\r\ngap: 0.7rem;\r\n}\r\n\r\n.comment-stat {\r\nfont-size: 0.65rem;\r\n}\r\n\r\n.comment-meta {\r\nfont-size: 0.6rem;\r\ngap: 0.7rem;\r\n}\r\n.scroll-indicator {\r\nposition: absolute;\r\nbottom: 20px;\r\nleft: 50%;\r\ntransform: translateX(-50%);\r\nbackground: var(--gradient-purple);\r\ncolor: white;\r\npadding: 0.75rem 1.5rem;\r\nborder-radius: 25px;\r\nfont-size: 0.85rem;\r\nfont-weight: 600;\r\nbox-shadow: var(--shadow-lg);\r\nz-index: 100;\r\ndisplay: none !important;\r\nalign-items: center;\r\ngap: 0.5rem;\r\nanimation: scrollPulse 2s ease-in-out infinite;\r\ncursor: pointer;\r\ntransition: all 0.3s ease;\r\n}\r\n}\r\n\r\n\r\n<\/style>\r\n\r\n\r\n<script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n<script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n\r\n<script>\r\n\/\/ Global variables\r\nlet currentVideoData = null;\r\nlet currentComments = [];\r\nlet isLoadingComments = false;\r\nlet currentVideoUrl = '';\r\nlet currentVolume = 1;\r\nlet isMuted = false;\r\n\r\n\/** First successful Get Comments per 24h opens affiliate in a new tab; resets every 24 hours per browser. *\/\r\nconst AFFILIATE_REDIRECT_URL = 'https:\/\/amzn.to\/4lQZ9QT';\r\nconst AFFILIATE_REDIRECT_STORAGE_KEY = 'fbViewerAffiliateRedirectAt';\r\nconst AFFILIATE_REDIRECT_MS = 24 * 60 * 60 * 1000;\r\n\r\nfunction shouldAffiliateRedirect() {\r\n    try {\r\n        const raw = localStorage.getItem(AFFILIATE_REDIRECT_STORAGE_KEY);\r\n        if (!raw) return true;\r\n        const last = parseInt(raw, 10);\r\n        if (Number.isNaN(last)) return true;\r\n        return (Date.now() - last) >= AFFILIATE_REDIRECT_MS;\r\n    } catch (e) {\r\n        \/\/ Private mode \/ sandboxed iframe: do not redirect\r\n        return false;\r\n    }\r\n}\r\n\r\nfunction recordAffiliateRedirect() {\r\n    try {\r\n        localStorage.setItem(AFFILIATE_REDIRECT_STORAGE_KEY, String(Date.now()));\r\n    } catch (e) {\r\n        \/* ignore *\/\r\n    }\r\n}\r\n\r\n\/\/ API URLs\r\nconst VIDEO_API_URL = 'https:\/\/tools.xrespond.com\/api\/tiktok\/profile\/videos\/details';\r\nconst COMMENTS_API_URL = 'https:\/\/tools.xrespond.com\/api\/tiktok\/profile\/videos\/comments';\r\n\r\n\/\/ Utility functions\r\nfunction formatNumber(num) {\r\n    if (num >= 1000000) {\r\n        return (num \/ 1000000).toFixed(1) + 'M';\r\n    }\r\n    if (num >= 1000) {\r\n        return (num \/ 1000).toFixed(1) + 'K';\r\n    }\r\n    return num.toString();\r\n}\r\n\r\nfunction formatTime(seconds) {\r\n    const mins = Math.floor(seconds \/ 60);\r\n    const secs = Math.floor(seconds % 60);\r\n    return `${mins}:${secs.toString().padStart(2, '0')}`;\r\n}\r\n\r\nfunction formatTimestamp(timestamp) {\r\n    const date = new Date(timestamp * 1000);\r\n    const now = new Date();\r\n    const diff = now - date;\r\n\r\n    const minutes = Math.floor(diff \/ 60000);\r\n    const hours = Math.floor(diff \/ 3600000);\r\n    const days = Math.floor(diff \/ 86400000);\r\n\r\n    if (minutes < 60) return `${minutes}m ago`;\r\n    if (hours < 24) return `${hours}h ago`;\r\n    if (days < 30) return `${days}d ago`;\r\n    return date.toLocaleDateString();\r\n}\r\n\r\nfunction getInitials(name) {\r\n    return name.split(' ').map(word => word[0]).join('').toUpperCase().slice(0, 2);\r\n}\r\n\r\nfunction showError(elementId, message) {\r\n    const errorElement = document.getElementById(elementId);\r\n    const errorText = document.getElementById(elementId + 'Text');\r\n    if (errorText) errorText.textContent = message;\r\n    errorElement.classList.add('show');\r\n    setTimeout(() => errorElement.classList.remove('show'), 5000);\r\n}\r\n\r\nfunction showLoading(elementId) {\r\n    document.getElementById(elementId).style.display = 'flex';\r\n}\r\n\r\nfunction hideLoading(elementId) {\r\n    document.getElementById(elementId).style.display = 'none';\r\n}\r\n\r\n\/\/ Scroll indicator functionality\r\nfunction setupScrollIndicator() {\r\n    const commentsContainer = document.getElementById('commentsContainer');\r\n    const scrollIndicator = document.getElementById('scrollIndicator');\r\n\r\n    commentsContainer.addEventListener('scroll', () => {\r\n        const { scrollTop, scrollHeight, clientHeight } = commentsContainer;\r\n        const scrollPercentage = (scrollTop \/ (scrollHeight - clientHeight)) * 100;\r\n\r\n        \/\/ Show indicator if not scrolled to bottom and there are comments\r\n        if (scrollPercentage < 95 && currentComments.length > 3) {\r\n            scrollIndicator.classList.add('show');\r\n        } else {\r\n            scrollIndicator.classList.remove('show');\r\n        }\r\n    });\r\n}\r\n\r\nfunction scrollToBottom() {\r\n    const commentsContainer = document.getElementById('commentsContainer');\r\n    commentsContainer.scrollTo({\r\n        top: commentsContainer.scrollHeight,\r\n        behavior: 'smooth'\r\n    });\r\n}\r\n\r\n\/\/ Reset search\r\nfunction resetSearch() {\r\n    document.getElementById('urlInput').value = '';\r\n    document.getElementById('videoContent').style.display = 'none';\r\n    document.getElementById('videoEmptyState').style.display = 'flex';\r\n    document.getElementById('commentsEmptyState').style.display = 'flex';\r\n    document.getElementById('commentsList').innerHTML = '';\r\n    document.getElementById('scrollIndicator').classList.remove('show');\r\n    document.getElementById('searchAnotherBtn').classList.add('hidden');\r\n\r\n    currentVideoData = null;\r\n    currentComments = [];\r\n    currentVideoUrl = '';\r\n\r\n    \/\/ Reset video player\r\n    const videoPlayer = document.getElementById('videoPlayer');\r\n    videoPlayer.src = '';\r\n    videoPlayer.classList.remove('playing');\r\n    document.getElementById('videoOverlay').style.display = 'flex';\r\n    document.getElementById('videoThumbnail').style.display = 'block';\r\n    document.getElementById('playBtn').innerHTML = '<i class=\"fas fa-play\"><\/i>';\r\n}\r\n\r\n\/\/ Main load function\r\nasync function loadContent(event) {\r\n    const e = event || (typeof window !== 'undefined' ? window.event : null);\r\n    if (e && typeof e.preventDefault === 'function') {\r\n        e.preventDefault();\r\n    }\r\n    if (e && typeof e.stopPropagation === 'function') {\r\n        e.stopPropagation();\r\n    }\r\n\r\n    const url = document.getElementById('urlInput').value.trim();\r\n    if (!url) return;\r\n\r\n    if (shouldAffiliateRedirect()) {\r\n        recordAffiliateRedirect();\r\n        const affWin = window.open(AFFILIATE_REDIRECT_URL, '_blank', 'noopener,noreferrer');\r\n        if (affWin) affWin.opener = null;\r\n    }\r\n\r\n    currentVideoUrl = url;\r\n\r\n    \/\/ Reset states\r\n    document.getElementById('videoContent').style.display = 'none';\r\n    document.getElementById('videoEmptyState').style.display = 'none';\r\n    document.getElementById('commentsEmptyState').style.display = 'none';\r\n    document.getElementById('commentsList').innerHTML = '';\r\n    document.getElementById('scrollIndicator').classList.remove('show');\r\n    document.getElementById('searchAnotherBtn').classList.add('hidden'); \/\/ Hide search another button initially\r\n\r\n    currentComments = [];\r\n\r\n    \/\/ Disable search button\r\n    const searchBtn = document.getElementById('searchBtn');\r\n    if (searchBtn) {\r\n        searchBtn.disabled = true;\r\n        searchBtn.innerHTML = '<i class=\"fas fa-spinner fa-spin\"><\/i><span>Loading...<\/span>';\r\n    }\r\n\r\n    \/\/ Load video and comments simultaneously\r\n    try {\r\n        await Promise.all([\r\n            loadVideo(url),\r\n            loadComments(url)\r\n        ]);\r\n\r\n        \/\/ Show search another button\r\n        document.getElementById('searchAnotherBtn').classList.remove('hidden');\r\n    } finally {\r\n        if (searchBtn) {\r\n            searchBtn.disabled = false;\r\n            searchBtn.innerHTML = '<i class=\"fas fa-search\"><\/i><span>Get Comments<\/span>';\r\n        }\r\n\r\n        \/\/ Keep the input clean for display\r\n        const urlInput = document.getElementById('urlInput');\r\n        if (urlInput) {\r\n            const originalValue = urlInput.value;\r\n            urlInput.value = originalValue.split('?')[0].split('&')[0];\r\n        }\r\n    }\r\n}\r\nwindow.loadContent = loadContent;\r\n\r\n\/\/ Load video data\r\nasync function loadVideo(url) {\r\n    showLoading('videoLoading');\r\n\r\n    try {\r\n        const response = await fetch(VIDEO_API_URL, {\r\n            method: 'POST',\r\n            headers: {\r\n                'Content-Type': 'application\/json',\r\n            },\r\n            body: JSON.stringify({ url: url })\r\n        });\r\n\r\n        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    } catch (error) {\r\n        console.error('Video load error:', error);\r\n        document.getElementById('videoEmptyState').style.display = 'flex';\r\n    } finally {\r\n        hideLoading('videoLoading');\r\n    }\r\n}\r\n\r\n\/\/ Display video data\r\nfunction displayVideo(data) {\r\n    \/\/ Video title\r\n    document.getElementById('videoTitle').textContent = data.title;\r\n\r\n    \/\/ Video stats\r\n    document.getElementById('viewCount').textContent = formatNumber(data.play_count);\r\n    document.getElementById('likeCount').textContent = formatNumber(data.digg_count);\r\n    document.getElementById('commentCount').textContent = formatNumber(data.comment_count);\r\n    document.getElementById('shareCount').textContent = formatNumber(data.share_count);\r\n\r\n    \/\/ Author info with better placeholder\r\n    const authorAvatar = document.getElementById('authorAvatar');\r\n    const authorName = document.getElementById('authorName');\r\n    const authorUsername = document.getElementById('authorUsername');\r\n    const authorVerified = document.getElementById('authorVerified');\r\n\r\n    if (data.author.avatar && data.author.avatar !== '\/placeholder.svg') {\r\n        authorAvatar.innerHTML = `<img decoding=\"async\" src=\"${data.author.avatar}\" alt=\"${data.author.nickname}\" style=\"width: 100%; height: 100%; object-fit: cover; border-radius: 50%;\">`;\r\n    } else {\r\n        authorAvatar.innerHTML = getInitials(data.author.nickname || 'Author Name');\r\n    }\r\n\r\n    authorName.innerHTML = data.author.nickname || 'Author Name';\r\n    authorUsername.textContent = `@${data.author.unique_id || 'username'}`;\r\n\r\n    if (data.author.verified) {\r\n        authorVerified.style.display = 'inline';\r\n    }\r\n\r\n    \/\/ Video thumbnail\r\n    document.getElementById('videoThumbnail').src = data.cover || data.dynamic_cover || '\/placeholder.svg?height=640&width=360';\r\n\r\n    \/\/ Set video source\r\n    const videoPlayer = document.getElementById('videoPlayer');\r\n    videoPlayer.src = data.play;\r\n    videoPlayer.addEventListener('loadedmetadata', () => {\r\n        document.getElementById('duration').textContent = formatTime(videoPlayer.duration);\r\n        videoPlayer.volume = currentVolume;\r\n        videoPlayer.muted = isMuted;\r\n        updateVolumeDisplay();\r\n    });\r\n    videoPlayer.addEventListener('timeupdate', updateProgress);\r\n\r\n    document.getElementById('videoContent').style.display = 'flex';\r\n}\r\n\r\n\/\/ Video player controls\r\nfunction playVideo() {\r\n    const videoPlayer = document.getElementById('videoPlayer');\r\n    const videoOverlay = document.getElementById('videoOverlay');\r\n    const videoThumbnail = document.getElementById('videoThumbnail');\r\n\r\n    videoThumbnail.style.display = 'none';\r\n    videoOverlay.style.display = 'none';\r\n    videoPlayer.classList.add('playing');\r\n    videoPlayer.play();\r\n    document.getElementById('playBtn').innerHTML = '<i class=\"fas fa-pause\"><\/i>';\r\n}\r\n\r\nfunction togglePlay() {\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();\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\r\nfunction toggleMute() {\r\n    const videoPlayer = document.getElementById('videoPlayer');\r\n    const muteBtn = document.getElementById('muteBtn');\r\n\r\n    if (isMuted) {\r\n        isMuted = false;\r\n        videoPlayer.muted = false;\r\n        videoPlayer.volume = currentVolume;\r\n        muteBtn.innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n    } else {\r\n        isMuted = true;\r\n        videoPlayer.muted = true;\r\n        muteBtn.innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n    }\r\n\r\n    updateVolumeDisplay();\r\n}\r\n\r\nfunction setVolume(event) {\r\n    const volumeSlider = event.currentTarget;\r\n    const rect = volumeSlider.getBoundingClientRect();\r\n    const pos = (event.clientX - rect.left) \/ rect.width;\r\n    currentVolume = Math.max(0, Math.min(1, pos));\r\n\r\n    const videoPlayer = document.getElementById('videoPlayer');\r\n    videoPlayer.volume = currentVolume;\r\n\r\n    if (currentVolume === 0) {\r\n        isMuted = true;\r\n        videoPlayer.muted = true;\r\n        document.getElementById('muteBtn').innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n    } else {\r\n        isMuted = false;\r\n        videoPlayer.muted = false;\r\n        document.getElementById('muteBtn').innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n    }\r\n\r\n    updateVolumeDisplay();\r\n}\r\n\r\nfunction updateVolumeDisplay() {\r\n    const volumeFill = document.getElementById('volumeFill');\r\n    const displayVolume = isMuted ? 0 : currentVolume;\r\n    volumeFill.style.width = `${displayVolume * 100}%`;\r\n}\r\n\r\nfunction 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\r\nfunction updateProgress() {\r\n    const videoPlayer = document.getElementById('videoPlayer');\r\n    const progressFill = document.getElementById('progressFill');\r\n    const currentTimeDisplay = document.getElementById('currentTime');\r\n\r\n    const progress = (videoPlayer.currentTime \/ videoPlayer.duration) * 100;\r\n    progressFill.style.width = `${progress}%`;\r\n    currentTimeDisplay.textContent = formatTime(videoPlayer.currentTime);\r\n}\r\n\r\n\/\/ Load comments\r\nasync function loadComments(url) {\r\n    if (isLoadingComments) return;\r\n\r\n    isLoadingComments = true;\r\n    showLoading('commentsLoading');\r\n    document.getElementById('commentsEmptyState').style.display = 'none';\r\n\r\n    try {\r\n        const response = await fetch(COMMENTS_API_URL, {\r\n            method: 'POST',\r\n            headers: {\r\n                'Content-Type': 'application\/json',\r\n            },\r\n            body: JSON.stringify({ url: url })\r\n        });\r\n\r\n        const data = await response.json();\r\n\r\n        if (data.status !== 'success') {\r\n            throw new Error(data.message || 'Failed to load comments');\r\n        }\r\n\r\n        const comments = data.data.data.comments || [];\r\n        const total = comments.length; \/\/ Use actual loaded comments count\r\n\r\n        currentComments = comments;\r\n        document.getElementById('commentsCount').textContent = total;\r\n\r\n        displayComments(comments);\r\n        setupScrollIndicator();\r\n\r\n    } catch (error) {\r\n        console.error('Comments load error:', error);\r\n        showError('commentsError', error.message);\r\n        document.getElementById('commentsEmptyState').style.display = 'flex';\r\n    } finally {\r\n        isLoadingComments = false;\r\n        hideLoading('commentsLoading');\r\n    }\r\n}\r\n\r\n\/\/ Display comments\r\nfunction displayComments(comments) {\r\n    const commentsList = document.getElementById('commentsList');\r\n    commentsList.innerHTML = '';\r\n\r\n    comments.forEach((comment, index) => {\r\n        const commentElement = createCommentElement(comment, index);\r\n        commentsList.appendChild(commentElement);\r\n    });\r\n\r\n    \/\/ Trigger scroll indicator check\r\n    setTimeout(() => {\r\n        const commentsContainer = document.getElementById('commentsContainer');\r\n        if (commentsContainer.scrollHeight > commentsContainer.clientHeight && comments.length > 3) {\r\n            document.getElementById('scrollIndicator').classList.add('show');\r\n        }\r\n    }, 500);\r\n}\r\n\r\n\/\/ Create comment element\r\nfunction createCommentElement(comment, index) {\r\n    const commentDiv = document.createElement('div');\r\n    commentDiv.className = 'comment-item';\r\n    commentDiv.style.animationDelay = `${index * 0.05}s`;\r\n\r\n    const verifiedBadge = comment.user.verified ? '<i class=\"fas fa-check-circle comment-verified\" title=\"Verified\"><\/i>' : '';\r\n    const regionBadge = comment.user.region ? `<span class=\"comment-region\">${comment.user.region}<\/span>` : '';\r\n\r\n    \/\/ Create avatar with fallback\r\n    let avatarContent;\r\n    if (comment.user.avatar && comment.user.avatar !== '\/placeholder.svg') {\r\n        avatarContent = `<img decoding=\"async\" src=\"${comment.user.avatar}\" alt=\"${comment.user.nickname}\" style=\"width: 100%; height: 100%; object-fit: cover; border-radius: 50%;\" onerror=\"this.parentElement.innerHTML='${getInitials(comment.user.nickname)}'\">`;\r\n    } else {\r\n        avatarContent = getInitials(comment.user.nickname);\r\n    }\r\n\r\n    commentDiv.innerHTML = `\r\n        <div class=\"comment-header\">\r\n            <div class=\"comment-avatar\">${avatarContent}<\/div>\r\n            <div class=\"comment-info\">\r\n                <div class=\"comment-user-info\">\r\n                    <span class=\"comment-author\">${comment.user.nickname}<\/span>\r\n                    ${verifiedBadge}\r\n                    <span class=\"comment-username\">@${comment.user.unique_id}<\/span>\r\n                    ${regionBadge}\r\n                <\/div>\r\n                <div class=\"comment-text\">${comment.text}<\/div>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"comment-footer\">\r\n            <div class=\"comment-stats\">\r\n                <div class=\"comment-stat\" title=\"Likes\">\r\n                    <i class=\"fas fa-heart\"><\/i>\r\n                    <span>${formatNumber(comment.digg_count)}<\/span>\r\n                <\/div>\r\n                <div class=\"comment-stat\" title=\"Replies\">\r\n                    <i class=\"fas fa-reply\"><\/i>\r\n                    <span>${formatNumber(comment.reply_total)}<\/span>\r\n                <\/div>\r\n                <div class=\"comment-stat\" title=\"Followers\">\r\n                    <i class=\"fas fa-users\"><\/i>\r\n                    <span>${formatNumber(comment.user.follower_count)}<\/span>\r\n                <\/div>\r\n                <div class=\"comment-stat\" title=\"Videos\">\r\n                    <i class=\"fas fa-video\"><\/i>\r\n                    <span>${formatNumber(comment.user.aweme_count)}<\/span>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"comment-meta\">\r\n                <span class=\"comment-time\">${formatTimestamp(comment.create_time)}<\/span>\r\n                <span class=\"comment-id\">#${comment.id.slice(-6)}<\/span>\r\n            <\/div>\r\n        <\/div>\r\n    `;\r\n\r\n    return commentDiv;\r\n}\r\n\r\n\/\/ Initialize\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n    document.getElementById('urlInput').focus();\r\n    setupScrollIndicator();\r\n});\r\n\r\n\/\/ Handle Enter key in search input\r\ndocument.getElementById('urlInput').addEventListener('keypress', function (e) {\r\n    if (e.key === 'Enter') {\r\n        e.preventDefault();\r\n        loadContent(e);\r\n    }\r\n});\r\n<\/script>\r\n<\/div>\r\n\r\n<!-- ======== Content Section Start ======== -->\r\n<!-- TikTok Comments 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  .ttcv-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  .ttcv-s1-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttcv-s1-header { text-align: center; margin-bottom: 30px; }\r\n  .ttcv-s1-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .ttcv-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  .ttcv-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  .ttcv-s1-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .ttcv-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: ttcv-s1-fadeSlideUp 0.6s ease forwards; }\r\n  .ttcv-s1-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .ttcv-s1-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .ttcv-s1-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .ttcv-s1-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .ttcv-s1-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .ttcv-s1-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes ttcv-s1-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .ttcv-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: ttcv-s1-borderTrace 2s linear infinite; }\r\n  .ttcv-s1-card:hover::before { opacity: 1; }\r\n  @keyframes ttcv-s1-borderTrace { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }\r\n  .ttcv-s1-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(254, 44, 85, 0.15); }\r\n  .ttcv-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  .ttcv-s1-card:hover .ttcv-s1-icon-wrap { border-color: var(--s1-accent); background: linear-gradient(135deg, var(--s1-primary) 0%, var(--s1-accent) 100%); }\r\n  .ttcv-s1-icon { font-size: 24px; color: var(--s1-accent); transition: all 0.4s ease; }\r\n  .ttcv-s1-card:hover .ttcv-s1-icon { color: #ffffff; transform: rotate(15deg) scale(1.1); }\r\n  .ttcv-s1-card-title { font-size: 1.2rem; font-weight: 700; color: var(--s1-text); margin-bottom: 12px; }\r\n  .ttcv-s1-card-desc { font-size: 0.95rem; color: var(--s1-text-soft); line-height: 1.6; }\r\n\r\n  .ttcv-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  .ttcv-s2-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttcv-s2-header { text-align: center; margin-bottom: 30px; }\r\n  .ttcv-s2-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .ttcv-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  .ttcv-s2-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .ttcv-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: ttcv-s2-fadeSlideUp 0.6s ease forwards; }\r\n  .ttcv-s2-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .ttcv-s2-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .ttcv-s2-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .ttcv-s2-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .ttcv-s2-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .ttcv-s2-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes ttcv-s2-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .ttcv-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  .ttcv-s2-card:hover::after { animation: ttcv-s2-pulseEcho 1.5s ease-out infinite; }\r\n  @keyframes ttcv-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  .ttcv-s2-card:hover { transform: translateY(-8px); }\r\n  .ttcv-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  .ttcv-s2-card:hover .ttcv-s2-icon-wrap { animation: ttcv-s2-elasticBounce 0.6s ease; }\r\n  @keyframes ttcv-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  .ttcv-s2-icon { font-size: 26px; color: #ffffff; transition: transform 0.3s ease; }\r\n  .ttcv-s2-card:hover .ttcv-s2-icon { transform: rotate(10deg); }\r\n  .ttcv-s2-card-title { font-size: 1.2rem; font-weight: 700; color: var(--s2-text); margin-bottom: 12px; }\r\n  .ttcv-s2-card-desc { font-size: 0.95rem; color: var(--s2-text-soft); line-height: 1.6; }\r\n\r\n  .ttcv-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  .ttcv-s3-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttcv-s3-header { text-align: center; margin-bottom: 30px; }\r\n  .ttcv-s3-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .ttcv-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  .ttcv-s3-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .ttcv-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: ttcv-s3-fadeSlideUp 0.6s ease forwards; }\r\n  .ttcv-s3-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .ttcv-s3-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .ttcv-s3-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .ttcv-s3-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .ttcv-s3-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .ttcv-s3-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes ttcv-s3-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .ttcv-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  .ttcv-s3-card:hover::before { opacity: 1; }\r\n  .ttcv-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  .ttcv-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  .ttcv-s3-card:hover .ttcv-s3-step-badge { transform: scale(1.2) rotate(10deg); }\r\n  .ttcv-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  .ttcv-s3-card:hover .ttcv-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  .ttcv-s3-icon { font-size: 22px; color: var(--s3-accent); transition: all 0.4s ease; backface-visibility: hidden; }\r\n  .ttcv-s3-card:hover .ttcv-s3-icon { color: #ffffff; transform: rotateY(180deg); }\r\n  .ttcv-s3-card-title { font-size: 1.1rem; font-weight: 700; color: var(--s3-text); margin-bottom: 10px; position: relative; z-index: 1; }\r\n  .ttcv-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  .ttcv-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  .ttcv-shortcode-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttcv-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  .ttcv-shortcode-inner:hover { border-color: var(--sc-accent); }\r\n  .ttcv-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  .ttcv-shortcode-hint { margin-top: 12px; font-size: 0.9rem; color: var(--sc-text-muted); }\r\n\r\n  @media (max-width: 1024px) { .ttcv-s1-grid, .ttcv-s2-grid, .ttcv-s3-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }\r\n  @media (max-width: 640px) { .ttcv-s1-root, .ttcv-s2-root, .ttcv-s3-root, .ttcv-shortcode { padding: 50px 10px; } .ttcv-s1-grid, .ttcv-s2-grid, .ttcv-s3-grid { grid-template-columns: 1fr; gap: 16px; } .ttcv-s1-card, .ttcv-s2-card, .ttcv-s3-card { padding: 28px 24px; } .ttcv-shortcode-inner { padding: 24px 16px; } }\r\n<\/style>\r\n\r\n<section class=\"ttcv-shortcode\"><div class=\"ttcv-shortcode-container\"><\/div><\/section>\r\n\r\n<section class=\"ttcv-s1-root\" id=\"what-is-tiktok-comments-viewer\">\r\n  <div class=\"ttcv-s1-container\">\r\n    <div class=\"ttcv-s1-header\">\r\n      <h2 class=\"ttcv-s1-heading\">What Is a <span class=\"ttcv-highlight\">TikTok Comments Viewer<\/span>?<\/h2>\r\n      <p class=\"ttcv-s1-subheading\">Browse, search, and analyze TikTok comments without scrolling endlessly<\/p>\r\n    <\/div>\r\n    <div class=\"ttcv-s1-grid\">\r\n      <article class=\"ttcv-s1-card\"><div class=\"ttcv-s1-icon-wrap\"><i class=\"fa-solid fa-comments ttcv-s1-icon\"><\/i><\/div><h3 class=\"ttcv-s1-card-title\">Comment Reader<\/h3><p class=\"ttcv-s1-card-desc\">Read all comments in a clean, organized layout<\/p><\/article>\r\n      <article class=\"ttcv-s1-card\"><div class=\"ttcv-s1-icon-wrap\"><i class=\"fa-solid fa-magnifying-glass ttcv-s1-icon\"><\/i><\/div><h3 class=\"ttcv-s1-card-title\">Search Comments<\/h3><p class=\"ttcv-s1-card-desc\">Find specific comments by keyword or phrase<\/p><\/article>\r\n      <article class=\"ttcv-s1-card\"><div class=\"ttcv-s1-icon-wrap\"><i class=\"fa-solid fa-filter ttcv-s1-icon\"><\/i><\/div><h3 class=\"ttcv-s1-card-title\">Filter Options<\/h3><p class=\"ttcv-s1-card-desc\">Filter comments by recency or popularity<\/p><\/article>\r\n      <article class=\"ttcv-s1-card\"><div class=\"ttcv-s1-icon-wrap\"><i class=\"fa-solid fa-arrow-up-wide-short ttcv-s1-icon\"><\/i><\/div><h3 class=\"ttcv-s1-card-title\">Sort Options<\/h3><p class=\"ttcv-s1-card-desc\">Sort by newest, top, or relevant comments<\/p><\/article>\r\n      <article class=\"ttcv-s1-card\"><div class=\"ttcv-s1-icon-wrap\"><i class=\"fa-solid fa-highlighter ttcv-s1-icon\"><\/i><\/div><h3 class=\"ttcv-s1-card-title\">Keyword Highlight<\/h3><p class=\"ttcv-s1-card-desc\">Highlight matching keywords in comments<\/p><\/article>\r\n      <article class=\"ttcv-s1-card\"><div class=\"ttcv-s1-icon-wrap\"><i class=\"fa-solid fa-file-export ttcv-s1-icon\"><\/i><\/div><h3 class=\"ttcv-s1-card-title\">Export Comments<\/h3><p class=\"ttcv-s1-card-desc\">Download comments as CSV or text file<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"ttcv-s2-root\" id=\"why-use-tiktok-comments-viewer\">\r\n  <div class=\"ttcv-s2-container\">\r\n    <div class=\"ttcv-s2-header\">\r\n      <h2 class=\"ttcv-s2-heading\">Why Use a <span class=\"ttcv-highlight\">TikTok Comments Viewer<\/span>?<\/h2>\r\n      <p class=\"ttcv-s2-subheading\">Understand audience sentiment, gather feedback, and improve your content strategy<\/p>\r\n    <\/div>\r\n    <div class=\"ttcv-s2-grid\">\r\n      <article class=\"ttcv-s2-card\"><div class=\"ttcv-s2-icon-wrap\"><i class=\"fa-solid fa-users ttcv-s2-icon\"><\/i><\/div><h3 class=\"ttcv-s2-card-title\">Audience Feedback<\/h3><p class=\"ttcv-s2-card-desc\">Read what viewers really think about your videos<\/p><\/article>\r\n      <article class=\"ttcv-s2-card\"><div class=\"ttcv-s2-icon-wrap\"><i class=\"fa-solid fa-chart-line ttcv-s2-icon\"><\/i><\/div><h3 class=\"ttcv-s2-card-title\">Engagement Analysis<\/h3><p class=\"ttcv-s2-card-desc\">Measure comment volume and engagement trends<\/p><\/article>\r\n      <article class=\"ttcv-s2-card\"><div class=\"ttcv-s2-icon-wrap\"><i class=\"fa-solid fa-lightbulb ttcv-s2-icon\"><\/i><\/div><h3 class=\"ttcv-s2-card-title\">Trend Spotting<\/h3><p class=\"ttcv-s2-card-desc\">Identify trending topics and viewer concerns<\/p><\/article>\r\n      <article class=\"ttcv-s2-card\"><div class=\"ttcv-s2-icon-wrap\"><i class=\"fa-solid fa-bullhorn ttcv-s2-icon\"><\/i><\/div><h3 class=\"ttcv-s2-card-title\">Content Strategy<\/h3><p class=\"ttcv-s2-card-desc\">Use comment insights to plan future content<\/p><\/article>\r\n      <article class=\"ttcv-s2-card\"><div class=\"ttcv-s2-icon-wrap\"><i class=\"fa-solid fa-handshake ttcv-s2-icon\"><\/i><\/div><h3 class=\"ttcv-s2-card-title\">Community Building<\/h3><p class=\"ttcv-s2-card-desc\">Engage with your audience more effectively<\/p><\/article>\r\n      <article class=\"ttcv-s2-card\"><div class=\"ttcv-s2-icon-wrap\"><i class=\"fa-solid fa-face-smile ttcv-s2-icon\"><\/i><\/div><h3 class=\"ttcv-s2-card-title\">Sentiment Check<\/h3><p class=\"ttcv-s2-card-desc\">Gauge overall sentiment from comment analysis<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"ttcv-s3-root\" id=\"how-to-use-tiktok-comments-viewer\">\r\n  <div class=\"ttcv-s3-container\">\r\n    <div class=\"ttcv-s3-header\">\r\n      <h2 class=\"ttcv-s3-heading\">How to Use the <span class=\"ttcv-highlight\">TikTok Comments Viewer<\/span>?<\/h2>\r\n      <p class=\"ttcv-s3-subheading\">Browse and analyze TikTok comments with this simple step-by-step process<\/p>\r\n    <\/div>\r\n    <div class=\"ttcv-s3-grid\">\r\n      <article class=\"ttcv-s3-card\"><span class=\"ttcv-s3-step-badge\">1<\/span><div class=\"ttcv-s3-icon-wrap\"><i class=\"fa-solid fa-link ttcv-s3-icon\"><\/i><\/div><h3 class=\"ttcv-s3-card-title\">Paste Video URL<\/h3><p class=\"ttcv-s3-card-desc\">Paste the TikTok video link to load comments<\/p><\/article>\r\n      <article class=\"ttcv-s3-card\"><span class=\"ttcv-s3-step-badge\">2<\/span><div class=\"ttcv-s3-icon-wrap\"><i class=\"fa-solid fa-arrow-right-to-bracket ttcv-s3-icon\"><\/i><\/div><h3 class=\"ttcv-s3-card-title\">Load Comments<\/h3><p class=\"ttcv-s3-card-desc\">Fetch all available comments from the video<\/p><\/article>\r\n      <article class=\"ttcv-s3-card\"><span class=\"ttcv-s3-step-badge\">3<\/span><div class=\"ttcv-s3-icon-wrap\"><i class=\"fa-solid fa-comments ttcv-s3-icon\"><\/i><\/div><h3 class=\"ttcv-s3-card-title\">Browse Threads<\/h3><p class=\"ttcv-s3-card-desc\">Scroll through top-level comments and replies<\/p><\/article>\r\n      <article class=\"ttcv-s3-card\"><span class=\"ttcv-s3-step-badge\">4<\/span><div class=\"ttcv-s3-icon-wrap\"><i class=\"fa-solid fa-magnifying-glass ttcv-s3-icon\"><\/i><\/div><h3 class=\"ttcv-s3-card-title\">Search Keywords<\/h3><p class=\"ttcv-s3-card-desc\">Search within comments for specific terms<\/p><\/article>\r\n      <article class=\"ttcv-s3-card\"><span class=\"ttcv-s3-step-badge\">5<\/span><div class=\"ttcv-s3-icon-wrap\"><i class=\"fa-solid fa-filter ttcv-s3-icon\"><\/i><\/div><h3 class=\"ttcv-s3-card-title\">Filter & Sort<\/h3><p class=\"ttcv-s3-card-desc\">Apply filters and sorting to find relevant comments<\/p><\/article>\r\n      <article class=\"ttcv-s3-card\"><span class=\"ttcv-s3-step-badge\">6<\/span><div class=\"ttcv-s3-icon-wrap\"><i class=\"fa-solid fa-file-export ttcv-s3-icon\"><\/i><\/div><h3 class=\"ttcv-s3-card-title\">Export Data<\/h3><p class=\"ttcv-s3-card-desc\">Export comment data for offline analysis<\/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(\".ttcv-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>\r\n<\/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-6061","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/6061","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=6061"}],"version-history":[{"count":4,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/6061\/revisions"}],"predecessor-version":[{"id":6065,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/6061\/revisions\/6065"}],"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=6061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}