{"id":6196,"date":"2026-06-13T00:00:36","date_gmt":"2026-06-13T00:00:36","guid":{"rendered":"https:\/\/viewari.com\/?page_id=6196"},"modified":"2026-06-14T06:42:35","modified_gmt":"2026-06-14T06:42:35","slug":"image","status":"publish","type":"page","link":"https:\/\/viewari.com\/tiktok\/image\/","title":{"rendered":"Tiktok Image Viewer &#8211; Preview Full Photo Slideshows Quickly"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6196\" class=\"elementor elementor-6196\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6bec3966 e-con-full e-flex e-con e-parent\" data-id=\"6bec3966\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5484e782 elementor-widget elementor-widget-shortcode\" data-id=\"5484e782\" 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\/* New Social TikTok Image Viewer \u2014 WordPress-scoped *\/\n  .nstiv {\n    container-type: inline-size;\n    container-name: nstiv;\n    --nstiv-ink: #ffffff;\n    --nstiv-muted: #cbd5e1;\n    --nstiv-dim: #94a3b8;\n    --nstiv-panel: rgba(22, 24, 35, 0.94);\n    --nstiv-panel-soft: rgba(255, 255, 255, 0.08);\n    --nstiv-line: rgba(255, 255, 255, 0.12);\n    --nstiv-accent: #ff0050;\n    --nstiv-accent-deep: #ee1d52;\n    --nstiv-cool: #00f2ea;\n    --nstiv-cool-deep: #14b8b2;\n    --nstiv-danger: #ff6b7a;\n    --nstiv-radius: 16px;\n    --nstiv-shadow: 0 16px 36px rgba(0, 0, 0, 0.45);\n    --nstiv-font: \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif;\n    --nstiv-gap: 12px;\n    --nstiv-pad: 12px;\n    --nstiv-avatar: 80px;\n    --nstiv-cols: 1;\n\n    box-sizing: border-box !important;\n    font-family: var(--nstiv-font);\n    color: var(--nstiv-ink);\n    line-height: 1.5;\n    display: block;\n    width: 100%;\n    max-width: 100%;\n    min-height: 100vh;\n    min-width: 0 !important;\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    text-align: left;\n    overflow-x: hidden !important;\n    overflow-wrap: anywhere;\n    word-wrap: break-word;\n    -webkit-text-size-adjust: 100%;\n    text-size-adjust: 100%;\n  }\n\n  .nstiv *,\n  .nstiv *::before,\n  .nstiv *::after {\n    box-sizing: border-box;\n  }\n\n  .nstiv :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, figcaption, label, span) {\n    margin: 0;\n    padding: 0;\n    border: 0;\n    font-weight: inherit;\n    max-width: 100%;\n    overflow-wrap: anywhere;\n    word-wrap: break-word;\n  }\n\n  .nstiv :where(ul, ol) {\n    list-style: none;\n  }\n\n  .nstiv img {\n    max-width: 100%;\n    height: auto;\n    display: block;\n    border: 0;\n  }\n\n  .nstiv a {\n    color: var(--nstiv-cool);\n    text-decoration: none;\n  }\n\n  .nstiv a:hover {\n    text-decoration: underline;\n  }\n\n  .nstiv-shell {\n    position: relative;\n    z-index: 1;\n    display: flex;\n    flex-direction: column;\n    gap: var(--nstiv-gap);\n    width: 100%;\n    max-width: min(1280px, 100%);\n    margin: 0 auto;\n    min-width: 0;\n    overflow-x: hidden;\n    container-type: inline-size;\n    container-name: nstiv;\n  }\n\n  .nstiv-hero {\n    background: transparent;\n    padding: 36px 0 14px;\n    text-align: center;\n    width: 100%;\n    max-width: 100%;\n    min-width: 0;\n    backdrop-filter: blur(12px);\n    border: 0;\n    box-shadow: none;\n    border-radius: 0;\n  }\n\n  .nstiv-hero__heading {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 12px;\n    flex-wrap: wrap;\n    margin: 0 0 8px;\n  }\n\n  .nstiv-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(--nstiv-accent), var(--nstiv-cool));\n    color: #fff;\n    box-shadow: 0 10px 24px rgba(255, 0, 80, 0.35);\n    flex: 0 0 auto;\n  }\n\n  .nstiv .nstiv-hero__brand i {\n    font-size: 1.25rem !important;\n    width: auto;\n    color: #fff !important;\n    display: inline-block !important;\n    line-height: 1 !important;\n  }\n\n  .nstiv .nstiv-hero__title {\n    font-size: clamp(1.35rem, 3vw, 1.75rem);\n    font-weight: 800;\n    letter-spacing: -0.02em;\n    line-height: 1.25;\n    margin: 0;\n    color: var(--nstiv-ink);\n  }\n\n  .nstiv-hero__title-mark {\n    background: linear-gradient(135deg, var(--nstiv-accent) 0%, var(--nstiv-cool) 100%);\n    -webkit-background-clip: text;\n    background-clip: text;\n    color: transparent;\n    position: relative;\n    display: inline-block;\n  }\n\n  .nstiv-hero__title-mark::after {\n    content: \"\";\n    position: absolute;\n    left: 0;\n    right: 0;\n    bottom: -3px;\n    height: 3px;\n    border-radius: 999px;\n    background: linear-gradient(90deg, var(--nstiv-accent), var(--nstiv-cool));\n  }\n\n  .nstiv .nstiv-hero__lead {\n    max-width: 560px;\n    margin: 0 auto 16px;\n    color: var(--nstiv-muted);\n    font-size: clamp(0.88rem, 2.4vw, 0.95rem);\n    line-height: 1.55;\n    padding: 0 2px;\n  }\n\n  .nstiv-search {\n    display: flex;\n    flex-direction: column;\n    align-items: stretch;\n    gap: 10px;\n    text-align: left;\n    width: 100%;\n    max-width: 100%;\n    min-width: 0;\n    box-sizing: border-box;\n    margin-top: 4px;\n    padding: clamp(10px, 2vw, 14px);\n    background: rgba(10, 10, 15, 0.55);\n    border: 1px solid var(--nstiv-line);\n    border-radius: 12px;\n    box-shadow: var(--nstiv-shadow);\n  }\n\n  .nstiv .nstiv-search__label {\n    display: block;\n    font-size: 0.88rem;\n    font-weight: 600;\n    color: var(--nstiv-muted);\n    line-height: 1.3;\n  }\n\n  .nstiv-search__row {\n    display: flex;\n    flex-direction: row;\n    flex-wrap: wrap;\n    gap: 8px;\n    align-items: stretch;\n    width: 100%;\n    max-width: 100%;\n    min-width: 0;\n  }\n\n  .nstiv-search__row>.nstiv-search__field {\n    flex: 1 1 220px;\n    width: auto;\n    max-width: none;\n  }\n\n  .nstiv-search__row>.nstiv-search__actions {\n    flex: 1 1 220px;\n    display: flex !important;\n    flex-direction: row !important;\n    flex-wrap: nowrap !important;\n    gap: 8px !important;\n    min-width: 0;\n  }\n\n  .nstiv .nstiv-search__field {\n    flex: 1 1 auto;\n    min-width: 0 !important;\n    height: 46px;\n    min-height: 46px;\n    padding: 0 14px !important;\n    border: 1px solid var(--nstiv-line) !important;\n    border-radius: 10px;\n    background: rgba(0, 0, 0, 0.35) !important;\n    color: var(--nstiv-ink) !important;\n    font-family: var(--nstiv-font);\n    font-size: 16px !important;\n    font-weight: 500;\n    line-height: 46px;\n    outline: none;\n    width: 100%;\n    max-width: 100% !important;\n  }\n\n  .nstiv .nstiv-search__field:focus {\n    border-color: var(--nstiv-cool) !important;\n    box-shadow: 0 0 0 3px rgba(0, 242, 234, 0.18);\n  }\n\n  .nstiv .nstiv-search__field::placeholder {\n    color: #7a8499;\n  }\n\n  .nstiv-search__actions {\n    display: flex;\n    flex-direction: row;\n    flex-wrap: wrap;\n    gap: 8px;\n    width: 100%;\n    min-width: 0;\n    align-items: stretch;\n  }\n\n  .nstiv .nstiv-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 7px;\n    flex: 1 1 calc(50% - 4px);\n    width: auto;\n    height: 46px;\n    min-height: 46px;\n    min-width: 0;\n    max-width: 100%;\n    padding: 0 16px !important;\n    border: 0 !important;\n    border-radius: 10px;\n    font-family: var(--nstiv-font);\n    font-size: 0.9rem !important;\n    font-weight: 700 !important;\n    line-height: 1;\n    cursor: pointer;\n    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;\n    white-space: nowrap;\n    text-align: center;\n    user-select: none;\n    appearance: none;\n    -webkit-appearance: none;\n    touch-action: manipulation;\n    overflow: hidden;\n  }\n\n  .nstiv .nstiv-btn i,\n  .nstiv .nstiv-tabs__btn i,\n  .nstiv .nstiv-pic__action i,\n  .nstiv .nstiv-profile__zoom i,\n  .nstiv .nstiv-modal__close i,\n  .nstiv .nstiv-notice i,\n  .nstiv .nstiv-more i,\n  .nstiv i.fa-solid,\n  .nstiv i.fa-brands,\n  .nstiv i.fas {\n    --fa-display: inline-block;\n    display: inline-block !important;\n    line-height: 1 !important;\n    font-size: 0.92em;\n    width: 1.15em;\n    text-align: center;\n    vertical-align: middle;\n  }\n\n  .nstiv .nstiv-empty i {\n    display: block !important;\n    font-size: 2rem !important;\n    width: auto;\n    margin: 0 auto 10px;\n    opacity: 0.4;\n    line-height: 1 !important;\n  }\n\n  .nstiv .nstiv-btn:hover {\n    transform: translateY(-1px);\n  }\n\n  .nstiv .nstiv-btn:active {\n    transform: translateY(0);\n    opacity: 0.92;\n  }\n\n  .nstiv .nstiv-btn:disabled {\n    opacity: 0.55;\n    cursor: wait;\n    transform: none;\n  }\n\n  .nstiv .nstiv-btn--paste {\n    background: linear-gradient(135deg, var(--nstiv-cool), var(--nstiv-cool-deep)) !important;\n    color: #042422 !important;\n    box-shadow: 0 4px 12px rgba(0, 242, 234, 0.28);\n  }\n\n  .nstiv .nstiv-btn--view {\n    background: linear-gradient(135deg, var(--nstiv-accent), var(--nstiv-accent-deep)) !important;\n    color: #fff !important;\n    box-shadow: 0 8px 18px rgba(255, 0, 80, 0.32);\n  }\n\n  .nstiv .nstiv-search__hint {\n    font-size: 0.82rem;\n    color: var(--nstiv-dim);\n    line-height: 1.4;\n  }\n\n  .nstiv .nstiv-alert {\n    display: none;\n    padding: 10px 12px;\n    border-radius: 10px;\n    background: rgba(255, 107, 122, 0.14);\n    border: 1px solid rgba(255, 107, 122, 0.4);\n    color: #ffd0d5;\n    font-size: 0.86rem;\n    line-height: 1.4;\n    word-break: break-word;\n  }\n\n  .nstiv .nstiv-alert.is-visible {\n    display: block;\n  }\n\n  .nstiv .nstiv-notice {\n    display: none;\n    margin-top: 10px;\n    padding: 10px 12px;\n    border-radius: 10px;\n    background: rgba(0, 242, 234, 0.1);\n    border: 1px solid rgba(0, 242, 234, 0.3);\n    color: #b8f4f8;\n    font-size: 0.84rem;\n    line-height: 1.4;\n    word-break: break-word;\n  }\n\n  .nstiv .nstiv-notice.is-visible {\n    display: flex;\n    align-items: flex-start;\n    gap: 8px;\n  }\n\n  .nstiv .nstiv-skeleton {\n    display: none;\n    margin: 0;\n    width: 100%;\n    max-width: 100%;\n    min-width: 0;\n  }\n\n  .nstiv .nstiv-skeleton.is-visible {\n    display: block;\n  }\n\n  .nstiv .nstiv-content.is-hidden {\n    display: none !important;\n  }\n\n  @keyframes nstiv-shimmer {\n    0% {\n      background-position: -400px 0;\n    }\n\n    100% {\n      background-position: 400px 0;\n    }\n  }\n\n  .nstiv .nstiv-sk {\n    background: linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.14) 45%, rgba(255, 255, 255, 0.06) 100%);\n    background-size: 800px 100%;\n    animation: nstiv-shimmer 1.35s ease-in-out infinite;\n    border-radius: 8px;\n  }\n\n  .nstiv-skeleton__panel {\n    background: var(--nstiv-panel);\n    border: 1px solid var(--nstiv-line);\n    border-radius: var(--nstiv-radius);\n    box-shadow: var(--nstiv-shadow);\n    padding: 18px;\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstiv-skeleton__profile {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 14px;\n    align-items: center;\n    justify-items: center;\n    padding: var(--nstiv-pad);\n    border-radius: 12px;\n    background: linear-gradient(160deg, rgba(255, 0, 80, 0.1), rgba(0, 242, 234, 0.08));\n    border: 1px solid rgba(255, 255, 255, 0.06);\n    text-align: center;\n    margin-bottom: 16px;\n  }\n\n  .nstiv .nstiv-skeleton__avatar {\n    width: var(--nstiv-avatar);\n    height: var(--nstiv-avatar);\n    border-radius: 50% !important;\n    border: 3px solid rgba(255, 255, 255, 0.12);\n  }\n\n  .nstiv-skeleton__meta {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    min-width: 0;\n    align-items: center;\n    width: 100%;\n  }\n\n  .nstiv-skeleton__line {\n    height: 16px;\n  }\n\n  .nstiv-skeleton__line--lg {\n    width: min(200px, 70%);\n    height: 22px;\n  }\n\n  .nstiv-skeleton__line--md {\n    width: min(140px, 50%);\n    height: 14px;\n  }\n\n  .nstiv-skeleton__stats {\n    display: flex;\n    gap: 14px;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n\n  .nstiv-skeleton__stat {\n    width: 64px;\n    height: 36px;\n    border-radius: 8px;\n  }\n\n  .nstiv-skeleton__tabs {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 8px;\n    margin: 0 0 14px;\n    width: 100%;\n  }\n\n  .nstiv-skeleton__tab {\n    flex: 1 1 calc(50% - 8px);\n    min-width: 0;\n    height: 40px;\n    border-radius: 999px;\n  }\n\n  .nstiv-skeleton__grid,\n  .nstiv-tab-sk--pics,\n  .nstiv-grid {\n    display: grid;\n    grid-template-columns: repeat(var(--nstiv-cols, 1), minmax(0, 1fr));\n    gap: 12px;\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstiv-skeleton__card,\n  .nstiv-tab-sk__card {\n    border-radius: 12px;\n    overflow: hidden;\n    border: 1px solid var(--nstiv-line);\n    background: rgba(255, 255, 255, 0.04);\n  }\n\n  .nstiv-skeleton__thumb,\n  .nstiv-tab-sk__thumb {\n    aspect-ratio: 1 \/ 1;\n  }\n\n  .nstiv-skeleton__foot,\n  .nstiv-tab-sk__foot {\n    height: 72px;\n    margin: 12px;\n    border-radius: 8px;\n  }\n\n  .nstiv-result {\n    width: 100%;\n    max-width: 100%;\n    min-width: 0;\n  }\n\n  .nstiv-panel {\n    background: var(--nstiv-panel);\n    border: 1px solid var(--nstiv-line);\n    border-radius: var(--nstiv-radius);\n    box-shadow: var(--nstiv-shadow);\n    padding: clamp(12px, 2vw, 18px);\n    width: 100%;\n    min-width: 0;\n    backdrop-filter: blur(12px);\n  }\n\n  .nstiv-profile {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 14px;\n    align-items: center;\n    justify-items: center;\n    padding: var(--nstiv-pad);\n    border-radius: 12px;\n    background: linear-gradient(160deg, rgba(255, 0, 80, 0.1), rgba(0, 242, 234, 0.08));\n    border: 1px solid rgba(255, 255, 255, 0.06);\n    text-align: center;\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstiv-profile__avatar-wrap {\n    position: relative;\n    width: var(--nstiv-avatar);\n    height: var(--nstiv-avatar);\n    max-width: 100%;\n    flex-shrink: 0;\n  }\n\n  .nstiv-profile__ring {\n    width: 100%;\n    height: 100%;\n    border-radius: 50%;\n    padding: 3px;\n    background: linear-gradient(135deg, var(--nstiv-accent), var(--nstiv-cool));\n  }\n\n  .nstiv .nstiv-profile__img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    border-radius: 50%;\n    border: 2px solid #161823;\n    background: rgba(0, 0, 0, 0.2);\n  }\n\n  .nstiv .nstiv-profile__zoom {\n    position: absolute;\n    right: 0;\n    bottom: 0;\n    width: 32px;\n    height: 32px;\n    min-width: 32px;\n    min-height: 32px;\n    padding: 0 !important;\n    border: 0 !important;\n    border-radius: 50%;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    background: rgba(10, 10, 16, 0.88) !important;\n    color: var(--nstiv-ink) !important;\n    cursor: pointer;\n    appearance: none;\n    touch-action: manipulation;\n  }\n\n  .nstiv .nstiv-profile__download {\n    right: auto;\n    left: 0;\n    background: var(--nstiv-accent-deep) !important;\n    color: #fff !important;\n  }\n\n  .nstiv-content.is-placeholder .nstiv-profile__download {\n    display: none;\n  }\n\n  .nstiv-profile__meta {\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n    min-width: 0;\n    align-items: center;\n    width: 100%;\n  }\n\n  .nstiv .nstiv-profile__name {\n    font-size: clamp(1.1rem, 2.5vw, 1.35rem);\n    font-weight: 800;\n    color: var(--nstiv-ink);\n    word-break: break-word;\n  }\n\n  .nstiv .nstiv-profile__verified {\n    color: var(--nstiv-cool);\n    margin-left: 6px;\n    font-size: 0.85em;\n  }\n\n  .nstiv .nstiv-profile__handle {\n    color: var(--nstiv-cool);\n    font-size: 0.95rem;\n    font-weight: 600;\n  }\n\n  .nstiv .nstiv-profile__bio {\n    color: var(--nstiv-muted);\n    font-size: 0.86rem;\n    line-height: 1.45;\n    max-width: 420px;\n    white-space: pre-line;\n  }\n\n  .nstiv-stats {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 14px;\n    justify-content: center;\n    margin-top: 4px;\n  }\n\n  .nstiv-stats__item {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 2px;\n    min-width: 0;\n    flex: 1 1 auto;\n  }\n\n  .nstiv .nstiv-stats__value {\n    font-weight: 800;\n    font-size: 1rem;\n    color: var(--nstiv-ink);\n  }\n\n  .nstiv .nstiv-stats__label {\n    font-size: 0.75rem;\n    color: var(--nstiv-dim);\n    text-transform: lowercase;\n  }\n\n  .nstiv-tabs {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    margin: 16px 0 14px;\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstiv .nstiv-tabs__btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 7px;\n    flex: 1 1 calc(50% - 6px);\n    min-width: 0 !important;\n    max-width: 100%;\n    min-height: 44px;\n    padding: 10px 12px !important;\n    border: 1px solid var(--nstiv-line) !important;\n    border-radius: 999px;\n    background: rgba(255, 255, 255, 0.06) !important;\n    color: var(--nstiv-muted) !important;\n    font-family: var(--nstiv-font);\n    font-size: 0.86rem !important;\n    font-weight: 700 !important;\n    cursor: pointer;\n    appearance: none;\n    touch-action: manipulation;\n  }\n\n  .nstiv .nstiv-tabs__btn.is-active {\n    background: linear-gradient(135deg, rgba(255, 0, 80, 0.24), rgba(0, 242, 234, 0.16)) !important;\n    border-color: rgba(255, 0, 80, 0.5) !important;\n    color: var(--nstiv-ink) !important;\n  }\n\n  .nstiv-pane {\n    display: none;\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstiv-pane.is-active {\n    display: block;\n  }\n\n  .nstiv-empty {\n    text-align: center;\n    padding: 28px 12px;\n    color: var(--nstiv-dim);\n    font-size: 0.9rem;\n  }\n\n  .nstiv-pic {\n    background: rgba(255, 255, 255, 0.05);\n    border: 1px solid var(--nstiv-line);\n    border-radius: 14px;\n    overflow: hidden;\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    width: 100%;\n    height: 100%;\n    transition: transform 0.2s ease, box-shadow 0.2s ease;\n  }\n\n  .nstiv-pic:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.35);\n  }\n\n  .nstiv-pic__media {\n    position: relative;\n    width: 100%;\n    aspect-ratio: 1 \/ 1;\n    background: rgba(0, 0, 0, 0.25);\n    cursor: pointer;\n    overflow: hidden;\n  }\n\n  .nstiv .nstiv-pic__img {\n    display: block !important;\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    transition: transform 0.25s ease;\n  }\n\n  .nstiv-pic:hover .nstiv-pic__img {\n    transform: scale(1.04);\n  }\n\n  .nstiv-pic__overlay {\n    position: absolute;\n    inset: 0;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    background: rgba(10, 8, 16, 0.45);\n    opacity: 0;\n    transition: opacity 0.2s ease;\n    color: #fff;\n    font-size: 1.25rem;\n    pointer-events: none;\n  }\n\n  .nstiv-pic__badge {\n    position: absolute;\n    top: 10px;\n    right: 10px;\n    z-index: 1;\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n    padding: 5px 9px;\n    border-radius: 999px;\n    background: rgba(12, 4, 28, 0.72);\n    color: #fff;\n    font-size: 0.72rem;\n    font-weight: 800;\n    pointer-events: none;\n  }\n\n  .nstiv-pic__badge--carousel {\n    background: rgba(255, 0, 80, 0.92);\n    color: #fff;\n  }\n\n  .nstiv-pic__meta {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    justify-content: center;\n    color: var(--nstiv-muted);\n    font-size: 0.78rem;\n    font-weight: 700;\n  }\n\n  .nstiv-feature {\n    display: none;\n    margin: 0 0 16px;\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstiv-feature.is-visible {\n    display: block;\n  }\n\n  .nstiv-feature__media {\n    position: relative;\n    width: 100%;\n    min-width: 0;\n    border-radius: 14px;\n    overflow: hidden;\n    background: rgba(0, 0, 0, 0.28);\n    border: 1px solid var(--nstiv-line);\n    cursor: pointer;\n  }\n\n  .nstiv .nstiv-feature__img {\n    width: 100%;\n    max-height: min(72vh, 720px);\n    object-fit: contain;\n    background: rgba(0, 0, 0, 0.2);\n  }\n\n  .nstiv-feature__actions {\n    position: absolute;\n    right: 10px;\n    bottom: 10px;\n    display: flex;\n    gap: 8px;\n  }\n\n  .nstiv .nstiv-feature__btn {\n    width: 44px;\n    height: 44px;\n    min-width: 44px;\n    min-height: 44px;\n    padding: 0 !important;\n    border: 0 !important;\n    border-radius: 50%;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    background: rgba(10, 10, 16, 0.88) !important;\n    color: #fff !important;\n    cursor: pointer;\n    appearance: none;\n    touch-action: manipulation;\n  }\n\n  .nstiv .nstiv-feature__btn--download {\n    background: var(--nstiv-accent-deep) !important;\n  }\n\n  .nstiv-feature__caption {\n    margin-top: 10px;\n    color: var(--nstiv-muted);\n    font-size: 0.9rem;\n    line-height: 1.5;\n    white-space: pre-line;\n  }\n\n  .nstiv-content.is-placeholder .nstiv-feature {\n    display: none !important;\n  }\n\n  .nstiv-pic__media:hover .nstiv-pic__overlay,\n  .nstiv-pic__media:focus .nstiv-pic__overlay,\n  .nstiv-pic__media:focus-within .nstiv-pic__overlay {\n    opacity: 1;\n  }\n\n  .nstiv-pic__body {\n    margin-top: auto;\n    padding: 12px;\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    align-items: center;\n    text-align: center;\n    min-width: 0;\n    width: 100%;\n  }\n\n  .nstiv .nstiv-pic__label {\n    font-size: 0.92rem;\n    font-weight: 700;\n    color: var(--nstiv-ink);\n    word-break: break-word;\n  }\n\n  .nstiv .nstiv-pic__action {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 7px;\n    width: 100%;\n    min-height: 44px;\n    padding: 10px 12px !important;\n    border: 0 !important;\n    border-radius: 10px;\n    background: linear-gradient(135deg, var(--nstiv-cool), var(--nstiv-cool-deep)) !important;\n    color: #042422 !important;\n    font-family: var(--nstiv-font);\n    font-size: 0.86rem !important;\n    font-weight: 700 !important;\n    cursor: pointer;\n    appearance: none;\n    touch-action: manipulation;\n  }\n\n  .nstiv .nstiv-more {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    width: 100%;\n    margin-top: 14px;\n    min-height: 46px;\n    padding: 10px 16px !important;\n    border: 1px solid rgba(0, 242, 234, 0.35) !important;\n    border-radius: 12px;\n    background: rgba(0, 242, 234, 0.1) !important;\n    color: var(--nstiv-cool) !important;\n    font-family: var(--nstiv-font);\n    font-size: 0.9rem !important;\n    font-weight: 700 !important;\n    cursor: pointer;\n  }\n\n  .nstiv .nstiv-more:disabled {\n    opacity: 0.6;\n    cursor: wait;\n  }\n\n  .nstiv-about {\n    padding: 8px 2px 4px;\n  }\n\n  .nstiv .nstiv-about__title {\n    font-size: 1.05rem;\n    font-weight: 800;\n    margin-bottom: 8px;\n  }\n\n  .nstiv .nstiv-about__text {\n    color: var(--nstiv-muted);\n    font-size: 0.9rem;\n    line-height: 1.55;\n    white-space: pre-line;\n    margin-bottom: 14px;\n  }\n\n  .nstiv-about__chips {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n  }\n\n  .nstiv-about__chip {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 7px 11px;\n    border-radius: 999px;\n    background: rgba(255, 255, 255, 0.08);\n    border: 1px solid var(--nstiv-line);\n    color: var(--nstiv-muted);\n    font-size: 0.78rem;\n    font-weight: 700;\n  }\n\n  .nstiv-tab-sk {\n    width: 100%;\n    min-width: 0;\n  }\n\n  .nstiv-tab-sk--about {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    padding: 8px 0;\n  }\n\n  .nstiv-tab-sk__line {\n    height: 14px;\n    width: 100%;\n  }\n\n  .nstiv-tab-sk__line--sm {\n    width: 40%;\n  }\n\n  .nstiv-tab-sk__line--lg {\n    width: 70%;\n    height: 20px;\n  }\n\n  .nstiv-modal {\n    display: none;\n    position: fixed;\n    inset: 0;\n    z-index: 99999;\n    align-items: center;\n    justify-content: center;\n    padding: 16px;\n    background: rgba(6, 4, 12, 0.82);\n    backdrop-filter: blur(6px);\n  }\n\n  .nstiv-modal.is-open {\n    display: flex;\n  }\n\n  .nstiv-modal__dialog {\n    position: relative;\n    width: min(920px, 100%);\n    max-height: min(92vh, 100%);\n    overflow: auto;\n    background: var(--nstiv-panel);\n    border: 1px solid var(--nstiv-line);\n    border-radius: 16px;\n    box-shadow: var(--nstiv-shadow);\n    padding: 16px;\n  }\n\n  .nstiv .nstiv-modal__close {\n    position: absolute;\n    top: 10px;\n    right: 10px;\n    width: 44px;\n    height: 44px;\n    padding: 0 !important;\n    border: 0 !important;\n    border-radius: 50%;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    background: rgba(0, 0, 0, 0.45) !important;\n    color: #fff !important;\n    cursor: pointer;\n    z-index: 2;\n  }\n\n  .nstiv .nstiv-modal__media {\n    width: 100%;\n    max-height: min(78vh, 820px);\n    object-fit: contain;\n    border-radius: 12px;\n    background: rgba(0, 0, 0, 0.25);\n    margin: 0 auto;\n  }\n\n  .nstiv .nstiv-modal__caption {\n    margin-top: 12px;\n    text-align: center;\n    color: var(--nstiv-muted);\n    font-size: 0.9rem;\n    word-break: break-word;\n  }\n\n  .nstiv-dlprog {\n    position: fixed;\n    left: 50%;\n    bottom: max(18px, env(safe-area-inset-bottom, 0px));\n    transform: translate(-50%, 120%);\n    z-index: 1000000;\n    width: min(420px, calc(100vw - 24px));\n    padding: 14px 16px;\n    border-radius: 16px;\n    background: rgba(16, 12, 24, 0.96);\n    border: 1px solid rgba(255, 255, 255, 0.14);\n    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);\n    color: var(--nstiv-ink);\n    opacity: 0;\n    pointer-events: none;\n    transition: transform 0.28s ease, opacity 0.28s ease;\n    backdrop-filter: blur(10px);\n  }\n\n  .nstiv-dlprog.is-open {\n    transform: translate(-50%, 0);\n    opacity: 1;\n    pointer-events: auto;\n  }\n\n  .nstiv-dlprog.is-success {\n    border-color: rgba(0, 242, 234, 0.45);\n  }\n\n  .nstiv-dlprog.is-error {\n    border-color: rgba(255, 107, 122, 0.55);\n  }\n\n  .nstiv-dlprog__head {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 10px;\n    margin-bottom: 10px;\n  }\n\n  .nstiv-dlprog__title {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    min-width: 0;\n    font-size: 0.92rem;\n    font-weight: 700;\n  }\n\n  .nstiv-dlprog__title i {\n    color: var(--nstiv-accent);\n  }\n\n  .nstiv-dlprog__name {\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  .nstiv-dlprog__pct {\n    flex-shrink: 0;\n    font-variant-numeric: tabular-nums;\n    font-weight: 800;\n    color: var(--nstiv-cool);\n  }\n\n  .nstiv-dlprog__track {\n    width: 100%;\n    height: 10px;\n    border-radius: 999px;\n    background: rgba(255, 255, 255, 0.08);\n    overflow: hidden;\n  }\n\n  .nstiv-dlprog__fill {\n    height: 100%;\n    width: 0%;\n    border-radius: inherit;\n    background: linear-gradient(90deg, var(--nstiv-accent), var(--nstiv-cool));\n    box-shadow: 0 0 16px rgba(255, 0, 80, 0.35);\n    transition: width 0.18s ease-out;\n  }\n\n  .nstiv-dlprog.is-indeterminate .nstiv-dlprog__fill {\n    width: 36% !important;\n    animation: nstiv-dlprog-slide 1.1s ease-in-out infinite;\n  }\n\n  @keyframes nstiv-dlprog-slide {\n    0% {\n      transform: translateX(-120%);\n    }\n\n    100% {\n      transform: translateX(320%);\n    }\n  }\n\n  .nstiv-dlprog__meta {\n    display: flex;\n    justify-content: space-between;\n    gap: 10px;\n    margin-top: 8px;\n    font-size: 0.78rem;\n    color: var(--nstiv-muted);\n    font-variant-numeric: tabular-nums;\n  }\n\n  .nstiv-dlprog__status {\n    min-width: 0;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  .nstiv-content.is-placeholder .nstiv-empty,\n  .nstiv-content.is-placeholder .nstiv-empty p {\n    color: rgba(255, 255, 255, 0.9);\n  }\n\n  .nstiv .nstiv-empty {\n    padding: clamp(36px, 6vw, 56px) 20px;\n    border: 1px dashed rgba(255, 255, 255, 0.28);\n    border-radius: 14px;\n    background: transparent;\n    text-align: center;\n  }\n\n  .nstiv .nstiv-empty i {\n    display: block !important;\n    font-size: 2.1rem !important;\n    margin: 0 auto 14px;\n    opacity: 0.85;\n    color: #fff;\n  }\n\n  .nstiv .nstiv-empty p {\n    margin: 0 auto;\n    max-width: 38ch;\n    font-size: 0.95rem;\n    line-height: 1.55;\n  }\n\n  .nstiv-content.is-placeholder .nstiv-profile__bio,\n  .nstiv-content.is-placeholder .nstiv-notice {\n    display: none !important;\n  }\n\n  .nstiv #xrespond-tools-turnstile-host {\n    display: none;\n  }\n\n  .nstiv #xrespond-tools-turnstile-host.is-visible {\n    display: block !important;\n  }\n\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  @media (max-width: 767px) {\n    .nstiv {\n      padding-left: 10px !important;\n      padding-right: 10px !important;\n      --nstiv-cols: 1;\n    }\n\n    .nstiv .nstiv-search__row,\n    .nstiv .nstiv-search__actions {\n      flex-direction: row !important;\n      flex-wrap: wrap !important;\n    }\n\n    .nstiv .nstiv-search__field {\n      flex: 1 1 100% !important;\n      width: 100% !important;\n    }\n\n    .nstiv .nstiv-search__actions .nstiv-btn {\n      flex: 1 1 calc(50% - 4px) !important;\n    }\n  }\n\n  @container nstiv (max-width: 767px) {\n\n    .nstiv-grid,\n    .nstiv-skeleton__grid,\n    .nstiv-tab-sk--pics {\n      grid-template-columns: minmax(0, 1fr) !important;\n    }\n  }\n\n  @container nstiv (min-width: 480px) and (max-width: 1023px) {\n\n    .nstiv-grid,\n    .nstiv-skeleton__grid,\n    .nstiv-tab-sk--pics {\n      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n    }\n  }\n\n  @container nstiv (min-width: 1024px) and (max-width: 1199px) {\n\n    .nstiv-grid,\n    .nstiv-skeleton__grid,\n    .nstiv-tab-sk--pics {\n      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\n    }\n  }\n\n  @container nstiv (min-width: 1200px) {\n\n    .nstiv-grid,\n    .nstiv-skeleton__grid,\n    .nstiv-tab-sk--pics {\n      grid-template-columns: repeat(4, minmax(0, 1fr)) !important;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n\n    .nstiv *,\n    .nstiv *::before,\n    .nstiv *::after {\n      animation-duration: 0.01ms !important;\n      animation-iteration-count: 1 !important;\n      transition-duration: 0.01ms !important;\n    }\n  }\n\n  .nstiv.nstiv--compact {\n    padding: 12px 10px 18px !important;\n    --nstiv-cols: 2 !important;\n  }\n\n  .nstiv.nstiv--compact .nstiv-search__field {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n  }\n\n  .nstiv.nstiv--compact .nstiv-search__actions .nstiv-btn {\n    flex: 1 1 calc(50% - 4px) !important;\n  }\n\n  .nstiv.nstiv--compact .nstiv-grid,\n  .nstiv.nstiv--compact .nstiv-skeleton__grid,\n  .nstiv.nstiv--compact .nstiv-tab-sk--pics {\n    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n  }\n\n  .nstiv.nstiv--narrow {\n    --nstiv-cols: 1 !important;\n  }\n\n  .nstiv.nstiv--narrow .nstiv-grid,\n  .nstiv.nstiv--narrow .nstiv-skeleton__grid,\n  .nstiv.nstiv--narrow .nstiv-tab-sk--pics {\n    grid-template-columns: 1fr !important;\n  }\n\n  .nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-profile,\n  .nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-skeleton__profile {\n    grid-template-columns: var(--nstiv-avatar) minmax(0, 1fr) !important;\n    justify-items: stretch !important;\n    text-align: left !important;\n  }\n\n  .nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-profile__meta,\n  .nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-skeleton__meta {\n    align-items: flex-start !important;\n    text-align: left !important;\n  }\n\n  .nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-stats,\n  .nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-skeleton__stats {\n    justify-content: flex-start !important;\n  }\n\n  .nstiv.nstiv--xlarge:not(.nstiv--compact) {\n    --nstiv-cols: 3;\n  }\n\n  .nstiv.nstiv--xlarge:not(.nstiv--compact) .nstiv-search__row {\n    flex-wrap: wrap !important;\n  }\n\n  .nstiv.nstiv--xlarge:not(.nstiv--compact) .nstiv-search__field {\n    flex: 1 1 200px !important;\n    width: auto !important;\n  }\n\n  .nstiv.nstiv--xlarge:not(.nstiv--compact) .nstiv-search__actions {\n    flex: 0 0 auto !important;\n    width: auto !important;\n  }\n\n  .nstiv.nstiv--xlarge:not(.nstiv--compact) .nstiv-search__actions .nstiv-btn {\n    flex: 0 0 auto !important;\n    padding: 0 18px !important;\n  }\n\n  .nstiv.nstiv--roomy:not(.nstiv--compact) {\n    --nstiv-cols: 4;\n  }\n\n  .nstiv.nstiv--roomy:not(.nstiv--compact) .nstiv-grid,\n  .nstiv.nstiv--roomy:not(.nstiv--compact) .nstiv-skeleton__grid,\n  .nstiv.nstiv--roomy:not(.nstiv--compact) .nstiv-tab-sk--pics {\n    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;\n  }\n\n  \/* Search controls: one row on large screens, wrap on narrow *\/\n  .nstiv .nstiv-search,\n  .nstiv .nstiv-search .nstiv-search__row,\n  .nstiv .nstiv-search .nstiv-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  .nstiv .nstiv-search .nstiv-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  .nstiv .nstiv-search .nstiv-search__field,\n  .nstiv .nstiv-search .nstiv-search__row > .nstiv-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  .nstiv .nstiv-search .nstiv-search__actions,\n  .nstiv .nstiv-search .nstiv-search__row > .nstiv-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  .nstiv .nstiv-search .nstiv-search__row > .nstiv-btn,\n  .nstiv .nstiv-search .nstiv-search__actions .nstiv-btn,\n  .nstiv .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-btn {\n    flex: 0 0 auto !important;\n    width: auto !important;\n    max-width: none !important;\n    min-width: 110px !important;\n  }\n\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__row,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__row {\n    flex-wrap: wrap !important;\n  }\n\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__field,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__field,\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__row > .nstiv-search__field,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__row > .nstiv-search__field {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__actions,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__actions,\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__row > .nstiv-search__actions,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__row > .nstiv-search__actions {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__row > .nstiv-btn,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__row > .nstiv-btn,\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__actions .nstiv-btn,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__actions .nstiv-btn,\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-btn,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-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    .nstiv .nstiv-search .nstiv-search__row {\n      flex-wrap: wrap !important;\n    }\n\n    .nstiv .nstiv-search .nstiv-search__field,\n    .nstiv .nstiv-search .nstiv-search__row > .nstiv-search__field {\n      flex: 1 1 100% !important;\n      width: 100% !important;\n      max-width: 100% !important;\n    }\n\n    .nstiv .nstiv-search .nstiv-search__actions,\n    .nstiv .nstiv-search .nstiv-search__row > .nstiv-search__actions {\n      flex: 1 1 100% !important;\n      width: 100% !important;\n      max-width: 100% !important;\n    }\n\n    .nstiv .nstiv-search .nstiv-search__row > .nstiv-btn,\n    .nstiv .nstiv-search .nstiv-search__actions .nstiv-btn,\n    .nstiv .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-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\/* New Social TikTok Image Viewer \u2014 WordPress-scoped *\/\n.nstiv {\n  container-type: inline-size;\n  container-name: nstiv;\n  --nstiv-ink: #f8fafc;\n  --nstiv-muted: #cbd5e1;\n  --nstiv-dim: #94a3b8;\n  --nstiv-panel: rgba(13, 18, 30, 0.86);\n  --nstiv-panel-soft: rgba(255, 255, 255, 0.08);\n  --nstiv-line: rgba(148, 163, 184, 0.22);\n  --nstiv-line-strong: rgba(255, 255, 255, 0.18);\n  --nstiv-accent: #ff2f72;\n  --nstiv-accent-deep: #e11d62;\n  --nstiv-cool: #37e7df;\n  --nstiv-cool-deep: #0ea5a5;\n  --nstiv-gold: #f8c15f;\n  --nstiv-danger: #ff6b7a;\n  --nstiv-success: #34d399;\n  --nstiv-radius: 22px;\n  --nstiv-radius-sm: 14px;\n  --nstiv-shadow: 0 22px 50px rgba(2, 6, 23, 0.42);\n  --nstiv-shadow-soft: 0 14px 28px rgba(2, 6, 23, 0.24);\n  --nstiv-font: \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif;\n  --nstiv-gap: 16px;\n  --nstiv-pad: 16px;\n  --nstiv-avatar: 92px;\n  --nstiv-cols: 1;\n\n  box-sizing: border-box !important;\n  font-family: var(--nstiv-font);\n  color: var(--nstiv-ink);\n  line-height: 1.5;\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  min-height: 100vh;\n  min-width: 0 !important;\n  margin: 0 auto;\n  padding: clamp(14px, 2.8vw, 32px) max(clamp(8px, 2vw, 16px), env(safe-area-inset-right, 0px)) max(clamp(18px, 3vw, 32px), env(safe-area-inset-bottom, 0px)) max(clamp(8px, 2vw, 16px), env(safe-area-inset-left, 0px));\n  background:\n    radial-gradient(ellipse 70% 50% at 8% 0%, rgba(255, 47, 114, 0.26), transparent 58%),\n    radial-gradient(ellipse 68% 42% at 100% 6%, rgba(55, 231, 223, 0.18), transparent 54%),\n    radial-gradient(ellipse 54% 36% at 50% 100%, rgba(248, 193, 95, 0.08), transparent 70%),\n    linear-gradient(145deg, #060913 0%, #0d1220 38%, #131a2b 100%);\n  border-radius: 0;\n  position: relative;\n  isolation: isolate;\n  text-align: left;\n  overflow-x: hidden !important;\n  overflow-wrap: anywhere;\n  word-wrap: break-word;\n  -webkit-text-size-adjust: 100%;\n  text-size-adjust: 100%;\n}\n\n.nstiv::before {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent 20%, transparent 80%, rgba(255, 255, 255, 0.02)),\n    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.015) 0 1px, transparent 1px 100px);\n  pointer-events: none;\n  z-index: 0;\n}\n\n.nstiv *,\n.nstiv *::before,\n.nstiv *::after {\n  box-sizing: border-box;\n}\n\n.nstiv :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, figcaption, label, span) {\n  margin: 0;\n  padding: 0;\n  border: 0;\n  font-weight: inherit;\n  max-width: 100%;\n  overflow-wrap: anywhere;\n  word-wrap: break-word;\n}\n\n.nstiv :where(ul, ol) {\n  list-style: none;\n}\n\n.nstiv img {\n  max-width: 100%;\n  height: auto;\n  display: block;\n  border: 0;\n}\n\n.nstiv a {\n  color: var(--nstiv-cool);\n  text-decoration: none;\n  transition: color 0.2s ease, opacity 0.2s ease;\n}\n\n.nstiv a:hover {\n  color: #8ff7f0;\n  text-decoration: underline;\n}\n\n.nstiv-shell {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  gap: var(--nstiv-gap);\n  width: 100%;\n  max-width: min(1240px, 100%);\n  margin: 0 auto;\n  min-width: 0;\n  overflow-x: hidden;\n  container-type: inline-size;\n  container-name: nstiv;\n}\n\n.nstiv-hero {\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));\n  padding: clamp(26px, 5vw, 40px) clamp(14px, 3vw, 24px) clamp(18px, 3vw, 22px);\n  text-align: center;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  backdrop-filter: blur(16px);\n  border: 1px solid rgba(255, 255, 255, 0.08);\n  box-shadow: var(--nstiv-shadow-soft);\n  border-radius: calc(var(--nstiv-radius) + 2px);\n  position: relative;\n  overflow: hidden;\n}\n\n.nstiv-hero::after {\n  content: \"\";\n  position: absolute;\n  inset: auto -10% -55% auto;\n  width: 240px;\n  height: 240px;\n  background: radial-gradient(circle, rgba(55, 231, 223, 0.18), transparent 68%);\n  pointer-events: none;\n}\n\n.nstiv-hero__heading {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 14px;\n  flex-wrap: wrap;\n  margin: 0 0 10px;\n  position: relative;\n  z-index: 1;\n}\n\n.nstiv-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:\n    linear-gradient(145deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.04)),\n    linear-gradient(135deg, var(--nstiv-accent), var(--nstiv-cool));\n  color: #fff;\n  box-shadow:\n    0 14px 26px rgba(255, 47, 114, 0.28),\n    inset 0 1px 0 rgba(255, 255, 255, 0.25);\n  flex: 0 0 auto;\n  border: 1px solid rgba(255, 255, 255, 0.12);\n}\n\n.nstiv .nstiv-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}\n\n.nstiv .nstiv-hero__title {\n  font-size: clamp(1.5rem, 3vw, 2rem);\n  font-weight: 800;\n  letter-spacing: -0.03em;\n  line-height: 1.15;\n  margin: 0;\n  color: var(--nstiv-ink);\n}\n\n.nstiv-hero__title-mark {\n  background: linear-gradient(135deg, #fff 0%, #ffd6e4 18%, var(--nstiv-accent) 55%, var(--nstiv-cool) 100%);\n  -webkit-background-clip: text;\n  background-clip: text;\n  color: transparent;\n  position: relative;\n  display: inline-block;\n}\n\n.nstiv-hero__title-mark::after {\n  content: \"\";\n  position: absolute;\n  left: 2px;\n  right: 2px;\n  bottom: -4px;\n  height: 4px;\n  border-radius: 999px;\n  background: linear-gradient(90deg, var(--nstiv-accent), var(--nstiv-cool));\n  box-shadow: 0 0 16px rgba(55, 231, 223, 0.35);\n}\n\n.nstiv .nstiv-hero__lead {\n  max-width: 620px;\n  margin: 0 auto 18px;\n  color: var(--nstiv-muted);\n  font-size: clamp(0.93rem, 2.4vw, 1rem);\n  line-height: 1.65;\n  padding: 0 2px;\n  position: relative;\n  z-index: 1;\n}\n\n.nstiv-search {\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  gap: 12px;\n  text-align: left;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  box-sizing: border-box;\n  margin-top: 6px;\n  padding: clamp(14px, 2vw, 18px);\n  background: linear-gradient(180deg, rgba(10, 15, 28, 0.76), rgba(11, 16, 28, 0.58));\n  border: 1px solid rgba(255, 255, 255, 0.09);\n  border-radius: 18px;\n  box-shadow: var(--nstiv-shadow);\n  backdrop-filter: blur(14px);\n}\n\n.nstiv .nstiv-search__label {\n  display: block;\n  font-size: 0.9rem;\n  font-weight: 700;\n  color: #d7e2f0;\n  line-height: 1.3;\n  letter-spacing: 0.01em;\n}\n\n.nstiv-search__row {\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  gap: 10px;\n  align-items: stretch;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n}\n\n.nstiv-search__row > .nstiv-search__field {\n  flex: 1 1 220px;\n  width: auto;\n  max-width: none;\n}\n\n.nstiv-search__row > .nstiv-search__actions {\n  flex: 1 1 220px;\n  display: flex !important;\n  flex-direction: row !important;\n  flex-wrap: nowrap !important;\n  gap: 10px !important;\n  min-width: 0;\n}\n\n.nstiv .nstiv-search__field {\n  flex: 1 1 auto;\n  min-width: 0 !important;\n  height: 52px;\n  min-height: 52px;\n  padding: 0 16px !important;\n  border: 1px solid rgba(255, 255, 255, 0.12) !important;\n  border-radius: 14px;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)) !important;\n  color: var(--nstiv-ink) !important;\n  font-family: var(--nstiv-font);\n  font-size: 16px !important;\n  font-weight: 500;\n  line-height: 52px;\n  outline: none;\n  width: 100%;\n  max-width: 100% !important;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);\n  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, transform 0.2s ease;\n}\n\n.nstiv .nstiv-search__field:hover {\n  border-color: rgba(255, 255, 255, 0.18) !important;\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04)) !important;\n}\n\n.nstiv .nstiv-search__field:focus {\n  border-color: rgba(55, 231, 223, 0.65) !important;\n  box-shadow:\n    0 0 0 4px rgba(55, 231, 223, 0.14),\n    0 12px 24px rgba(2, 6, 23, 0.18);\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.11), rgba(255, 255, 255, 0.05)) !important;\n}\n\n.nstiv .nstiv-search__field::placeholder {\n  color: #8694ab;\n}\n\n.nstiv-search__actions {\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  gap: 10px;\n  width: 100%;\n  min-width: 0;\n  align-items: stretch;\n}\n\n.nstiv .nstiv-btn {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n  flex: 1 1 calc(50% - 5px);\n  width: auto;\n  height: 52px;\n  min-height: 52px;\n  min-width: 0;\n  max-width: 100%;\n  padding: 0 18px !important;\n  border: 0 !important;\n  border-radius: 14px;\n  font-family: var(--nstiv-font);\n  font-size: 0.93rem !important;\n  font-weight: 800 !important;\n  line-height: 1;\n  cursor: pointer;\n  transition: transform 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease, filter 0.22s ease;\n  white-space: nowrap;\n  text-align: center;\n  user-select: none;\n  appearance: none;\n  -webkit-appearance: none;\n  touch-action: manipulation;\n  overflow: hidden;\n  position: relative;\n}\n\n.nstiv .nstiv-btn::before,\n.nstiv .nstiv-tabs__btn::before,\n.nstiv .nstiv-pic__action::before,\n.nstiv .nstiv-feature__btn::before,\n.nstiv .nstiv-profile__zoom::before,\n.nstiv .nstiv-more::before,\n.nstiv .nstiv-modal__close::before {\n  content: \"\";\n  position: absolute;\n  inset: 1px;\n  border-radius: inherit;\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0));\n  opacity: 0.6;\n  pointer-events: none;\n}\n\n.nstiv .nstiv-btn i,\n.nstiv .nstiv-tabs__btn i,\n.nstiv .nstiv-pic__action i,\n.nstiv .nstiv-profile__zoom i,\n.nstiv .nstiv-modal__close i,\n.nstiv .nstiv-notice i,\n.nstiv .nstiv-more i,\n.nstiv i.fa-solid,\n.nstiv i.fa-brands,\n.nstiv i.fas,\n.nstiv .fa-circle-check,\n.nstiv .fa-circle-info,\n.nstiv .fa-download,\n.nstiv .fa-expand,\n.nstiv .fa-images,\n.nstiv .fa-paste,\n.nstiv .fa-tiktok,\n.nstiv .fa-xmark {\n  --fa-display: inline-block;\n  display: inline-block !important;\n  line-height: 1 !important;\n  font-size: 0.94em;\n  width: 1.15em;\n  text-align: center;\n  vertical-align: middle;\n}\n\n.nstiv .fa-circle-check {\n  color: var(--nstiv-success);\n}\n\n.nstiv .fa-circle-info {\n  color: var(--nstiv-cool);\n}\n\n.nstiv .fa-download,\n.nstiv .fa-expand,\n.nstiv .fa-images,\n.nstiv .fa-paste,\n.nstiv .fa-tiktok,\n.nstiv .fa-xmark {\n  color: currentColor;\n}\n\n.nstiv .nstiv-empty i {\n  display: block !important;\n  font-size: 2rem !important;\n  width: auto;\n  margin: 0 auto 10px;\n  opacity: 0.4;\n  line-height: 1 !important;\n}\n\n.nstiv .nstiv-btn:hover {\n  transform: translateY(-2px);\n  filter: brightness(1.03);\n}\n\n.nstiv .nstiv-btn:active {\n  transform: translateY(0);\n  opacity: 0.96;\n}\n\n.nstiv .nstiv-btn:focus-visible,\n.nstiv .nstiv-tabs__btn:focus-visible,\n.nstiv .nstiv-pic__action:focus-visible,\n.nstiv .nstiv-feature__btn:focus-visible,\n.nstiv .nstiv-profile__zoom:focus-visible,\n.nstiv .nstiv-more:focus-visible,\n.nstiv .nstiv-modal__close:focus-visible {\n  outline: none;\n  box-shadow: 0 0 0 4px rgba(55, 231, 223, 0.18);\n}\n\n.nstiv .nstiv-btn:disabled {\n  opacity: 0.55;\n  cursor: wait;\n  transform: none;\n  filter: grayscale(0.08);\n}\n\n.nstiv .nstiv-btn--paste {\n  background: linear-gradient(135deg, #7df7f1, var(--nstiv-cool) 45%, var(--nstiv-cool-deep)) !important;\n  color: #062726 !important;\n  box-shadow: 0 10px 24px rgba(55, 231, 223, 0.28);\n}\n\n.nstiv .nstiv-btn--view {\n  background: linear-gradient(135deg, #ff7aa9, var(--nstiv-accent) 42%, var(--nstiv-accent-deep)) !important;\n  color: #fff !important;\n  box-shadow: 0 14px 30px rgba(255, 47, 114, 0.3);\n}\n\n.nstiv .nstiv-search__hint {\n  font-size: 0.82rem;\n  color: var(--nstiv-dim);\n  line-height: 1.45;\n}\n\n.nstiv .nstiv-alert {\n  display: none;\n  padding: 12px 14px;\n  border-radius: 14px;\n  background: linear-gradient(180deg, rgba(255, 107, 122, 0.15), rgba(255, 107, 122, 0.08));\n  border: 1px solid rgba(255, 107, 122, 0.34);\n  color: #ffe1e5;\n  font-size: 0.88rem;\n  line-height: 1.45;\n  word-break: break-word;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);\n}\n\n.nstiv .nstiv-alert.is-visible {\n  display: block;\n}\n\n.nstiv .nstiv-notice {\n  display: none;\n  margin-top: 10px;\n  padding: 12px 14px;\n  border-radius: 14px;\n  background: linear-gradient(180deg, rgba(55, 231, 223, 0.12), rgba(55, 231, 223, 0.06));\n  border: 1px solid rgba(55, 231, 223, 0.24);\n  color: #d9fffc;\n  font-size: 0.84rem;\n  line-height: 1.45;\n  word-break: break-word;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);\n}\n\n.nstiv .nstiv-notice.is-visible {\n  display: flex;\n  align-items: flex-start;\n  gap: 8px;\n}\n\n.nstiv .nstiv-skeleton {\n  display: none;\n  margin: 0;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n}\n\n.nstiv .nstiv-skeleton.is-visible {\n  display: block;\n}\n\n.nstiv .nstiv-content.is-hidden {\n  display: none !important;\n}\n\n@keyframes nstiv-shimmer {\n  0% {\n    background-position: -400px 0;\n  }\n\n  100% {\n    background-position: 400px 0;\n  }\n}\n\n.nstiv .nstiv-sk {\n  background: linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.16) 45%, rgba(255, 255, 255, 0.06) 100%);\n  background-size: 800px 100%;\n  animation: nstiv-shimmer 1.35s ease-in-out infinite;\n  border-radius: 10px;\n}\n\n.nstiv-skeleton__panel {\n  background: var(--nstiv-panel);\n  border: 1px solid var(--nstiv-line);\n  border-radius: var(--nstiv-radius);\n  box-shadow: var(--nstiv-shadow);\n  padding: 20px;\n  width: 100%;\n  min-width: 0;\n  backdrop-filter: blur(12px);\n}\n\n.nstiv-skeleton__profile {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 16px;\n  align-items: center;\n  justify-items: center;\n  padding: 18px;\n  border-radius: 18px;\n  background: linear-gradient(160deg, rgba(255, 47, 114, 0.12), rgba(55, 231, 223, 0.08));\n  border: 1px solid rgba(255, 255, 255, 0.08);\n  text-align: center;\n  margin-bottom: 18px;\n}\n\n.nstiv .nstiv-skeleton__avatar {\n  width: var(--nstiv-avatar);\n  height: var(--nstiv-avatar);\n  border-radius: 50% !important;\n  border: 3px solid rgba(255, 255, 255, 0.14);\n}\n\n.nstiv-skeleton__meta {\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n  min-width: 0;\n  align-items: center;\n  width: 100%;\n}\n\n.nstiv-skeleton__line {\n  height: 16px;\n}\n\n.nstiv-skeleton__line--lg {\n  width: min(220px, 70%);\n  height: 22px;\n}\n\n.nstiv-skeleton__line--md {\n  width: min(150px, 50%);\n  height: 14px;\n}\n\n.nstiv-skeleton__stats {\n  display: flex;\n  gap: 14px;\n  justify-content: center;\n  flex-wrap: wrap;\n}\n\n.nstiv-skeleton__stat {\n  width: 68px;\n  height: 40px;\n  border-radius: 10px;\n}\n\n.nstiv-skeleton__tabs {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  gap: 10px;\n  margin: 0 0 16px;\n  width: 100%;\n}\n\n.nstiv-skeleton__tab {\n  flex: 1 1 calc(50% - 10px);\n  min-width: 0;\n  height: 42px;\n  border-radius: 999px;\n}\n\n.nstiv-skeleton__grid,\n.nstiv-tab-sk--pics,\n.nstiv-grid {\n  display: grid;\n  grid-template-columns: repeat(var(--nstiv-cols, 1), minmax(0, 1fr));\n  gap: 16px;\n  width: 100%;\n  min-width: 0;\n}\n\n.nstiv-skeleton__card,\n.nstiv-tab-sk__card {\n  border-radius: 16px;\n  overflow: hidden;\n  border: 1px solid var(--nstiv-line);\n  background: rgba(255, 255, 255, 0.04);\n}\n\n.nstiv-skeleton__thumb,\n.nstiv-tab-sk__thumb {\n  aspect-ratio: 1 \/ 1;\n}\n\n.nstiv-skeleton__foot,\n.nstiv-tab-sk__foot {\n  height: 72px;\n  margin: 12px;\n  border-radius: 10px;\n}\n\n.nstiv-result {\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n}\n\n.nstiv-panel {\n  background: linear-gradient(180deg, rgba(15, 21, 36, 0.88), rgba(14, 19, 32, 0.78));\n  border: 1px solid var(--nstiv-line);\n  border-radius: var(--nstiv-radius);\n  box-shadow: var(--nstiv-shadow);\n  padding: clamp(14px, 2vw, 20px);\n  width: 100%;\n  min-width: 0;\n  backdrop-filter: blur(14px);\n}\n\n.nstiv-profile {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 16px;\n  align-items: center;\n  justify-items: center;\n  padding: 18px;\n  border-radius: 18px;\n  background: linear-gradient(160deg, rgba(255, 47, 114, 0.11), rgba(55, 231, 223, 0.08));\n  border: 1px solid rgba(255, 255, 255, 0.08);\n  text-align: center;\n  width: 100%;\n  min-width: 0;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);\n}\n\n.nstiv-profile__avatar-wrap {\n  position: relative;\n  width: var(--nstiv-avatar);\n  height: var(--nstiv-avatar);\n  max-width: 100%;\n  flex-shrink: 0;\n}\n\n.nstiv-profile__ring {\n  width: 100%;\n  height: 100%;\n  border-radius: 50%;\n  padding: 4px;\n  background: linear-gradient(135deg, var(--nstiv-accent), var(--nstiv-cool), var(--nstiv-gold));\n  box-shadow: 0 18px 32px rgba(10, 15, 28, 0.28);\n}\n\n.nstiv .nstiv-profile__img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  border-radius: 50%;\n  border: 2px solid #161823;\n  background: rgba(0, 0, 0, 0.2);\n}\n\n.nstiv .nstiv-profile__zoom {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  width: 36px;\n  height: 36px;\n  min-width: 36px;\n  min-height: 36px;\n  padding: 0 !important;\n  border: 0 !important;\n  border-radius: 50%;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  background: rgba(8, 12, 22, 0.9) !important;\n  color: var(--nstiv-ink) !important;\n  cursor: pointer;\n  appearance: none;\n  touch-action: manipulation;\n  box-shadow: 0 10px 18px rgba(2, 6, 23, 0.28);\n  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;\n}\n\n.nstiv .nstiv-profile__zoom:hover,\n.nstiv .nstiv-feature__btn:hover,\n.nstiv .nstiv-modal__close:hover {\n  transform: translateY(-1px);\n  box-shadow: 0 14px 22px rgba(2, 6, 23, 0.34);\n}\n\n.nstiv .nstiv-profile__download {\n  right: auto;\n  left: 0;\n  background: linear-gradient(135deg, var(--nstiv-accent), var(--nstiv-accent-deep)) !important;\n  color: #fff !important;\n}\n\n.nstiv-content.is-placeholder .nstiv-profile__download {\n  display: none;\n}\n\n.nstiv-profile__meta {\n  display: flex;\n  flex-direction: column;\n  gap: 6px;\n  min-width: 0;\n  align-items: center;\n  width: 100%;\n}\n\n.nstiv .nstiv-profile__name {\n  font-size: clamp(1.15rem, 2.5vw, 1.45rem);\n  font-weight: 800;\n  color: var(--nstiv-ink);\n  word-break: break-word;\n  letter-spacing: -0.02em;\n}\n\n.nstiv .nstiv-profile__verified {\n  color: var(--nstiv-cool);\n  margin-left: 6px;\n  font-size: 0.85em;\n}\n\n.nstiv .nstiv-profile__handle {\n  color: #8ff7f0;\n  font-size: 0.96rem;\n  font-weight: 700;\n}\n\n.nstiv .nstiv-profile__bio {\n  color: var(--nstiv-muted);\n  font-size: 0.9rem;\n  line-height: 1.55;\n  max-width: 480px;\n  white-space: pre-line;\n}\n\n.nstiv-stats {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 14px;\n  justify-content: center;\n  margin-top: 6px;\n  width: 100%;\n}\n\n.nstiv-stats__item {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 3px;\n  min-width: 0;\n  flex: 1 1 92px;\n  padding: 12px 10px;\n  border-radius: 14px;\n  background: rgba(255, 255, 255, 0.05);\n  border: 1px solid rgba(255, 255, 255, 0.06);\n}\n\n.nstiv .nstiv-stats__value {\n  font-weight: 800;\n  font-size: 1.02rem;\n  color: var(--nstiv-ink);\n}\n\n.nstiv .nstiv-stats__label {\n  font-size: 0.75rem;\n  color: var(--nstiv-dim);\n  text-transform: lowercase;\n}\n\n.nstiv-tabs {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  margin: 18px 0 16px;\n  width: 100%;\n  min-width: 0;\n}\n\n.nstiv .nstiv-tabs__btn {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 7px;\n  flex: 1 1 calc(50% - 6px);\n  min-width: 0 !important;\n  max-width: 100%;\n  min-height: 46px;\n  padding: 10px 14px !important;\n  border: 1px solid rgba(255, 255, 255, 0.09) !important;\n  border-radius: 999px;\n  background: rgba(255, 255, 255, 0.06) !important;\n  color: var(--nstiv-muted) !important;\n  font-family: var(--nstiv-font);\n  font-size: 0.88rem !important;\n  font-weight: 800 !important;\n  cursor: pointer;\n  appearance: none;\n  touch-action: manipulation;\n  position: relative;\n  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, color 0.2s ease, background 0.2s ease;\n}\n\n.nstiv .nstiv-tabs__btn:hover {\n  transform: translateY(-1px);\n  border-color: rgba(255, 255, 255, 0.16) !important;\n  color: var(--nstiv-ink) !important;\n}\n\n.nstiv .nstiv-tabs__btn.is-active {\n  background: linear-gradient(135deg, rgba(255, 47, 114, 0.22), rgba(55, 231, 223, 0.16)) !important;\n  border-color: rgba(255, 255, 255, 0.16) !important;\n  color: var(--nstiv-ink) !important;\n  box-shadow: 0 12px 26px rgba(2, 6, 23, 0.18);\n}\n\n.nstiv-pane {\n  display: none;\n  width: 100%;\n  min-width: 0;\n}\n\n.nstiv-pane.is-active {\n  display: block;\n}\n\n.nstiv-empty {\n  text-align: center;\n  padding: 28px 12px;\n  color: var(--nstiv-dim);\n  font-size: 0.9rem;\n}\n\n.nstiv-pic {\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03));\n  border: 1px solid var(--nstiv-line);\n  border-radius: 18px;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n  width: 100%;\n  height: 100%;\n  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;\n  box-shadow: 0 10px 24px rgba(2, 6, 23, 0.16);\n}\n\n.nstiv-pic:hover {\n  transform: translateY(-4px);\n  box-shadow: 0 20px 34px rgba(2, 6, 23, 0.28);\n  border-color: rgba(255, 255, 255, 0.14);\n}\n\n.nstiv-pic__media {\n  position: relative;\n  width: 100%;\n  aspect-ratio: 1 \/ 1;\n  background: rgba(0, 0, 0, 0.25);\n  cursor: pointer;\n  overflow: hidden;\n}\n\n.nstiv .nstiv-pic__img {\n  display: block !important;\n  width: 100% !important;\n  height: 100% !important;\n  object-fit: cover !important;\n  transition: transform 0.32s ease;\n}\n\n.nstiv-pic:hover .nstiv-pic__img {\n  transform: scale(1.05);\n}\n\n.nstiv-pic__overlay {\n  position: absolute;\n  inset: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background:\n    radial-gradient(circle at center, rgba(55, 231, 223, 0.16), transparent 38%),\n    rgba(7, 10, 18, 0.54);\n  opacity: 0;\n  transition: opacity 0.24s ease;\n  color: #fff;\n  font-size: 1.3rem;\n  pointer-events: none;\n}\n\n.nstiv-pic__badge {\n  position: absolute;\n  top: 12px;\n  right: 12px;\n  z-index: 1;\n  display: inline-flex;\n  align-items: center;\n  gap: 5px;\n  padding: 6px 10px;\n  border-radius: 999px;\n  background: rgba(11, 16, 28, 0.72);\n  color: #fff;\n  font-size: 0.72rem;\n  font-weight: 800;\n  pointer-events: none;\n  border: 1px solid rgba(255, 255, 255, 0.1);\n  backdrop-filter: blur(8px);\n}\n\n.nstiv-pic__badge--carousel {\n  background: linear-gradient(135deg, rgba(255, 47, 114, 0.92), rgba(225, 29, 98, 0.92));\n  color: #fff;\n}\n\n.nstiv-pic__meta {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  justify-content: center;\n  color: var(--nstiv-muted);\n  font-size: 0.78rem;\n  font-weight: 700;\n}\n\n.nstiv-feature {\n  display: none;\n  margin: 0 0 18px;\n  width: 100%;\n  min-width: 0;\n}\n\n.nstiv-feature.is-visible {\n  display: block;\n}\n\n.nstiv-feature__media {\n  position: relative;\n  width: 100%;\n  min-width: 0;\n  border-radius: 18px;\n  overflow: hidden;\n  background: rgba(0, 0, 0, 0.28);\n  border: 1px solid var(--nstiv-line);\n  cursor: pointer;\n  box-shadow: var(--nstiv-shadow-soft);\n}\n\n.nstiv .nstiv-feature__img {\n  width: 100%;\n  max-height: min(72vh, 720px);\n  object-fit: contain;\n  background: rgba(0, 0, 0, 0.2);\n}\n\n.nstiv-feature__actions {\n  position: absolute;\n  right: 12px;\n  bottom: 12px;\n  display: flex;\n  gap: 10px;\n}\n\n.nstiv .nstiv-feature__btn {\n  width: 46px;\n  height: 46px;\n  min-width: 46px;\n  min-height: 46px;\n  padding: 0 !important;\n  border: 0 !important;\n  border-radius: 50%;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  background: rgba(8, 12, 22, 0.88) !important;\n  color: #fff !important;\n  cursor: pointer;\n  appearance: none;\n  touch-action: manipulation;\n  box-shadow: 0 12px 22px rgba(2, 6, 23, 0.28);\n  transition: transform 0.2s ease, box-shadow 0.2s ease;\n  position: relative;\n}\n\n.nstiv .nstiv-feature__btn--download {\n  background: linear-gradient(135deg, var(--nstiv-accent), var(--nstiv-accent-deep)) !important;\n}\n\n.nstiv-feature__caption {\n  margin-top: 12px;\n  color: var(--nstiv-muted);\n  font-size: 0.92rem;\n  line-height: 1.55;\n  white-space: pre-line;\n}\n\n.nstiv-content.is-placeholder .nstiv-feature {\n  display: none !important;\n}\n\n.nstiv-pic__media:hover .nstiv-pic__overlay,\n.nstiv-pic__media:focus .nstiv-pic__overlay,\n.nstiv-pic__media:focus-within .nstiv-pic__overlay {\n  opacity: 1;\n}\n\n.nstiv-pic__body {\n  margin-top: auto;\n  padding: 14px;\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n  align-items: center;\n  text-align: center;\n  min-width: 0;\n  width: 100%;\n}\n\n.nstiv .nstiv-pic__label {\n  font-size: 0.94rem;\n  font-weight: 700;\n  color: var(--nstiv-ink);\n  word-break: break-word;\n}\n\n.nstiv .nstiv-pic__action {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 7px;\n  width: 100%;\n  min-height: 46px;\n  padding: 10px 12px !important;\n  border: 0 !important;\n  border-radius: 12px;\n  background: linear-gradient(135deg, #7df7f1, var(--nstiv-cool) 46%, var(--nstiv-cool-deep)) !important;\n  color: #062726 !important;\n  font-family: var(--nstiv-font);\n  font-size: 0.87rem !important;\n  font-weight: 800 !important;\n  cursor: pointer;\n  appearance: none;\n  touch-action: manipulation;\n  position: relative;\n  box-shadow: 0 12px 24px rgba(55, 231, 223, 0.22);\n  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;\n}\n\n.nstiv .nstiv-pic__action:hover,\n.nstiv .nstiv-more:hover {\n  transform: translateY(-1px);\n  filter: brightness(1.03);\n}\n\n.nstiv .nstiv-more {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n  width: 100%;\n  margin-top: 16px;\n  min-height: 48px;\n  padding: 10px 16px !important;\n  border: 1px solid rgba(55, 231, 223, 0.28) !important;\n  border-radius: 14px;\n  background: linear-gradient(180deg, rgba(55, 231, 223, 0.12), rgba(55, 231, 223, 0.08)) !important;\n  color: #8ff7f0 !important;\n  font-family: var(--nstiv-font);\n  font-size: 0.92rem !important;\n  font-weight: 800 !important;\n  cursor: pointer;\n  position: relative;\n  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;\n}\n\n.nstiv .nstiv-more:disabled {\n  opacity: 0.6;\n  cursor: wait;\n}\n\n.nstiv-about {\n  padding: 10px 2px 4px;\n}\n\n.nstiv .nstiv-about__title {\n  font-size: 1.08rem;\n  font-weight: 800;\n  margin-bottom: 10px;\n  letter-spacing: -0.01em;\n}\n\n.nstiv .nstiv-about__text {\n  color: var(--nstiv-muted);\n  font-size: 0.92rem;\n  line-height: 1.65;\n  white-space: pre-line;\n  margin-bottom: 16px;\n}\n\n.nstiv-about__chips {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n}\n\n.nstiv-about__chip {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  padding: 8px 12px;\n  border-radius: 999px;\n  background: rgba(255, 255, 255, 0.07);\n  border: 1px solid var(--nstiv-line);\n  color: var(--nstiv-muted);\n  font-size: 0.8rem;\n  font-weight: 700;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);\n}\n\n.nstiv-tab-sk {\n  width: 100%;\n  min-width: 0;\n}\n\n.nstiv-tab-sk--about {\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n  padding: 8px 0;\n}\n\n.nstiv-tab-sk__line {\n  height: 14px;\n  width: 100%;\n}\n\n.nstiv-tab-sk__line--sm {\n  width: 40%;\n}\n\n.nstiv-tab-sk__line--lg {\n  width: 70%;\n  height: 20px;\n}\n\n.nstiv-modal {\n  display: none;\n  position: fixed;\n  inset: 0;\n  z-index: 99999;\n  align-items: center;\n  justify-content: center;\n  padding: 16px;\n  background: rgba(6, 8, 16, 0.8);\n  backdrop-filter: blur(10px);\n}\n\n.nstiv-modal.is-open {\n  display: flex;\n}\n\n.nstiv-modal__dialog {\n  position: relative;\n  width: min(920px, 100%);\n  max-height: min(92vh, 100%);\n  overflow: auto;\n  background: linear-gradient(180deg, rgba(15, 21, 36, 0.95), rgba(12, 17, 29, 0.92));\n  border: 1px solid rgba(255, 255, 255, 0.1);\n  border-radius: 20px;\n  box-shadow: 0 28px 60px rgba(2, 6, 23, 0.5);\n  padding: 18px;\n}\n\n.nstiv .nstiv-modal__close {\n  position: absolute;\n  top: 12px;\n  right: 12px;\n  width: 44px;\n  height: 44px;\n  padding: 0 !important;\n  border: 0 !important;\n  border-radius: 50%;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  background: rgba(0, 0, 0, 0.45) !important;\n  color: #fff !important;\n  cursor: pointer;\n  z-index: 2;\n  position: absolute;\n}\n\n.nstiv .nstiv-modal__media {\n  width: 100%;\n  max-height: min(78vh, 820px);\n  object-fit: contain;\n  border-radius: 14px;\n  background: rgba(0, 0, 0, 0.25);\n  margin: 0 auto;\n}\n\n.nstiv .nstiv-modal__caption {\n  margin-top: 14px;\n  text-align: center;\n  color: var(--nstiv-muted);\n  font-size: 0.92rem;\n  line-height: 1.5;\n  word-break: break-word;\n}\n\n.nstiv-dlprog {\n  position: fixed;\n  left: 50%;\n  bottom: max(18px, env(safe-area-inset-bottom, 0px));\n  transform: translate(-50%, 120%);\n  z-index: 1000000;\n  width: min(420px, calc(100vw - 24px));\n  padding: 16px 16px;\n  border-radius: 18px;\n  background: rgba(11, 16, 28, 0.94);\n  border: 1px solid rgba(255, 255, 255, 0.12);\n  box-shadow: 0 20px 52px rgba(2, 6, 23, 0.46);\n  color: var(--nstiv-ink);\n  opacity: 0;\n  pointer-events: none;\n  transition: transform 0.28s ease, opacity 0.28s ease;\n  backdrop-filter: blur(12px);\n}\n\n.nstiv-dlprog.is-open {\n  transform: translate(-50%, 0);\n  opacity: 1;\n  pointer-events: auto;\n}\n\n.nstiv-dlprog.is-success {\n  border-color: rgba(52, 211, 153, 0.42);\n}\n\n.nstiv-dlprog.is-error {\n  border-color: rgba(255, 107, 122, 0.55);\n}\n\n.nstiv-dlprog__head {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 10px;\n  margin-bottom: 10px;\n}\n\n.nstiv-dlprog__title {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  min-width: 0;\n  font-size: 0.92rem;\n  font-weight: 700;\n}\n\n.nstiv-dlprog__title i {\n  color: var(--nstiv-accent);\n}\n\n.nstiv-dlprog__name {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.nstiv-dlprog__pct {\n  flex-shrink: 0;\n  font-variant-numeric: tabular-nums;\n  font-weight: 800;\n  color: #8ff7f0;\n}\n\n.nstiv-dlprog__track {\n  width: 100%;\n  height: 10px;\n  border-radius: 999px;\n  background: rgba(255, 255, 255, 0.08);\n  overflow: hidden;\n}\n\n.nstiv-dlprog__fill {\n  height: 100%;\n  width: 0%;\n  border-radius: inherit;\n  background: linear-gradient(90deg, var(--nstiv-accent), var(--nstiv-cool));\n  box-shadow: 0 0 16px rgba(255, 47, 114, 0.35);\n  transition: width 0.18s ease-out;\n}\n\n.nstiv-dlprog.is-indeterminate .nstiv-dlprog__fill {\n  width: 36% !important;\n  animation: nstiv-dlprog-slide 1.1s ease-in-out infinite;\n}\n\n@keyframes nstiv-dlprog-slide {\n  0% {\n    transform: translateX(-120%);\n  }\n\n  100% {\n    transform: translateX(320%);\n  }\n}\n\n.nstiv-dlprog__meta {\n  display: flex;\n  justify-content: space-between;\n  gap: 10px;\n  margin-top: 8px;\n  font-size: 0.79rem;\n  color: var(--nstiv-muted);\n  font-variant-numeric: tabular-nums;\n}\n\n.nstiv-dlprog__status {\n  min-width: 0;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.nstiv-content.is-placeholder .nstiv-empty,\n.nstiv-content.is-placeholder .nstiv-empty p {\n  color: rgba(255, 255, 255, 0.92);\n}\n\n.nstiv .nstiv-empty {\n  padding: clamp(36px, 6vw, 56px) 20px;\n  border: 1px dashed rgba(255, 255, 255, 0.22);\n  border-radius: 18px;\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));\n  text-align: center;\n  backdrop-filter: blur(8px);\n}\n\n.nstiv .nstiv-empty i {\n  display: block !important;\n  font-size: 2.1rem !important;\n  margin: 0 auto 14px;\n  opacity: 0.9;\n  color: #fff;\n}\n\n.nstiv .nstiv-empty p {\n  margin: 0 auto;\n  max-width: 38ch;\n  font-size: 0.95rem;\n  line-height: 1.6;\n}\n\n.nstiv-content.is-placeholder .nstiv-profile__bio,\n.nstiv-content.is-placeholder .nstiv-notice {\n  display: none !important;\n}\n\n.nstiv #xrespond-tools-turnstile-host {\n  display: none;\n}\n\n.nstiv #xrespond-tools-turnstile-host.is-visible {\n  display: block !important;\n}\n\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.nstiv .xrespond-ts-widget,\n.nstiv.xrespond-ts-widget {\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  padding: 12px 14px;\n  border-radius: 16px;\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03));\n  border: 1px solid rgba(255, 255, 255, 0.09);\n  color: var(--nstiv-muted);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);\n}\n\n.nstiv .xrespond-ts-label,\n.nstiv.xrespond-ts-label {\n  display: block;\n  margin-bottom: 8px;\n  color: #dbe7f4;\n  font-size: 0.84rem;\n  font-weight: 700;\n  line-height: 1.4;\n}\n\n.nstiv .xrespond-ts-error,\n.nstiv.xrespond-ts-error {\n  margin-top: 10px;\n  padding: 10px 12px;\n  border-radius: 12px;\n  background: rgba(255, 107, 122, 0.12);\n  border: 1px solid rgba(255, 107, 122, 0.28);\n  color: #ffd8dd;\n  font-size: 0.82rem;\n  line-height: 1.45;\n}\n\n@media (max-width: 767px) {\n  .nstiv {\n    padding-left: 10px !important;\n    padding-right: 10px !important;\n    --nstiv-cols: 1;\n    --nstiv-gap: 14px;\n    --nstiv-avatar: 82px;\n  }\n\n  .nstiv-hero {\n    padding: 22px 14px 16px;\n    border-radius: 20px;\n  }\n\n  .nstiv-search {\n    padding: 14px;\n    border-radius: 16px;\n  }\n\n  .nstiv .nstiv-search__row,\n  .nstiv .nstiv-search__actions {\n    flex-direction: row !important;\n    flex-wrap: wrap !important;\n  }\n\n  .nstiv .nstiv-search__field {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    height: 50px;\n    min-height: 50px;\n    line-height: 50px;\n  }\n\n  .nstiv .nstiv-search__actions .nstiv-btn {\n    flex: 1 1 calc(50% - 5px) !important;\n  }\n\n  .nstiv .nstiv-btn,\n  .nstiv .nstiv-more,\n  .nstiv .nstiv-pic__action {\n    min-height: 50px;\n  }\n\n  .nstiv-profile,\n  .nstiv-skeleton__profile,\n  .nstiv-panel {\n    border-radius: 18px;\n  }\n\n  .nstiv-tabs {\n    gap: 8px;\n  }\n\n  .nstiv .nstiv-tabs__btn {\n    min-height: 44px;\n    font-size: 0.84rem !important;\n  }\n\n  .nstiv-pic__body {\n    padding: 12px;\n  }\n\n  .nstiv-feature__actions {\n    right: 10px;\n    bottom: 10px;\n  }\n\n  .nstiv-dlprog {\n    width: min(420px, calc(100vw - 20px));\n    padding: 14px;\n  }\n}\n\n@container nstiv (max-width: 767px) {\n  .nstiv-grid,\n  .nstiv-skeleton__grid,\n  .nstiv-tab-sk--pics {\n    grid-template-columns: minmax(0, 1fr) !important;\n  }\n}\n\n@container nstiv (min-width: 480px) and (max-width: 1023px) {\n  .nstiv-grid,\n  .nstiv-skeleton__grid,\n  .nstiv-tab-sk--pics {\n    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n  }\n}\n\n@container nstiv (min-width: 1024px) and (max-width: 1199px) {\n  .nstiv-grid,\n  .nstiv-skeleton__grid,\n  .nstiv-tab-sk--pics {\n    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\n  }\n}\n\n@container nstiv (min-width: 1200px) {\n  .nstiv-grid,\n  .nstiv-skeleton__grid,\n  .nstiv-tab-sk--pics {\n    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nstiv *,\n  .nstiv *::before,\n  .nstiv *::after {\n    animation-duration: 0.01ms !important;\n    animation-iteration-count: 1 !important;\n    transition-duration: 0.01ms !important;\n  }\n}\n\n.nstiv.nstiv--compact {\n  padding: 12px 10px 18px !important;\n  --nstiv-cols: 2 !important;\n}\n\n.nstiv.nstiv--compact .nstiv-search__field {\n  flex: 1 1 100% !important;\n  width: 100% !important;\n}\n\n.nstiv.nstiv--compact .nstiv-search__actions .nstiv-btn {\n  flex: 1 1 calc(50% - 5px) !important;\n}\n\n.nstiv.nstiv--compact .nstiv-grid,\n.nstiv.nstiv--compact .nstiv-skeleton__grid,\n.nstiv.nstiv--compact .nstiv-tab-sk--pics {\n  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n}\n\n.nstiv.nstiv--narrow {\n  --nstiv-cols: 1 !important;\n}\n\n.nstiv.nstiv--narrow .nstiv-grid,\n.nstiv.nstiv--narrow .nstiv-skeleton__grid,\n.nstiv.nstiv--narrow .nstiv-tab-sk--pics {\n  grid-template-columns: 1fr !important;\n}\n\n.nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-profile,\n.nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-skeleton__profile {\n  grid-template-columns: var(--nstiv-avatar) minmax(0, 1fr) !important;\n  justify-items: stretch !important;\n  text-align: left !important;\n}\n\n.nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-profile__meta,\n.nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-skeleton__meta {\n  align-items: flex-start !important;\n  text-align: left !important;\n}\n\n.nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-stats,\n.nstiv.nstiv--wide:not(.nstiv--compact) .nstiv-skeleton__stats {\n  justify-content: flex-start !important;\n}\n\n.nstiv.nstiv--xlarge:not(.nstiv--compact) {\n  --nstiv-cols: 3;\n}\n\n.nstiv.nstiv--xlarge:not(.nstiv--compact) .nstiv-search__row {\n  flex-wrap: wrap !important;\n}\n\n.nstiv.nstiv--xlarge:not(.nstiv--compact) .nstiv-search__field {\n  flex: 1 1 200px !important;\n  width: auto !important;\n}\n\n.nstiv.nstiv--xlarge:not(.nstiv--compact) .nstiv-search__actions {\n  flex: 0 0 auto !important;\n  width: auto !important;\n}\n\n.nstiv.nstiv--xlarge:not(.nstiv--compact) .nstiv-search__actions .nstiv-btn {\n  flex: 0 0 auto !important;\n  padding: 0 18px !important;\n}\n\n.nstiv.nstiv--roomy:not(.nstiv--compact) {\n  --nstiv-cols: 4;\n}\n\n.nstiv.nstiv--roomy:not(.nstiv--compact) .nstiv-grid,\n.nstiv.nstiv--roomy:not(.nstiv--compact) .nstiv-skeleton__grid,\n.nstiv.nstiv--roomy:not(.nstiv--compact) .nstiv-tab-sk--pics {\n  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;\n}\n\n\/* Search controls: one row on large screens, wrap on narrow *\/\n.nstiv .nstiv-search,\n.nstiv .nstiv-search .nstiv-search__row,\n.nstiv .nstiv-search .nstiv-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.nstiv .nstiv-search .nstiv-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.nstiv .nstiv-search .nstiv-search__field,\n.nstiv .nstiv-search .nstiv-search__row > .nstiv-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.nstiv .nstiv-search .nstiv-search__actions,\n.nstiv .nstiv-search .nstiv-search__row > .nstiv-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.nstiv .nstiv-search .nstiv-search__row > .nstiv-btn,\n.nstiv .nstiv-search .nstiv-search__actions .nstiv-btn,\n.nstiv .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-btn {\n  flex: 0 0 auto !important;\n  width: auto !important;\n  max-width: none !important;\n  min-width: 118px !important;\n}\n\n.nstiv.nstiv--compact .nstiv-search .nstiv-search__row,\n.nstiv.nstiv--narrow .nstiv-search .nstiv-search__row {\n  flex-wrap: wrap !important;\n}\n\n.nstiv.nstiv--compact .nstiv-search .nstiv-search__field,\n.nstiv.nstiv--narrow .nstiv-search .nstiv-search__field,\n.nstiv.nstiv--compact .nstiv-search .nstiv-search__row > .nstiv-search__field,\n.nstiv.nstiv--narrow .nstiv-search .nstiv-search__row > .nstiv-search__field {\n  flex: 1 1 100% !important;\n  width: 100% !important;\n  max-width: 100% !important;\n}\n\n.nstiv.nstiv--compact .nstiv-search .nstiv-search__actions,\n.nstiv.nstiv--narrow .nstiv-search .nstiv-search__actions,\n.nstiv.nstiv--compact .nstiv-search .nstiv-search__row > .nstiv-search__actions,\n.nstiv.nstiv--narrow .nstiv-search .nstiv-search__row > .nstiv-search__actions {\n  flex: 1 1 100% !important;\n  width: 100% !important;\n  max-width: 100% !important;\n}\n\n.nstiv.nstiv--compact .nstiv-search .nstiv-search__row > .nstiv-btn,\n.nstiv.nstiv--narrow .nstiv-search .nstiv-search__row > .nstiv-btn,\n.nstiv.nstiv--compact .nstiv-search .nstiv-search__actions .nstiv-btn,\n.nstiv.nstiv--narrow .nstiv-search .nstiv-search__actions .nstiv-btn,\n.nstiv.nstiv--compact .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-btn,\n.nstiv.nstiv--narrow .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-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  .nstiv .nstiv-search .nstiv-search__row {\n    flex-wrap: wrap !important;\n  }\n\n  .nstiv .nstiv-search .nstiv-search__field,\n  .nstiv .nstiv-search .nstiv-search__row > .nstiv-search__field {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstiv .nstiv-search .nstiv-search__actions,\n  .nstiv .nstiv-search .nstiv-search__row > .nstiv-search__actions {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n\n  .nstiv .nstiv-search .nstiv-search__row > .nstiv-btn,\n  .nstiv .nstiv-search .nstiv-search__actions .nstiv-btn,\n  .nstiv .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-btn {\n    flex: 1 1 calc(50% - 5px) !important;\n    min-width: 0 !important;\n    max-width: 100% !important;\n  }\n}\n\n@media (max-width: 560px) {\n  .nstiv .nstiv-search__actions .nstiv-btn,\n  .nstiv .nstiv-search .nstiv-search__row > .nstiv-btn,\n  .nstiv .nstiv-search .nstiv-search__actions .nstiv-btn,\n  .nstiv .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-btn,\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__row > .nstiv-btn,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__row > .nstiv-btn,\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__actions .nstiv-btn,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__actions .nstiv-btn,\n  .nstiv.nstiv--compact .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-btn,\n  .nstiv.nstiv--narrow .nstiv-search .nstiv-search__row .nstiv-search__actions .nstiv-btn {\n    flex: 1 1 100% !important;\n    width: 100% !important;\n  }\n\n  .nstiv-hero__heading {\n    gap: 10px;\n  }\n\n  .nstiv .nstiv-hero__title {\n    font-size: 1.34rem;\n  }\n\n  .nstiv-stats__item {\n    flex: 1 1 calc(50% - 7px);\n  }\n\n  .nstiv .nstiv-tabs__btn {\n    flex: 1 1 100%;\n  }\n\n  .nstiv-modal {\n    padding: 10px;\n  }\n\n  .nstiv-modal__dialog {\n    padding: 14px;\n    border-radius: 18px;\n  }\n\n  .nstiv .nstiv-modal__close {\n    top: 10px;\n    right: 10px;\n    width: 40px;\n    height: 40px;\n  }\n}\n<\/style>\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\n\n<div class=\"nstiv\" id=\"nstiv-root\" data-nstiv-ready=\"0\">\n  <div class=\"nstiv-shell\">\n    <section class=\"nstiv-hero\" aria-labelledby=\"nstiv-title\">\n      <div class=\"nstiv-hero__heading\">\n        <div class=\"nstiv-hero__brand\" aria-hidden=\"true\">\n          <i class=\"fa-brands fa-tiktok\"><\/i>\n        <\/div>\n<h1 class=\"nstiv-hero__title\" id=\"nstiv-title\">Tiktok Image Viewer<\/h1>\n      <\/div>\n<p class=\"nstiv-hero__lead\">\n        Preview public TikTok photos from a username, photo post, or image URL.\n      <\/p>\n<div class=\"nstiv-search\">\n        <label class=\"nstiv-search__label\" for=\"nstiv-input\">Enter TikTok username or image 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=\"nstiv-search__row\">\n          <input class=\"nstiv-search__field\" id=\"nstiv-input\" type=\"text\" name=\"nstiv_input\"\n            placeholder=\"@username or https:\/\/www.tiktok.com\/@user\/photo\/\u2026\" autocomplete=\"off\" spellcheck=\"false\"\n            inputmode=\"url\">\n          <div class=\"nstiv-search__actions\">\n            <button type=\"button\" class=\"nstiv-btn nstiv-btn--paste\" id=\"nstiv-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=\"nstiv-btn nstiv-btn--view\" id=\"xrespond-tools-turnstile\">\n              <i class=\"fa-solid fa-images\" aria-hidden=\"true\"><\/i> View Images\n            <\/button>\n          <\/div>\n        <\/div>\n<div class=\"nstiv-alert\" id=\"nstiv-alert\" role=\"alert\"><\/div>\n<p class=\"nstiv-search__hint\">Username, profile link, photo URL, or a direct TikTok image URL<\/p>\n      <\/div>\n    <\/section>\n\n    <div class=\"nstiv-skeleton\" id=\"nstiv-skeleton\" aria-hidden=\"true\" aria-busy=\"false\">\n      <div class=\"nstiv-skeleton__panel\">\n        <div class=\"nstiv-skeleton__profile\">\n          <div class=\"nstiv-sk nstiv-skeleton__avatar\" aria-hidden=\"true\"><\/div>\n<div class=\"nstiv-skeleton__meta\">\n            <div class=\"nstiv-sk nstiv-skeleton__line nstiv-skeleton__line--lg\" aria-hidden=\"true\"><\/div>\n<div class=\"nstiv-sk nstiv-skeleton__line nstiv-skeleton__line--md\" aria-hidden=\"true\"><\/div>\n<div class=\"nstiv-skeleton__stats\">\n              <div class=\"nstiv-sk nstiv-skeleton__stat\" aria-hidden=\"true\"><\/div>\n<div class=\"nstiv-sk nstiv-skeleton__stat\" aria-hidden=\"true\"><\/div>\n<div class=\"nstiv-sk nstiv-skeleton__stat\" aria-hidden=\"true\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n<div class=\"nstiv-skeleton__tabs\" aria-hidden=\"true\">\n          <div class=\"nstiv-sk nstiv-skeleton__tab\"><\/div>\n<div class=\"nstiv-sk nstiv-skeleton__tab\"><\/div>\n        <\/div>\n<div class=\"nstiv-skeleton__grid\" aria-hidden=\"true\">\n          <div class=\"nstiv-skeleton__card\">\n            <div class=\"nstiv-sk nstiv-skeleton__thumb\"><\/div>\n<div class=\"nstiv-sk nstiv-skeleton__foot\"><\/div>\n          <\/div>\n<div class=\"nstiv-skeleton__card\">\n            <div class=\"nstiv-sk nstiv-skeleton__thumb\"><\/div>\n<div class=\"nstiv-sk nstiv-skeleton__foot\"><\/div>\n          <\/div>\n<div class=\"nstiv-skeleton__card\">\n            <div class=\"nstiv-sk nstiv-skeleton__thumb\"><\/div>\n<div class=\"nstiv-sk nstiv-skeleton__foot\"><\/div>\n          <\/div>\n<div class=\"nstiv-skeleton__card\">\n            <div class=\"nstiv-sk nstiv-skeleton__thumb\"><\/div>\n<div class=\"nstiv-sk nstiv-skeleton__foot\"><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <section class=\"nstiv-result\" id=\"nstiv-result\" aria-live=\"polite\">\n      <div class=\"nstiv-panel nstiv-content is-placeholder\" id=\"nstiv-content\">\n        <div class=\"nstiv-profile\">\n          <div class=\"nstiv-profile__avatar-wrap\">\n            <div class=\"nstiv-profile__ring\">\n              <img decoding=\"async\" class=\"nstiv-profile__img\" id=\"nstiv-avatar\"\n                src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='320' height='320' viewBox='0 0 320 320'%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='320' height='320' fill='url(%23g)'\/%3E%3Ccircle cx='160' cy='118' r='52' fill='%23fff'\/%3E%3Cellipse cx='160' cy='268' rx='96' ry='72' fill='%23fff'\/%3E%3C\/svg%3E\"\n                alt=\"Profile avatar\" referrerpolicy=\"no-referrer\">\n            <\/div>\n            <button type=\"button\" class=\"nstiv-profile__zoom\" id=\"nstiv-avatar-zoom\" aria-label=\"Expand profile photo\">\n              <i class=\"fa-solid fa-expand\" aria-hidden=\"true\"><\/i>\n            <\/button>\n            <button type=\"button\" class=\"nstiv-profile__zoom nstiv-profile__download\" id=\"nstiv-avatar-download\"\n              aria-label=\"Download profile photo\">\n              <i class=\"fa-solid fa-download\" aria-hidden=\"true\"><\/i>\n            <\/button>\n          <\/div>\n<div class=\"nstiv-profile__meta\">\n            <h2 class=\"nstiv-profile__name\" id=\"nstiv-fullname\">\n              Display name\n              <span class=\"nstiv-profile__verified\" id=\"nstiv-verified\" hidden title=\"Verified\">\n                <i class=\"fa-solid fa-circle-check\" aria-hidden=\"true\"><\/i>\n              <\/span>\n            <\/h2>\n<p class=\"nstiv-profile__handle\" id=\"nstiv-handle\">@username<\/p>\n<p class=\"nstiv-profile__bio\" id=\"nstiv-bio\"><\/p>\n<ul class=\"nstiv-stats\">\n              <li class=\"nstiv-stats__item\">\n                <span class=\"nstiv-stats__value\" id=\"nstiv-photos-count\">0<\/span>\n                <span class=\"nstiv-stats__label\" id=\"nstiv-photos-label\">photos<\/span>\n              <\/li>\n              <li class=\"nstiv-stats__item\">\n                <span class=\"nstiv-stats__value\" id=\"nstiv-followers\">0<\/span>\n                <span class=\"nstiv-stats__label\" id=\"nstiv-followers-label\">followers<\/span>\n              <\/li>\n              <li class=\"nstiv-stats__item\">\n                <span class=\"nstiv-stats__value\" id=\"nstiv-posts\">0<\/span>\n                <span class=\"nstiv-stats__label\" id=\"nstiv-posts-label\">likes<\/span>\n              <\/li>\n            <\/ul>\n          <\/div>\n        <\/div>\n<div class=\"nstiv-feature\" id=\"nstiv-feature\">\n          <div class=\"nstiv-feature__media\" id=\"nstiv-feature-media\" role=\"button\" tabindex=\"0\"\n            aria-label=\"Preview image\">\n            <img class=\"nstiv-feature__img\" id=\"nstiv-feature-img\" alt=\"TikTok image\" referrerpolicy=\"no-referrer\">\n            <div class=\"nstiv-feature__actions\">\n              <button type=\"button\" class=\"nstiv-feature__btn\" id=\"nstiv-feature-zoom\" aria-label=\"Expand image\">\n                <i class=\"fa-solid fa-expand\" aria-hidden=\"true\"><\/i>\n              <\/button>\n              <button type=\"button\" class=\"nstiv-feature__btn nstiv-feature__btn--download\" id=\"nstiv-feature-download\"\n                aria-label=\"Download image\">\n                <i class=\"fa-solid fa-download\" aria-hidden=\"true\"><\/i>\n              <\/button>\n            <\/div>\n          <\/div>\n<p class=\"nstiv-feature__caption\" id=\"nstiv-feature-caption\"><\/p>\n        <\/div>\n<div class=\"nstiv-notice\" id=\"nstiv-notice\" role=\"status\">\n          <i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\"><\/i>\n          <span id=\"nstiv-notice-text\"><\/span>\n        <\/div>\n<div class=\"nstiv-tabs\" role=\"tablist\" aria-label=\"Image viewer sections\">\n          <button type=\"button\" class=\"nstiv-tabs__btn is-active\" role=\"tab\" aria-selected=\"true\"\n            data-nstiv-tab=\"photos\">\n            <i class=\"fa-solid fa-images\" aria-hidden=\"true\"><\/i> Photos\n          <\/button>\n          <button type=\"button\" class=\"nstiv-tabs__btn\" role=\"tab\" aria-selected=\"false\" data-nstiv-tab=\"about\">\n            <i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\"><\/i> Details\n          <\/button>\n        <\/div>\n<div class=\"nstiv-pane is-active\" id=\"nstiv-pane-photos\" role=\"tabpanel\" data-nstiv-pane=\"photos\">\n          <div class=\"nstiv-empty\">\n            <i class=\"fa-solid fa-images\" aria-hidden=\"true\"><\/i>\n            <p>Enter a TikTok username or paste a photo \/ image URL to preview images.<\/p>\n          <\/div>\n        <\/div>\n<div class=\"nstiv-pane\" id=\"nstiv-pane-about\" role=\"tabpanel\" data-nstiv-pane=\"about\">\n          <div class=\"nstiv-empty\">\n            <i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\"><\/i>\n            <p>Enter a username or image URL above to view photo details.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n  <\/div>\n<div class=\"nstiv-modal\" id=\"nstiv-modal\" aria-hidden=\"true\">\n    <div class=\"nstiv-modal__dialog\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Image preview\">\n      <button type=\"button\" class=\"nstiv-modal__close\" id=\"nstiv-modal-close\" aria-label=\"Close preview\">\n        <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"><\/i>\n      <\/button>\n      <img decoding=\"async\" class=\"nstiv-modal__media\" id=\"nstiv-modal-media\" src=\"\" alt=\"Image preview\" referrerpolicy=\"no-referrer\">\n      <p class=\"nstiv-modal__caption\" id=\"nstiv-modal-caption\"><\/p>\n    <\/div>\n  <\/div>\n<\/div>\r\n\r\n\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap\" rel=\"stylesheet\">\r\n<link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\" rel=\"stylesheet\">\r\n<style>\r\n    :root {\r\n        \/* Professional Color Scheme *\/\r\n        --primary: #1e3a8a;\r\n        --secondary: #0f766e;\r\n        --accent: #7e22ce;\r\n        --primary-light: #3b82f6;\r\n        --secondary-light: #14b8a6;\r\n        --accent-light: #a855f7;\r\n        --neutral-dark: #0f172a;\r\n        --neutral-medium: #1e293b;\r\n        --neutral-light: #334155;\r\n        --text-primary: #f1f5f9;\r\n        --text-secondary: #cbd5e1;\r\n        --text-muted: #94a3b8;\r\n        --bg-primary: #020617;\r\n        --bg-secondary: #0f172a;\r\n        --bg-tertiary: #1e293b;\r\n        --card-bg: rgba(30, 41, 59, 0.8);\r\n        --input-bg: rgba(15, 23, 42, 0.9);\r\n        --border-color: rgba(148, 163, 184, 0.2);\r\n        --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\r\n        --shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\r\n        --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);\r\n        --shadow-xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\r\n        --shadow-primary: 0 0 20px rgba(30, 58, 138, 0.3);\r\n        --shadow-secondary: 0 0 20px rgba(15, 118, 110, 0.3);\r\n        --shadow-accent: 0 0 20px rgba(126, 34, 206, 0.3);\r\n    }\r\n\r\n    * {\r\n        margin: 0;\r\n        padding: 0;\r\n        box-sizing: border-box;\r\n    }\r\n\r\n    .tiktok_body {\r\n        font-family: 'Inter', sans-serif;\r\n        background: linear-gradient(135deg, \r\n                var(--bg-primary) 0%, \r\n                var(--bg-secondary) 25%, \r\n                var(--bg-tertiary) 50%, \r\n                var(--neutral-medium) 75%, \r\n                var(--neutral-dark) 100%);\r\n        background-size: 400% 400%;\r\n        animation: gradientShift 20s ease infinite;\r\n        color: var(--text-primary);\r\n        min-height: 60vh;\r\n        overflow-x: hidden;\r\n        position: relative;\r\n    }\r\n\r\n    .tiktok_body::before {\r\n        content: '';\r\n        position: fixed;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n            background: \r\n                radial-gradient(circle at 20% 30%, rgba(30, 58, 138, 0.15) 0%, transparent 50%),\r\n                radial-gradient(circle at 80% 70%, rgba(15, 118, 110, 0.15) 0%, transparent 50%),\r\n                radial-gradient(circle at 50% 50%, rgba(126, 34, 206, 0.1) 0%, transparent 60%);\r\n        pointer-events: none;\r\n        z-index: -1;\r\n        animation: backgroundFloat 15s ease-in-out infinite;\r\n    }\r\n\r\n    .container_tiktok {\r\n        max-width: 1200px;\r\n        margin: 0 auto;\r\n        padding: 4rem;\r\n        position: relative;\r\n        z-index: 1;\r\n    }\r\n\r\n    \/* Header *\/\r\n    .header {\r\n        text-align: center;\r\n        margin-bottom: 2.5rem;\r\n        animation: fadeInDown 1s ease-out;\r\n    }\r\n\r\n    .logo {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 1.5rem;\r\n        margin-bottom: 1rem;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .logo-icon {\r\n        width: 70px;\r\n        height: 70px;\r\n        background: linear-gradient(135deg, var(--primary), var(--primary-light));\r\n        border-radius: 16px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        font-size: 28px;\r\n        color: white;\r\n        box-shadow: var(--shadow-lg), var(--shadow-primary);\r\n        animation: logoFloat 4s ease-in-out infinite;\r\n        position: relative;\r\n        overflow: hidden;\r\n        border: 2px solid var(--border-color);\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .logo-icon::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: -50%;\r\n        left: -50%;\r\n        width: 200%;\r\n        height: 200%;\r\n        background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        animation: logoShine 3s ease-in-out infinite;\r\n    }\r\n\r\n    .logo-text {\r\n        font-size: clamp(1.8rem, 5vw, 3.5rem);\r\n        font-weight: 900;\r\n        background: linear-gradient(135deg, var(--primary-light), var(--secondary-light), var(--accent-light));\r\n        background-size: 300% 300%;\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        letter-spacing: -1px;\r\n        animation: textGradient 4s ease infinite;\r\n        filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));\r\n        text-align: center;\r\n    }\r\n\r\n    .subtitle {\r\n        font-size: clamp(0.9rem, 2.5vw, 1.1rem);\r\n        color: var(--text-secondary);\r\n        font-weight: 500;\r\n        margin-top: 0.5rem;\r\n        animation: subtitleGlow 3s ease-in-out infinite;\r\n        text-align: center;\r\n        padding: 0 1rem;\r\n    }\r\n\r\n    \/* Search Section *\/\r\n    .search-section {\r\n        background: var(--card-bg);\r\n        backdrop-filter: blur(25px);\r\n        border: 1px solid var(--border-color);\r\n        border-radius: 20px;\r\n        padding: clamp(1.5rem, 4vw, 2.5rem);\r\n        margin-bottom: 2rem;\r\n        box-shadow: var(--shadow-xl), var(--shadow-primary);\r\n        animation: fadeInUp 1s ease-out 0.2s both;\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .search-section::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--primary),\r\n                var(--secondary),\r\n                var(--accent),\r\n                transparent);\r\n        animation: borderFlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    .search-section::after {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(135deg,\r\n                rgba(30, 58, 138, 0.05) 0%,\r\n                rgba(15, 118, 110, 0.05) 50%,\r\n                rgba(126, 34, 206, 0.05) 100%);\r\n        pointer-events: none;\r\n        border-radius: 20px;\r\n        animation: overlayPulse 6s ease-in-out infinite;\r\n    }\r\n\r\n    .input-group {\r\n        position: relative;\r\n        margin-bottom: 1.5rem;\r\n        z-index: 2;\r\n    }\r\n\r\n    .input-field {\r\n        width: 100% !important;\r\n        padding: clamp(1rem, 3vw, 1.5rem) clamp(1.2rem, 4vw, 2rem) !important;\r\n        background: var(--input-bg) !important;\r\n        border: 1px solid var(--border-color) !important;\r\n        border-radius: 16px !important;\r\n        color: var(--text-primary) !important;\r\n        font-size: clamp(0.9rem, 2.5vw, 1.1rem) !important;\r\n        font-weight: 500 !important;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;\r\n        outline: none !important;\r\n        backdrop-filter: blur(15px) !important;\r\n        box-shadow: var(--shadow-sm), inset 0 2px 10px rgba(0, 0, 0, 0.2) !important;\r\n        position: relative;\r\n    }\r\n\r\n    .input-field::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background: linear-gradient(135deg,\r\n                rgba(30, 58, 138, 0.1) 0%,\r\n                rgba(15, 118, 110, 0.1) 100%);\r\n        border-radius: 16px;\r\n        opacity: 0;\r\n        transition: opacity 0.4s ease;\r\n        pointer-events: none;\r\n    }\r\n\r\n    .input-field:focus {\r\n        border-color: var(--primary) !important;\r\n        box-shadow:\r\n            0 0 0 4px rgba(30, 58, 138, 0.2),\r\n            var(--shadow-primary),\r\n            inset 0 2px 10px rgba(0, 0, 0, 0.3);\r\n        background: var(--input-bg) !important;\r\n        transform: translateY(-3px) scale(1.01) !important;\r\n        animation: inputFocusGlow 2s ease-in-out infinite !important;\r\n    }\r\n\r\n    .input-field:focus::before {\r\n        opacity: 1;\r\n    }\r\n\r\n    .input-field::placeholder {\r\n        color: var(--text-muted);\r\n        transition: all 0.3s ease;\r\n        font-weight: 400;\r\n    }\r\n\r\n    .input-field:focus::placeholder {\r\n        color: var(--text-secondary);\r\n        transform: translateY(-2px);\r\n        opacity: 0.8;\r\n    }\r\n\r\n    .input-actions {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        margin-top: 1rem;\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n        color: var(--text-muted);\r\n        z-index: 2;\r\n        position: relative;\r\n        flex-wrap: wrap;\r\n        gap: 0.5rem;\r\n    }\r\n\r\n    .paste-btn {\r\n        background: linear-gradient(135deg, var(--secondary), var(--secondary-light));\r\n        border: none;\r\n        color: white;\r\n        cursor: pointer;\r\n        padding: clamp(0.5rem, 2vw, 0.7rem) clamp(0.8rem, 3vw, 1.4rem);\r\n        border-radius: 12px;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 0.5rem;\r\n        font-weight: 600;\r\n        box-shadow: var(--shadow-sm), var(--shadow-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        border: 1px solid rgba(15, 118, 110, 0.3);\r\n        min-height: 44px;\r\n    }\r\n\r\n    .paste-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .paste-btn:hover::before,\r\n    .paste-btn:active::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .paste-btn:hover,\r\n    .paste-btn:active {\r\n        transform: translateY(-3px) scale(1.05);\r\n        box-shadow: var(--shadow-md), var(--shadow-secondary);\r\n        background: linear-gradient(135deg, var(--secondary-light), var(--secondary));\r\n    }\r\n\r\n    .action-buttons {\r\n        display: grid;\r\n        grid-template-columns: 1fr;\r\n        gap: 1rem;\r\n        align-items: center;\r\n        z-index: 2;\r\n        position: relative;\r\n    }\r\n\r\n    .search-btn {\r\n        background: linear-gradient(135deg, var(--primary), var(--primary-light));\r\n        background-size: 200% 200%;\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(1rem, 3vw, 1.4rem) clamp(1.5rem, 4vw, 2.8rem);\r\n        border-radius: 16px;\r\n        font-size: clamp(0.9rem, 2.5vw, 1.1rem);\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-md), var(--shadow-primary);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.75rem;\r\n        min-height: 56px;\r\n        animation: buttonPulse 4s ease-in-out infinite;\r\n        border: 2px solid rgba(30, 58, 138, 0.3);\r\n        width: 100%;\r\n    }\r\n\r\n    .search-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.6s;\r\n    }\r\n\r\n    .search-btn:hover:not(:disabled)::before,\r\n    .search-btn:active:not(:disabled)::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .search-btn:hover:not(:disabled),\r\n    .search-btn:active:not(:disabled) {\r\n        transform: translateY(-4px) scale(1.02);\r\n        box-shadow: var(--shadow-xl), var(--shadow-primary);\r\n        background-position: 100% 100%;\r\n        animation: buttonHoverGlow 1s ease-in-out infinite;\r\n    }\r\n\r\n    .search-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n        animation: none;\r\n    }\r\n\r\n    .search-another-btn {\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(0.8rem, 2.5vw, 1.1rem) clamp(1rem, 3vw, 1.6rem);\r\n        border-radius: 14px;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        min-height: 48px;\r\n        width: 100%;\r\n        font-weight: 600;\r\n        box-shadow: var(--shadow-sm), var(--shadow-accent);\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        border: 2px solid rgba(126, 34, 206, 0.3);\r\n    }\r\n\r\n    .search-another-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .search-another-btn:hover::before,\r\n    .search-another-btn:active::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .search-another-btn:hover,\r\n    .search-another-btn:active {\r\n        transform: translateY(-3px) scale(1.05);\r\n        box-shadow: var(--shadow-md), var(--shadow-accent);\r\n    }\r\n\r\n    \/* Loading Animation *\/\r\n    .loading {\r\n        display: none;\r\n        text-align: center;\r\n        padding: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 4vw, 2.5rem);\r\n        background: var(--card-bg);\r\n        backdrop-filter: blur(25px);\r\n        border: 1px solid var(--border-color);\r\n        border-radius: 20px;\r\n        margin: 2rem 0;\r\n        box-shadow: var(--shadow-xl), var(--shadow-primary);\r\n    }\r\n\r\n    .loading::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--primary),\r\n                var(--secondary),\r\n                transparent);\r\n        border-radius: 20px 20px 0 0;\r\n    }\r\n\r\n    .loading-spinner {\r\n        width: clamp(60px, 15vw, 100px);\r\n        height: clamp(60px, 15vw, 100px);\r\n        margin: 0 auto 2rem;\r\n        position: relative;\r\n    }\r\n\r\n    .spinner-ring {\r\n        position: absolute;\r\n        border: 4px solid transparent;\r\n        border-radius: 50%;\r\n        animation: spin 2s linear infinite;\r\n    }\r\n\r\n    .spinner-ring:nth-child(1) {\r\n        width: 100%;\r\n        height: 100%;\r\n        border-top-color: var(--primary);\r\n        border-right-color: var(--primary);\r\n        animation-duration: 2s;\r\n        box-shadow: 0 0 20px rgba(30, 58, 138, 0.4);\r\n    }\r\n\r\n    .spinner-ring:nth-child(2) {\r\n        width: 75%;\r\n        height: 75%;\r\n        top: 12.5%;\r\n        left: 12.5%;\r\n        border-bottom-color: var(--secondary);\r\n        border-left-color: var(--secondary);\r\n        animation-duration: 1.5s;\r\n        animation-direction: reverse;\r\n        box-shadow: 0 0 15px rgba(15, 118, 110, 0.4);\r\n    }\r\n\r\n    .spinner-ring:nth-child(3) {\r\n        width: 50%;\r\n        height: 50%;\r\n        top: 25%;\r\n        left: 25%;\r\n        border-top-color: var(--accent);\r\n        animation-duration: 1s;\r\n        box-shadow: 0 0 10px rgba(126, 34, 206, 0.4);\r\n    }\r\n\r\n    .loading-text {\r\n        font-size: clamp(1rem, 3vw, 1.4rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.5rem;\r\n        background: linear-gradient(135deg, var(--primary-light), var(--secondary-light), var(--accent-light));\r\n        background-size: 200% 200%;\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        animation: textGradient 3s ease infinite;\r\n    }\r\n\r\n    .loading-subtext {\r\n        color: var(--text-muted);\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        animation: textFade 2s ease-in-out infinite;\r\n    }\r\n\r\n    \/* Main Video Section *\/\r\n    .video-section {\r\n        display: none;\r\n        animation: fadeInUp 0.8s ease-out;\r\n        background: var(--card-bg);\r\n        backdrop-filter: blur(25px);\r\n        border: 1px solid var(--border-color);\r\n        border-radius: 20px;\r\n        padding: clamp(1.5rem, 4vw, 2.5rem);\r\n        box-shadow: var(--shadow-xl), var(--shadow-primary);\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .video-section::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--primary),\r\n                var(--secondary),\r\n                var(--accent),\r\n                transparent);\r\n        animation: borderFlow 4s ease-in-out infinite;\r\n    }\r\n\r\n    \/* Author Info *\/\r\n    .author-section {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.8rem, 3vw, 1.2rem);\r\n        margin-bottom: 1.5rem;\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        background: linear-gradient(135deg,\r\n                rgba(30, 58, 138, 0.15) 0%,\r\n                rgba(15, 118, 110, 0.15) 50%,\r\n                rgba(126, 34, 206, 0.15) 100%);\r\n        border-radius: 16px;\r\n        border: 1px solid var(--border-color);\r\n        width: 100%;\r\n        box-shadow: var(--shadow-sm), var(--shadow-primary);\r\n        transition: all 0.4s ease;\r\n        flex-wrap: wrap;\r\n        justify-content: center;\r\n        text-align: center;\r\n    }\r\n\r\n    .author-section:hover,\r\n    .author-section:active {\r\n        transform: translateY(-3px);\r\n        box-shadow: var(--shadow-md), var(--shadow-primary);\r\n    }\r\n\r\n    .author-avatar {\r\n        width: clamp(50px, 12vw, 60px);\r\n        height: clamp(50px, 12vw, 60px);\r\n        border-radius: 50%;\r\n        object-fit: cover;\r\n        border: 3px solid transparent;\r\n        background: linear-gradient(135deg, var(--primary), var(--secondary));\r\n        padding: 2px;\r\n        box-shadow: var(--shadow-sm), var(--shadow-primary);\r\n        animation: avatarPulse 4s ease-in-out infinite;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .author-details {\r\n        flex: 1;\r\n        min-width: 0;\r\n    }\r\n\r\n    .author-details h3 {\r\n        font-size: clamp(1rem, 3vw, 1.2rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--primary-light), var(--secondary-light));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        word-break: break-word;\r\n    }\r\n\r\n    .author-username {\r\n        color: var(--text-muted);\r\n        font-size: clamp(0.8rem, 2.5vw, 0.95rem);\r\n        font-weight: 500;\r\n        word-break: break-word;\r\n    }\r\n\r\n    \/* Title *\/\r\n    .video-title {\r\n        font-size: clamp(1.2rem, 4vw, 1.6rem);\r\n        font-weight: 800;\r\n        margin-bottom: 1.5rem;\r\n        line-height: 1.4;\r\n        color: var(--text-primary);\r\n        width: 100%;\r\n        text-align: center;\r\n        text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\r\n        word-break: break-word;\r\n        padding: 0 1rem;\r\n    }\r\n\r\n    \/* Stats Grid *\/\r\n    .video-stats {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\r\n        gap: clamp(0.5rem, 2vw, 1rem);\r\n        margin-bottom: 2rem;\r\n    }\r\n\r\n    .stat-item {\r\n        background: var(--card-bg);\r\n        padding: clamp(0.8rem, 3vw, 1.2rem);\r\n        border-radius: 14px;\r\n        text-align: center;\r\n        border: 1px solid var(--border-color);\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-sm);\r\n        backdrop-filter: blur(15px);\r\n        min-height: 80px;\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: center;\r\n    }\r\n\r\n    .stat-item::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(30, 58, 138, 0.3), transparent);\r\n        transition: left 0.6s;\r\n    }\r\n\r\n    .stat-item:hover::before,\r\n    .stat-item:active::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .stat-item:hover,\r\n    .stat-item:active {\r\n        transform: translateY(-5px) scale(1.02);\r\n        box-shadow: var(--shadow-md), var(--shadow-primary);\r\n    }\r\n\r\n    .stat-item.views {\r\n        border-color: rgba(30, 58, 138, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(30, 58, 138, 0.1) 0%,\r\n                var(--card-bg) 100%);\r\n    }\r\n\r\n    .stat-item.likes {\r\n        border-color: rgba(15, 118, 110, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(15, 118, 110, 0.1) 0%,\r\n                var(--card-bg) 100%);\r\n    }\r\n\r\n    .stat-item.comments {\r\n        border-color: rgba(126, 34, 206, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(126, 34, 206, 0.1) 0%,\r\n                var(--card-bg) 100%);\r\n    }\r\n\r\n    .stat-item.shares {\r\n        border-color: rgba(245, 158, 11, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(245, 158, 11, 0.1) 0%,\r\n                var(--card-bg) 100%);\r\n    }\r\n\r\n    .stat-item.duration {\r\n        border-color: rgba(59, 130, 246, 0.4);\r\n        background: linear-gradient(135deg,\r\n                rgba(59, 130, 246, 0.1) 0%,\r\n                var(--card-bg) 100%);\r\n    }\r\n\r\n    .stat-value {\r\n        font-size: clamp(1.2rem, 4vw, 1.6rem);\r\n        font-weight: 900;\r\n        display: block;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--primary-light), var(--secondary-light));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        animation: valueGlow 4s ease-in-out infinite;\r\n    }\r\n\r\n    .stat-label {\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        color: var(--text-muted);\r\n        font-weight: 600;\r\n        text-transform: uppercase;\r\n        letter-spacing: 0.5px;\r\n    }\r\n\r\n    \/* Video Streaming Area *\/\r\n    .video-streaming-area {\r\n        background: linear-gradient(135deg,\r\n                rgba(30, 58, 138, 0.08) 0%,\r\n                rgba(15, 118, 110, 0.08) 50%,\r\n                rgba(126, 34, 206, 0.08) 100%);\r\n        border: 1px solid var(--border-color);\r\n        border-radius: 16px;\r\n        padding: clamp(1.5rem, 4vw, 2.5rem);\r\n        margin-bottom: 1.5rem;\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-md), var(--shadow-primary);\r\n        backdrop-filter: blur(15px);\r\n    }\r\n\r\n    .video-streaming-area::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background-image:\r\n                linear-gradient(rgba(30, 58, 138, 0.05) 1px, transparent 1px),\r\n                linear-gradient(90deg, rgba(15, 118, 110, 0.05) 1px, transparent 1px);\r\n        background-size: 30px 30px;\r\n        opacity: 0.6;\r\n        pointer-events: none;\r\n        z-index: 1;\r\n        animation: gridMove 12s linear infinite;\r\n    }\r\n\r\n    .video-streaming-area::after {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--primary),\r\n                var(--secondary),\r\n                var(--accent),\r\n                transparent);\r\n        z-index: 2;\r\n        animation: borderFlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    .streaming-header {\r\n        text-align: center;\r\n        margin-bottom: 2rem;\r\n        position: relative;\r\n        z-index: 3;\r\n    }\r\n\r\n    .streaming-title {\r\n        font-size: clamp(1rem, 3vw, 1.3rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.5rem;\r\n        background: linear-gradient(135deg, var(--primary-light), var(--secondary-light));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        animation: titlePulse 4s ease-in-out infinite;\r\n    }\r\n\r\n    .streaming-subtitle {\r\n        color: var(--text-muted);\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        font-weight: 500;\r\n    }\r\n\r\n    \/* Video Player *\/\r\n    .video-player-wrapper {\r\n        position: relative;\r\n        width: 100%;\r\n        max-width: min(380px, 90vw);\r\n        margin: 0 auto;\r\n        aspect-ratio: 9\/16;\r\n        border-radius: 16px;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-xl), var(--shadow-primary);\r\n        background: #000;\r\n        z-index: 3;\r\n        border: 1px solid var(--border-color);\r\n    }\r\n\r\n    .video-thumbnail {\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        object-fit: cover;\r\n        z-index: 4;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n    }\r\n\r\n    .video-thumbnail:hover,\r\n    .video-thumbnail:active {\r\n        transform: scale(1.02);\r\n    }\r\n\r\n    .thumbnail-overlay {\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: rgba(0, 0, 0, 0.4);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        z-index: 5;\r\n        cursor: pointer;\r\n        transition: all 0.4s ease;\r\n        backdrop-filter: blur(2px);\r\n    }\r\n\r\n    .thumbnail-overlay:hover,\r\n    .thumbnail-overlay:active {\r\n        background: rgba(0, 0, 0, 0.6);\r\n        backdrop-filter: blur(4px);\r\n    }\r\n\r\n    .thumbnail-play-btn {\r\n        width: clamp(60px, 15vw, 80px);\r\n        height: clamp(60px, 15vw, 80px);\r\n        background: linear-gradient(135deg, var(--primary), var(--primary-light));\r\n        border: none;\r\n        border-radius: 50%;\r\n        color: white;\r\n        font-size: clamp(1.5rem, 4vw, 2rem);\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        box-shadow: var(--shadow-xl), var(--shadow-primary);\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        position: relative;\r\n        overflow: hidden;\r\n        animation: playButtonPulse 3s ease-in-out infinite;\r\n        border: 2px solid rgba(255, 255, 255, 0.2);\r\n        min-height: 44px;\r\n    }\r\n\r\n    .thumbnail-play-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transform: translateX(-100%);\r\n        transition: transform 0.6s;\r\n    }\r\n\r\n    .thumbnail-play-btn:hover::before,\r\n    .thumbnail-play-btn:active::before {\r\n        transform: translateX(100%);\r\n    }\r\n\r\n    .thumbnail-play-btn:hover,\r\n    .thumbnail-play-btn:active {\r\n        transform: scale(1.15);\r\n        box-shadow: var(--shadow-xl), var(--shadow-primary);\r\n    }\r\n\r\n    .video-player {\r\n        width: 100%;\r\n        height: 100%;\r\n        object-fit: contain;\r\n        background: #000;\r\n        position: relative;\r\n        z-index: 2;\r\n        display: none;\r\n    }\r\n\r\n    .video-player.playing {\r\n        display: block;\r\n    }\r\n\r\n    .video-controls {\r\n        position: absolute;\r\n        bottom: 0;\r\n        left: 0;\r\n        right: 0;\r\n        background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        transform: translateY(100%);\r\n        transition: transform 0.4s ease;\r\n        z-index: 10;\r\n        backdrop-filter: blur(10px);\r\n    }\r\n\r\n    .video-player-wrapper:hover .video-controls,\r\n    .video-controls.show {\r\n        transform: translateY(0);\r\n    }\r\n\r\n    .progress-bar {\r\n        width: 100%;\r\n        height: clamp(4px, 1.5vw, 6px);\r\n        background: rgba(255, 255, 255, 0.2);\r\n        border-radius: 3px;\r\n        margin-bottom: 0.5rem;\r\n        cursor: pointer;\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .progress-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--primary), var(--primary-light));\r\n        border-radius: 3px;\r\n        width: 0%;\r\n        transition: width 0.1s linear;\r\n        box-shadow: 0 0 10px rgba(30, 58, 138, 0.5);\r\n    }\r\n\r\n    \/* Video Time Display *\/\r\n    .video-time {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        color: var(--text-muted);\r\n        margin-bottom: 1rem;\r\n    }\r\n\r\n    .control-buttons {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        flex-wrap: wrap;\r\n        gap: 1rem;\r\n    }\r\n\r\n    .control-group {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.5rem, 2vw, 0.75rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .control-btn {\r\n        background: rgba(255, 255, 255, 0.15);\r\n        border: none;\r\n        color: white;\r\n        width: clamp(40px, 10vw, 44px);\r\n        height: clamp(40px, 10vw, 44px);\r\n        border-radius: 50%;\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        transition: all 0.3s ease;\r\n        backdrop-filter: blur(10px);\r\n        border: 1px solid rgba(255, 255, 255, 0.2);\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        min-height: 44px;\r\n        min-width: 44px;\r\n    }\r\n\r\n    .control-btn:hover,\r\n    .control-btn:active {\r\n        background: rgba(255, 255, 255, 0.25);\r\n        transform: scale(1.1);\r\n        box-shadow: var(--shadow-sm);\r\n    }\r\n\r\n    .play-btn {\r\n        width: clamp(50px, 12vw, 60px);\r\n        height: clamp(50px, 12vw, 60px);\r\n        background: linear-gradient(135deg, var(--primary), var(--primary-light));\r\n        font-size: clamp(1rem, 3vw, 1.4rem);\r\n        border: none;\r\n        box-shadow: var(--shadow-md), var(--shadow-primary);\r\n    }\r\n\r\n    .volume-control {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.3rem, 1.5vw, 0.5rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .volume-slider {\r\n        width: clamp(60px, 15vw, 80px);\r\n        height: clamp(4px, 1.5vw, 6px);\r\n        background: rgba(255, 255, 255, 0.2);\r\n        border-radius: 3px;\r\n        cursor: pointer;\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .volume-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--secondary), var(--secondary-light));\r\n        border-radius: 3px;\r\n        width: 100%;\r\n        transition: width 0.1s ease;\r\n        box-shadow: 0 0 8px rgba(15, 118, 110, 0.4);\r\n    }\r\n\r\n    \/* Download Section *\/\r\n    .download-section {\r\n        background: linear-gradient(135deg,\r\n                rgba(15, 118, 110, 0.1) 0%,\r\n                rgba(20, 184, 166, 0.1) 50%,\r\n                var(--card-bg) 100%);\r\n        border: 1px solid var(--border-color);\r\n        border-radius: 16px;\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        margin-bottom: 1.5rem;\r\n        box-shadow: var(--shadow-sm), var(--shadow-secondary);\r\n        position: relative;\r\n        overflow: hidden;\r\n        backdrop-filter: blur(15px);\r\n    }\r\n\r\n    .download-section::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--secondary),\r\n                var(--secondary-light),\r\n                transparent);\r\n        animation: borderFlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    .download-header {\r\n        text-align: center;\r\n        margin-bottom: clamp(0.8rem, 2.5vw, 1.2rem);\r\n    }\r\n\r\n    .download-title {\r\n        font-size: clamp(1rem, 3vw, 1.2rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--secondary), var(--secondary-light));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        animation: titlePulse 4s ease-in-out infinite;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .download-subtitle {\r\n        color: var(--text-muted);\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n    }\r\n\r\n    .download-grid {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\r\n        gap: clamp(0.8rem, 2vw, 1rem);\r\n    }\r\n\r\n    .download-btn {\r\n        background: linear-gradient(135deg, var(--secondary), var(--secondary-light));\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(0.8rem, 3vw, 1rem) clamp(1rem, 3vw, 1.5rem);\r\n        border-radius: 14px;\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        box-shadow: var(--shadow-sm), var(--shadow-secondary);\r\n        position: relative;\r\n        overflow: hidden;\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        animation: buttonGlow 5s ease-in-out infinite;\r\n        border: 1px solid rgba(15, 118, 110, 0.3);\r\n        min-height: 48px;\r\n        text-align: center;\r\n    }\r\n\r\n    .download-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .download-btn:hover:not(:disabled)::before,\r\n    .download-btn:active:not(:disabled)::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .download-btn:hover:not(:disabled),\r\n    .download-btn:active:not(:disabled) {\r\n        transform: translateY(-3px) scale(1.02);\r\n        box-shadow: var(--shadow-md), var(--shadow-secondary);\r\n    }\r\n\r\n    .download-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n        animation: none;\r\n    }\r\n\r\n    .download-btn.hd {\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        border-color: rgba(126, 34, 206, 0.3);\r\n    }\r\n\r\n    .download-btn.hd:hover:not(:disabled),\r\n    .download-btn.hd:active:not(:disabled) {\r\n        box-shadow: var(--shadow-md), var(--shadow-accent);\r\n    }\r\n\r\n    \/* Audio Streaming Section *\/\r\n    .audio-streaming {\r\n        background: linear-gradient(135deg,\r\n                rgba(126, 34, 206, 0.12) 0%,\r\n                rgba(168, 85, 247, 0.12) 50%,\r\n                var(--card-bg) 100%);\r\n        border: 1px solid var(--border-color);\r\n        border-radius: 16px;\r\n        padding: clamp(1rem, 3vw, 1.5rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-sm), var(--shadow-accent);\r\n        backdrop-filter: blur(15px);\r\n    }\r\n\r\n    .audio-streaming::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: linear-gradient(90deg,\r\n                transparent,\r\n                var(--accent),\r\n                var(--accent-light),\r\n                transparent);\r\n        animation: borderFlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    .audio-header {\r\n        text-align: center;\r\n        margin-bottom: clamp(0.8rem, 2.5vw, 1.2rem);\r\n    }\r\n\r\n    .audio-main-title {\r\n        font-size: clamp(1rem, 3vw, 1.2rem);\r\n        font-weight: 700;\r\n        margin-bottom: 0.25rem;\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        animation: titlePulse 4s ease-in-out infinite;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .audio-subtitle {\r\n        color: var(--text-muted);\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n        margin-bottom: clamp(0.8rem, 2.5vw, 1.2rem);\r\n    }\r\n\r\n    .audio-player-section {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.8rem, 3vw, 1.2rem);\r\n        margin-bottom: 1.5rem;\r\n        flex-wrap: wrap;\r\n        justify-content: center;\r\n    }\r\n\r\n    \/* Audio Icon - Left Side, Smaller *\/\r\n    .audio-icon-wrapper {\r\n        position: relative;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .audio-icon {\r\n        width: clamp(40px, 10vw, 50px);\r\n        height: clamp(40px, 10vw, 50px);\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        border-radius: 50%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        font-size: clamp(1rem, 2.5vw, 1.2rem);\r\n        color: white;\r\n        box-shadow: var(--shadow-sm), var(--shadow-accent);\r\n        animation: audioIconPulse 4s ease-in-out infinite;\r\n        position: relative;\r\n        z-index: 2;\r\n        border: 2px solid rgba(126, 34, 206, 0.3);\r\n    }\r\n\r\n    .audio-wave {\r\n        position: absolute;\r\n        top: 50%;\r\n        left: 50%;\r\n        transform: translate(-50%, -50%);\r\n        border: 1px solid rgba(126, 34, 206, 0.2);\r\n        border-radius: 50%;\r\n        animation: audioWaveRipple 2s ease-out infinite;\r\n    }\r\n\r\n    .audio-wave:nth-child(1) {\r\n        width: clamp(50px, 12vw, 60px);\r\n        height: clamp(50px, 12vw, 60px);\r\n        animation-delay: 0s;\r\n    }\r\n\r\n    .audio-wave:nth-child(2) {\r\n        width: clamp(60px, 15vw, 75px);\r\n        height: clamp(60px, 15vw, 75px);\r\n        animation-delay: 0.5s;\r\n    }\r\n\r\n    .audio-wave:nth-child(3) {\r\n        width: clamp(70px, 18vw, 90px);\r\n        height: clamp(70px, 18vw, 90px);\r\n        animation-delay: 1s;\r\n    }\r\n\r\n    .audio-info {\r\n        flex: 1;\r\n        min-width: 0;\r\n        text-align: center;\r\n    }\r\n\r\n    .audio-title {\r\n        font-size: clamp(0.9rem, 2.5vw, 1rem);\r\n        font-weight: 700;\r\n        color: var(--text-primary);\r\n        margin-bottom: 0.25rem;\r\n        word-break: break-word;\r\n    }\r\n\r\n    .audio-artist {\r\n        font-size: clamp(0.75rem, 2vw, 0.85rem);\r\n        color: var(--text-muted);\r\n        margin-bottom: 1rem;\r\n        word-break: break-word;\r\n    }\r\n\r\n    \/* Audio Progress Bar *\/\r\n    .audio-progress-container {\r\n        width: 100%;\r\n        margin-bottom: 1rem;\r\n    }\r\n\r\n    .audio-progress {\r\n        height: clamp(6px, 2vw, 8px);\r\n        background: rgba(126, 34, 206, 0.2);\r\n        border-radius: 4px;\r\n        position: relative;\r\n        cursor: pointer;\r\n        overflow: hidden;\r\n        margin-bottom: 0.5rem;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .audio-progress-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--accent), var(--accent-light));\r\n        border-radius: 4px;\r\n        width: 0%;\r\n        transition: width 0.1s ease;\r\n        box-shadow: 0 0 10px rgba(126, 34, 206, 0.4);\r\n    }\r\n\r\n    .audio-time {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        color: var(--text-muted);\r\n        margin-bottom: 1rem;\r\n    }\r\n\r\n    \/* Audio Controls *\/\r\n    .audio-controls {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: clamp(0.8rem, 3vw, 1rem);\r\n        margin-bottom: 1rem;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .audio-play-btn {\r\n        width: clamp(44px, 10vw, 50px);\r\n        height: clamp(44px, 10vw, 50px);\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        border: none;\r\n        border-radius: 50%;\r\n        color: white;\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        box-shadow: var(--shadow-sm), var(--shadow-accent);\r\n        font-size: clamp(1rem, 2.5vw, 1.2rem);\r\n        flex-shrink: 0;\r\n        animation: audioPlayPulse 4s ease-in-out infinite;\r\n        border: 2px solid rgba(126, 34, 206, 0.3);\r\n        min-height: 44px;\r\n        min-width: 44px;\r\n    }\r\n\r\n    .audio-play-btn:hover,\r\n    .audio-play-btn:active {\r\n        transform: scale(1.1);\r\n        box-shadow: var(--shadow-md), var(--shadow-accent);\r\n    }\r\n\r\n    \/* Audio Volume Control *\/\r\n    .audio-volume-control {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: clamp(0.5rem, 2vw, 0.75rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .audio-volume-btn {\r\n        background: rgba(126, 34, 206, 0.15);\r\n        border: none;\r\n        color: var(--accent-light);\r\n        width: clamp(36px, 8vw, 40px);\r\n        height: clamp(36px, 8vw, 40px);\r\n        border-radius: 50%;\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        transition: all 0.3s ease;\r\n        backdrop-filter: blur(10px);\r\n        border: 1px solid rgba(126, 34, 206, 0.2);\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        min-height: 44px;\r\n        min-width: 44px;\r\n    }\r\n\r\n    .audio-volume-btn:hover,\r\n    .audio-volume-btn:active {\r\n        background: rgba(126, 34, 206, 0.25);\r\n        transform: scale(1.1);\r\n        box-shadow: var(--shadow-sm);\r\n    }\r\n\r\n    .audio-volume-slider {\r\n        width: clamp(60px, 15vw, 80px);\r\n        height: clamp(4px, 1.5vw, 6px);\r\n        background: rgba(126, 34, 206, 0.2);\r\n        border-radius: 3px;\r\n        cursor: pointer;\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .audio-volume-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--accent), var(--accent-light));\r\n        border-radius: 3px;\r\n        width: 100%;\r\n        transition: width 0.1s ease;\r\n        box-shadow: 0 0 8px rgba(126, 34, 206, 0.4);\r\n    }\r\n\r\n    .download-audio-section {\r\n        text-align: center;\r\n    }\r\n\r\n    .download-audio-btn {\r\n        background: linear-gradient(135deg, var(--accent), var(--accent-light));\r\n        color: white;\r\n        border: none;\r\n        padding: clamp(0.8rem, 3vw, 1rem) clamp(1rem, 3vw, 1.5rem);\r\n        border-radius: 14px;\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: inline-flex;\r\n        align-items: center;\r\n        gap: 0.5rem;\r\n        box-shadow: var(--shadow-sm), var(--shadow-accent);\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        animation: buttonGlow 5s ease-in-out infinite;\r\n        border: 1px solid rgba(126, 34, 206, 0.3);\r\n        min-height: 48px;\r\n        width: 100%;\r\n        max-width: 300px;\r\n        justify-content: center;\r\n    }\r\n\r\n    .download-audio-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .download-audio-btn:hover:not(:disabled)::before,\r\n    .download-audio-btn:active:not(:disabled)::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .download-audio-btn:hover:not(:disabled),\r\n    .download-audio-btn:active:not(:disabled) {\r\n        transform: translateY(-3px) scale(1.02);\r\n        box-shadow: var(--shadow-md), var(--shadow-accent);\r\n    }\r\n\r\n    .download-audio-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n        animation: none;\r\n    }\r\n\r\n    \/* Download Progress *\/\r\n    .download-progress {\r\n        position: fixed;\r\n        bottom: 1.5rem;\r\n        right: 1.5rem;\r\n        background: var(--card-bg);\r\n        backdrop-filter: blur(25px);\r\n        border: 1px solid var(--border-color);\r\n        border-radius: 14px;\r\n        padding: clamp(1rem, 3vw, 1.5rem) clamp(1.5rem, 4vw, 2rem);\r\n        min-width: min(320px, 90vw);\r\n        max-width: 90vw;\r\n        box-shadow: var(--shadow-xl), var(--shadow-primary);\r\n        z-index: 1000;\r\n        display: none;\r\n    }\r\n\r\n    .download-progress.show {\r\n        display: block;\r\n        animation: slideInRight 0.4s ease-out;\r\n    }\r\n\r\n    .progress-header {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        margin-bottom: 1rem;\r\n        gap: 1rem;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .progress-text {\r\n        font-weight: 700;\r\n        font-size: clamp(0.8rem, 2vw, 0.95rem);\r\n        color: var(--text-primary);\r\n        background: linear-gradient(135deg, var(--primary-light), var(--secondary-light));\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        flex: 1;\r\n        min-width: 0;\r\n    }\r\n\r\n    .cancel-btn {\r\n        background: rgba(239, 68, 68, 0.15);\r\n        border: 1px solid rgba(239, 68, 68, 0.3);\r\n        color: #ef4444;\r\n        padding: clamp(0.4rem, 1.5vw, 0.5rem) clamp(0.8rem, 2vw, 1rem);\r\n        border-radius: 10px;\r\n        font-size: clamp(0.7rem, 2vw, 0.8rem);\r\n        cursor: pointer;\r\n        transition: all 0.3s ease;\r\n        font-weight: 600;\r\n        backdrop-filter: blur(10px);\r\n        min-height: 36px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .cancel-btn:hover,\r\n    .cancel-btn:active {\r\n        background: rgba(239, 68, 68, 0.25);\r\n        transform: scale(1.05);\r\n    }\r\n\r\n    .progress-bar-container {\r\n        width: 100%;\r\n        height: clamp(6px, 2vw, 8px);\r\n        background: rgba(126, 34, 206, 0.2);\r\n        border-radius: 4px;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .progress-bar-fill {\r\n        height: 100%;\r\n        background: linear-gradient(90deg, var(--secondary), var(--secondary-light));\r\n        border-radius: 4px;\r\n        width: 0%;\r\n        transition: width 0.3s ease;\r\n        box-shadow: 0 0 12px rgba(15, 118, 110, 0.4);\r\n        animation: progressGlow 3s ease-in-out infinite;\r\n    }\r\n\r\n    \/* Error Message *\/\r\n    .error-message {\r\n        background: linear-gradient(135deg,\r\n                rgba(239, 68, 68, 0.1) 0%,\r\n                var(--card-bg) 100%);\r\n        border: 1px solid rgba(239, 68, 68, 0.3);\r\n        color: #ef4444;\r\n        padding: clamp(1rem, 3vw, 1.2rem) clamp(1.2rem, 4vw, 1.8rem);\r\n        border-radius: 14px;\r\n        margin: 1rem 0;\r\n        display: none;\r\n        align-items: center;\r\n        gap: clamp(0.5rem, 2vw, 1rem);\r\n        font-weight: 600;\r\n        backdrop-filter: blur(15px);\r\n        box-shadow: var(--shadow-sm);\r\n        animation: errorShake 0.5s ease-in-out;\r\n        font-size: clamp(0.8rem, 2vw, 1rem);\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .paste-btn {\r\n        background: linear-gradient(135deg, var(--secondary), var(--secondary-light));\r\n        border: none;\r\n        color: white;\r\n        cursor: pointer;\r\n        padding: clamp(0.5rem, 2vw, 0.7rem) clamp(0.8rem, 3vw, 1.4rem);\r\n        border-radius: 12px;\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 0.5rem;\r\n        font-weight: 600;\r\n        box-shadow: var(--shadow-sm), var(--shadow-secondary);\r\n        font-size: clamp(0.8rem, 2vw, 0.9rem);\r\n        position: relative;\r\n        overflow: hidden;\r\n        border: 1px solid rgba(15, 118, 110, 0.3);\r\n        min-height: 44px !important;\r\n        width: 100%;\r\n        display: flex;\r\n        justify-content: center;\r\n    }\r\n\r\n    .error-message.show {\r\n        display: flex;\r\n        animation: fadeInUp 0.3s ease-out, errorShake 0.5s ease-in-out;\r\n    }\r\n\r\n    \/* Animations *\/\r\n    @keyframes gradientShift {\r\n        0%, 100% { background-position: 0% 50%; }\r\n        50% { background-position: 100% 50%; }\r\n    }\r\n\r\n    @keyframes backgroundFloat {\r\n        0%, 100% { opacity: 1; transform: translateY(0px); }\r\n        50% { opacity: 0.8; transform: translateY(-10px); }\r\n    }\r\n\r\n    @keyframes fadeInDown {\r\n        from { opacity: 0; transform: translateY(-40px); }\r\n        to { opacity: 1; transform: translateY(0); }\r\n    }\r\n\r\n    @keyframes fadeInUp {\r\n        from { opacity: 0; transform: translateY(40px); }\r\n        to { opacity: 1; transform: translateY(0); }\r\n    }\r\n\r\n    @keyframes slideInRight {\r\n        from { opacity: 0; transform: translateX(100%); }\r\n        to { opacity: 1; transform: translateX(0); }\r\n    }\r\n\r\n    @keyframes spin {\r\n        to { transform: rotate(360deg); }\r\n    }\r\n\r\n    @keyframes logoFloat {\r\n        0%, 100% { transform: translateY(0px) rotate(0deg); }\r\n        50% { transform: translateY(-10px) rotate(5deg); }\r\n    }\r\n\r\n    @keyframes logoShine {\r\n        0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }\r\n        100% { transform: translateX(100%) translateY(100%) rotate(45deg); }\r\n    }\r\n\r\n    @keyframes textGradient {\r\n        0%, 100% { background-position: 0% 50%; }\r\n        50% { background-position: 100% 50%; }\r\n    }\r\n\r\n    @keyframes subtitleGlow {\r\n        0%, 100% { text-shadow: 0 0 5px rgba(148, 163, 184, 0.3); }\r\n        50% { text-shadow: 0 0 15px rgba(148, 163, 184, 0.6); }\r\n    }\r\n\r\n    @keyframes borderFlow {\r\n        0%, 100% { opacity: 0.5; }\r\n        50% { opacity: 1; }\r\n    }\r\n\r\n    @keyframes overlayPulse {\r\n        0%, 100% { opacity: 1; }\r\n        50% { opacity: 0.7; }\r\n    }\r\n\r\n    @keyframes inputFocusGlow {\r\n        0%, 100% { box-shadow: 0 0 0 4px rgba(30, 58, 138, 0.2), var(--shadow-primary), inset 0 2px 10px rgba(0, 0, 0, 0.3); }\r\n        50% { box-shadow: 0 0 0 6px rgba(30, 58, 138, 0.4), var(--shadow-primary), inset 0 2px 10px rgba(0, 0, 0, 0.3); }\r\n    }\r\n\r\n    @keyframes buttonPulse {\r\n        0%, 100% { box-shadow: var(--shadow-md), var(--shadow-primary); }\r\n        50% { box-shadow: var(--shadow-xl), var(--shadow-primary); }\r\n    }\r\n\r\n    @keyframes buttonHoverGlow {\r\n        0%, 100% { filter: brightness(1); }\r\n        50% { filter: brightness(1.2); }\r\n    }\r\n\r\n    @keyframes textFade {\r\n        0%, 100% { opacity: 0.7; }\r\n        50% { opacity: 1; }\r\n    }\r\n\r\n    @keyframes avatarPulse {\r\n        0%, 100% { box-shadow: var(--shadow-sm), var(--shadow-primary); }\r\n        50% { box-shadow: var(--shadow-sm), 0 0 30px rgba(30, 58, 138, 0.6); }\r\n    }\r\n\r\n    @keyframes valueGlow {\r\n        0%, 100% { filter: brightness(1); }\r\n        50% { filter: brightness(1.2); }\r\n    }\r\n\r\n    @keyframes gridMove {\r\n        0% { transform: translate(0, 0); }\r\n        100% { transform: translate(30px, 30px); }\r\n    }\r\n\r\n    @keyframes titlePulse {\r\n        0%, 100% { filter: brightness(1); }\r\n        50% { filter: brightness(1.3); }\r\n    }\r\n\r\n    @keyframes playButtonPulse {\r\n        0%, 100% { transform: scale(1); }\r\n        50% { transform: scale(1.05); }\r\n    }\r\n\r\n    @keyframes buttonGlow {\r\n        0%, 100% { box-shadow: var(--shadow-sm); }\r\n        50% { box-shadow: var(--shadow-md); }\r\n    }\r\n\r\n    @keyframes audioIconPulse {\r\n        0%, 100% { transform: scale(1); }\r\n        50% { transform: scale(1.1); }\r\n    }\r\n\r\n    @keyframes audioWaveRipple {\r\n        0% { opacity: 1; transform: translate(-50%, -50%) scale(0.8); }\r\n        100% { opacity: 0; transform: translate(-50%, -50%) scale(2); }\r\n    }\r\n\r\n    @keyframes audioPlayPulse {\r\n        0%, 100% { box-shadow: var(--shadow-sm), var(--shadow-accent); }\r\n        50% { box-shadow: var(--shadow-md), var(--shadow-accent); }\r\n    }\r\n\r\n    @keyframes progressGlow {\r\n        0%, 100% { box-shadow: 0 0 12px rgba(15, 118, 110, 0.4); }\r\n        50% { box-shadow: 0 0 20px rgba(15, 118, 110, 0.8); }\r\n    }\r\n\r\n    @keyframes errorShake {\r\n        0%, 100% { transform: translateX(0); }\r\n        25% { transform: translateX(-5px); }\r\n        75% { transform: translateX(5px); }\r\n    }\r\n\r\n    \/* Responsive Design *\/\r\n    @media (max-width: 1024px) {\r\n        .container_tiktok {\r\n            padding: clamp(1rem, 3vw, 1.5rem);\r\n        }\r\n        \r\n        .video-stats {\r\n            grid-template-columns: repeat(3, 1fr);\r\n        }\r\n        \r\n        .download-grid {\r\n            grid-template-columns: 1fr;\r\n        }\r\n        \r\n        .action-buttons {\r\n            grid-template-columns: 1fr;\r\n            gap: 1rem;\r\n        }\r\n        \r\n        .search-another-btn {\r\n            width: 100%;\r\n        }\r\n        \r\n        .audio-player-section {\r\n            flex-direction: column;\r\n            text-align: center;\r\n            gap: 1rem;\r\n        }\r\n        \r\n        .audio-controls {\r\n            flex-direction: row;\r\n            justify-content: center;\r\n            gap: 1rem;\r\n        }\r\n        \r\n        .audio-volume-control {\r\n            justify-content: center;\r\n        }\r\n        \r\n        .video-player-wrapper {\r\n            max-width: min(320px, 85vw);\r\n        }\r\n        \r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n            margin-top: 60px;\r\n        }\r\n        \r\n        .logo {\r\n            flex-direction: column !important;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 768px) {\r\n        .container_tiktok {\r\n            padding: 1rem;\r\n        }\r\n        \r\n        .logo {\r\n            flex-direction: column;\r\n            gap: 1rem;\r\n        }\r\n        \r\n        .logo-icon {\r\n            width: 60px;\r\n            height: 60px;\r\n            font-size: 24px;\r\n        }\r\n        \r\n        .video-stats {\r\n            grid-template-columns: repeat(2, 1fr);\r\n            gap: 0.8rem;\r\n        }\r\n        \r\n        .author-section {\r\n            flex-direction: column;\r\n            text-align: center;\r\n            gap: 1rem;\r\n        }\r\n        \r\n        .download-progress {\r\n            left: 1rem;\r\n            right: 1rem;\r\n            bottom: 1rem;\r\n            min-width: auto;\r\n        }\r\n        \r\n        .control-buttons {\r\n            flex-direction: column;\r\n            gap: 1rem;\r\n            align-items: center;\r\n        }\r\n        \r\n        .volume-control {\r\n            order: 3;\r\n            width: 100%;\r\n            justify-content: center;\r\n        }\r\n        \r\n        .audio-controls {\r\n            flex-direction: column;\r\n            gap: 1rem;\r\n        }\r\n        \r\n        .audio-volume-control {\r\n            width: 100%;\r\n            justify-content: center;\r\n        }\r\n        \r\n        .video-player-wrapper {\r\n            max-width: min(300px, 80vw);\r\n        }\r\n        \r\n        .video-controls {\r\n            transform: translateY(0);\r\n            position: relative;\r\n            background: rgba(0, 0, 0, 0.8);\r\n            margin-top: 1rem;\r\n            border-radius: 12px;\r\n        }\r\n        \r\n        .video-player-wrapper:hover .video-controls {\r\n            transform: translateY(0);\r\n        }\r\n        \r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n            margin-top: 60px;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 480px) {\r\n        .container_tiktok {\r\n            padding: 0.8rem;\r\n        }\r\n        \r\n        .header {\r\n            margin-bottom: 1.5rem;\r\n        }\r\n        \r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n        }\r\n        \r\n        .video-stats {\r\n            grid-template-columns: 1fr;\r\n            gap: 0.6rem;\r\n        }\r\n        \r\n        .stat-item {\r\n            min-height: 70px;\r\n            padding: 0.8rem;\r\n        }\r\n        \r\n        .stat-value {\r\n            font-size: 1.3rem;\r\n        }\r\n        \r\n        .audio-player-section {\r\n            gap: 0.8rem;\r\n        }\r\n        \r\n        .audio-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            font-size: 1rem;\r\n        }\r\n        \r\n        .audio-play-btn {\r\n            width: 44px;\r\n            height: 44px;\r\n            font-size: 1rem;\r\n        }\r\n        \r\n        .video-player-wrapper {\r\n            max-width: min(280px, 75vw);\r\n        }\r\n        \r\n        .thumbnail-play-btn {\r\n            width: 60px;\r\n            height: 60px;\r\n            font-size: 1.5rem;\r\n        }\r\n        \r\n        .download-progress {\r\n            left: 0.5rem;\r\n            right: 0.5rem;\r\n            bottom: 0.5rem;\r\n            padding: 1rem;\r\n        }\r\n        \r\n        .progress-header {\r\n            flex-direction: column;\r\n            gap: 0.5rem;\r\n            align-items: stretch;\r\n        }\r\n        \r\n        .cancel-btn {\r\n            align-self: center;\r\n            min-width: 80px;\r\n        }\r\n        \r\n        .input-field {\r\n            font-size: 16px;\r\n        }\r\n        \r\n        .control-btn,\r\n        .audio-play-btn,\r\n        .audio-volume-btn,\r\n        .paste-btn,\r\n        .search-btn,\r\n        .download-btn,\r\n        .download-audio-btn {\r\n            min-height: 44px;\r\n            min-width: 44px;\r\n        }\r\n        \r\n        .progress-bar,\r\n        .audio-progress,\r\n        .volume-slider,\r\n        .audio-volume-slider {\r\n            min-height: 44px;\r\n        }\r\n        \r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n            margin-top: 60px;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 360px) {\r\n        .container_tiktok {\r\n            padding: 0.5rem;\r\n        }\r\n        \r\n        .search-section,\r\n        .video-section,\r\n        .download-section,\r\n        .audio-streaming {\r\n            padding: 1rem;\r\n            border-radius: 14px;\r\n        }\r\n        \r\n        .logo-text {\r\n            font-size: 1.5rem;\r\n            letter-spacing: -1px;\r\n        }\r\n        \r\n        .subtitle {\r\n            font-size: 0.8rem;\r\n        }\r\n        \r\n        .video-player-wrapper {\r\n            max-width: min(260px, 70vw);\r\n        }\r\n        \r\n        .audio-wave:nth-child(1) {\r\n            width: 45px;\r\n            height: 45px;\r\n        }\r\n        \r\n        .audio-wave:nth-child(2) {\r\n            width: 55px;\r\n            height: 55px;\r\n        }\r\n        \r\n        .audio-wave:nth-child(3) {\r\n            width: 65px;\r\n            height: 65px;\r\n        }\r\n        \r\n        .logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 20px;\r\n            margin-top: 60px;\r\n        }\r\n    }\r\n\r\n    @media (max-height: 500px) and (orientation: landscape) {\r\n        .container_tiktok {\r\n            padding: 1rem;\r\n        }\r\n        \r\n        .header {\r\n            margin-bottom: 1rem;\r\n        }\r\n        \r\n        .logo {\r\n            flex-direction: row;\r\n            gap: 1rem;\r\n        }\r\n        \r\n        .logo-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            font-size: 16px;\r\n        }\r\n        \r\n        .video-player-wrapper {\r\n            max-width: min(200px, 30vw);\r\n        }\r\n        \r\n        .video-stats {\r\n            grid-template-columns: repeat(5, 1fr);\r\n            gap: 0.5rem;\r\n        }\r\n        \r\n        .stat-item {\r\n            min-height: 60px;\r\n            padding: 0.5rem;\r\n        }\r\n        \r\n        .stat-value {\r\n            font-size: 1rem;\r\n        }\r\n        \r\n        .stat-label {\r\n            font-size: 0.6rem;\r\n        }\r\n    }\r\n\r\n    @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\r\n        .logo-icon,\r\n        .author-avatar,\r\n        .audio-icon,\r\n        .thumbnail-play-btn,\r\n        .audio-play-btn {\r\n            image-rendering: -webkit-optimize-contrast;\r\n            image-rendering: crisp-edges;\r\n        }\r\n    }\r\n\r\n    @media (prefers-reduced-motion: reduce) {\r\n        *, *::before, *::after {\r\n            animation-duration: 0.01ms !important;\r\n            animation-iteration-count: 1 !important;\r\n            transition-duration: 0.01ms !important;\r\n        }\r\n        \r\n        .video-player-wrapper,\r\n        .search-section,\r\n        .video-section,\r\n        .download-section,\r\n        .audio-streaming {\r\n            animation: none !important;\r\n        }\r\n    }\r\n\r\n    @media (prefers-contrast: high) {\r\n        :root {\r\n            --card-bg: rgba(0, 0, 0, 0.9);\r\n            --input-bg: rgba(0, 0, 0, 0.9);\r\n            --border-color: rgba(255, 255, 255, 0.8);\r\n            --shadow-sm: 0 4px 20px rgba(0, 0, 0, 0.8);\r\n            --shadow-md: 0 8px 40px rgba(0, 0, 0, 0.9);\r\n            --shadow-lg: 0 16px 60px rgba(0, 0, 0, 1);\r\n            --shadow-xl: 0 25px 50px -12px rgba(0, 0, 0, 1);\r\n        }\r\n        \r\n        .input-field,\r\n        .search-btn,\r\n        .download-btn,\r\n        .audio-play-btn {\r\n            border: 2px solid var(--text-primary);\r\n        }\r\n    }\r\n\r\n    @media (prefers-color-scheme: dark) {\r\n        body {\r\n            background: linear-gradient(135deg,\r\n                    #000000 0%,\r\n                    var(--bg-primary) 25%,\r\n                    var(--bg-secondary) 50%,\r\n                    var(--neutral-medium) 75%,\r\n                    var(--neutral-dark) 100%);\r\n        }\r\n    }\r\n\r\n    @media print {\r\n        body {\r\n            background: white !important;\r\n            color: black !important;\r\n        }\r\n        \r\n        .container_tiktok {\r\n            max-width: none;\r\n            padding: 0;\r\n        }\r\n        \r\n        .video-player-wrapper,\r\n        .download-section,\r\n        .audio-streaming,\r\n        .download-progress {\r\n            display: none !important;\r\n        }\r\n        \r\n        .search-section,\r\n        .video-section {\r\n            background: white !important;\r\n            border: 1px solid black !important;\r\n            box-shadow: none !important;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div class=\"tiktok_body\">\r\n    \r\n\r\n\t\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n\t\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n\t\r\n    <script>\r\n        const API_URL = 'https:\/\/tools.xrespond.com\/api\/tiktok\/profile\/videos\/details';\r\n        let currentVideoData = null;\r\n        let isLoading = false;\r\n        let isDownloading = false;\r\n        let downloadController = null;\r\n        let currentVolume = 1;\r\n        let isMuted = false;\r\n        let isFullscreen = false;\r\n        let audioPlaying = false;\r\n        let videoStarted = false;\r\n        let audioCurrentVolume = 1;\r\n        let audioIsMuted = false;\r\n\r\n        \/\/ Mobile detection\r\n        const isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent);\r\n        const isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\r\n\r\n        \/\/ Utility Functions\r\n        function formatNumber(num) {\r\n            if (num >= 1000000) {\r\n                return (num \/ 1000000).toFixed(1) + 'M';\r\n            }\r\n            if (num >= 1000) {\r\n                return (num \/ 1000).toFixed(1) + 'K';\r\n            }\r\n            return num.toString();\r\n        }\r\n\r\n        function formatDuration(seconds) {\r\n            const mins = Math.floor(seconds \/ 60);\r\n            const secs = Math.floor(seconds % 60);\r\n            return `${mins}:${secs.toString().padStart(2, '0')}`;\r\n        }\r\n\r\n        function formatFileSize(bytes) {\r\n            if (bytes >= 1024 * 1024) {\r\n                return (bytes \/ (1024 * 1024)).toFixed(1) + ' MB';\r\n            }\r\n            if (bytes >= 1024) {\r\n                return (bytes \/ 1024).toFixed(1) + ' KB';\r\n            }\r\n            return bytes + ' B';\r\n        }\r\n\r\n        \/\/ Mobile-specific functions\r\n        function showVideoControlsOnMobile() {\r\n            if (isMobile || isTouch) {\r\n                const videoControls = document.getElementById('videoControls');\r\n                if (videoControls) {\r\n                    videoControls.classList.add('show');\r\n                    \/\/ Hide after 3 seconds of inactivity\r\n                    setTimeout(() => {\r\n                        if (!videoControls.matches(':hover')) {\r\n                            videoControls.classList.remove('show');\r\n                        }\r\n                    }, 3000);\r\n                }\r\n            }\r\n        }\r\n\r\n        function handleTouchEvents() {\r\n            if (isMobile || isTouch) {\r\n                \/\/ Add touch event listeners for better mobile interaction\r\n                document.addEventListener('touchstart', function (e) {\r\n                    \/\/ Handle touch start\r\n                }, { passive: true });\r\n\r\n                document.addEventListener('touchend', function (e) {\r\n                    \/\/ Handle touch end\r\n                }, { passive: true });\r\n\r\n                \/\/ Prevent zoom on double tap for video controls\r\n                let lastTouchEnd = 0;\r\n                document.addEventListener('touchend', function (e) {\r\n                    const now = (new Date()).getTime();\r\n                    if (now - lastTouchEnd <= 300) {\r\n                        e.preventDefault();\r\n                    }\r\n                    lastTouchEnd = now;\r\n                }, false);\r\n            }\r\n        }\r\n\r\n        \/\/ UI Functions\r\n        function showLoading() {\r\n            document.getElementById('loading').style.display = 'block';\r\n        }\r\n\r\n        function hideLoading() {\r\n            document.getElementById('loading').style.display = 'none';\r\n        }\r\n\r\n        function showError(message) {\r\n            const errorDiv = document.getElementById('errorMessage');\r\n            const errorText = document.getElementById('errorText');\r\n            errorText.textContent = message;\r\n            errorDiv.classList.add('show');\r\n\r\n            \/\/ Auto-hide error after 5 seconds on mobile\r\n            if (isMobile) {\r\n                setTimeout(() => {\r\n                    hideError();\r\n                }, 5000);\r\n            }\r\n        }\r\n\r\n        function hideError() {\r\n            document.getElementById('errorMessage').classList.remove('show');\r\n        }\r\n\r\n        function showDownloadProgress(text, progress = 0) {\r\n            const progressDiv = document.getElementById('downloadProgress');\r\n            const progressText = document.getElementById('progressText');\r\n            const progressFill = document.getElementById('progressBarFill');\r\n\r\n            \/\/ Add null checks to prevent errors\r\n            if (progressText) {\r\n                progressText.textContent = text;\r\n            }\r\n            if (progressFill) {\r\n                progressFill.style.width = `${progress}%`;\r\n            }\r\n            if (progressDiv) {\r\n                progressDiv.classList.add('show');\r\n            }\r\n        }\r\n\r\n        function hideDownloadProgress() {\r\n            const progressDiv = document.getElementById('downloadProgress');\r\n            if (progressDiv) {\r\n                progressDiv.classList.remove('show');\r\n            }\r\n        }\r\n\r\n        \/\/ Main Functions\r\n        async function pasteFromClipboard() {\r\n            try {\r\n                const text = await navigator.clipboard.readText();\r\n                document.getElementById('videoInput').value = text;\r\n            } catch (err) {\r\n                console.error('Failed to read clipboard:', err);\r\n                \/\/ On mobile, focus the input to show keyboard\r\n                const input = document.getElementById('videoInput');\r\n                input.focus();\r\n                if (isMobile) {\r\n                    input.select();\r\n                }\r\n            }\r\n        }\r\n\r\n        function searchAnother() {\r\n            document.getElementById('videoInput').value = '';\r\n            document.getElementById('videoSection').style.display = 'none';\r\n            document.getElementById('searchAnotherBtn').style.display = 'none';\r\n            document.getElementById('audioStreaming').style.display = 'none';\r\n            currentVideoData = null;\r\n            videoStarted = false;\r\n            hideError();\r\n\r\n            \/\/ Reset players\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const audioElement = document.getElementById('audioElement');\r\n            const videoThumbnail = document.getElementById('videoThumbnail');\r\n            const thumbnailOverlay = document.querySelector('.thumbnail-overlay');\r\n\r\n            videoPlayer.src = '';\r\n            videoPlayer.pause();\r\n            videoPlayer.classList.remove('playing');\r\n            audioElement.src = '';\r\n            audioElement.pause();\r\n            audioPlaying = false;\r\n            document.getElementById('audioPlayBtn').innerHTML = '<i class=\"fas fa-play\"><\/i>';\r\n\r\n            \/\/ Show thumbnail again\r\n            videoThumbnail.style.display = 'block';\r\n            thumbnailOverlay.style.display = 'flex';\r\n\r\n            \/\/ Scroll to top on mobile\r\n            if (isMobile) {\r\n                window.scrollTo({ top: 0, behavior: 'smooth' });\r\n            }\r\n\r\n            document.getElementById('videoInput').focus();\r\n        }\r\n\r\n        async function loadVideo() {\r\n            if (isLoading) return;\r\n\r\n            const input = document.getElementById('videoInput').value.trim();\r\n            if (!input) {\r\n                showError('Please enter a TikTok video URL or ID');\r\n                return;\r\n            }\r\n\r\n            isLoading = true;\r\n            const loadBtn = document.getElementById('loadBtn');\r\n            const loadText = document.getElementById('loadText');\r\n\r\n            loadBtn.disabled = true;\r\n            loadText.textContent = 'Loading...';\r\n            showLoading();\r\n            hideError();\r\n\r\n            try {\r\n                const response = await fetch(API_URL, {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json',\r\n                        'Accept': 'application\/json'\r\n                    },\r\n                    body: JSON.stringify({ url: input })\r\n                });\r\n\r\n                const data = await response.json();\r\n\r\n                if (data.status !== 'success') {\r\n                    throw new Error(data.message || 'Failed to load video');\r\n                }\r\n\r\n                currentVideoData = data.data.data;\r\n                displayVideo(currentVideoData);\r\n\r\n                document.getElementById('videoSection').style.display = 'block';\r\n                document.getElementById('searchAnotherBtn').style.display = 'block';\r\n                document.getElementById('videoInput').value = '';\r\n\r\n                \/\/ Scroll to video section on mobile\r\n                if (isMobile) {\r\n                    setTimeout(() => {\r\n                        document.getElementById('videoSection').scrollIntoView({\r\n                            behavior: 'smooth',\r\n                            block: 'start'\r\n                        });\r\n                    }, 500);\r\n                }\r\n\r\n            } catch (error) {\r\n                showError(error.message || 'Error loading video. Please try again.');\r\n                console.error('Load video error:', error);\r\n            } finally {\r\n                isLoading = false;\r\n                loadBtn.disabled = false;\r\n                loadText.textContent = 'Load Video';\r\n                hideLoading();\r\n            }\r\n        }\r\n\r\n        function displayVideo(data) {\r\n            \/\/ Set video title\r\n            document.getElementById('videoTitle').textContent = data.title;\r\n\r\n            \/\/ Set video stats in horizontal grid\r\n            const statsContainer = document.getElementById('videoStats');\r\n            statsContainer.innerHTML = `\r\n                <div class=\"stat-item views\">\r\n                    <span class=\"stat-value\">${formatNumber(data.play_count)}<\/span>\r\n                    <span class=\"stat-label\">Views<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item likes\">\r\n                    <span class=\"stat-value\">${formatNumber(data.digg_count)}<\/span>\r\n                    <span class=\"stat-label\">Likes<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item comments\">\r\n                    <span class=\"stat-value\">${formatNumber(data.comment_count)}<\/span>\r\n                    <span class=\"stat-label\">Comments<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item shares\">\r\n                    <span class=\"stat-value\">${formatNumber(data.share_count)}<\/span>\r\n                    <span class=\"stat-label\">Shares<\/span>\r\n                <\/div>\r\n                <div class=\"stat-item duration\">\r\n                    <span class=\"stat-value\">${formatDuration(data.duration)}<\/span>\r\n                    <span class=\"stat-label\">Duration<\/span>\r\n                <\/div>\r\n            `;\r\n\r\n            \/\/ Set author info\r\n            document.getElementById('authorAvatar').src = data.author.avatar;\r\n            document.getElementById('authorName').textContent = data.author.nickname;\r\n            document.getElementById('authorUsername').textContent = `@${data.author.unique_id}`;\r\n\r\n            \/\/ Set video thumbnail\r\n            const videoThumbnail = document.getElementById('videoThumbnail');\r\n            videoThumbnail.src = data.cover || data.dynamic_cover || '\/placeholder.svg?height=600&width=400';\r\n\r\n            \/\/ Set video player\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            videoPlayer.src = data.play;\r\n            videoPlayer.addEventListener('loadedmetadata', () => {\r\n                videoPlayer.volume = currentVolume;\r\n                videoPlayer.muted = isMuted;\r\n                updateVolumeDisplay();\r\n                \/\/ Set video duration\r\n                document.getElementById('videoDuration').textContent = formatDuration(videoPlayer.duration);\r\n            });\r\n            videoPlayer.addEventListener('timeupdate', updateVideoProgress);\r\n\r\n            \/\/ Mobile-specific video player setup\r\n            if (isMobile) {\r\n                videoPlayer.setAttribute('playsinline', 'true');\r\n                videoPlayer.setAttribute('webkit-playsinline', 'true');\r\n\r\n                \/\/ Show controls on touch\r\n                videoPlayer.addEventListener('touchstart', showVideoControlsOnMobile);\r\n            }\r\n\r\n            \/\/ Set audio player\r\n            if (data.music) {\r\n                const audioElement = document.getElementById('audioElement');\r\n                const audioStreaming = document.getElementById('audioStreaming');\r\n                const audioTitle = document.getElementById('audioTitle');\r\n                const audioArtist = document.getElementById('audioArtist');\r\n\r\n                audioElement.src = data.music;\r\n                audioTitle.textContent = data.music_info?.title || 'Audio Track';\r\n                audioArtist.textContent = data.music_info?.author || data.author.nickname;\r\n                audioStreaming.style.display = 'block';\r\n\r\n                audioElement.addEventListener('timeupdate', updateAudioProgress);\r\n                audioElement.addEventListener('loadedmetadata', () => {\r\n                    document.getElementById('audioDuration').textContent = formatDuration(audioElement.duration);\r\n                    audioElement.volume = audioCurrentVolume;\r\n                    audioElement.muted = audioIsMuted;\r\n                    updateAudioVolumeDisplay();\r\n                });\r\n            }\r\n\r\n            \/\/ Update download buttons\r\n            updateDownloadButtons(data);\r\n        }\r\n\r\n        function updateDownloadButtons(data) {\r\n            const standardBtn = document.getElementById('downloadStandard');\r\n            const hdBtn = document.getElementById('downloadHD');\r\n            const audioBtn = document.getElementById('downloadAudio');\r\n\r\n            \/\/ Standard quality\r\n            standardBtn.innerHTML = `<i class=\"fas fa-download\"><\/i><span>Standard (${formatFileSize(data.size)})<\/span>`;\r\n\r\n            \/\/ HD quality\r\n            if (data.hd_size && data.hdplay) {\r\n                hdBtn.innerHTML = `<i class=\"fas fa-hd-video\"><\/i><span>HD (${formatFileSize(data.hd_size)})<\/span>`;\r\n                hdBtn.style.display = 'flex';\r\n            } else {\r\n                hdBtn.style.display = 'none';\r\n            }\r\n\r\n            \/\/ Audio\r\n            audioBtn.innerHTML = `<i class=\"fas fa-download\"><\/i><span>Download Audio<\/span>`;\r\n        }\r\n\r\n        function startVideoPlayback() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const videoThumbnail = document.getElementById('videoThumbnail');\r\n            const thumbnailOverlay = document.querySelector('.thumbnail-overlay');\r\n\r\n            \/\/ Hide thumbnail and show video\r\n            videoThumbnail.style.display = 'none';\r\n            thumbnailOverlay.style.display = 'none';\r\n            videoPlayer.classList.add('playing');\r\n\r\n            \/\/ Start playing\r\n            videoPlayer.play().catch(e => {\r\n                console.error('Error playing video:', e);\r\n                showError('Unable to play video. Please try again.');\r\n            });\r\n\r\n            document.getElementById('playBtn').innerHTML = '<i class=\"fas fa-pause\"><\/i>';\r\n            videoStarted = true;\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        \/\/ Video Player Controls\r\n        function togglePlay() {\r\n            if (!videoStarted) {\r\n                startVideoPlayback();\r\n                return;\r\n            }\r\n\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const playBtn = document.getElementById('playBtn');\r\n\r\n            if (videoPlayer.paused) {\r\n                videoPlayer.play().catch(e => {\r\n                    console.error('Error playing video:', e);\r\n                    showError('Unable to play video. Please try again.');\r\n                });\r\n                playBtn.innerHTML = '<i class=\"fas fa-pause\"><\/i>';\r\n            } else {\r\n                videoPlayer.pause();\r\n                playBtn.innerHTML = '<i class=\"fas fa-play\"><\/i>';\r\n            }\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function toggleAudioPlay() {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const audioPlayBtn = document.getElementById('audioPlayBtn');\r\n\r\n            if (audioElement.paused) {\r\n                audioElement.play().catch(e => {\r\n                    console.error('Error playing audio:', e);\r\n                    showError('Unable to play audio. Please try again.');\r\n                });\r\n                audioPlayBtn.innerHTML = '<i class=\"fas fa-pause\"><\/i>';\r\n                audioPlaying = true;\r\n            } else {\r\n                audioElement.pause();\r\n                audioPlayBtn.innerHTML = '<i class=\"fas fa-play\"><\/i>';\r\n                audioPlaying = false;\r\n            }\r\n        }\r\n\r\n        function toggleMute() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const muteBtn = document.getElementById('muteBtn');\r\n\r\n            if (isMuted) {\r\n                isMuted = false;\r\n                videoPlayer.muted = false;\r\n                videoPlayer.volume = currentVolume;\r\n                muteBtn.innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            } else {\r\n                isMuted = true;\r\n                videoPlayer.muted = true;\r\n                muteBtn.innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            }\r\n\r\n            updateVolumeDisplay();\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function toggleAudioMute() {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const audioMuteBtn = document.getElementById('audioMuteBtn');\r\n\r\n            if (audioIsMuted) {\r\n                audioIsMuted = false;\r\n                audioElement.muted = false;\r\n                audioElement.volume = audioCurrentVolume;\r\n                audioMuteBtn.innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            } else {\r\n                audioIsMuted = true;\r\n                audioElement.muted = true;\r\n                audioMuteBtn.innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            }\r\n\r\n            updateAudioVolumeDisplay();\r\n        }\r\n\r\n        function setVolume(event) {\r\n            const volumeSlider = event.currentTarget;\r\n            const rect = volumeSlider.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            currentVolume = Math.max(0, Math.min(1, pos));\r\n\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            videoPlayer.volume = currentVolume;\r\n\r\n            if (currentVolume === 0) {\r\n                isMuted = true;\r\n                videoPlayer.muted = true;\r\n                document.getElementById('muteBtn').innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            } else {\r\n                isMuted = false;\r\n                videoPlayer.muted = false;\r\n                document.getElementById('muteBtn').innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            }\r\n\r\n            updateVolumeDisplay();\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function setAudioVolume(event) {\r\n            const volumeSlider = event.currentTarget;\r\n            const rect = volumeSlider.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            audioCurrentVolume = Math.max(0, Math.min(1, pos));\r\n\r\n            const audioElement = document.getElementById('audioElement');\r\n            audioElement.volume = audioCurrentVolume;\r\n\r\n            if (audioCurrentVolume === 0) {\r\n                audioIsMuted = true;\r\n                audioElement.muted = true;\r\n                document.getElementById('audioMuteBtn').innerHTML = '<i class=\"fas fa-volume-mute\"><\/i>';\r\n            } else {\r\n                audioIsMuted = false;\r\n                audioElement.muted = false;\r\n                document.getElementById('audioMuteBtn').innerHTML = '<i class=\"fas fa-volume-up\"><\/i>';\r\n            }\r\n\r\n            updateAudioVolumeDisplay();\r\n        }\r\n\r\n        function updateVolumeDisplay() {\r\n            const volumeFill = document.getElementById('volumeFill');\r\n            const displayVolume = isMuted ? 0 : currentVolume;\r\n            volumeFill.style.width = `${displayVolume * 100}%`;\r\n        }\r\n\r\n        function updateAudioVolumeDisplay() {\r\n            const volumeFill = document.getElementById('audioVolumeFill');\r\n            const displayVolume = audioIsMuted ? 0 : audioCurrentVolume;\r\n            volumeFill.style.width = `${displayVolume * 100}%`;\r\n        }\r\n\r\n        function seekVideo(event) {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const progressBar = event.currentTarget;\r\n            const rect = progressBar.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            videoPlayer.currentTime = pos * videoPlayer.duration;\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        function seekAudio(event) {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const progressBar = event.currentTarget;\r\n            const rect = progressBar.getBoundingClientRect();\r\n            const pos = (event.clientX - rect.left) \/ rect.width;\r\n            audioElement.currentTime = pos * audioElement.duration;\r\n        }\r\n\r\n        \/\/ Updated video progress function with time display\r\n        function updateVideoProgress() {\r\n            const videoPlayer = document.getElementById('videoPlayer');\r\n            const progressFill = document.getElementById('progressFill');\r\n            const currentTime = document.getElementById('videoCurrentTime');\r\n\r\n            const progress = (videoPlayer.currentTime \/ videoPlayer.duration) * 100;\r\n            progressFill.style.width = `${progress}%`;\r\n            currentTime.textContent = formatDuration(videoPlayer.currentTime);\r\n        }\r\n\r\n        function updateAudioProgress() {\r\n            const audioElement = document.getElementById('audioElement');\r\n            const progressFill = document.getElementById('audioProgressFill');\r\n            const currentTime = document.getElementById('audioCurrentTime');\r\n\r\n            const progress = (audioElement.currentTime \/ audioElement.duration) * 100;\r\n            progressFill.style.width = `${progress}%`;\r\n            currentTime.textContent = formatDuration(audioElement.currentTime);\r\n        }\r\n\r\n        function toggleFullscreen() {\r\n            const videoWrapper = document.querySelector('.video-player-wrapper');\r\n            const fullscreenBtn = document.getElementById('fullscreenBtn');\r\n\r\n            if (!isFullscreen) {\r\n                if (videoWrapper.requestFullscreen) {\r\n                    videoWrapper.requestFullscreen();\r\n                } else if (videoWrapper.webkitRequestFullscreen) {\r\n                    videoWrapper.webkitRequestFullscreen();\r\n                } else if (videoWrapper.msRequestFullscreen) {\r\n                    videoWrapper.msRequestFullscreen();\r\n                }\r\n                isFullscreen = true;\r\n                fullscreenBtn.innerHTML = '<i class=\"fas fa-compress\"><\/i>';\r\n            } else {\r\n                if (document.exitFullscreen) {\r\n                    document.exitFullscreen();\r\n                } else if (document.webkitExitFullscreen) {\r\n                    document.webkitExitFullscreen();\r\n                } else if (document.msExitFullscreen) {\r\n                    document.msExitFullscreen();\r\n                }\r\n                isFullscreen = false;\r\n                fullscreenBtn.innerHTML = '<i class=\"fas fa-expand\"><\/i>';\r\n            }\r\n\r\n            \/\/ Show controls on mobile\r\n            if (isMobile) {\r\n                showVideoControlsOnMobile();\r\n            }\r\n        }\r\n\r\n        \/\/ Download Functions\r\n        async function downloadVideo(quality) {\r\n            if (!currentVideoData || isDownloading) return;\r\n\r\n            let downloadUrl, filename, expectedSize;\r\n\r\n            switch (quality) {\r\n                case 'hd':\r\n                    if (!currentVideoData.hdplay) {\r\n                        showError('HD quality not available for this video');\r\n                        return;\r\n                    }\r\n                    downloadUrl = currentVideoData.hdplay;\r\n                    filename = `tiktok-${currentVideoData.id}-hd.mp4`;\r\n                    expectedSize = currentVideoData.hd_size;\r\n                    break;\r\n                case 'audio':\r\n                    if (!currentVideoData.music) {\r\n                        showError('Audio not available for this video');\r\n                        return;\r\n                    }\r\n                    downloadUrl = currentVideoData.music;\r\n                    filename = `tiktok-${currentVideoData.id}-audio.mp3`;\r\n                    expectedSize = null;\r\n                    break;\r\n                default:\r\n                    downloadUrl = currentVideoData.play;\r\n                    filename = `tiktok-${currentVideoData.id}.mp4`;\r\n                    expectedSize = currentVideoData.size;\r\n            }\r\n\r\n            isDownloading = true;\r\n            downloadController = new AbortController();\r\n\r\n            \/\/ Disable download buttons\r\n            document.querySelectorAll('.download-btn, .download-audio-btn').forEach(btn => btn.disabled = true);\r\n\r\n            showDownloadProgress(`Starting download...`, 0);\r\n\r\n            try {\r\n                const response = await fetch(downloadUrl, {\r\n                    signal: downloadController.signal\r\n                });\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`HTTP error! status: ${response.status}`);\r\n                }\r\n\r\n                const totalSize = expectedSize || parseInt(response.headers.get('content-length') || '0');\r\n                const reader = response.body.getReader();\r\n                let receivedSize = 0;\r\n                const chunks = [];\r\n\r\n                while (true) {\r\n                    const { done, value } = await reader.read();\r\n\r\n                    if (done) break;\r\n\r\n                    chunks.push(value);\r\n                    receivedSize += value.length;\r\n\r\n                    const progress = totalSize ? Math.round((receivedSize \/ totalSize) * 100) : 0;\r\n                    showDownloadProgress(`Downloading ${quality} quality... ${progress}%`, progress);\r\n                }\r\n\r\n                showDownloadProgress('Processing download...', 95);\r\n\r\n                \/\/ Combine chunks\r\n                const chunksAll = new Uint8Array(receivedSize);\r\n                let position = 0;\r\n                for (const chunk of chunks) {\r\n                    chunksAll.set(chunk, position);\r\n                    position += chunk.length;\r\n                }\r\n\r\n                const mimeType = quality === 'audio' ? 'audio\/mpeg' : 'video\/mp4';\r\n                const blob = new Blob([chunksAll], { type: mimeType });\r\n                const url = URL.createObjectURL(blob);\r\n\r\n                const a = document.createElement('a');\r\n                a.href = url;\r\n                a.download = filename;\r\n                a.style.display = 'none';\r\n                document.body.appendChild(a);\r\n                a.click();\r\n                document.body.removeChild(a);\r\n                URL.revokeObjectURL(url);\r\n\r\n                showDownloadProgress('Download completed successfully!', 100);\r\n                setTimeout(hideDownloadProgress, 2000);\r\n\r\n            } catch (error) {\r\n                if (error.name === 'AbortError') {\r\n                    showDownloadProgress('Download cancelled', 0);\r\n                } else {\r\n                    showError(`Download failed: ${error.message}`);\r\n                    hideDownloadProgress();\r\n                }\r\n            } finally {\r\n                isDownloading = false;\r\n                downloadController = null;\r\n                document.querySelectorAll('.download-btn, .download-audio-btn').forEach(btn => btn.disabled = false);\r\n            }\r\n        }\r\n\r\n        function cancelDownload() {\r\n            if (downloadController) {\r\n                downloadController.abort();\r\n            }\r\n        }\r\n\r\n        \/\/ Event Listeners\r\n        document.getElementById('videoInput').addEventListener('keypress', (e) => {\r\n            if (e.key === 'Enter' && !isLoading) {\r\n                loadVideo();\r\n            }\r\n        });\r\n\r\n        \/\/ Fullscreen change events\r\n        document.addEventListener('fullscreenchange', () => {\r\n            isFullscreen = !!document.fullscreenElement;\r\n            const fullscreenBtn = document.getElementById('fullscreenBtn');\r\n            if (fullscreenBtn) {\r\n                fullscreenBtn.innerHTML = isFullscreen ? '<i class=\"fas fa-compress\"><\/i>' : '<i class=\"fas fa-expand\"><\/i>';\r\n            }\r\n        });\r\n\r\n        \/\/ Keyboard shortcuts (desktop only)\r\n        document.addEventListener('keydown', (e) => {\r\n            if (!isMobile && currentVideoData && document.getElementById('videoSection').style.display === 'block') {\r\n                switch (e.key) {\r\n                    case ' ':\r\n                        e.preventDefault();\r\n                        togglePlay();\r\n                        break;\r\n                    case 'f':\r\n                    case 'F':\r\n                        toggleFullscreen();\r\n                        break;\r\n                    case 'm':\r\n                    case 'M':\r\n                        toggleMute();\r\n                        break;\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Touch event handlers for mobile\r\n        if (isMobile || isTouch) {\r\n            \/\/ Handle touch events for sliders\r\n            function handleTouchSlider(element, callback) {\r\n                element.addEventListener('touchstart', function (e) {\r\n                    e.preventDefault();\r\n                    const touch = e.touches[0];\r\n                    const rect = element.getBoundingClientRect();\r\n                    const pos = (touch.clientX - rect.left) \/ rect.width;\r\n                    callback(pos);\r\n                }, { passive: false });\r\n\r\n                element.addEventListener('touchmove', function (e) {\r\n                    e.preventDefault();\r\n                    const touch = e.touches[0];\r\n                    const rect = element.getBoundingClientRect();\r\n                    const pos = (touch.clientX - rect.left) \/ rect.width;\r\n                    callback(pos);\r\n                }, { passive: false });\r\n            }\r\n\r\n            \/\/ Apply touch handlers to sliders\r\n            document.addEventListener('DOMContentLoaded', () => {\r\n                const volumeSlider = document.getElementById('volumeFill')?.parentElement;\r\n                const audioVolumeSlider = document.getElementById('audioVolumeFill')?.parentElement;\r\n                const progressBar = document.getElementById('progressFill')?.parentElement;\r\n                const audioProgressBar = document.getElementById('audioProgressFill')?.parentElement;\r\n\r\n                if (volumeSlider) {\r\n                    handleTouchSlider(volumeSlider, (pos) => {\r\n                        currentVolume = Math.max(0, Math.min(1, pos));\r\n                        const videoPlayer = document.getElementById('videoPlayer');\r\n                        if (videoPlayer) {\r\n                            videoPlayer.volume = currentVolume;\r\n                            updateVolumeDisplay();\r\n                        }\r\n                    });\r\n                }\r\n\r\n                if (audioVolumeSlider) {\r\n                    handleTouchSlider(audioVolumeSlider, (pos) => {\r\n                        audioCurrentVolume = Math.max(0, Math.min(1, pos));\r\n                        const audioElement = document.getElementById('audioElement');\r\n                        if (audioElement) {\r\n                            audioElement.volume = audioCurrentVolume;\r\n                            updateAudioVolumeDisplay();\r\n                        }\r\n                    });\r\n                }\r\n\r\n                if (progressBar) {\r\n                    handleTouchSlider(progressBar, (pos) => {\r\n                        const videoPlayer = document.getElementById('videoPlayer');\r\n                        if (videoPlayer && videoPlayer.duration) {\r\n                            videoPlayer.currentTime = pos * videoPlayer.duration;\r\n                        }\r\n                    });\r\n                }\r\n\r\n                if (audioProgressBar) {\r\n                    handleTouchSlider(audioProgressBar, (pos) => {\r\n                        const audioElement = document.getElementById('audioElement');\r\n                        if (audioElement && audioElement.duration) {\r\n                            audioElement.currentTime = pos * audioElement.duration;\r\n                        }\r\n                    });\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initialize\r\n        document.addEventListener('DOMContentLoaded', () => {\r\n            document.getElementById('videoInput').focus();\r\n            updateAudioVolumeDisplay();\r\n            handleTouchEvents();\r\n\r\n            \/\/ Prevent zoom on iOS when focusing inputs\r\n            if (\/iPad|iPhone|iPod\/.test(navigator.userAgent)) {\r\n                const viewport = document.querySelector('meta[name=viewport]');\r\n                if (viewport) {\r\n                    viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no');\r\n                }\r\n            }\r\n\r\n            \/\/ Add orientation change handler\r\n            window.addEventListener('orientationchange', () => {\r\n                setTimeout(() => {\r\n                    \/\/ Recalculate dimensions after orientation change\r\n                    window.scrollTo(0, 0);\r\n                }, 100);\r\n            });\r\n\r\n            \/\/ Add resize handler for responsive adjustments\r\n            window.addEventListener('resize', () => {\r\n                \/\/ Handle responsive adjustments\r\n                if (window.innerWidth <= 768) {\r\n                    \/\/ Mobile adjustments\r\n                    showVideoControlsOnMobile();\r\n                }\r\n            });\r\n        });\r\n    <\/script>\r\n<\/div>\r\n\r\n\r\n<!-- ======== Content Section Start ======== -->\r\n<!-- TikTok Image 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  .ttimg-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  .ttimg-s1-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttimg-s1-header { text-align: center; margin-bottom: 30px; }\r\n  .ttimg-s1-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .ttimg-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  .ttimg-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  .ttimg-s1-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .ttimg-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: ttimg-s1-fadeSlideUp 0.6s ease forwards; }\r\n  .ttimg-s1-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .ttimg-s1-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .ttimg-s1-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .ttimg-s1-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .ttimg-s1-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .ttimg-s1-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes ttimg-s1-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .ttimg-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: ttimg-s1-borderTrace 2s linear infinite; }\r\n  .ttimg-s1-card:hover::before { opacity: 1; }\r\n  @keyframes ttimg-s1-borderTrace { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }\r\n  .ttimg-s1-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(254, 44, 85, 0.15); }\r\n  .ttimg-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  .ttimg-s1-card:hover .ttimg-s1-icon-wrap { border-color: var(--s1-accent); background: linear-gradient(135deg, var(--s1-primary) 0%, var(--s1-accent) 100%); }\r\n  .ttimg-s1-icon { font-size: 24px; color: var(--s1-accent); transition: all 0.4s ease; }\r\n  .ttimg-s1-card:hover .ttimg-s1-icon { color: #ffffff; transform: rotate(15deg) scale(1.1); }\r\n  .ttimg-s1-card-title { font-size: 1.2rem; font-weight: 700; color: var(--s1-text); margin-bottom: 12px; }\r\n  .ttimg-s1-card-desc { font-size: 0.95rem; color: var(--s1-text-soft); line-height: 1.6; }\r\n\r\n  .ttimg-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  .ttimg-s2-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttimg-s2-header { text-align: center; margin-bottom: 30px; }\r\n  .ttimg-s2-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .ttimg-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  .ttimg-s2-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .ttimg-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: ttimg-s2-fadeSlideUp 0.6s ease forwards; }\r\n  .ttimg-s2-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .ttimg-s2-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .ttimg-s2-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .ttimg-s2-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .ttimg-s2-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .ttimg-s2-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes ttimg-s2-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .ttimg-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  .ttimg-s2-card:hover::after { animation: ttimg-s2-pulseEcho 1.5s ease-out infinite; }\r\n  @keyframes ttimg-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  .ttimg-s2-card:hover { transform: translateY(-8px); }\r\n  .ttimg-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  .ttimg-s2-card:hover .ttimg-s2-icon-wrap { animation: ttimg-s2-elasticBounce 0.6s ease; }\r\n  @keyframes ttimg-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  .ttimg-s2-icon { font-size: 26px; color: #ffffff; transition: transform 0.3s ease; }\r\n  .ttimg-s2-card:hover .ttimg-s2-icon { transform: rotate(10deg); }\r\n  .ttimg-s2-card-title { font-size: 1.2rem; font-weight: 700; color: var(--s2-text); margin-bottom: 12px; }\r\n  .ttimg-s2-card-desc { font-size: 0.95rem; color: var(--s2-text-soft); line-height: 1.6; }\r\n\r\n  .ttimg-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  .ttimg-s3-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttimg-s3-header { text-align: center; margin-bottom: 30px; }\r\n  .ttimg-s3-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .ttimg-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  .ttimg-s3-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .ttimg-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: ttimg-s3-fadeSlideUp 0.6s ease forwards; }\r\n  .ttimg-s3-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .ttimg-s3-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .ttimg-s3-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .ttimg-s3-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .ttimg-s3-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .ttimg-s3-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes ttimg-s3-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .ttimg-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  .ttimg-s3-card:hover::before { opacity: 1; }\r\n  .ttimg-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  .ttimg-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  .ttimg-s3-card:hover .ttimg-s3-step-badge { transform: scale(1.2) rotate(10deg); }\r\n  .ttimg-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  .ttimg-s3-card:hover .ttimg-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  .ttimg-s3-icon { font-size: 22px; color: var(--s3-accent); transition: all 0.4s ease; backface-visibility: hidden; }\r\n  .ttimg-s3-card:hover .ttimg-s3-icon { color: #ffffff; transform: rotateY(180deg); }\r\n  .ttimg-s3-card-title { font-size: 1.1rem; font-weight: 700; color: var(--s3-text); margin-bottom: 10px; position: relative; z-index: 1; }\r\n  .ttimg-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  .ttimg-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  .ttimg-shortcode-container { max-width: 1200px; margin: 0 auto; }\r\n  .ttimg-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  .ttimg-shortcode-inner:hover { border-color: var(--sc-accent); }\r\n  .ttimg-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  .ttimg-shortcode-hint { margin-top: 12px; font-size: 0.9rem; color: var(--sc-text-muted); }\r\n\r\n  @media (max-width: 1024px) { .ttimg-s1-grid, .ttimg-s2-grid, .ttimg-s3-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }\r\n  @media (max-width: 640px) { .ttimg-s1-root, .ttimg-s2-root, .ttimg-s3-root, .ttimg-shortcode { padding: 50px 10px; } .ttimg-s1-grid, .ttimg-s2-grid, .ttimg-s3-grid { grid-template-columns: 1fr; gap: 16px; } .ttimg-s1-card, .ttimg-s2-card, .ttimg-s3-card { padding: 28px 24px; } .ttimg-shortcode-inner { padding: 24px 16px; } }\r\n<\/style>\r\n\r\n<section class=\"ttimg-shortcode\"><div class=\"ttimg-shortcode-container\"><\/div><\/section>\r\n\r\n<section class=\"ttimg-s1-root\" id=\"what-is-tiktok-image-viewer\">\r\n  <div class=\"ttimg-s1-container\">\r\n    <div class=\"ttimg-s1-header\">\r\n      <h2 class=\"ttimg-s1-heading\">What Is a <span class=\"ttimg-highlight\">TikTok Image Viewer<\/span>?<\/h2>\r\n      <p class=\"ttimg-s1-subheading\">View, zoom, and download TikTok images in HD quality<\/p>\r\n    <\/div>\r\n    <div class=\"ttimg-s1-grid\">\r\n      <article class=\"ttimg-s1-card\"><div class=\"ttimg-s1-icon-wrap\"><i class=\"fa-solid fa-image ttimg-s1-icon\"><\/i><\/div><h3 class=\"ttimg-s1-card-title\">Image View<\/h3><p class=\"ttimg-s1-card-desc\">Display images in a clean and focused viewer<\/p><\/article>\r\n      <article class=\"ttimg-s1-card\"><div class=\"ttimg-s1-icon-wrap\"><i class=\"fa-solid fa-up-right-and-down-left-from-center ttimg-s1-icon\"><\/i><\/div><h3 class=\"ttimg-s1-card-title\">HD Display<\/h3><p class=\"ttimg-s1-card-desc\">View images in high definition full resolution<\/p><\/article>\r\n      <article class=\"ttimg-s1-card\"><div class=\"ttimg-s1-icon-wrap\"><i class=\"fa-solid fa-download ttimg-s1-icon\"><\/i><\/div><h3 class=\"ttimg-s1-card-title\">Download Image<\/h3><p class=\"ttimg-s1-card-desc\">Download images directly to your device<\/p><\/article>\r\n      <article class=\"ttimg-s1-card\"><div class=\"ttimg-s1-icon-wrap\"><i class=\"fa-solid fa-images ttimg-s1-icon\"><\/i><\/div><h3 class=\"ttimg-s1-card-title\">Gallery Mode<\/h3><p class=\"ttimg-s1-card-desc\">Browse multiple images in gallery view<\/p><\/article>\r\n      <article class=\"ttimg-s1-card\"><div class=\"ttimg-s1-icon-wrap\"><i class=\"fa-solid fa-magnifying-glass-plus ttimg-s1-icon\"><\/i><\/div><h3 class=\"ttimg-s1-card-title\">Zoom Feature<\/h3><p class=\"ttimg-s1-card-desc\">Zoom in and out to inspect image details<\/p><\/article>\r\n      <article class=\"ttimg-s1-card\"><div class=\"ttimg-s1-icon-wrap\"><i class=\"fa-solid fa-share-nodes ttimg-s1-icon\"><\/i><\/div><h3 class=\"ttimg-s1-card-title\">Share Image<\/h3><p class=\"ttimg-s1-card-desc\">Share images directly from the viewer<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"ttimg-s2-root\" id=\"why-use-tiktok-image-viewer\">\r\n  <div class=\"ttimg-s2-container\">\r\n    <div class=\"ttimg-s2-header\">\r\n      <h2 class=\"ttimg-s2-heading\">Why Use a <span class=\"ttimg-highlight\">TikTok Image Viewer<\/span>?<\/h2>\r\n      <p class=\"ttimg-s2-subheading\">Reference images, collect inspiration, and ensure print-ready quality<\/p>\r\n    <\/div>\r\n    <div class=\"ttimg-s2-grid\">\r\n      <article class=\"ttimg-s2-card\"><div class=\"ttimg-s2-icon-wrap\"><i class=\"fa-solid fa-copy ttimg-s2-icon\"><\/i><\/div><h3 class=\"ttimg-s2-card-title\">Image Reference<\/h3><p class=\"ttimg-s2-card-desc\">Use TikTok images as visual references<\/p><\/article>\r\n      <article class=\"ttimg-s2-card\"><div class=\"ttimg-s2-icon-wrap\"><i class=\"fa-solid fa-lightbulb ttimg-s2-icon\"><\/i><\/div><h3 class=\"ttimg-s2-card-title\">Design Inspiration<\/h3><p class=\"ttimg-s2-card-desc\">Find design inspiration from TikTok visuals<\/p><\/article>\r\n      <article class=\"ttimg-s2-card\"><div class=\"ttimg-s2-icon-wrap\"><i class=\"fa-solid fa-folder-open ttimg-s2-icon\"><\/i><\/div><h3 class=\"ttimg-s2-card-title\">Content Collection<\/h3><p class=\"ttimg-s2-card-desc\">Collect and organize images from TikTok<\/p><\/article>\r\n      <article class=\"ttimg-s2-card\"><div class=\"ttimg-s2-icon-wrap\"><i class=\"fa-solid fa-circle-check ttimg-s2-icon\"><\/i><\/div><h3 class=\"ttimg-s2-card-title\">Quality Check<\/h3><p class=\"ttimg-s2-card-desc\">Check image quality and resolution before use<\/p><\/article>\r\n      <article class=\"ttimg-s2-card\"><div class=\"ttimg-s2-icon-wrap\"><i class=\"fa-solid fa-print ttimg-s2-icon\"><\/i><\/div><h3 class=\"ttimg-s2-card-title\">Print Ready<\/h3><p class=\"ttimg-s2-card-desc\">Prepare images for print with proper sizing<\/p><\/article>\r\n      <article class=\"ttimg-s2-card\"><div class=\"ttimg-s2-icon-wrap\"><i class=\"fa-solid fa-box-archive ttimg-s2-icon\"><\/i><\/div><h3 class=\"ttimg-s2-card-title\">Archive Save<\/h3><p class=\"ttimg-s2-card-desc\">Archive images for long-term storage<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"ttimg-s3-root\" id=\"how-to-use-tiktok-image-viewer\">\r\n  <div class=\"ttimg-s3-container\">\r\n    <div class=\"ttimg-s3-header\">\r\n      <h2 class=\"ttimg-s3-heading\">How to Use the <span class=\"ttimg-highlight\">TikTok Image Viewer<\/span>?<\/h2>\r\n      <p class=\"ttimg-s3-subheading\">View, zoom, and download TikTok images with this simple step-by-step process<\/p>\r\n    <\/div>\r\n    <div class=\"ttimg-s3-grid\">\r\n      <article class=\"ttimg-s3-card\"><span class=\"ttimg-s3-step-badge\">1<\/span><div class=\"ttimg-s3-icon-wrap\"><i class=\"fa-solid fa-link ttimg-s3-icon\"><\/i><\/div><h3 class=\"ttimg-s3-card-title\">Enter Image URL<\/h3><p class=\"ttimg-s3-card-desc\">Paste the TikTok image URL to load it<\/p><\/article>\r\n      <article class=\"ttimg-s3-card\"><span class=\"ttimg-s3-step-badge\">2<\/span><div class=\"ttimg-s3-icon-wrap\"><i class=\"fa-solid fa-arrow-down-to-line ttimg-s3-icon\"><\/i><\/div><h3 class=\"ttimg-s3-card-title\">Load Image<\/h3><p class=\"ttimg-s3-card-desc\">Fetch and load the image from TikTok servers<\/p><\/article>\r\n      <article class=\"ttimg-s3-card\"><span class=\"ttimg-s3-step-badge\">3<\/span><div class=\"ttimg-s3-icon-wrap\"><i class=\"fa-solid fa-eye ttimg-s3-icon\"><\/i><\/div><h3 class=\"ttimg-s3-card-title\">View Full Size<\/h3><p class=\"ttimg-s3-card-desc\">Display the image at its original resolution<\/p><\/article>\r\n      <article class=\"ttimg-s3-card\"><span class=\"ttimg-s3-step-badge\">4<\/span><div class=\"ttimg-s3-icon-wrap\"><i class=\"fa-solid fa-magnifying-glass-plus ttimg-s3-icon\"><\/i><\/div><h3 class=\"ttimg-s3-card-title\">Zoom Details<\/h3><p class=\"ttimg-s3-card-desc\">Zoom in to inspect fine details of the image<\/p><\/article>\r\n      <article class=\"ttimg-s3-card\"><span class=\"ttimg-s3-step-badge\">5<\/span><div class=\"ttimg-s3-icon-wrap\"><i class=\"fa-solid fa-download ttimg-s3-icon\"><\/i><\/div><h3 class=\"ttimg-s3-card-title\">Download HD<\/h3><p class=\"ttimg-s3-card-desc\">Download the image in high definition quality<\/p><\/article>\r\n      <article class=\"ttimg-s3-card\"><span class=\"ttimg-s3-step-badge\">6<\/span><div class=\"ttimg-s3-icon-wrap\"><i class=\"fa-solid fa-images ttimg-s3-icon\"><\/i><\/div><h3 class=\"ttimg-s3-card-title\">Save Gallery<\/h3><p class=\"ttimg-s3-card-desc\">Save images to your personal gallery collection<\/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(\".ttimg-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-6196","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/6196","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=6196"}],"version-history":[{"count":4,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/6196\/revisions"}],"predecessor-version":[{"id":6200,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/6196\/revisions\/6200"}],"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=6196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}