https://downloaderto.com/estx/

Submitted URL:
https://downloaderto.com/estx/
Report Finished:

The outgoing links identified from the page

LinkText
https://video-download-api.com/API
https://tokinsights.com
https://addons.mozilla.org/de/firefox/addon/best-youtube-media-downloader/DownloadFirefox Extension

JavaScript Variables · 26 found

Global JavaScript variables loaded on the window object of a page, are variables declared outside of functions and accessible from anywhere in the code within the current scope

NameType
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
onSubmitfunction
gtagfunction
dataLayerobject
repeat_downloadboolean
visited_convertrboolean
singleResultTemplatestring
openitfunction

Console log messages · 3 found

Messages logged to the web console

TypeCategoryLog
errornetwork
URL
https://downloaderto.com/ads.js
Text
Failed to load resource: the server responded with a status of 404 ()
logother
URL
https://push-sdk.com/f/sdk.js?z=1081333
Text
[ra] permission denied: already= true
logother
URL
https://push-sdk.com/f/sdk.js?z=1081333
Text
[ra] callback called onPermissionDenied

HTML

The raw HTML body of the page

<!DOCTYPE html><html lang="es"><head>
<meta charset="UTF-8">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Descargador de vídeos 1080p de YouTube">
<meta property="og:description" content="Descargador de vídeos 1080p de YouTube">
<meta property="og:image" content="/images/loader/logo_512x512.png">
<meta property="og:url" content="https://downloaderto.com/estx/">
<meta property="og:site_name" content="downloaderto.com">
<meta property="og:type" content="website">
<meta name="robots" content="index, follow">
<meta name="keywords" content="youtube to mp3, youtube to video, youtube to mp4">
<meta name="language" content="es">
<meta name="description" content="Descargador de vídeos 1080p de YouTube">
<meta name="google" content="notranslate">
<title>Descargador de vídeos 1080p de YouTube</title>
<link rel="canonical" href="https://downloaderto.com/estx/">

<link rel="alternate" href="https://downloaderto.com/engf/" hreflang="x-default">
<link rel="alternate" href="https://downloaderto.com/engf/" hreflang="en">
<link rel="alternate" href="https://downloaderto.com/degc/" hreflang="de">
<link rel="alternate" href="https://downloaderto.com/plxU/" hreflang="pl">
<link rel="alternate" href="https://downloaderto.com/frhE/" hreflang="fr">
<link rel="alternate" href="https://downloaderto.com/estx/" hreflang="es">
<link rel="alternate" href="https://downloaderto.com/elZE/" hreflang="el">
<link rel="alternate" href="https://downloaderto.com/lvB6/" hreflang="lv">
<link rel="alternate" href="https://downloaderto.com/ltLX/" hreflang="lt">
<link rel="alternate" href="https://downloaderto.com/nlC7/" hreflang="nl">
<link rel="alternate" href="https://downloaderto.com/zhBZ/" hreflang="zh">
<link rel="alternate" href="https://downloaderto.com/it2F/" hreflang="it">
<link rel="alternate" href="https://downloaderto.com/svQL/" hreflang="sv">
<link rel="alternate" href="https://downloaderto.com/skTq/" hreflang="sk">
<link rel="alternate" href="https://downloaderto.com/ptZy/" hreflang="pt">
<link rel="alternate" href="https://downloaderto.com/sl0n/" hreflang="sl">
<link rel="alternate" href="https://downloaderto.com/ruwq/" hreflang="ru">
<link rel="alternate" href="https://downloaderto.com/da6j/" hreflang="da">
<link rel="alternate" href="https://downloaderto.com/firT/" hreflang="fi">
<link rel="alternate" href="https://downloaderto.com/bgrT/" hreflang="bg">
<link rel="alternate" href="https://downloaderto.com/csGR/" hreflang="cs">
<link rel="alternate" href="https://downloaderto.com/ett2/" hreflang="et">
<link rel="alternate" href="https://downloaderto.com/huu6/" hreflang="hu">
<link rel="alternate" href="https://downloaderto.com/roVo/" hreflang="ro">
<link rel="alternate" href="https://downloaderto.com/jaSy/" hreflang="ja">
<link rel="alternate" href="https://downloaderto.com/kopC/" hreflang="ko">
<link rel="alternate" href="https://downloaderto.com/idMB/" hreflang="id">

<script>
        function onSubmit(token) {
            d(token);
        }
    </script>

<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-BFW0DQV25S"></script>
<script>
            window.dataLayer = window.dataLayer || [];

            function gtag() {
                dataLayer.push(arguments);
            }
            gtag('js', new Date());

            gtag('config', 'G-BFW0DQV25S');
        </script>
<style>
        @charset "UTF-8";
*,
:before,
:after {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: #e5e7eb;
}
:before,
:after {
    --tw-content: "";
}
html,
:host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    -o-tab-size: 4;
    tab-size: 4;
    font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
        "Segoe UI Emoji", Segoe UI Symbol, "Noto Color Emoji";
    font-feature-settings: normal;
    font-variation-settings: normal;
    -webkit-tap-highlight-color: transparent;
}
body {
    margin: 0;
    line-height: inherit;
}
hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
}
abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: inherit;
    font-weight: inherit;
}
a {
    color: inherit;
    text-decoration: inherit;
}
b,
strong {
    font-weight: bolder;
}
code,
kbd,
samp,
pre {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
        Liberation Mono, Courier New, monospace;
    font-feature-settings: normal;
    font-variation-settings: normal;
    font-size: 1em;
}
small {
    font-size: 80%;
}
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}
sub {
    bottom: -0.25em;
}
sup {
    top: -0.5em;
}
table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
}
button,
input,
optgroup,
select,
textarea {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
}
button,
select {
    text-transform: none;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
    background-color: transparent;
    background-image: none;
}
:-moz-focusring {
    outline: auto;
}
:-moz-ui-invalid {
    box-shadow: none;
}
progress {
    vertical-align: baseline;
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
    height: auto;
}
[type="search"] {
    -webkit-appearance: textfield;
    outline-offset: -2px;
}
::-webkit-search-decoration {
    -webkit-appearance: none;
}
::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
}
summary {
    display: list-item;
}
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
    margin: 0;
}
fieldset {
    margin: 0;
    padding: 0;
}
legend {
    padding: 0;
}
ol,
ul,
menu {
    list-style: none;
    margin: 0;
    padding: 0;
}
dialog {
    padding: 0;
}
textarea {
    resize: vertical;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
    opacity: 1;
    color: #9ca3af;
}
input::placeholder,
textarea::placeholder {
    opacity: 1;
    color: #9ca3af;
}
button,
[role="button"] {
    cursor: pointer;
}
:disabled {
    cursor: default;
}
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
    display: block;
    vertical-align: middle;
}
img,
video {
    max-width: 100%;
    height: auto;
}
[hidden] {
    display: none;
}
*,
:before,
:after {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
}
::backdrop {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
}
.container {
    width: 100%;
}
@media (min-width: 640px) {
    .container {
        max-width: 640px;
    }
}
@media (min-width: 768px) {
    .container {
        max-width: 768px;
    }
}
@media (min-width: 1024px) {
    .container {
        max-width: 1024px;
    }
}
@media (min-width: 1280px) {
    .container {
        max-width: 1280px;
    }
}
@media (min-width: 1536px) {
    .container {
        max-width: 1536px;
    }
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}
.not-sr-only {
    position: static;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
}
.pointer-events-none {
    pointer-events: none;
}
.pointer-events-auto {
    pointer-events: auto;
}
.\!visible {
    visibility: visible !important;
}
.visible {
    visibility: visible;
}
.invisible {
    visibility: hidden;
}
.collapse {
    visibility: collapse;
}
.static {
    position: static;
}
.fixed {
    position: fixed;
}
.absolute {
    position: absolute;
}
.\!relative {
    position: relative !important;
}
.relative {
    position: relative;
}
.sticky {
    position: sticky;
}
.-inset-1 {
    top: -0.25rem;
    right: -0.25rem;
    bottom: -0.25rem;
    left: -0.25rem;
}
.end-1 {
    inset-inline-end: 0.25rem;
}
.left-0 {
    left: 0;
}
.right-5 {
    right: 1.25rem;
}
.top-0 {
    top: 0;
}
.top-1 {
    top: 0.25rem;
}
.top-1\/2 {
    top: 50%;
}
.top-5 {
    top: 1.25rem;
}
.top-\[2px\] {
    top: 2px;
}
.top-full {
    top: 100%;
}
.isolate {
    isolation: isolate;
}
.isolation-auto {
    isolation: auto;
}
.z-0 {
    z-index: 0;
}
.z-10 {
    z-index: 10;
}
.z-\[9999\] {
    z-index: 9999;
}
.float-start {
    float: inline-start;
}
.float-end {
    float: inline-end;
}
.float-right {
    float: right;
}
.float-left {
    float: left;
}
.float-none {
    float: none;
}
.clear-start {
    clear: inline-start;
}
.clear-end {
    clear: inline-end;
}
.clear-left {
    clear: left;
}
.clear-right {
    clear: right;
}
.clear-both {
    clear: both;
}
.clear-none {
    clear: none;
}
.-mx-1 {
    margin-left: -0.25rem;
    margin-right: -0.25rem;
}
.-mx-1\.5 {
    margin-left: -0.375rem;
    margin-right: -0.375rem;
}
.-my-1 {
    margin-top: -0.25rem;
    margin-bottom: -0.25rem;
}
.-my-1\.5 {
    margin-top: -0.375rem;
    margin-bottom: -0.375rem;
}
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}
.my-\[15px\] {
    margin-top: 15px;
    margin-bottom: 15px;
}
.my-\[21px\] {
    margin-top: 21px;
    margin-bottom: 21px;
}
.-mt-2 {
    margin-top: -0.5rem;
}
.mb-10 {
    margin-bottom: 2.5rem;
}
.mb-2 {
    margin-bottom: 0.5rem;
}
.mb-4 {
    margin-bottom: 1rem;
}
.mb-9 {
    margin-bottom: 2.25rem;
}
.mb-\[15px\] {
    margin-bottom: 15px;
}
.mb-\[17px\] {
    margin-bottom: 17px;
}
.mb-\[30px\] {
    margin-bottom: 30px;
}
.mr-2 {
    margin-right: 0.5rem;
}
.mr-3 {
    margin-right: 0.75rem;
}
.ms-3 {
    margin-inline-start: 0.75rem;
}
.ms-auto {
    margin-inline-start: auto;
}
.mt-12 {
    margin-top: 3rem;
}
.mt-2 {
    margin-top: 0.5rem;
}
.mt-3 {
    margin-top: 0.75rem;
}
.mt-5 {
    margin-top: 1.25rem;
}
.mt-8 {
    margin-top: 2rem;
}
.mt-\[33px\] {
    margin-top: 33px;
}
.mt-\[9px\] {
    margin-top: 9px;
}
.box-border {
    box-sizing: border-box;
}
.box-content {
    box-sizing: content-box;
}
.line-clamp-1 {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
}
.line-clamp-none {
    overflow: visible;
    display: block;
    -webkit-box-orient: horizontal;
    -webkit-line-clamp: none;
}
.block {
    display: block;
}
.inline-block {
    display: inline-block;
}
.inline {
    display: inline;
}
.flex {
    display: flex;
}
.inline-flex {
    display: inline-flex;
}
.table {
    display: table;
}
.inline-table {
    display: inline-table;
}
.table-caption {
    display: table-caption;
}
.table-cell {
    display: table-cell;
}
.table-column {
    display: table-column;
}
.table-column-group {
    display: table-column-group;
}
.table-footer-group {
    display: table-footer-group;
}
.table-header-group {
    display: table-header-group;
}
.table-row-group {
    display: table-row-group;
}
.table-row {
    display: table-row;
}
.flow-root {
    display: flow-root;
}
.grid {
    display: grid;
}
.inline-grid {
    display: inline-grid;
}
.contents {
    display: contents;
}
.list-item {
    display: list-item;
}
.hidden {
    display: none;
}
.aspect-\[124\/69\] {
    aspect-ratio: 124/69;
}
.aspect-\[303\/179\] {
    aspect-ratio: 303/179;
}
.size-9 {
    width: 2.25rem;
    height: 2.25rem;
}
.size-\[31px\] {
    width: 31px;
    height: 31px;
}
.size-\[60px\] {
    width: 60px;
    height: 60px;
}
.h-0 {
    height: 0;
}
.h-1 {
    height: 0.25rem;
}
.h-1\.5 {
    height: 0.375rem;
}
.h-10 {
    height: 2.5rem;
}
.h-11 {
    height: 2.75rem;
}
.h-3 {
    height: 0.75rem;
}
.h-4 {
    height: 1rem;
}
.h-44 {
    height: 11rem;
}
.h-8 {
    height: 2rem;
}
.h-\[25px\] {
    height: 25px;
}
.h-\[273px\] {
    height: 273px;
}
.h-\[2px\] {
    height: 2px;
}
.h-\[30px\] {
    height: 30px;
}
.h-\[3px\] {
    height: 3px;
}
.h-\[44px\] {
    height: 44px;
}
.h-\[45px\] {
    height: 45px;
}
.h-\[54px\] {
    height: 54px;
}
.h-\[66px\] {
    height: 66px;
}
.h-\[7px\] {
    height: 7px;
}
.h-auto {
    height: auto;
}
.h-screen {
    height: 100vh;
}
.max-h-\[38px\] {
    max-height: 38px;
}
.max-h-\[500px\] {
    max-height: 500px;
}
.max-h-full {
    max-height: 100%;
}
.w-1 {
    width: 0.25rem;
}
.w-1\/2 {
    width: 50%;
}
.w-1\/3 {
    width: 33.333333%;
}
.w-10 {
    width: 2.5rem;
}
.w-3 {
    width: 0.75rem;
}
.w-3\/12 {
    width: 25%;
}
.w-4 {
    width: 1rem;
}
.w-5 {
    width: 1.25rem;
}
.w-6 {
    width: 1.5rem;
}
.w-7 {
    width: 1.75rem;
}
.w-8 {
    width: 2rem;
}
.w-\[146px\] {
    width: 146px;
}
.w-\[30px\] {
    width: 30px;
}
.w-\[464px\] {
    width: 464px;
}
.w-\[66px\] {
    width: 66px;
}
.w-\[80px\] {
    width: 80px;
}
.w-\[this-is\\\\\] {
    width: this-is\\;
}
.w-\[this-is\] {
    width: this-is;
}
.w-\[weird-and-invalid\] {
    width: weird-and-invalid;
}
.w-full {
    width: 100%;
}
.max-w-\[1110px\] {
    max-width: 1110px;
}
.max-w-\[124px\] {
    max-width: 124px;
}
.max-w-\[240px\] {
    max-width: 240px;
}
.max-w-\[263px\] {
    max-width: 263px;
}
.max-w-\[318px\] {
    max-width: 318px;
}
.max-w-\[496px\] {
    max-width: 496px;
}
.max-w-\[677px\] {
    max-width: 677px;
}
.max-w-\[844px\] {
    max-width: 844px;
}
.max-w-full {
    max-width: 100%;
}
.flex-none {
    flex: none;
}
.flex-shrink {
    flex-shrink: 1;
}
.flex-shrink-0 {
    flex-shrink: 0;
}
.shrink {
    flex-shrink: 1;
}
.flex-grow,
.grow {
    flex-grow: 1;
}
.table-auto {
    table-layout: auto;
}
.table-fixed {
    table-layout: fixed;
}
.caption-top {
    caption-side: top;
}
.caption-bottom {
    caption-side: bottom;
}
.border-collapse {
    border-collapse: collapse;
}
.border-separate {
    border-collapse: separate;
}
.-translate-y-1 {
    --tw-translate-y: -0.25rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-\[40px\] {
    --tw-translate-y: -40px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\!transform {
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.transform,
.transform-cpu {
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform-gpu {
    transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform-none {
    transform: none;
}
.animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}
.animate-spin {
    animation: spin 1s linear infinite;
}
.cursor-not-allowed {
    cursor: not-allowed;
}
.cursor-pointer {
    cursor: pointer;
}
.touch-auto {
    touch-action: auto;
}
.touch-none {
    touch-action: none;
}
.touch-pan-x {
    --tw-pan-x: pan-x;
    touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-pan-left {
    --tw-pan-x: pan-left;
    touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-pan-right {
    --tw-pan-x: pan-right;
    touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-pan-y {
    --tw-pan-y: pan-y;
    touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-pan-up {
    --tw-pan-y: pan-up;
    touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-pan-down {
    --tw-pan-y: pan-down;
    touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-pinch-zoom {
    --tw-pinch-zoom: pinch-zoom;
    touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-manipulation {
    touch-action: manipulation;
}
.select-none {
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}
.select-text {
    -webkit-user-select: text;
    -moz-user-select: text;
    user-select: text;
}
.select-all {
    -webkit-user-select: all;
    -moz-user-select: all;
    user-select: all;
}
.select-auto {
    -webkit-user-select: auto;
    -moz-user-select: auto;
    user-select: auto;
}
.resize-none {
    resize: none;
}
.resize-y {
    resize: vertical;
}
.resize-x {
    resize: horizontal;
}
.resize {
    resize: both;
}
.snap-none {
    scroll-snap-type: none;
}
.snap-x {
    scroll-snap-type: x var(--tw-scroll-snap-strictness);
}
.snap-y {
    scroll-snap-type: y var(--tw-scroll-snap-strictness);
}
.snap-both {
    scroll-snap-type: both var(--tw-scroll-snap-strictness);
}
.snap-mandatory {
    --tw-scroll-snap-strictness: mandatory;
}
.snap-proximity {
    --tw-scroll-snap-strictness: proximity;
}
.snap-start {
    scroll-snap-align: start;
}
.snap-end {
    scroll-snap-align: end;
}
.snap-center {
    scroll-snap-align: center;
}
.snap-align-none {
    scroll-snap-align: none;
}
.snap-normal {
    scroll-snap-stop: normal;
}
.snap-always {
    scroll-snap-stop: always;
}
.list-inside {
    list-style-position: inside;
}
.list-outside {
    list-style-position: outside;
}
.list-disc {
    list-style-type: disc;
}
.appearance-none {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.appearance-auto {
    -webkit-appearance: auto;
    -moz-appearance: auto;
    appearance: auto;
}
.break-before-auto {
    -moz-column-break-before: auto;
    break-before: auto;
}
.break-before-avoid {
    -moz-column-break-before: avoid;
    break-before: avoid;
}
.break-before-all {
    -moz-column-break-before: all;
    break-before: all;
}
.break-before-avoid-page {
    -moz-column-break-before: avoid;
    break-before: avoid-page;
}
.break-before-page {
    -moz-column-break-before: page;
    break-before: page;
}
.break-before-left {
    -moz-column-break-before: left;
    break-before: left;
}
.break-before-right {
    -moz-column-break-before: right;
    break-before: right;
}
.break-before-column {
    -moz-column-break-before: column;
    break-before: column;
}
.break-inside-auto {
    -moz-column-break-inside: auto;
    break-inside: auto;
}
.break-inside-avoid {
    -moz-column-break-inside: avoid;
    break-inside: avoid;
}
.break-inside-avoid-page {
    break-inside: avoid-page;
}
.break-inside-avoid-column {
    -moz-column-break-inside: avoid;
    break-inside: avoid-column;
}
.break-after-auto {
    -moz-column-break-after: auto;
    break-after: auto;
}
.break-after-avoid {
    -moz-column-break-after: avoid;
    break-after: avoid;
}
.break-after-all {
    -moz-column-break-after: all;
    break-after: all;
}
.break-after-avoid-page {
    -moz-column-break-after: avoid;
    break-after: avoid-page;
}
.break-after-page {
    -moz-column-break-after: page;
    break-after: page;
}
.break-after-left {
    -moz-column-break-after: left;
    break-after: left;
}
.break-after-right {
    -moz-column-break-after: right;
    break-after: right;
}
.break-after-column {
    -moz-column-break-after: column;
    break-after: column;
}
.grid-flow-row {
    grid-auto-flow: row;
}
.grid-flow-col {
    grid-auto-flow: column;
}
.grid-flow-dense {
    grid-auto-flow: dense;
}
.grid-flow-row-dense {
    grid-auto-flow: row dense;
}
.grid-flow-col-dense {
    grid-auto-flow: column dense;
}
.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}
.flex-row {
    flex-direction: row;
}
.flex-row-reverse {
    flex-direction: row-reverse;
}
.flex-col {
    flex-direction: column;
}
.flex-col-reverse {
    flex-direction: column-reverse;
}
.flex-wrap {
    flex-wrap: wrap;
}
.flex-wrap-reverse {
    flex-wrap: wrap-reverse;
}
.flex-nowrap {
    flex-wrap: nowrap;
}
.place-content-center {
    place-content: center;
}
.place-content-start {
    place-content: start;
}
.place-content-end {
    place-content: end;
}
.place-content-between {
    place-content: space-between;
}
.place-content-around {
    place-content: space-around;
}
.place-content-evenly {
    place-content: space-evenly;
}
.place-content-baseline {
    place-content: baseline;
}
.place-content-stretch {
    place-content: stretch;
}
.place-items-start {
    place-items: start;
}
.place-items-end {
    place-items: end;
}
.place-items-center {
    place-items: center;
}
.place-items-baseline {
    place-items: baseline;
}
.place-items-stretch {
    place-items: stretch;
}
.content-normal {
    align-content: normal;
}
.content-center {
    align-content: center;
}
.content-start {
    align-content: flex-start;
}
.content-end {
    align-content: flex-end;
}
.content-between {
    align-content: space-between;
}
.content-around {
    align-content: space-around;
}
.content-evenly {
    align-content: space-evenly;
}
.content-baseline {
    align-content: baseline;
}
.content-stretch {
    align-content: stretch;
}
.items-start {
    align-items: flex-start;
}
.items-end {
    align-items: flex-end;
}
.items-center {
    align-items: center;
}
.items-baseline {
    align-items: baseline;
}
.items-stretch {
    align-items: stretch;
}
.justify-normal {
    justify-content: normal;
}
.justify-start {
    justify-content: flex-start;
}
.justify-end {
    justify-content: flex-end;
}
.justify-center {
    justify-content: center;
}
.justify-between {
    justify-content: space-between;
}
.justify-around {
    justify-content: space-around;
}
.justify-evenly {
    justify-content: space-evenly;
}
.justify-stretch {
    justify-content: stretch;
}
.justify-items-start {
    justify-items: start;
}
.justify-items-end {
    justify-items: end;
}
.justify-items-center {
    justify-items: center;
}
.justify-items-stretch {
    justify-items: stretch;
}
.gap-10 {
    gap: 2.5rem;
}
.gap-2 {
    gap: 0.5rem;
}
.gap-3 {
    gap: 0.75rem;
}
.gap-4 {
    gap: 1rem;
}
.gap-5 {
    gap: 1.25rem;
}
.gap-8 {
    gap: 2rem;
}
.gap-\[15px\] {
    gap: 15px;
}
.gap-\[21px\] {
    gap: 21px;
}
.gap-\[30px\] {
    gap: 30px;
}
.gap-\[42px\] {
    gap: 42px;
}
.gap-\[45px\] {
    gap: 45px;
}
.space-x-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-reverse > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 1;
}
.space-x-reverse > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 1;
}
.divide-x > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-x-reverse: 0;
    border-right-width: calc(1px * var(--tw-divide-x-reverse));
    border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
}
.divide-y > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-y-reverse: 0;
    border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-y-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-y-reverse: 0;
    border-top-width: calc(2px * calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width: calc(2px * var(--tw-divide-y-reverse));
}
.divide-y-reverse > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-y-reverse: 1;
}
.divide-x-reverse > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-x-reverse: 1;
}
.divide-solid > :not([hidden]) ~ :not([hidden]) {
    border-style: solid;
}
.divide-dashed > :not([hidden]) ~ :not([hidden]) {
    border-style: dashed;
}
.divide-dotted > :not([hidden]) ~ :not([hidden]) {
    border-style: dotted;
}
.divide-double > :not([hidden]) ~ :not([hidden]) {
    border-style: double;
}
.divide-none > :not([hidden]) ~ :not([hidden]) {
    border-style: none;
}
.divide-light-gray-400 > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-opacity: 1;
    border-color: rgb(231 232 237 / var(--tw-divide-opacity));
}
.place-self-auto {
    place-self: auto;
}
.place-self-start {
    place-self: start;
}
.place-self-end {
    place-self: end;
}
.place-self-center {
    place-self: center;
}
.place-self-stretch {
    place-self: stretch;
}
.self-auto {
    align-self: auto;
}
.self-start {
    align-self: flex-start;
}
.self-end {
    align-self: flex-end;
}
.self-center {
    align-self: center;
}
.self-stretch {
    align-self: stretch;
}
.self-baseline {
    align-self: baseline;
}
.justify-self-auto {
    justify-self: auto;
}
.justify-self-start {
    justify-self: start;
}
.justify-self-end {
    justify-self: end;
}
.justify-self-center {
    justify-self: center;
}
.justify-self-stretch {
    justify-self: stretch;
}
.overflow-auto {
    overflow: auto;
}
.overflow-hidden {
    overflow: hidden;
}
.overflow-clip {
    overflow: clip;
}
.overflow-visible {
    overflow: visible;
}
.overflow-scroll {
    overflow: scroll;
}
.overflow-x-auto {
    overflow-x: auto;
}
.overflow-y-auto {
    overflow-y: auto;
}
.overflow-x-hidden {
    overflow-x: hidden;
}
.overflow-y-hidden {
    overflow-y: hidden;
}
.overflow-x-clip {
    overflow-x: clip;
}
.overflow-y-clip {
    overflow-y: clip;
}
.overflow-x-visible {
    overflow-x: visible;
}
.overflow-y-visible {
    overflow-y: visible;
}
.overflow-x-scroll {
    overflow-x: scroll;
}
.overflow-y-scroll {
    overflow-y: scroll;
}
.overscroll-auto {
    overscroll-behavior: auto;
}
.overscroll-contain {
    overscroll-behavior: contain;
}
.overscroll-none {
    overscroll-behavior: none;
}
.overscroll-y-auto {
    overscroll-behavior-y: auto;
}
.overscroll-y-contain {
    overscroll-behavior-y: contain;
}
.overscroll-y-none {
    overscroll-behavior-y: none;
}
.overscroll-x-auto {
    overscroll-behavior-x: auto;
}
.overscroll-x-contain {
    overscroll-behavior-x: contain;
}
.overscroll-x-none {
    overscroll-behavior-x: none;
}
.scroll-auto {
    scroll-behavior: auto;
}
.scroll-smooth {
    scroll-behavior: smooth;
}
.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.overflow-ellipsis,
.text-ellipsis {
    text-overflow: ellipsis;
}
.text-clip {
    text-overflow: clip;
}
.hyphens-none {
    -webkit-hyphens: none;
    hyphens: none;
}
.hyphens-manual {
    -webkit-hyphens: manual;
    hyphens: manual;
}
.hyphens-auto {
    -webkit-hyphens: auto;
    hyphens: auto;
}
.whitespace-normal {
    white-space: normal;
}
.whitespace-nowrap {
    white-space: nowrap;
}
.whitespace-pre {
    white-space: pre;
}
.whitespace-pre-line {
    white-space: pre-line;
}
.whitespace-pre-wrap {
    white-space: pre-wrap;
}
.whitespace-break-spaces {
    white-space: break-spaces;
}
.text-wrap {
    text-wrap: wrap;
}
.text-nowrap {
    text-wrap: nowrap;
}
.text-balance {
    text-wrap: balance;
}
.text-pretty {
    text-wrap: pretty;
}
.break-normal {
    overflow-wrap: normal;
    word-break: normal;
}
.break-words {
    overflow-wrap: break-word;
}
.break-all {
    word-break: break-all;
}
.break-keep {
    word-break: keep-all;
}
.rounded {
    border-radius: 0.25rem;
}
.rounded-\[10px\] {
    border-radius: 10px;
}
.rounded-\[15px\] {
    border-radius: 15px;
}
.rounded-\[18px\] {
    border-radius: 18px;
}
.rounded-\[20px\] {
    border-radius: 20px;
}
.rounded-\[21px\] {
    border-radius: 21px;
}
.rounded-\[24px\] {
    border-radius: 24px;
}
.rounded-\[27px\] {
    border-radius: 27px;
}
.rounded-\[33px\] {
    border-radius: 33px;
}
.rounded-\[36px\] {
    border-radius: 36px;
}
.rounded-\[42px\] {
    border-radius: 42px;
}
.rounded-\[5px\] {
    border-radius: 5px;
}
.rounded-\[8px\] {
    border-radius: 8px;
}
.rounded-full {
    border-radius: 9999px;
}
.rounded-lg {
    border-radius: 0.5rem;
}
.rounded-md {
    border-radius: 0.375rem;
}
.rounded-b {
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
}
.rounded-e {
    border-start-end-radius: 0.25rem;
    border-end-end-radius: 0.25rem;
}
.rounded-l {
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
}
.rounded-l-\[18px\] {
    border-top-left-radius: 18px;
    border-bottom-left-radius: 18px;
}
.rounded-r {
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
}
.rounded-r-\[18px\] {
    border-top-right-radius: 18px;
    border-bottom-right-radius: 18px;
}
.rounded-s {
    border-start-start-radius: 0.25rem;
    border-end-start-radius: 0.25rem;
}
.rounded-t {
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
}
.rounded-bl {
    border-bottom-left-radius: 0.25rem;
}
.rounded-br {
    border-bottom-right-radius: 0.25rem;
}
.rounded-ee {
    border-end-end-radius: 0.25rem;
}
.rounded-es {
    border-end-start-radius: 0.25rem;
}
.rounded-se {
    border-start-end-radius: 0.25rem;
}
.rounded-ss {
    border-start-start-radius: 0.25rem;
}
.rounded-tl {
    border-top-left-radius: 0.25rem;
}
.rounded-tr {
    border-top-right-radius: 0.25rem;
}
.border {
    border-width: 1px;
}
.border-0 {
    border-width: 0;
}
.border-2 {
    border-width: 2px;
}
.border-x {
    border-left-width: 1px;
    border-right-width: 1px;
}
.border-y {
    border-top-width: 1px;
    border-bottom-width: 1px;
}
.border-b {
    border-bottom-width: 1px;
}
.border-b-2 {
    border-bottom-width: 2px;
}
.border-e {
    border-inline-end-width: 1px;
}
.border-l {
    border-left-width: 1px;
}
.border-r {
    border-right-width: 1px;
}
.border-s {
    border-inline-start-width: 1px;
}
.border-t {
    border-top-width: 1px;
}
.border-solid {
    border-style: solid;
}
.border-dashed {
    border-style: dashed;
}
.border-dotted {
    border-style: dotted;
}
.border-double {
    border-style: double;
}
.border-hidden {
    border-style: hidden;
}
.border-none {
    border-style: none;
}
.border-\[\#E7E8ED\] {
    --tw-border-opacity: 1;
    border-color: rgb(231 232 237 / var(--tw-border-opacity));
}
.border-white {
    --tw-border-opacity: 1;
    border-color: rgb(255 255 255 / var(--tw-border-opacity));
}
.border-b-\[\#E7EAF1\] {
    --tw-border-opacity: 1;
    border-bottom-color: rgb(231 234 241 / var(--tw-border-opacity));
}
.bg-\[\#D63031\] {
    --tw-bg-opacity: 1;
    background-color: rgb(214 48 49 / var(--tw-bg-opacity));
}
.bg-\[\#E7EAF1\] {
    --tw-bg-opacity: 1;
    background-color: rgb(231 234 241 / var(--tw-bg-opacity));
}
.bg-\[\#F3F4F6\] {
    --tw-bg-opacity: 1;
    background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}
.bg-\[rgb\(255\,0\,0\)\] {
    --tw-bg-opacity: 1;
    background-color: rgb(255 0 0 / var(--tw-bg-opacity));
}
.bg-black {
    --tw-bg-opacity: 1;
    background-color: rgb(0 0 0 / var(--tw-bg-opacity));
}
.bg-gray-200 {
    --tw-bg-opacity: 1;
    background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}
.bg-gray-300 {
    --tw-bg-opacity: 1;
    background-color: rgb(209 213 219 / var(--tw-bg-opacity));
}
.bg-green-50 {
    --tw-bg-opacity: 1;
    background-color: rgb(240 253 244 / var(--tw-bg-opacity));
}
.bg-green-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(34 197 94 / var(--tw-bg-opacity));
}
.bg-light-accent-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(108 92 231 / var(--tw-bg-opacity));
}
.bg-light-gray-100 {
    --tw-bg-opacity: 1;
    background-color: rgb(255 252 251 / var(--tw-bg-opacity));
}
.bg-light-gray-400 {
    --tw-bg-opacity: 1;
    background-color: rgb(231 232 237 / var(--tw-bg-opacity));
}
.bg-light-secondary-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(245 246 250 / var(--tw-bg-opacity));
}
.bg-red-50 {
    --tw-bg-opacity: 1;
    background-color: rgb(254 242 242 / var(--tw-bg-opacity));
}
.bg-transparent {
    background-color: transparent;
}
.bg-white {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
.bg-opacity-25 {
    --tw-bg-opacity: 0.25;
}
.bg-gradient-to-b {
    background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}
.from-dark-black-800 {
    --tw-gradient-from: #121316 var(--tw-gradient-from-position);
    --tw-gradient-to: rgb(18 19 22 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-light-secondary-500 {
    --tw-gradient-from: #f5f6fa var(--tw-gradient-from-position);
    --tw-gradient-to: rgb(245 246 250 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-\[60\%\] {
    --tw-gradient-from-position: 60%;
}
.to-\[90\%\] {
    --tw-gradient-to-position: 90%;
}
.decoration-slice {
    -webkit-box-decoration-break: slice;
    box-decoration-break: slice;
}
.decoration-clone {
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
.box-decoration-slice {
    -webkit-box-decoration-break: slice;
    box-decoration-break: slice;
}
.box-decoration-clone {
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
.bg-fixed {
    background-attachment: fixed;
}
.bg-local {
    background-attachment: local;
}
.bg-scroll {
    background-attachment: scroll;
}
.bg-clip-border {
    background-clip: border-box;
}
.bg-clip-padding {
    background-clip: padding-box;
}
.bg-clip-content {
    background-clip: content-box;
}
.bg-clip-text {
    -webkit-background-clip: text;
    background-clip: text;
}
.bg-center {
    background-position: center;
}
.bg-repeat {
    background-repeat: repeat;
}
.bg-no-repeat {
    background-repeat: no-repeat;
}
.bg-repeat-x {
    background-repeat: repeat-x;
}
.bg-repeat-y {
    background-repeat: repeat-y;
}
.bg-repeat-round {
    background-repeat: round;
}
.bg-repeat-space {
    background-repeat: space;
}
.bg-origin-border {
    background-origin: border-box;
}
.bg-origin-padding {
    background-origin: padding-box;
}
.bg-origin-content {
    background-origin: content-box;
}
.fill-light-accent-500 {
    fill: #6c5ce7;
}
.object-contain {
    -o-object-fit: contain;
    object-fit: contain;
}
.object-cover {
    -o-object-fit: cover;
    object-fit: cover;
}
.object-fill {
    -o-object-fit: fill;
    object-fit: fill;
}
.object-none {
    -o-object-fit: none;
    object-fit: none;
}
.object-scale-down {
    -o-object-fit: scale-down;
    object-fit: scale-down;
}
.object-center {
    -o-object-position: center;
    object-position: center;
}
.p-1 {
    padding: 0.25rem;
}
.p-1\.5 {
    padding: 0.375rem;
}
.p-4 {
    padding: 1rem;
}
.p-5 {
    padding: 1.25rem;
}
.p-\[30px\] {
    padding: 30px;
}
.px-0 {
    padding-left: 0;
    padding-right: 0;
}
.px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}
.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}
.px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}
.px-\[10px\] {
    padding-left: 10px;
    padding-right: 10px;
}
.px-\[15px\] {
    padding-left: 15px;
    padding-right: 15px;
}
.px-\[18px\] {
    padding-left: 18px;
    padding-right: 18px;
}
.px-\[27px\] {
    padding-left: 27px;
    padding-right: 27px;
}
.px-\[60px\] {
    padding-left: 60px;
    padding-right: 60px;
}
.py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}
.py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}
.py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}
.py-9 {
    padding-top: 2.25rem;
    padding-bottom: 2.25rem;
}
.py-\[141px\] {
    padding-top: 141px;
    padding-bottom: 141px;
}
.py-\[18px\] {
    padding-top: 18px;
    padding-bottom: 18px;
}
.py-\[27px\] {
    padding-top: 27px;
    padding-bottom: 27px;
}
.py-\[30px\] {
    padding-top: 30px;
    padding-bottom: 30px;
}
.py-\[50px\] {
    padding-top: 50px;
    padding-bottom: 50px;
}
.py-\[69px\] {
    padding-top: 69px;
    padding-bottom: 69px;
}
.py-\[6px\] {
    padding-top: 6px;
    padding-bottom: 6px;
}
.py-\[72px\] {
    padding-top: 72px;
    padding-bottom: 72px;
}
.py-\[9px\] {
    padding-top: 9px;
    padding-bottom: 9px;
}
.pb-1 {
    padding-bottom: 0.25rem;
}
.pb-3 {
    padding-bottom: 0.75rem;
}
.pb-4 {
    padding-bottom: 1rem;
}
.pb-5 {
    padding-bottom: 1.25rem;
}
.pb-\[51px\] {
    padding-bottom: 51px;
}
.pb-\[63px\] {
    padding-bottom: 63px;
}
.pb-\[72px\] {
    padding-bottom: 72px;
}
.pt-10 {
    padding-top: 2.5rem;
}
.pt-2 {
    padding-top: 0.5rem;
}
.pt-8 {
    padding-top: 2rem;
}
.pt-9 {
    padding-top: 2.25rem;
}
.pt-\[148px\] {
    padding-top: 148px;
}
.pt-\[30px\] {
    padding-top: 30px;
}
.pt-\[42px\] {
    padding-top: 42px;
}
.pt-\[63px\] {
    padding-top: 63px;
}
.pt-\[95px\] {
    padding-top: 95px;
}
.text-left {
    text-align: left;
}
.text-center {
    text-align: center;
}
.text-right {
    text-align: right;
}
.text-justify {
    text-align: justify;
}
.text-start {
    text-align: start;
}
.text-end {
    text-align: end;
}
.align-baseline {
    vertical-align: baseline;
}
.align-top {
    vertical-align: top;
}
.align-middle {
    vertical-align: middle;
}
.align-bottom {
    vertical-align: bottom;
}
.align-text-top {
    vertical-align: text-top;
}
.align-text-bottom {
    vertical-align: text-bottom;
}
.align-sub {
    vertical-align: sub;
}
.align-super {
    vertical-align: super;
}
.font-spartan {
    font-family: League Spartan, ui-sans-serif, system-ui, sans-serif,
        "Apple Color Emoji", "Segoe UI Emoji", Segoe UI Symbol,
        "Noto Color Emoji";
}
.text-\[12px\] {
    font-size: 12px;
}
.text-\[13px\] {
    font-size: 13px;
}
.text-\[15px\] {
    font-size: 15px;
}
.text-\[16px\] {
    font-size: 16px;
}
.text-\[18px\] {
    font-size: 18px;
}
.text-\[21px\] {
    font-size: 21px;
}
.text-\[24px\] {
    font-size: 24px;
}
.text-\[33px\] {
    font-size: 33px;
}
.text-\[42px\] {
    font-size: 42px;
}
.text-\[51px\] {
    font-size: 51px;
}
.text-\[63px\] {
    font-size: 63px;
}
.text-\[8px\] {
    font-size: 8px;
}
.text-base {
    font-size: 1rem;
    line-height: 1.5rem;
}
.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
}
.text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
}
.text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
}
.font-bold {
    font-weight: 700;
}
.font-extrabold {
    font-weight: 800;
}
.font-light {
    font-weight: 300;
}
.font-medium {
    font-weight: 500;
}
.font-normal {
    font-weight: 400;
}
.font-semibold {
    font-weight: 600;
}
.uppercase {
    text-transform: uppercase;
}
.lowercase {
    text-transform: lowercase;
}
.capitalize {
    text-transform: capitalize;
}
.normal-case {
    text-transform: none;
}
.italic {
    font-style: italic;
}
.not-italic {
    font-style: normal;
}
.normal-nums {
    font-variant-numeric: normal;
}
.ordinal {
    --tw-ordinal: ordinal;
    font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
        var(--tw-numeric-figure) var(--tw-numeric-spacing)
        var(--tw-numeric-fraction);
}
.slashed-zero {
    --tw-slashed-zero: slashed-zero;
    font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
        var(--tw-numeric-figure) var(--tw-numeric-spacing)
        var(--tw-numeric-fraction);
}
.lining-nums {
    --tw-numeric-figure: lining-nums;
    font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
        var(--tw-numeric-figure) var(--tw-numeric-spacing)
        var(--tw-numeric-fraction);
}
.oldstyle-nums {
    --tw-numeric-figure: oldstyle-nums;
    font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
        var(--tw-numeric-figure) var(--tw-numeric-spacing)
        var(--tw-numeric-fraction);
}
.proportional-nums {
    --tw-numeric-spacing: proportional-nums;
    font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
        var(--tw-numeric-figure) var(--tw-numeric-spacing)
        var(--tw-numeric-fraction);
}
.tabular-nums {
    --tw-numeric-spacing: tabular-nums;
    font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
        var(--tw-numeric-figure) var(--tw-numeric-spacing)
        var(--tw-numeric-fraction);
}
.diagonal-fractions {
    --tw-numeric-fraction: diagonal-fractions;
    font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
        var(--tw-numeric-figure) var(--tw-numeric-spacing)
        var(--tw-numeric-fraction);
}
.stacked-fractions {
    --tw-numeric-fraction: stacked-fractions;
    font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
        var(--tw-numeric-figure) var(--tw-numeric-spacing)
        var(--tw-numeric-fraction);
}
.leading-10 {
    line-height: 2.5rem;
}
.leading-none {
    line-height: 1;
}
.leading-snug {
    line-height: 1.375;
}
.tracking-tight {
    letter-spacing: -0.025em;
}
.tracking-wide {
    letter-spacing: 0.025em;
}
.text-\[\#336699\]\/\[\.35\] {
    color: #33669959;
}
.text-\[\#585C6C\] {
    --tw-text-opacity: 1;
    color: rgb(88 92 108 / var(--tw-text-opacity));
}
.text-\[\#D63031\] {
    --tw-text-opacity: 1;
    color: rgb(214 48 49 / var(--tw-text-opacity));
}
.text-black {
    --tw-text-opacity: 1;
    color: rgb(0 0 0 / var(--tw-text-opacity));
}
.text-blue-500 {
    --tw-text-opacity: 1;
    color: rgb(59 130 246 / var(--tw-text-opacity));
}
.text-dark-black-800 {
    --tw-text-opacity: 1;
    color: rgb(18 19 22 / var(--tw-text-opacity));
}
.text-gray-200 {
    --tw-text-opacity: 1;
    color: rgb(229 231 235 / var(--tw-text-opacity));
}
.text-green-500 {
    --tw-text-opacity: 1;
    color: rgb(34 197 94 / var(--tw-text-opacity));
}
.text-green-800 {
    --tw-text-opacity: 1;
    color: rgb(22 101 52 / var(--tw-text-opacity));
}
.text-light-accent-500 {
    --tw-text-opacity: 1;
    color: rgb(108 92 231 / var(--tw-text-opacity));
}
.text-light-black-500 {
    --tw-text-opacity: 1;
    color: rgb(74 84 85 / var(--tw-text-opacity));
}
.text-light-black-600 {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
.text-light-gray-500 {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
.text-red-500 {
    --tw-text-opacity: 1;
    color: rgb(239 68 68 / var(--tw-text-opacity));
}
.text-red-800 {
    --tw-text-opacity: 1;
    color: rgb(153 27 27 / var(--tw-text-opacity));
}
.text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
}
.underline {
    text-decoration-line: underline;
}
.overline {
    text-decoration-line: overline;
}
.line-through {
    text-decoration-line: line-through;
}
.no-underline {
    text-decoration-line: none;
}
.decoration-solid {
    text-decoration-style: solid;
}
.decoration-double {
    text-decoration-style: double;
}
.decoration-dotted {
    text-decoration-style: dotted;
}
.decoration-dashed {
    text-decoration-style: dashed;
}
.decoration-wavy {
    text-decoration-style: wavy;
}
.antialiased {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.subpixel-antialiased {
    -webkit-font-smoothing: auto;
    -moz-osx-font-smoothing: auto;
}
.placeholder-white::-moz-placeholder {
    --tw-placeholder-opacity: 1;
    color: rgb(255 255 255 / var(--tw-placeholder-opacity));
}
.placeholder-white::placeholder {
    --tw-placeholder-opacity: 1;
    color: rgb(255 255 255 / var(--tw-placeholder-opacity));
}
.opacity-50 {
    opacity: 0.5;
}
.bg-blend-normal {
    background-blend-mode: normal;
}
.bg-blend-multiply {
    background-blend-mode: multiply;
}
.bg-blend-screen {
    background-blend-mode: screen;
}
.bg-blend-overlay {
    background-blend-mode: overlay;
}
.bg-blend-darken {
    background-blend-mode: darken;
}
.bg-blend-lighten {
    background-blend-mode: lighten;
}
.bg-blend-color-dodge {
    background-blend-mode: color-dodge;
}
.bg-blend-color-burn {
    background-blend-mode: color-burn;
}
.bg-blend-hard-light {
    background-blend-mode: hard-light;
}
.bg-blend-soft-light {
    background-blend-mode: soft-light;
}
.bg-blend-difference {
    background-blend-mode: difference;
}
.bg-blend-exclusion {
    background-blend-mode: exclusion;
}
.bg-blend-hue {
    background-blend-mode: hue;
}
.bg-blend-saturation {
    background-blend-mode: saturation;
}
.bg-blend-color {
    background-blend-mode: color;
}
.bg-blend-luminosity {
    background-blend-mode: luminosity;
}
.mix-blend-normal {
    mix-blend-mode: normal;
}
.mix-blend-multiply {
    mix-blend-mode: multiply;
}
.mix-blend-screen {
    mix-blend-mode: screen;
}
.mix-blend-overlay {
    mix-blend-mode: overlay;
}
.mix-blend-darken {
    mix-blend-mode: darken;
}
.mix-blend-lighten {
    mix-blend-mode: lighten;
}
.mix-blend-color-dodge {
    mix-blend-mode: color-dodge;
}
.mix-blend-color-burn {
    mix-blend-mode: color-burn;
}
.mix-blend-hard-light {
    mix-blend-mode: hard-light;
}
.mix-blend-soft-light {
    mix-blend-mode: soft-light;
}
.mix-blend-difference {
    mix-blend-mode: difference;
}
.mix-blend-exclusion {
    mix-blend-mode: exclusion;
}
.mix-blend-hue {
    mix-blend-mode: hue;
}
.mix-blend-saturation {
    mix-blend-mode: saturation;
}
.mix-blend-color {
    mix-blend-mode: color;
}
.mix-blend-luminosity {
    mix-blend-mode: luminosity;
}
.mix-blend-plus-lighter {
    mix-blend-mode: plus-lighter;
}
.\!shadow {
    --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1) !important;
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color),
        0 1px 2px -1px var(--tw-shadow-color) !important;
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
        var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}
.shadow {
    --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color),
        0 1px 2px -1px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
        var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xl {
    --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1),
        0 8px 10px -6px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color),
        0 8px 10px -6px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
        var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline-none {
    outline: 2px solid transparent;
    outline-offset: 2px;
}
.outline {
    outline-style: solid;
}
.outline-dashed {
    outline-style: dashed;
}
.outline-dotted {
    outline-style: dotted;
}
.outline-double {
    outline-style: double;
}
.ring {
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
        var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0
        calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
        var(--tw-shadow, 0 0 #0000);
}
.ring-inset {
    --tw-ring-inset: inset;
}
.blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
        var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert)
        var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow {
    --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1))
        drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
        var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert)
        var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.grayscale {
    --tw-grayscale: grayscale(100%);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
        var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert)
        var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.invert {
    --tw-invert: invert(100%);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
        var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert)
        var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.sepia {
    --tw-sepia: sepia(100%);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
        var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert)
        var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.\!filter {
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
        var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert)
        var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) !important;
}
.filter {
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
        var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert)
        var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter-none {
    filter: none;
}
.backdrop-blur {
    --tw-backdrop-blur: blur(8px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur)
        var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
        var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
        var(--tw-backdrop-invert) var(--tw-backdrop-opacity)
        var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
        var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
        var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
        var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
        var(--tw-backdrop-sepia);
}
.backdrop-blur-sm {
    --tw-backdrop-blur: blur(4px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur)
        var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
        var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
        var(--tw-backdrop-invert) var(--tw-backdrop-opacity)
        var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
        var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
        var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
        var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
        var(--tw-backdrop-sepia);
}
.backdrop-grayscale {
    --tw-backdrop-grayscale: grayscale(100%);
    -webkit-backdrop-filter: var(--tw-backdrop-blur)
        var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
        var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
        var(--tw-backdrop-invert) var(--tw-backdrop-opacity)
        var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
        var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
        var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
        var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
        var(--tw-backdrop-sepia);
}
.backdrop-invert {
    --tw-backdrop-invert: invert(100%);
    -webkit-backdrop-filter: var(--tw-backdrop-blur)
        var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
        var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
        var(--tw-backdrop-invert) var(--tw-backdrop-opacity)
        var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
        var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
        var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
        var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
        var(--tw-backdrop-sepia);
}
.backdrop-sepia {
    --tw-backdrop-sepia: sepia(100%);
    -webkit-backdrop-filter: var(--tw-backdrop-blur)
        var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
        var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
        var(--tw-backdrop-invert) var(--tw-backdrop-opacity)
        var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
        var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
        var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
        var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
        var(--tw-backdrop-sepia);
}
.backdrop-filter {
    -webkit-backdrop-filter: var(--tw-backdrop-blur)
        var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
        var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
        var(--tw-backdrop-invert) var(--tw-backdrop-opacity)
        var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
        var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
        var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
        var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
        var(--tw-backdrop-sepia);
}
.backdrop-filter-none {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}
.transition {
    transition-property: color, background-color, border-color,
        text-decoration-color, fill, stroke, opacity, box-shadow, transform,
        filter, -webkit-backdrop-filter;
    transition-property: color, background-color, border-color,
        text-decoration-color, fill, stroke, opacity, box-shadow, transform,
        filter, backdrop-filter;
    transition-property: color, background-color, border-color,
        text-decoration-color, fill, stroke, opacity, box-shadow, transform,
        filter, backdrop-filter, -webkit-backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.ease-in {
    transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
.ease-in-out {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out {
    transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.content-\[\'\'\] {
    --tw-content: "";
    content: var(--tw-content);
}
.content-\[\'this-is-also-valid\]-weirdly-enough\'\] {
    --tw-content: "this-is-also-valid]-weirdly-enough";
    content: var(--tw-content);
}
.forced-color-adjust-auto {
    forced-color-adjust: auto;
}
.forced-color-adjust-none {
    forced-color-adjust: none;
}
.container {
    margin-left: auto;
    margin-right: auto;
}
.\[vite\:css\] {
    vite: css;
}
.\[vite\:html\] {
    vite: html;
}
body,
html {
    font-family: League Spartan, ui-sans-serif, system-ui, sans-serif,
        "Apple Color Emoji", "Segoe UI Emoji", Segoe UI Symbol,
        "Noto Color Emoji";
    font-size: 1rem;
    line-height: 1.5rem;
    --tw-bg-opacity: 1;
    background-color: rgb(245 246 250 / var(--tw-bg-opacity));
}
:is(.dark body),
:is(.dark html) {
    --tw-bg-opacity: 1;
    background-color: rgb(18 19 22 / var(--tw-bg-opacity));
}
body {
    position: relative;
    height: 100%;
    width: 100%;
}
@media (min-width: 1024px) {
    header {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
        padding-top: 2.25rem;
    }
}
header {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100%;
    background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
    --tw-gradient-from: #f5f6fa var(--tw-gradient-from-position);
    --tw-gradient-to: rgb(245 246 250 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
    --tw-gradient-from-position: 60%;
    --tw-gradient-to: transparent var(--tw-gradient-to-position);
    --tw-gradient-to-position: 90%;
}
@media (min-width: 1024px) {
    header .wrapper {
        border-radius: 27px;
    }
}
header .wrapper {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
:is(.dark header .wrapper) {
    --tw-bg-opacity: 1;
    background-color: rgb(25 26 29 / var(--tw-bg-opacity));
}
header .wrapper {
    width: 100%;
    padding: 1.25rem;
}
@media (min-width: 1024px) {
    header .wrapper {
        padding-left: 42px;
        padding-right: 42px;
    }
}
header .wrapper {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 20px 37.6px #b2bec31a;
}
header .main-nav {
    display: none;
    flex-direction: row;
    align-items: center;
    gap: 30px;
}
@media (min-width: 1024px) {
    header .main-nav {
        display: flex;
    }
}
header .main-nav a {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark header .main-nav a) {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
header .main-nav a:hover {
    --tw-text-opacity: 1;
    color: rgb(108 92 231 / var(--tw-text-opacity));
}
header .main-nav a {
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 500;
}
header .theme-control {
    display: none;
    align-items: center;
}
@media (min-width: 1024px) {
    header .theme-control {
        display: flex;
    }
}
header .menu-control {
    display: flex;
}
@media (min-width: 1024px) {
    header .menu-control {
        display: none;
    }
}
header .menu-control a {
    width: 31px;
    height: 31px;
    background-image: url('data:image/svg+xml,<svg width="30" height="18" viewBox="0 0 30 18" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="18" height="2" rx="1" fill="%232D3436"/><rect y="8" width="30" height="2" rx="1" fill="%232D3436"/><rect x="13" y="16" width="17" height="2" rx="1" fill="%232D3436"/></svg>');
    display: block;
    background-position: center;
    background-repeat: no-repeat;
}
.theme-toggle {
    height: 25px;
    width: 66px;
    border-radius: 9999px;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
    box-shadow: inset 0 3px 9.1px #b2bec3c2;
}
.theme-toggle:after {
    --tw-content: "";
    position: absolute;
    top: 50%;
    left: 0;
    --tw-translate-y: -50%;
    --tw-translate-x: -9px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(245 246 250 / var(--tw-border-opacity));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
    height: 50px;
    width: 50px;
    border-radius: 9999px;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
    background-position: center;
    content: var(--tw-content);
    background-repeat: no-repeat;
    background-image: url('data:image/svg+xml,<svg width="21" height="22" viewBox="0 0 21 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.4536 18.0114C6.13987 17.8299 5.73843 17.9371 5.55695 18.2508C5.37547 18.5646 5.48267 18.966 5.7964 19.1475L6.4536 18.0114ZM2.35254 15.7036C2.53402 16.0173 2.93547 16.1245 3.2492 15.9431C3.56292 15.7616 3.67013 15.3601 3.48865 15.0464L2.35254 15.7036ZM18.5938 11C18.5938 15.47 14.97 19.0938 10.5 19.0938V20.4062C15.695 20.4062 19.9062 16.195 19.9062 11H18.5938ZM2.40625 11C2.40625 6.52995 6.02995 2.90625 10.5 2.90625V1.59375C5.30507 1.59375 1.09375 5.80507 1.09375 11H2.40625ZM13.5625 12.9688C10.7838 12.9688 8.53125 10.7162 8.53125 7.9375H7.21875C7.21875 11.4411 10.0589 14.2812 13.5625 14.2812V12.9688ZM17.8721 10.5354C16.9901 11.9951 15.3897 12.9688 13.5625 12.9688V14.2812C15.868 14.2812 17.8856 13.0509 18.9956 11.2141L17.8721 10.5354ZM8.53125 7.9375C8.53125 6.11034 9.50486 4.50995 10.9646 3.62784L10.2859 2.50449C8.44908 3.61439 7.21875 5.63195 7.21875 7.9375H8.53125ZM10.5 2.90625C10.4226 2.90625 10.3317 2.87132 10.2659 2.80272C10.21 2.74461 10.1971 2.68964 10.194 2.6674C10.1903 2.64014 10.1922 2.56112 10.2859 2.50449L10.9646 3.62784C11.4049 3.36182 11.5465 2.87473 11.4947 2.49174C11.441 2.0936 11.127 1.59375 10.5 1.59375V2.90625ZM18.9956 11.2141C18.9389 11.3078 18.8598 11.3097 18.8326 11.306C18.8104 11.3029 18.7554 11.29 18.6973 11.2341C18.6287 11.1683 18.5938 11.0774 18.5938 11H19.9062C19.9062 10.373 19.4064 10.059 19.0082 10.0053C18.6252 9.9535 18.1381 10.0951 17.8721 10.5354L18.9956 11.2141ZM10.5 19.0938C9.02466 19.0938 7.64341 18.6996 6.4536 18.0114L5.7964 19.1475C7.1806 19.9482 8.7878 20.4062 10.5 20.4062V19.0938ZM3.48865 15.0464C2.80038 13.8566 2.40625 12.4753 2.40625 11H1.09375C1.09375 12.7122 1.55182 14.3194 2.35254 15.7036L3.48865 15.0464Z" fill="%232D3436"/></svg>');
    box-shadow: 0 4px 7.9px #b2bec333, 0 20px 37.6px #b2bec31a;
}
.dark header {
    background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
    --tw-gradient-from: #121316 var(--tw-gradient-from-position);
    --tw-gradient-to: rgb(18 19 22 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
    --tw-gradient-from-position: 60%;
    --tw-gradient-to: transparent var(--tw-gradient-to-position);
    --tw-gradient-to-position: 90%;
}
.dark header .wrapper {
    box-shadow: 0 4px 7.9px #0c101233, 0 20px 37.6px #0c10121a;
}
.dark header .menu-control a {
    background-image: url('data:image/svg+xml,<svg width="30" height="18" viewBox="0 0 30 18" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="18" height="2" rx="1" fill="%23F5F6FA"/><rect y="8" width="30" height="2" rx="1" fill="%23F5F6FA"/><rect x="13" y="16" width="17" height="2" rx="1" fill="%23F5F6FA"/></svg>');
}
.dark .theme-toggle {
    --tw-bg-opacity: 1;
    background-color: rgb(108 92 231 / var(--tw-bg-opacity));
    box-shadow: inset 0 3px 9px #0b0c0de0;
}
.dark .theme-toggle:after {
    --tw-translate-x: 50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    --tw-border-opacity: 1;
    border-color: rgb(40 41 44 / var(--tw-border-opacity));
    content: var(--tw-content);
    --tw-bg-opacity: 1;
    background-color: rgb(30 31 34 / var(--tw-bg-opacity));
    background-image: url('data:image/svg+xml,<svg width="21" height="22" viewBox="0 0 21 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10.5 2.25V3.125" stroke="%23B2BEC3" stroke-width="1.5" stroke-linecap="round"/><path d="M10.5 18.875V19.75" stroke="%23B2BEC3" stroke-width="1.5" stroke-linecap="round"/><path d="M19.25 11H18.375" stroke="%23B2BEC3" stroke-width="1.5" stroke-linecap="round"/><path d="M2.625 11H1.75" stroke="%23B2BEC3" stroke-width="1.5" stroke-linecap="round"/><path d="M16.687 4.81348L16.3433 5.1572" stroke="%23B2BEC3" stroke-width="1.5" stroke-linecap="round"/><path d="M4.65648 16.843L4.31274 17.1868" stroke="%23B2BEC3" stroke-width="1.5" stroke-linecap="round"/><path d="M16.687 17.1865L16.3433 16.8428" stroke="%23B2BEC3" stroke-width="1.5" stroke-linecap="round"/><path d="M4.65648 5.15697L4.31274 4.81323" stroke="%23B2BEC3" stroke-width="1.5" stroke-linecap="round"/><path d="M5.54873 9.25C5.35527 9.7974 5.25 10.3864 5.25 11C5.25 13.8995 7.6005 16.25 10.5 16.25C13.3995 16.25 15.75 13.8995 15.75 11C15.75 8.1005 13.3995 5.75 10.5 5.75C9.88636 5.75 9.2974 5.85527 8.75 6.04873" stroke="%23B2BEC3" stroke-width="1.5" stroke-linecap="round"/></svg>');
    box-shadow: 0 4px 7.9px #0c101233, 0 20px 37.6px #0c10121a;
}
.mobile-menu {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
    --tw-translate-x: 100%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    height: 100dvh;
    width: 100%;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
:is(.dark .mobile-menu) {
    --tw-bg-opacity: 1;
    background-color: rgb(18 19 22 / var(--tw-bg-opacity));
}
.mobile-menu {
    overflow: hidden;
    overflow-y: auto;
}
.mobile-menu .mobile-nav {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 42px;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 30px;
    padding-bottom: 30px;
}
.mobile-menu .mobile-nav a {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark .mobile-menu .mobile-nav a) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.mobile-menu .mobile-nav a {
    transition-property: color, background-color, border-color,
        text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.mobile-menu .mobile-nav a:hover {
    --tw-text-opacity: 1;
    color: rgb(108 92 231 / var(--tw-text-opacity));
}
.mobile-menu .menu-close {
    position: sticky;
    top: 1.25rem;
    right: 1.25rem;
    height: 30px;
    width: 100%;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
.mobile-menu .menu-close .mobile-toggle {
    height: 30px;
    width: 30px;
    cursor: pointer;
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark .mobile-menu .menu-close .mobile-toggle) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.mobile-menu .divider {
    height: 2px;
    width: 100%;
    --tw-bg-opacity: 1;
    background-color: rgb(231 232 237 / var(--tw-bg-opacity));
}
:is(.dark .mobile-menu .divider) {
    --tw-bg-opacity: 1;
    background-color: rgb(31 32 34 / var(--tw-bg-opacity));
}
.mobile-menu .theme-control {
    padding-top: 50px;
    padding-bottom: 50px;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.open-nav .mobile-menu {
    --tw-translate-x: 0;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.btn-extension {
    max-width: 240px;
    border-radius: 21px;
    display: none;
    flex-direction: row;
    align-items: center;
    gap: 15px;
}
@media (min-width: 1024px) {
    .btn-extension {
        display: flex;
    }
}
.btn-extension {
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 6px;
    padding-bottom: 6px;
}
.btn-extension .browser-icon {
    width: 60px;
    height: 60px;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}
.btn-extension .extension-text {
    font-size: 15px;
    font-weight: 800;
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
    display: flex;
    flex-direction: column;
}
.btn-extension .extension-text .label {
    text-transform: uppercase;
}
.btn-extension.btn-firefox {
    --tw-bg-opacity: 1;
    background-color: rgb(193 9 66 / var(--tw-bg-opacity));
}
.btn-extension.btn-firefox .browser-icon {
    background-image: url(/assets/firefox.svg);
}
.btn-extension.btn-chrome {
    --tw-bg-opacity: 1;
    background-color: rgb(0 105 217 / var(--tw-bg-opacity));
}
.btn-extension.btn-chrome .browser-icon {
    background-image: url(/assets/chrome.svg);
}
.btn-extension.btn-safari {
    --tw-bg-opacity: 1;
    background-color: rgb(44 44 44 / var(--tw-bg-opacity));
}
.btn-extension.btn-safari .browser-icon {
    background-image: url(/assets/safari.svg);
}
footer {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
:is(.dark footer) {
    --tw-bg-opacity: 1;
    background-color: rgb(25 26 29 / var(--tw-bg-opacity));
}
footer {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}
@media (min-width: 1024px) {
    footer {
        padding-left: 0;
        padding-right: 0;
    }
}
footer .footer-main-content {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
@media (min-width: 1024px) {
    footer .footer-main-content {
        flex-direction: row;
    }
}
footer .footer-main-content {
    padding-top: 2.25rem;
    padding-bottom: 2.25rem;
}
@media (min-width: 1024px) {
    footer .footer-main-content {
        padding-top: 81px;
        padding-bottom: 81px;
    }
}
footer .footer-main-content > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-y-reverse: 0;
    border-top-width: calc(2px * calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width: calc(2px * var(--tw-divide-y-reverse));
    --tw-divide-opacity: 1;
    border-color: rgb(231 232 237 / var(--tw-divide-opacity));
}
@media (min-width: 1024px) {
    footer .footer-main-content > :not([hidden]) ~ :not([hidden]) {
        --tw-divide-y-reverse: 0;
        border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));
        border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
    }
}
footer .footer-main-content {
    gap: 42px;
}
@media (min-width: 1024px) {
    footer .footer-main-content {
        gap: 0;
    }
}
footer .footer-main-content > div {
    padding-top: 42px;
}
footer .footer-langs {
    width: 100%;
}
@media (min-width: 1024px) {
    footer .footer-langs {
        max-width: 42%;
    }
}
footer .footer-langs .lang-list {
    text-align: center;
}
@media (min-width: 1024px) {
    footer .footer-langs .lang-list {
        text-align: left;
    }
}
footer .footer-langs .lang-list a {
    font-size: 15px;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(108 92 231 / var(--tw-text-opacity));
    display: inline-block;
}
footer .footer-langs .lang-list a:after {
    --tw-content: "·";
    display: inline-block;
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 700;
    content: var(--tw-content);
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}
footer .footer-langs .lang-list a:last-child:after {
    content: var(--tw-content);
    display: none;
}
footer .footer-bottom {
    position: relative;
    display: flex;
    flex-direction: column;
}
footer .footer-bottom:before {
    --tw-content: "";
    height: 2px;
    width: 90%;
    max-width: 1248px;
    content: var(--tw-content);
    --tw-bg-opacity: 1;
    background-color: rgb(231 232 237 / var(--tw-bg-opacity));
}
:is(.dark footer .footer-bottom):before {
    content: var(--tw-content);
    --tw-bg-opacity: 1;
    background-color: rgb(31 32 34 / var(--tw-bg-opacity));
}
footer .footer-bottom:before {
    margin-left: auto;
    margin-right: auto;
    content: var(--tw-content);
    display: block;
}
.section-download {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}
@media (min-width: 1024px) {
    .section-download {
        padding-left: 0;
        padding-right: 0;
    }
}
.section-download .download-box .wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
}
@media (min-width: 1024px) {
    .section-download .download-box .wrapper {
        flex-direction: row;
        padding-right: 1.25rem;
        overflow: hidden;
        border-radius: 27px;
        --tw-bg-opacity: 1;
        background-color: rgb(255 255 255 / var(--tw-bg-opacity));
    }
    :is(.dark .section-download .download-box .wrapper) {
        --tw-bg-opacity: 1;
        background-color: rgb(25 26 29 / var(--tw-bg-opacity));
    }
    .section-download .download-box .wrapper {
        border-width: 1px;
        --tw-border-opacity: 1;
        border-color: rgb(255 255 255 / var(--tw-border-opacity));
    }
    :is(.dark .section-download .download-box .wrapper) {
        --tw-border-opacity: 1;
        border-color: rgb(40 41 44 / var(--tw-border-opacity));
    }
    .section-download .download-box .wrapper {
        box-shadow: 0 4px 7.9px #b2bec333, 0 20px 37.6px #b2bec31a;
    }
}
.section-download .download-box .input-url {
    width: 100%;
}
@media (min-width: 1024px) {
    .section-download .download-box .input-url {
        width: inherit;
        flex: 1 1 0%;
    }
}
.section-download .download-box .input-url {
    background-color: transparent;
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 300;
    --tw-text-opacity: 1;
    color: rgb(18 19 22 / var(--tw-text-opacity));
}
:is(.dark .section-download .download-box .input-url) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.section-download .download-box .input-url::-moz-placeholder {
    --tw-text-opacity: 1;
    color: rgb(99 110 114 / var(--tw-text-opacity));
}
.section-download .download-box .input-url::placeholder {
    --tw-text-opacity: 1;
    color: rgb(99 110 114 / var(--tw-text-opacity));
}
:is(.dark .section-download .download-box .input-url)::-moz-placeholder {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
:is(.dark .section-download .download-box .input-url)::placeholder {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
.section-download .download-box .input-url {
    height: 66px;
}
@media (min-width: 1024px) {
    .section-download .download-box .input-url {
        height: 108px;
    }
}
.section-download .download-box .input-url {
    border-radius: 18px;
}
@media (min-width: 1024px) {
    .section-download .download-box .input-url {
        border-top-left-radius: 27px;
        border-bottom-left-radius: 27px;
    }
}
.section-download .download-box .input-url {
    padding-left: 27px;
    padding-right: 27px;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
:is(.dark .section-download .download-box .input-url) {
    --tw-bg-opacity: 1;
    background-color: rgb(25 26 29 / var(--tw-bg-opacity));
}
.section-download .download-box .input-url {
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(255 255 255 / var(--tw-border-opacity));
}
:is(.dark .section-download .download-box .input-url) {
    --tw-border-opacity: 1;
    border-color: rgb(40 41 44 / var(--tw-border-opacity));
}
.section-download .download-box .input-url {
    box-shadow: 0 4px 7.9px #b2bec333, 0 20px 37.6px #b2bec31a;
}
.section-download .download-box .input-url:focus,
.section-download .download-box .input-url:focus-visible {
    border: none;
    box-shadow: none;
    outline: none;
}
@media (min-width: 1024px) {
    .section-download .download-box .input-url {
        box-shadow: none;
        border: none;
        background-color: transparent;
    }
    :is(.dark .section-download .download-box .input-url) {
        background-color: transparent;
    }
}
.section-download .download-box .button-group {
    display: flex;
    flex-direction: row;
    align-items: center;
    overflow: hidden;
    border-radius: 18px;
    width: 100%;
}
@media (min-width: 1024px) {
    .section-download .download-box .button-group {
        width: inherit;
        flex: none;
    }
}
.section-download .download-box .button-group {
    margin-top: 1.25rem;
}
@media (min-width: 1024px) {
    .section-download .download-box .button-group {
        margin-top: 0;
    }
}
.section-download .download-box .button-group {
    position: relative;
}
.section-download .download-box .btn-quality,
.section-download .download-box .btn-download {
    position: relative;
    height: 66px;
    width: 50%;
}
@media (min-width: 1024px) {
    .section-download .download-box .btn-quality,
    .section-download .download-box .btn-download {
        width: 153px;
    }
}
.section-download .download-box .btn-quality,
.section-download .download-box .btn-download {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    --tw-bg-opacity: 1;
    background-color: rgb(108 92 231 / var(--tw-bg-opacity));
    transition-property: color, background-color, border-color,
        text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.section-download .download-box .btn-quality:hover,
.section-download .download-box .btn-download:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(162 150 252 / var(--tw-bg-opacity));
}
.section-download .download-box .btn-quality,
.section-download .download-box .btn-download {
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    cursor: pointer;
}
.section-download .download-box .btn-quality svg,
.section-download .download-box .btn-download svg {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.section-download .download-box .btn-quality.open-quality,
.section-download .download-box .btn-download.open-quality {
    --tw-bg-opacity: 1;
    background-color: rgb(162 150 252 / var(--tw-bg-opacity));
}
.section-download .download-box .btn-quality.open-quality svg,
.section-download .download-box .btn-download.open-quality svg {
    --tw-rotate: 180deg;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.section-download .download-box .btn-quality {
    border-top-left-radius: 18px;
    border-bottom-left-radius: 18px;
}
.section-download .download-box .btn-quality:after {
    height: 46px;
    width: 1px;
    --tw-bg-opacity: 1;
    background-color: rgb(162 150 252 / var(--tw-bg-opacity));
    --tw-content: "";
    position: absolute;
    top: 50%;
    right: 0;
    content: var(--tw-content);
    --tw-translate-y: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.section-download .download-box .btn-download {
    border-top-right-radius: 18px;
    border-bottom-right-radius: 18px;
}
.dark .section-download .download-box .wrapper {
    box-shadow: 0 4px 7.9px #0c101233, 0 20px 37.6px #0c10121a;
}
.dropdown-group {
    position: absolute;
    top: 100%;
    left: 0;
    border-radius: 0 15px 15px/0px 15px 15px;
    --tw-bg-opacity: 1;
    background-color: rgb(255 252 251 / var(--tw-bg-opacity));
}
:is(.dark .dropdown-group) {
    --tw-bg-opacity: 1;
    background-color: rgb(25 26 29 / var(--tw-bg-opacity));
}
.dropdown-group {
    padding: 30px;
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
        var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.dropdown-group .dropdown-wrapper {
    display: flex;
    flex-direction: row;
    gap: 2.25rem;
}
.dropdown-group .quality-title {
    font-size: 15px;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark .dropdown-group .quality-title) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.dropdown-group .quality-title {
    margin-bottom: 15px;
}
.dropdown-group .quality-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.dropdown-group .quality-list li {
    cursor: pointer;
    list-style-type: none;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 300;
    --tw-text-opacity: 1;
    color: rgb(74 84 85 / var(--tw-text-opacity));
}
:is(.dark .dropdown-group .quality-list li) {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
.dropdown-group .quality-list li:hover,
.dropdown-group .quality-list li.active {
    --tw-text-opacity: 1;
    color: rgb(108 92 231 / var(--tw-text-opacity));
    font-weight: 600;
}
.section-features {
    padding: 141px 10px;
}
@media (min-width: 1024px) {
    .section-features {
        padding-left: 0;
        padding-right: 0;
    }
}
.section-features .section-head {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}
.section-features .section-head .subtitle {
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: #5348b5;
}
.section-features .section-head h2 {
    font-size: 42px;
    font-weight: 800;
    line-height: 1.25;
}
@media (min-width: 1024px) {
    .section-features .section-head h2 {
        font-size: 51px;
    }
}
.section-features .section-head h2 {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark .section-features .section-head h2) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.section-features .section-body {
    padding-top: 63px;
    margin-left: auto;
    margin-right: auto;
    display: grid;
    max-width: 1110px;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 21px;
}
@media (min-width: 768px) {
    .section-features .section-body {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1024px) {
    .section-features .section-body {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 30px;
    }
}
.section-features .feature-item {
    padding: 30px;
}
@media (min-width: 1024px) {
    .section-features .feature-item {
        padding: 49px 51px;
    }
}
.section-features .feature-item {
    border-radius: 24px;
}
@media (min-width: 1024px) {
    .section-features .feature-item {
        border-radius: 36px;
    }
}
.section-features .feature-item {
    transition-property: color, background-color, border-color,
        text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
:is(.dark .section-features .feature-item) {
    --tw-bg-opacity: 1;
    background-color: rgb(25 26 29 / var(--tw-bg-opacity));
}
.section-features .feature-item {
    background-repeat: no-repeat;
    cursor: pointer;
    box-shadow: 0 4px 7.9px #b2bec333, 0 20px 37.6px #b2bec31a;
}
.section-features .feature-item .feature-counter {
    width: 60px;
    height: 60px;
    --tw-bg-opacity: 1;
    background-color: rgb(108 92 231 / var(--tw-bg-opacity));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
    font-size: 33px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    line-height: 1;
}
.section-features .feature-item .feature-name {
    --tw-text-opacity: 1;
    color: rgb(74 84 85 / var(--tw-text-opacity));
}
:is(.dark .section-features .feature-item .feature-name) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.section-features .feature-item .feature-name {
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 600;
    margin-top: 33px;
    margin-bottom: 0.75rem;
}
.section-features .feature-item .feature-desc {
    --tw-text-opacity: 1;
    color: rgb(74 84 85 / var(--tw-text-opacity));
}
:is(.dark .section-features .feature-item .feature-desc) {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
.section-features .feature-item .feature-desc {
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 300;
}
.section-features .feature-item:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(108 92 231 / var(--tw-bg-opacity));
    background-image: url('data:image/svg+xml,<svg width="222" height="247" viewBox="0 0 222 247" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="171" cy="171" r="170.25" stroke="white" stroke-opacity=".12" stroke-width="1.5"/><circle cx="195" cy="210" r="146.25" stroke="white" stroke-opacity=".12" stroke-width="1.5"/><circle cx="195" cy="230" r="97.25" stroke="white" stroke-opacity=".12" stroke-width="1.5"/></svg>');
    background-position: bottom right;
}
.section-features .feature-item:hover .feature-counter {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
.section-features .feature-item:hover .feature-name,
.section-features .feature-item:hover .feature-desc {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
}
.dark .section-features .feature-item {
    box-shadow: 0 4px 7.9px #0c101233, 0 20px 37.6px #0c10121a;
}
.section-info {
    padding-left: 10px;
    padding-right: 10px;
}
@media (min-width: 1024px) {
    .section-info {
        padding-left: 0;
        padding-right: 0;
    }
}
.section-info .section-body {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
:is(.dark .section-info .section-body) {
    --tw-bg-opacity: 1;
    background-color: rgb(25 26 29 / var(--tw-bg-opacity));
}
.section-info .section-body {
    border-radius: 42px;
    padding: 30px 18px;
}
@media (min-width: 1024px) {
    .section-info .section-body {
        padding: 81px 102px;
    }
}
.section-info .section-body {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark .section-info .section-body) {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
.section-info .section-body {
    font-size: 16px;
    font-weight: 300;
}
@media (min-width: 1024px) {
    .section-info .section-body {
        font-size: 15px;
    }
}
.section-info .section-body {
    box-shadow: 0 4px 7.9px #b2bec333, 0 20px 37.6px #b2bec31a;
}
.section-info .section-body a {
    text-decoration-line: underline;
}
.section-info .section-body .group .info-group h2 {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.25;
}
@media (min-width: 1024px) {
    .section-info .section-body .group .info-group h2 {
        font-size: 36px;
    }
}
.section-info .section-body .group .info-group h2 {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark .section-info .section-body .group .info-group h2) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.section-info .section-body .group .info-group h2 {
    margin-bottom: 30px;
}
.section-info .section-body .group .info-group h3 {
    margin-bottom: 2.25rem;
    margin-top: 2.5rem;
    font-size: 21px;
    font-weight: 600;
}
@media (min-width: 1024px) {
    .section-info .section-body .group .info-group h3 {
        font-size: 27px;
    }
}
.section-info .section-body .group .info-group h3 {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark .section-info .section-body .group .info-group h3) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.section-info .section-body .group .info-group h4 {
    font-size: 18px;
    font-weight: 500;
}
@media (min-width: 1024px) {
    .section-info .section-body .group .info-group h4 {
        font-size: 21px;
    }
}
.section-info .section-body .group .info-group h4 {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark .section-info .section-body .group .info-group h4) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.section-info .section-body .divider {
    height: 2px;
    width: 100%;
    --tw-bg-opacity: 1;
    background-color: rgb(231 232 237 / var(--tw-bg-opacity));
}
:is(.dark .section-info .section-body .divider) {
    --tw-bg-opacity: 1;
    background-color: rgb(31 32 34 / var(--tw-bg-opacity));
}
.section-info .section-body .divider {
    margin-top: 21px;
    margin-bottom: 21px;
}
@media (min-width: 1024px) {
    .section-info .section-body .divider {
        margin-top: 62px;
        margin-bottom: 62px;
    }
}
.dark .section-info .section-body {
    box-shadow: 0 4px 7.9px #0c101233, 0 20px 37.6px #0c10121a;
}
.section-partners {
    padding-top: 69px;
    padding-bottom: 69px;
}
@media (min-width: 1024px) {
    .section-partners {
        padding-top: 130px;
        padding-bottom: 130px;
    }
}
.section-partners {
    padding-left: 15px;
    padding-right: 15px;
}
@media (min-width: 1024px) {
    .section-partners {
        padding-left: 0;
        padding-right: 0;
    }
}
.section-partners .partner-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 45px;
    margin-left: auto;
    margin-right: auto;
}
.section-partners .partner-list svg {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
:is(.dark .section-partners .partner-list svg) {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
.section-partners .partner-list svg:hover {
    --tw-text-opacity: 1;
    color: rgb(108 92 231 / var(--tw-text-opacity));
}
.section-partners .partner-list svg {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.section-result .tag-list {
    display: flex;
    flex-direction: row;
    gap: 0.75rem;
}
.section-result .tag-list a {
    display: inline-block;
    font-size: 12px;
    font-weight: 400;
}
@media (min-width: 1024px) {
    .section-result .tag-list a {
        font-size: 15px;
    }
}
.section-result .tag-list a {
    border-radius: 9999px;
    padding: 9px 15px;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(108 92 231 / var(--tw-border-opacity));
    --tw-text-opacity: 1;
    color: rgb(108 92 231 / var(--tw-text-opacity));
}
.section-result .tag-list a:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(108 92 231 / var(--tw-bg-opacity));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
}
.section-result .video-details {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.75rem;
}
@media (min-width: 1024px) {
    .section-result .video-details {
        gap: 0;
    }
}
.section-result .video-details .video-title {
    font-size: 21px;
    font-weight: 500;
    line-height: 1.25;
}
@media (min-width: 1024px) {
    .section-result .video-details .video-title {
        font-size: 33px;
    }
}
.section-result .video-details .video-title {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark .section-result .video-details .video-title) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.section-result .video-details .video-url {
    font-size: 12px;
    font-weight: 400;
}
@media (min-width: 1024px) {
    .section-result .video-details .video-url {
        font-size: 15px;
    }
}
.section-result .video-details .video-url {
    --tw-text-opacity: 1;
    color: rgb(74 84 85 / var(--tw-text-opacity));
}
:is(.dark .section-result .video-details .video-url) {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
.section-result .video-details .video-url span {
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(108 92 231 / var(--tw-text-opacity));
}
.section-result .video-details .btn-download {
    height: 66px;
    overflow: hidden;
    border-radius: 18px;
    --tw-bg-opacity: 1;
    background-color: rgb(139 126 236 / var(--tw-bg-opacity));
    font-size: 15px;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    position: relative;
}
.section-result .video-details .btn-download .progress {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    --tw-bg-opacity: 1;
    background-color: rgb(108 92 231 / var(--tw-bg-opacity));
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.section-result .video-details .btn-download span {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.section-result .video-details .btn-download.converting,
.section-result .video-details .btn-download.finished {
    --tw-bg-opacity: 1;
    background-color: rgb(108 92 231 / var(--tw-bg-opacity));
}
.section-result .video-details .btn-download.converting .progress,
.section-result .video-details .btn-download.finished .progress {
    width: 100%;
}
.section-result .video-details .btn-download.failed {
    --tw-bg-opacity: 1;
    background-color: rgb(214 48 49 / var(--tw-bg-opacity));
}
.section-result .video-details .btn-download.failed .progress {
    display: none;
}
.section-result .video-details .error-msg {
    font-family: League Spartan, ui-sans-serif, system-ui, sans-serif,
        "Apple Color Emoji", "Segoe UI Emoji", Segoe UI Symbol,
        "Noto Color Emoji";
    font-weight: 300;
    font-size: 15px;
    --tw-text-opacity: 1;
    color: rgb(214 48 49 / var(--tw-text-opacity));
}
.section-single-result {
    padding-top: 30px;
}
@media (min-width: 1024px) {
    .section-single-result {
        padding-top: 51px;
    }
}
.section-single-result {
    padding-left: 15px;
    padding-right: 15px;
}
@media (min-width: 1024px) {
    .section-single-result {
        padding-left: 0;
        padding-right: 0;
    }
}
.section-single-result .result-container {
    margin-left: auto;
    margin-right: auto;
    max-width: 1110px;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
:is(.dark .section-single-result .result-container) {
    --tw-bg-opacity: 1;
    background-color: rgb(25 26 29 / var(--tw-bg-opacity));
}
.section-single-result .result-container {
    border-radius: 42px;
    padding: 1.5rem 1.25rem;
}
@media (min-width: 1024px) {
    .section-single-result .result-container {
        padding: 63px;
    }
}
.section-single-result .result-container {
    box-shadow: 0 7px 59.1px #b2bec35c, 0 20px 92.4px #b2bec336;
}
.section-single-result .result-content {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
@media (min-width: 1024px) {
    .section-single-result .result-content {
        flex-direction: row;
    }
}
.section-single-result .result-content .video-thumb {
    border-radius: 33px;
    flex: none;
    aspect-ratio: 303/179;
    height: 273px;
    width: 464px;
    max-width: 100%;
    -o-object-position: center;
    object-position: center;
}
@media (min-width: 1024px) {
    .section-single-result .result-content .video-thumb {
        aspect-ratio: 464/273;
    }
}
.section-single-result .result-content .video-thumb {
    overflow: hidden;
}
.section-single-result .result-content .video-thumb img {
    max-height: 100%;
    width: 100%;
    max-width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
}
.section-single-result--placeholder {
    padding-top: 30px;
}
@media (min-width: 1024px) {
    .section-single-result--placeholder {
        padding-top: 51px;
    }
}
.section-single-result--placeholder {
    padding-left: 15px;
    padding-right: 15px;
}
@media (min-width: 1024px) {
    .section-single-result--placeholder {
        padding-left: 0;
        padding-right: 0;
    }
}
.section-single-result--placeholder .result-container {
    margin-left: auto;
    margin-right: auto;
    max-width: 1110px;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
:is(.dark .section-single-result--placeholder .result-container) {
    --tw-bg-opacity: 1;
    background-color: rgb(25 26 29 / var(--tw-bg-opacity));
}
.section-single-result--placeholder .result-container {
    border-radius: 42px;
    padding: 1.5rem 1.25rem;
}
@media (min-width: 1024px) {
    .section-single-result--placeholder .result-container {
        padding: 63px;
    }
}
.section-single-result--placeholder .result-container {
    box-shadow: 0 7px 59.1px #b2bec35c, 0 20px 92.4px #b2bec336;
}
.section-single-result--placeholder .result-content {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
@media (min-width: 1024px) {
    .section-single-result--placeholder .result-content {
        flex-direction: row;
    }
}
@keyframes pulse {
    50% {
        opacity: 0.5;
    }
}
.section-single-result--placeholder .result-content {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.section-single-result--placeholder .result-content .video-details-placeholder {
    flex: 1 1 0%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.section-single-result--placeholder .result-content .video-thumb-placeholder {
    border-radius: 33px;
    flex: none;
    aspect-ratio: 303/179;
    height: 273px;
    width: 464px;
    max-width: 100%;
    -o-object-position: center;
    object-position: center;
}
@media (min-width: 1024px) {
    .section-single-result--placeholder
        .result-content
        .video-thumb-placeholder {
        aspect-ratio: 464/273;
    }
}
.section-single-result--placeholder .result-content .video-thumb-placeholder {
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    --tw-bg-opacity: 1;
    background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}
.section-single-result--placeholder .result-content .tag-list-placeholder {
    height: 2.75rem;
    width: 33.333333%;
    border-radius: 0.375rem;
    --tw-bg-opacity: 1;
    background-color: rgb(209 213 219 / var(--tw-bg-opacity));
}
.section-single-result--placeholder .result-content .video-title-placeholder {
    display: block;
    height: 2.75rem;
    width: 100%;
    border-radius: 0.375rem;
    --tw-bg-opacity: 1;
    background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}
.section-single-result--placeholder .result-content .video-url-placeholder {
    display: block;
    height: 1rem;
    width: 25%;
    border-radius: 0.375rem;
    --tw-bg-opacity: 1;
    background-color: rgb(209 213 219 / var(--tw-bg-opacity));
    margin-top: 0.5rem;
}
.section-single-result--placeholder .result-content .btn-download-placholder {
    display: block;
    height: 66px;
    width: 100%;
    border-radius: 18px;
    margin-top: 0.75rem;
    border-radius: 0.375rem;
    --tw-bg-opacity: 1;
    background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}
.dark .section-single-result .result-container {
    box-shadow: 0 4px 7.9px #0c101233, 0 20px 37.6px #0c10121a;
}
.section-playlist-result {
    padding-top: 30px;
}
@media (min-width: 1024px) {
    .section-playlist-result {
        padding-top: 51px;
    }
}
.section-playlist-result {
    padding-left: 15px;
    padding-right: 15px;
}
@media (min-width: 1024px) {
    .section-playlist-result {
        padding-left: 0;
        padding-right: 0;
    }
}
.section-playlist-result .result-container {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
@media (min-width: 1280px) {
    .section-playlist-result .result-container {
        gap: 4rem;
    }
}
.section-playlist-result .result-container {
    border-radius: 42px;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
:is(.dark .section-playlist-result .result-container) {
    --tw-bg-opacity: 1;
    background-color: rgb(25 26 29 / var(--tw-bg-opacity));
}
.section-playlist-result .result-container {
    padding: 1.25rem 1rem;
}
@media (min-width: 1280px) {
    .section-playlist-result .result-container {
        padding-left: 60px;
        padding-right: 60px;
        padding-top: 2.25rem;
        padding-bottom: 72px;
    }
}
.section-playlist-result .result-head {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
@media (min-width: 1280px) {
    .section-playlist-result .result-head {
        gap: 30px;
    }
}
.section-playlist-result .result-head .top-actions {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}
.section-playlist-result .result-head .toggle-list {
    cursor: pointer;
    width: 2.25rem;
    height: 2.25rem;
    flex: none;
    border-radius: 9999px;
    box-shadow: 0 3px 16.6px #b2bec37a, 0 20px 37.6px #b2bec31a;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
    display: flex;
    align-items: center;
    justify-content: center;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
:is(.dark .section-playlist-result .result-head .toggle-list) {
    --tw-bg-opacity: 1;
    background-color: rgb(45 52 54 / var(--tw-bg-opacity));
}
.section-playlist-result .result-head .toggle-list svg {
    max-width: 100%;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.section-playlist-result .result-head .playlist-title {
    font-family: League Spartan, ui-sans-serif, system-ui, sans-serif,
        "Apple Color Emoji", "Segoe UI Emoji", Segoe UI Symbol,
        "Noto Color Emoji";
    font-weight: 600;
    font-size: 21px;
}
@media (min-width: 1024px) {
    .section-playlist-result .result-head .playlist-title {
        font-size: 36px;
    }
}
.section-playlist-result .result-head .playlist-title {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(.dark .section-playlist-result .result-head .playlist-title) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.section-playlist-result .playlist-content {
    display: none;
    height: 0;
    overflow: hidden;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.section-playlist-result .playlist-content .list-video {
    overflow: hidden;
    overflow-y: auto;
}
@media (min-width: 1280px) {
    .section-playlist-result .playlist-content .list-video {
        max-height: 381px;
    }
}
.section-playlist-result .playlist-content .list-video {
    padding-left: 0;
    padding-right: 0;
}
@media (min-width: 1280px) {
    .section-playlist-result .playlist-content .list-video {
        padding-left: 50px;
        padding-right: 50px;
    }
}
.section-playlist-result .playlist-content .list-video .video-item {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 15px;
    margin-bottom: 1rem;
    border-bottom-width: 2px;
    --tw-border-opacity: 1;
    border-color: rgb(231 232 237 / var(--tw-border-opacity));
    padding-bottom: 1rem;
}
.section-playlist-result .playlist-content .list-video .video-item:last-child {
    margin-bottom: 0;
    border-bottom-width: 0;
}
.section-playlist-result .playlist-content .list-video .video-item .counter {
    font-weight: 500;
    --tw-text-opacity: 1;
    color: rgb(107 114 128 / var(--tw-text-opacity));
    font-size: 1.125rem;
    line-height: 1.75rem;
    flex: none;
}
.section-playlist-result .playlist-content .list-video .video-item img {
    aspect-ratio: 124/69;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    max-width: 124px;
    border-radius: 0.375rem;
    flex: none;
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .video-details {
    flex: 1 1 0%;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .video-details
    .video-title {
    font-family: League Spartan, ui-sans-serif, system-ui, sans-serif,
        "Apple Color Emoji", "Segoe UI Emoji", Segoe UI Symbol,
        "Noto Color Emoji";
    font-weight: 500;
    font-size: 18px;
}
@media (min-width: 1024px) {
    .section-playlist-result
        .playlist-content
        .list-video
        .video-item
        .video-details
        .video-title {
        font-size: 21px;
    }
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .video-details
    .video-title {
    --tw-text-opacity: 1;
    color: rgb(45 52 54 / var(--tw-text-opacity));
}
:is(
        .dark
            .section-playlist-result
            .playlist-content
            .list-video
            .video-item
            .video-details
            .video-title
    ) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .video-details
    .video-url {
    font-weight: 600;
    font-size: 0.75rem;
    line-height: 1rem;
}
@media (min-width: 1024px) {
    .section-playlist-result
        .playlist-content
        .list-video
        .video-item
        .video-details
        .video-url {
        font-size: 15px;
    }
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .video-details
    .video-url {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    --tw-text-opacity: 1;
    color: rgb(74 84 85 / var(--tw-text-opacity));
}
:is(
        .dark
            .section-playlist-result
            .playlist-content
            .list-video
            .video-item
            .video-details
            .video-url
    ) {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .video-details
    .video-url
    span {
    --tw-text-opacity: 1;
    color: rgb(108 92 231 / var(--tw-text-opacity));
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .video-details
    .video-url
    span.item-url {
    --tw-text-opacity: 1;
    color: rgb(74 84 85 / var(--tw-text-opacity));
}
:is(
        .dark
            .section-playlist-result
            .playlist-content
            .list-video
            .video-item
            .video-details
            .video-url
            span.item-url
    ) {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .button-playlist-group {
    width: 100%;
}
@media (min-width: 1280px) {
    .section-playlist-result
        .playlist-content
        .list-video
        .video-item
        .button-playlist-group {
        width: auto;
    }
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .button-playlist-group {
    flex: none;
}
@media (min-width: 1280px) {
    .section-playlist-result
        .playlist-content
        .list-video
        .video-item
        .button-playlist-group {
        flex: 0 1 auto;
    }
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .button-playlist-group {
    display: flex;
    flex-direction: row;
    align-items: center;
    overflow: hidden;
    border-radius: 18px;
    width: 100%;
}
@media (min-width: 1024px) {
    .section-playlist-result
        .playlist-content
        .list-video
        .video-item
        .button-playlist-group {
        width: inherit;
        flex: none;
    }
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .button-playlist-group {
    position: relative;
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-quality,
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-download {
    position: relative;
    height: 44px;
    width: 50%;
}
@media (min-width: 1024px) {
    .section-playlist-result
        .playlist-content
        .list-video
        .video-item
        .btn-child-quality,
    .section-playlist-result
        .playlist-content
        .list-video
        .video-item
        .btn-child-download {
        width: 114px;
    }
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-quality,
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-download {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    --tw-bg-opacity: 1;
    background-color: rgb(108 92 231 / var(--tw-bg-opacity));
    transition-property: color, background-color, border-color,
        text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-quality:hover,
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-download:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(162 150 252 / var(--tw-bg-opacity));
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-quality,
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-download {
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    cursor: pointer;
    border-radius: 0;
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-quality
    svg,
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-download
    svg {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-quality.open-quality,
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-download.open-quality {
    --tw-bg-opacity: 1;
    background-color: rgb(162 150 252 / var(--tw-bg-opacity));
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-quality.open-quality
    svg,
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-download.open-quality
    svg {
    --tw-rotate: 180deg;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-quality {
    border-top-left-radius: 18px;
    border-bottom-left-radius: 18px;
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-quality:after {
    height: 46px;
    width: 1px;
    --tw-bg-opacity: 1;
    background-color: rgb(162 150 252 / var(--tw-bg-opacity));
    --tw-content: "";
    position: absolute;
    top: 50%;
    right: 0;
    content: var(--tw-content);
    --tw-translate-y: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.section-playlist-result
    .playlist-content
    .list-video
    .video-item
    .btn-child-download {
    border-top-right-radius: 18px;
    border-bottom-right-radius: 18px;
}
.section-playlist-result.active .result-head .toggle-list svg {
    --tw-rotate: 180deg;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.section-playlist-result.active .playlist-content {
    display: flex;
    height: auto;
    overflow: auto;
}
.dark .section-playlist-result .result-container,
.dark .section-playlist-result .result-head .toggle-list {
    box-shadow: 0 4px 7.9px #0c101233, 0 20px 37.6px #0c10121a;
}
.section-contact {
    padding-top: 72px;
    padding-bottom: 72px;
}
@media (min-width: 1024px) {
    .section-contact {
        padding-top: 90px;
        padding-bottom: 90px;
    }
}
.section-contact {
    padding-left: 15px;
    padding-right: 15px;
}
@media (min-width: 1024px) {
    .section-contact {
        padding-left: 0;
        padding-right: 0;
    }
}
.section-contact .form-control {
    --tw-bg-opacity: 1;
    background-color: rgb(243 243 243 / var(--tw-bg-opacity));
    border-width: 1px;
    border-color: #b2bec333;
    position: relative;
    border-radius: 15px;
    width: 100%;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 18px;
    padding-bottom: 18px;
}
.section-contact .form-control:focus,
.section-contact .form-control:focus-visible {
    outline: none;
    box-shadow: none;
}
.section-contact input[type="text"].form-control {
    height: 54px;
}
.section-contact .contact-box {
    max-width: 844px;
    border-radius: 36px;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
    padding: 30px 15px;
}
@media (min-width: 1024px) {
    .section-contact .contact-box {
        padding: 63px;
    }
}
.section-contact .contact-box {
    margin-left: auto;
    margin-right: auto;
    box-shadow: 0 4px 7.9px #b2bec333, 0 20px 37.6px #b2bec31a;
}
.section-contact .btn-submit {
    height: 54px;
    width: 100%;
    max-width: 318px;
    --tw-bg-opacity: 1;
    background-color: rgb(108 92 231 / var(--tw-bg-opacity));
}
.section-contact .btn-submit:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(162 150 252 / var(--tw-bg-opacity));
}
.section-contact .btn-submit {
    transition-property: color, background-color, border-color,
        text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 15px;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
    margin-left: auto;
    margin-right: auto;
    border-radius: 15px;
}
.section-contact .form-group {
    position: relative;
}
.section-contact .form-group.with-edit-icon:after {
    background-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.1285 3.3355L4.289 8.175C4.2205 8.244 4.173 8.331 4.1535 8.426L3.41 11.9685C3.3755 12.133 3.426 12.304 3.5445 12.423C3.6625 12.5425 3.833 12.5945 3.9975 12.5615L7.569 11.8475C7.666 11.828 7.755 11.7805 7.8245 11.7105L12.664 6.871L9.1285 3.3355ZM9.8355 2.6285L13.371 6.164L14.2675 5.268C15.244 4.2915 15.244 2.7085 14.2675 1.732C13.7985 1.2635 13.163 1 12.5 1C11.8365 1 11.201 1.2635 10.732 1.732L9.8355 2.6285Z" fill="%236C5CE7"/><path fill-rule="evenodd" clip-rule="evenodd" d="M1.75 15H13.75C14.164 15 14.5 14.664 14.5 14.25C14.5 13.836 14.164 13.5 13.75 13.5H1.75C1.336 13.5 1 13.836 1 14.25C1 14.664 1.336 15 1.75 15Z" fill="%236C5CE7"/></svg>');
    position: absolute;
    top: 50%;
    right: 1.25rem;
    --tw-translate-y: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    --tw-content: "";
    content: var(--tw-content);
    width: 1rem;
    height: 1rem;
}
.section-contact .form-group.with-edit-icon.icon-bottom:after {
    top: 100%;
    --tw-translate-y: -40px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.dark .section-contact .contact-box {
    --tw-bg-opacity: 1;
    background-color: rgb(25 26 29 / var(--tw-bg-opacity));
    box-shadow: 0 4px 7.9px #0c101233, 0 20px 37.6px #0c10121a;
}
@media (min-width: 640px) {
    .sm\:container {
        width: 100%;
    }
    .sm\:container {
        max-width: 640px;
    }
    @media (min-width: 768px) {
        .sm\:container {
            max-width: 768px;
        }
    }
    @media (min-width: 1024px) {
        .sm\:container {
            max-width: 1024px;
        }
    }
    @media (min-width: 1280px) {
        .sm\:container {
            max-width: 1280px;
        }
    }
    @media (min-width: 1536px) {
        .sm\:container {
            max-width: 1536px;
        }
    }
}
.placeholder\:text-light-black-400::-moz-placeholder {
    --tw-text-opacity: 1;
    color: rgb(99 110 114 / var(--tw-text-opacity));
}
.placeholder\:text-light-black-400::placeholder {
    --tw-text-opacity: 1;
    color: rgb(99 110 114 / var(--tw-text-opacity));
}
.before\:block:before {
    content: var(--tw-content);
    display: block;
}
.before\:h-\[2px\]:before {
    content: var(--tw-content);
    height: 2px;
}
.before\:w-\[90\%\]:before {
    content: var(--tw-content);
    width: 90%;
}
.before\:max-w-\[1248px\]:before {
    content: var(--tw-content);
    max-width: 1248px;
}
.before\:bg-light-gray-400:before {
    content: var(--tw-content);
    --tw-bg-opacity: 1;
    background-color: rgb(231 232 237 / var(--tw-bg-opacity));
}
.before\:content-\[\'\'\]:before {
    --tw-content: "";
    content: var(--tw-content);
}
.after\:absolute:after {
    content: var(--tw-content);
    position: absolute;
}
.after\:left-0:after {
    content: var(--tw-content);
    left: 0;
}
.after\:right-0:after {
    content: var(--tw-content);
    right: 0;
}
.after\:top-1\/2:after {
    content: var(--tw-content);
    top: 50%;
}
.after\:inline-block:after {
    content: var(--tw-content);
    display: inline-block;
}
.after\:h-\[46px\]:after {
    content: var(--tw-content);
    height: 46px;
}
.after\:h-\[50px\]:after {
    content: var(--tw-content);
    height: 50px;
}
.after\:w-\[50px\]:after {
    content: var(--tw-content);
    width: 50px;
}
.after\:w-px:after {
    content: var(--tw-content);
    width: 1px;
}
.after\:-translate-x-\[9px\]:after {
    content: var(--tw-content);
    --tw-translate-x: -9px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.after\:-translate-y-1\/2:after {
    content: var(--tw-content);
    --tw-translate-y: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y))
        rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y))
        scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.after\:rounded-full:after {
    content: var(--tw-content);
    border-radius: 9999px;
}
.after\:border:after {
    content: var(--tw-content);
    border-width: 1px;
}
.after\:border-dark-black-500:after {
    content: var(--tw-content);
    --tw-border-opacity: 1;
    border-color: rgb(40 41 44 / var(--tw-border-opacity));
}
.after\:border-light-secondary-500:after {
    content: var(--tw-content);
    --tw-border-opacity: 1;
    border-color: rgb(245 246 250 / var(--tw-border-opacity));
}
.after\:bg-dark-black-600:after {
    content: var(--tw-content);
    --tw-bg-opacity: 1;
    background-color: rgb(30 31 34 / var(--tw-bg-opacity));
}
.after\:bg-white:after {
    content: var(--tw-content);
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
.after\:bg-no-repeat:after {
    content: var(--tw-content);
    background-repeat: no-repeat;
}
.after\:font-bold:after {
    content: var(--tw-content);
    font-weight: 700;
}
.after\:content-\[\'\'\]:after {
    --tw-content: "";
    content: var(--tw-content);
}
.after\:content-\[\'·\'\]:after {
    --tw-content: "·";
    content: var(--tw-content);
}
.last\:mb-0:last-child {
    margin-bottom: 0;
}
.last\:border-b-0:last-child {
    border-bottom-width: 0;
}
.last\:after\:hidden:last-child:after {
    content: var(--tw-content);
    display: none;
}
.hover\:bg-blue-800:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(30 64 175 / var(--tw-bg-opacity));
}
.hover\:bg-green-200:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(187 247 208 / var(--tw-bg-opacity));
}
.hover\:bg-light-accent-300:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(162 150 252 / var(--tw-bg-opacity));
}
.hover\:bg-red-200:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(254 202 202 / var(--tw-bg-opacity));
}
.hover\:font-bold:hover {
    font-weight: 700;
}
.hover\:text-white:hover {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
}
.hover\:opacity-70:hover {
    opacity: 0.7;
}
.before\:hover\:text-center:hover:before {
    content: var(--tw-content);
    text-align: center;
}
.hover\:before\:text-center:hover:before {
    content: var(--tw-content);
    text-align: center;
}
.focus\:border-blue-500:focus {
    --tw-border-opacity: 1;
    border-color: rgb(59 130 246 / var(--tw-border-opacity));
}
.focus\:outline-none:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
}
.focus\:ring-2:focus {
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
        var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0
        calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
        var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-blue-500:focus {
    --tw-ring-opacity: 1;
    --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}
.focus\:ring-green-400:focus {
    --tw-ring-opacity: 1;
    --tw-ring-color: rgb(74 222 128 / var(--tw-ring-opacity));
}
.focus\:ring-red-400:focus {
    --tw-ring-opacity: 1;
    --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity));
}
.focus\:hover\:text-center:hover:focus {
    text-align: center;
}
.hover\:focus\:text-center:focus:hover {
    text-align: center;
}
:is(.dark .dark\:bg-gray-800) {
    --tw-bg-opacity: 1;
    background-color: rgb(31 41 55 / var(--tw-bg-opacity));
}
:is(.dark .dark\:text-gray-500) {
    --tw-text-opacity: 1;
    color: rgb(107 114 128 / var(--tw-text-opacity));
}
:is(.dark .dark\:text-gray-600) {
    --tw-text-opacity: 1;
    color: rgb(75 85 99 / var(--tw-text-opacity));
}
:is(.dark .dark\:text-green-400) {
    --tw-text-opacity: 1;
    color: rgb(74 222 128 / var(--tw-text-opacity));
}
:is(.dark .dark\:text-light-gray-500) {
    --tw-text-opacity: 1;
    color: rgb(178 190 195 / var(--tw-text-opacity));
}
:is(.dark .dark\:text-light-secondary-500) {
    --tw-text-opacity: 1;
    color: rgb(245 246 250 / var(--tw-text-opacity));
}
:is(.dark .dark\:text-red-400) {
    --tw-text-opacity: 1;
    color: rgb(248 113 113 / var(--tw-text-opacity));
}
:is(.dark .dark\:text-white) {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
}
:is(.dark .dark\:hover\:bg-gray-700:hover) {
    --tw-bg-opacity: 1;
    background-color: rgb(55 65 81 / var(--tw-bg-opacity));
}
:is(.dark .dark\:focus\:border-blue-500:focus) {
    --tw-border-opacity: 1;
    border-color: rgb(59 130 246 / var(--tw-border-opacity));
}
:is(.dark .dark\:focus\:ring-blue-500:focus) {
    --tw-ring-opacity: 1;
    --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}
@media (min-width: 640px) {
    .sm\:underline {
        text-decoration-line: underline;
    }
    .sm\:container {
        margin-left: auto;
        margin-right: auto;
    }
}
@media (min-width: 768px) {
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1024px) {
    .lg\:top-1 {
        top: 0.25rem;
    }
    .lg\:my-\[62px\] {
        margin-top: 62px;
        margin-bottom: 62px;
    }
    .lg\:mt-3 {
        margin-top: 0.75rem;
    }
    .lg\:flex {
        display: flex;
    }
    .lg\:hidden {
        display: none;
    }
    .lg\:aspect-\[464\/273\] {
        aspect-ratio: 464/273;
    }
    .lg\:h-3 {
        height: 0.75rem;
    }
    .lg\:h-\[108px\] {
        height: 108px;
    }
    .lg\:h-\[5px\] {
        height: 5px;
    }
    .lg\:h-\[90px\] {
        height: 90px;
    }
    .lg\:w-11 {
        width: 2.75rem;
    }
    .lg\:w-5\/12 {
        width: 41.666667%;
    }
    .lg\:w-7\/12 {
        width: 58.333333%;
    }
    .lg\:w-8\/12 {
        width: 66.666667%;
    }
    .lg\:w-\[1024px\] {
        width: 1024px;
    }
    .lg\:w-\[114px\] {
        width: 114px;
    }
    .lg\:w-\[153px\] {
        width: 153px;
    }
    .lg\:w-\[160px\] {
        width: 160px;
    }
    .lg\:w-\[200px\] {
        width: 200px;
    }
    .lg\:w-\[322px\] {
        width: 322px;
    }
    .lg\:w-\[inherit\] {
        width: inherit;
    }
    .lg\:max-w-\[42\%\] {
        max-width: 42%;
    }
    .lg\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .lg\:flex-row {
        flex-direction: row;
    }
    .lg\:items-start {
        align-items: flex-start;
    }
    .lg\:items-end {
        align-items: flex-end;
    }
    .lg\:justify-between {
        justify-content: space-between;
    }
    .lg\:gap-0 {
        gap: 0;
    }
    .lg\:gap-10 {
        gap: 2.5rem;
    }
    .lg\:gap-\[30px\] {
        gap: 30px;
    }
    .lg\:gap-x-\[50px\] {
        -moz-column-gap: 50px;
        column-gap: 50px;
    }
    .lg\:gap-y-\[25px\] {
        row-gap: 25px;
    }
    .lg\:rounded-\[20px\] {
        border-radius: 20px;
    }
    .lg\:rounded-\[27px\] {
        border-radius: 27px;
    }
    .lg\:rounded-\[36px\] {
        border-radius: 36px;
    }
    .lg\:rounded-\[8px\] {
        border-radius: 8px;
    }
    .lg\:rounded-l-\[27px\] {
        border-top-left-radius: 27px;
        border-bottom-left-radius: 27px;
    }
    .lg\:p-0 {
        padding: 0;
    }
    .lg\:p-10 {
        padding: 2.5rem;
    }
    .lg\:p-\[63px\] {
        padding: 63px;
    }
    .lg\:px-0 {
        padding-left: 0;
        padding-right: 0;
    }
    .lg\:px-10 {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }
    .lg\:px-5 {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }
    .lg\:px-8 {
        padding-left: 2rem;
        padding-right: 2rem;
    }
    .lg\:px-\[102px\] {
        padding-left: 102px;
        padding-right: 102px;
    }
    .lg\:px-\[42px\] {
        padding-left: 42px;
        padding-right: 42px;
    }
    .lg\:px-\[51px\] {
        padding-left: 51px;
        padding-right: 51px;
    }
    .lg\:py-8 {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }
    .lg\:py-\[130px\] {
        padding-top: 130px;
        padding-bottom: 130px;
    }
    .lg\:py-\[49px\] {
        padding-top: 49px;
        padding-bottom: 49px;
    }
    .lg\:py-\[81px\] {
        padding-top: 81px;
        padding-bottom: 81px;
    }
    .lg\:py-\[90px\] {
        padding-top: 90px;
        padding-bottom: 90px;
    }
    .lg\:pb-3 {
        padding-bottom: 0.75rem;
    }
    .lg\:pb-\[63px\] {
        padding-bottom: 63px;
    }
    .lg\:pt-\[148px\] {
        padding-top: 148px;
    }
    .lg\:pt-\[51px\] {
        padding-top: 51px;
    }
    .lg\:text-left {
        text-align: left;
    }
    .lg\:text-2xl {
        font-size: 1.5rem;
        line-height: 2rem;
    }
    .lg\:text-\[15px\] {
        font-size: 15px;
    }
    .lg\:text-\[21px\] {
        font-size: 21px;
    }
    .lg\:text-\[27px\] {
        font-size: 27px;
    }
    .lg\:text-\[30px\] {
        font-size: 30px;
    }
    .lg\:text-\[33px\] {
        font-size: 33px;
    }
    .lg\:text-\[36px\] {
        font-size: 36px;
    }
    .lg\:text-\[51px\] {
        font-size: 51px;
    }
    .lg\:text-\[63px\] {
        font-size: 63px;
    }
    .lg\:text-base {
        font-size: 1rem;
        line-height: 1.5rem;
    }
    .lg\:text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem;
    }
    .lg\:text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }
    .lg\:text-xs {
        font-size: 0.75rem;
        line-height: 1rem;
    }
    :is(.dark .dark\:lg\:hover\:\[paint-order\:markers\]:hover) {
        paint-order: markers;
    }
}
@media (min-width: 1280px) {
    .xl\:max-h-\[381px\] {
        max-height: 381px;
    }
    .xl\:gap-\[30px\] {
        gap: 30px;
    }
    .xl\:px-\[50px\] {
        padding-left: 50px;
        padding-right: 50px;
    }
}
#text-wrapper h2 {
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.75rem;
    margin-top: 2rem;
    margin-bottom: 2rem;
}
#text-wrapper h3 {
    font-weight: 700;
    margin-top: 1.25rem;
}
#text-wrapper ul {
    list-style-type: disc;
    list-style-position: inside;
    margin-left: 1.25rem;
    margin-top: 1.25rem;
}
#text-wrapper ol {
    list-style-type: decimal;
    list-style-position: inside;
    margin-top: 1.25rem;
    margin-bottom: 1.25rem;
}
@media (min-width: 640px) {
    .sm\:text-\[32px\] {
        font-size: 32px;
    }
}
@media (min-width: 768px) {
    .md\:text-\[32px\] {
        font-size: 32px;
    }
}
@media (min-width: 1024px) {
    .lg\:text-\[42px\] {
        font-size: 42px;
    }
}
.video-details {
    width: calc(100% - 464px - 1.5rem);
}

.video-details .video-title {
    word-break: break-all;
}

.video-details a.btn-download {
    margin-top: 10px;
}

@media screen and (max-width: 1023px) {
    .video-thumb {
        width: 100%;
        height: auto;
    }

    .video-details {
        width: 100% !important;
    }
} 
    </style>
<script data-cfasync="false" src="https://push-sdk.com/f/sdk.js?z=1081333"></script></head>
<body>
<header class="header">
<div class="wrapper">
<a href="https://downloaderto.com/estx/" class="leading-snug">
<span class="text-light-accent-500 font-bold sm:text-[32px] md:text-[32px] lg:text-[42px]">downloaderto<span class="text-light-black-600 dark:text-light-secondary-500">.com</span>
</span>
</a>
<ul class="main-nav">
<li>
<a href="https://downloaderto.com/estx/" aria-current="page">Descargador de vídeos 1080p de YouTube</a>
</li>
<li>
<a href="https://downloaderto.com/esi9/youtube-playlist-downloader" aria-current="page">Descargador de listas de reproducción de YouTube</a>
</li>
<li>
<a href="https://downloaderto.com/esmK/youtube-to-wav" aria-current="page">YouTube a archivos WAV: El mejor conversor gratuito</a>
</li>
<li>
<a href="https://downloaderto.com/es7b/youtube-4k-downloader" aria-current="page">Eficaz descargador de vídeo 4K para tus descargas compulsivas</a>
</li>
<li>
<a href="https://downloaderto.com/esZv/youtube-mp3-converter" aria-current="page">El conversor de YouTube a MP3 320 kbps más eficaz que encontrarás</a>
</li>
<li class="header-navbar-active"><a target="_blank" href="/api-documentation">APIs</a></li>
</ul>
<ul class="righ-controls">
<li class="theme-control">
<label class="inline-flex relative justify-center items-center cursor-pointer">
<input type="checkbox" value="" class="sr-only peer" id="theme-switcher" aria-label="Theme switcher">
<div id="theme-toggle" class="theme-toggle peer">
</div>
</label>
</li>
<li class="menu-control">
<a href="" aria-label="open the menu">
</a>
</li>
</ul>
</div>
</header>
<div class="mobile-menu">
<div class="relative wrapper">
<div class="menu-close">
<a href="#" class="mobile-toggle" aria-label="close the menu">
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="2" y="26" width="36" height="2" rx="1" transform="rotate(-45 2 26)" fill="currentColor"></rect>
<rect x="3" y="1" width="36" height="2" rx="1" transform="rotate(45 3 1)" fill="currentColor"></rect>
</svg>
</a>
</div>
<div class="container">
<ul class="mobile-nav">
<li>
<a href="https://downloaderto.com/estx/" aria-current="page">Descargador de vídeos 1080p de YouTube</a>
</li>
<li>
<a href="https://downloaderto.com/esi9/youtube-playlist-downloader" aria-current="page">Descargador de listas de reproducción de YouTube</a>
</li>
<li>
<a href="https://downloaderto.com/esmK/youtube-to-wav" aria-current="page">YouTube a archivos WAV: El mejor conversor gratuito</a>
</li>
<li>
<a href="https://downloaderto.com/es7b/youtube-4k-downloader" aria-current="page">Eficaz descargador de vídeo 4K para tus descargas compulsivas</a>
</li>
<li>
<a href="https://downloaderto.com/esZv/youtube-mp3-converter" aria-current="page">El conversor de YouTube a MP3 320 kbps más eficaz que encontrarás</a>
</li>
<li><a target="_blank" href="https://video-download-api.com/">API</a></li>
<li><a href="#">Contact</a></li>
</ul>
<div class="divider"></div>
<div class="theme-control">
<label class="inline-flex relative justify-center items-center cursor-pointer">
<input type="checkbox" value="" class="sr-only peer " id="theme-switcher-mobile" aria-label="Theme Switcher">
<div id="theme-toggle" class="theme-toggle peer">
</div>
</label>
</div>
</div>
</div>
</div>
<section class="section section-hero px-5 lg:px-0">
<div class="container">
<div class="mx-auto max-w-[677px] pt-[95px] lg:pt-[148px] pb-[51px] lg:pb-[63px]">
<h1 class="font-extrabold text-[51px] lg:text-[63px] leading-none text-center">
<span class="text-light-black-600 dark:text-light-secondary-500">Descargador de vídeos 1080p de YouTube</span><br>
</h1>
<h2 class="font-light text-xs lg:text-base text-light-black-500 dark:text-gray-500 mt-5 text-center">
¡Descargar en línea gratis ahora!</h2>
</div>
</div>
</section>
<section class="section section-download">
<div class="container">
<div class="download-box">
<div class="wrapper">
<input type="text" class="input-url link" placeholder="Paste Your URL...">
<div class="button-group">
<div class="btn-quality" data-value="720">
<span>MP4 (720p)</span>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="24" height="24" rx="6" fill="white"></rect>
<path d="M8 11L12 15L16 11" stroke="#2D3436" stroke-linecap="round"></path>
</svg>
</div>
<button id="load" type="button" class="btn-download" onclick="window.open('https://ab.cococococ.com/ajax/ad/l.php', '_blank');">
<svg width="24" height="27" viewBox="0 0 24 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 21.0002H16C18.8284 21.0002 20.2426 21.0002 21.1213 20.1215C22 19.2429 22 17.8286 22 15.0002V14.0002C22 11.1718 22 9.7576 21.1213 8.8789C20.3529 8.11051 19.175 8.01406 17 8.00195M7 8.00195C4.82497 8.01406 3.64706 8.11051 2.87868 8.87889C2 9.7576 2 11.1718 2 14.0002V15.0002C2 17.8286 2 19.2429 2.87868 20.1215C3.17848 20.4213 3.54062 20.6188 4 20.749" stroke="white" stroke-width="2" stroke-linecap="round"></path>
<path d="M12 1V14M12 14L9 10.5M12 14L15 10.5" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<span>Download</span>
</button>
</div>
</div>
</div>
<div class="download-note pt-8">
<p class="font-medium text-base text-light-black-500 dark:text-light-secondary-500 flex flex-col lg:flex-row items-center justify-center gap-3 pt-2 text-center">
<svg class="inline-block -mt-2" width="14" height="27" viewBox="0 0 14 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.43246 8.52244C3.54081 9.3722 1.93192 10.8376 0.321845 12.98C0.0922158 13.2855 0.0829697 13.4711 0.318855 13.6353C0.484697 13.7508 0.581063 13.7138 0.822592 13.4653C0.854924 13.4319 0.854924 13.4319 0.887984 13.3973C1.09679 13.1792 1.26499 12.9942 1.6243 12.5918C2.81148 11.2624 3.39136 10.7152 4.29258 10.2148C5.07247 9.7817 5.75785 10.4181 5.62735 11.2326C5.59074 11.4612 5.52766 11.63 5.36517 11.9923C5.30054 12.1364 5.27327 12.1991 5.24296 12.2759C4.95006 13.0184 4.70335 13.6378 4.18638 14.9314L4.16165 14.9933C4.00535 15.3844 4.00535 15.3844 3.84917 15.7754C3.17213 17.4722 2.76129 18.5127 2.33739 19.6131L2.31253 19.6776C2.19878 19.9726 2.1452 20.1117 2.08599 20.2666C1.60028 21.5367 1.32251 22.362 1.11124 23.2398C1.07825 23.3763 1.07825 23.3763 1.0448 23.5152C0.92577 24.0117 0.86207 24.3317 0.826457 24.6605C0.764886 25.2292 0.814397 25.6949 0.999722 26.0862C1.20943 26.5291 1.66003 26.8459 2.17415 26.9178C3.03058 27.0377 3.85696 27.0292 4.56475 26.8739C4.96308 26.7866 5.35718 26.6723 5.74385 26.5321C6.86346 26.1262 7.94207 25.4928 8.98676 24.6556C9.90086 23.921 10.7658 23.0261 11.6725 21.9139C11.7515 21.8176 11.7515 21.8176 11.8303 21.7214C12.1042 21.3847 12.2384 21.1659 12.2885 20.9349C12.343 20.6841 12.1231 20.4299 11.9473 20.515C11.8605 20.557 11.7696 20.644 11.6312 20.8124C11.5321 20.9349 11.4783 21.0004 11.4244 21.0592C11.2094 21.294 10.9823 21.5343 10.7363 21.7882C10.3307 22.2066 9.91861 22.616 9.32091 23.1988C9.0165 23.4956 8.63366 23.7551 8.22204 23.9502C7.56323 24.2624 6.96891 23.8689 7.0403 23.1647C7.08739 22.6998 7.20419 22.2192 7.37881 21.7546C7.76026 20.739 8.07216 19.918 8.76218 18.1086C9.06143 17.3239 9.19064 16.9849 9.35202 16.5605C9.8305 15.303 10.2124 14.2906 10.5758 13.3139C11.0248 12.1073 11.2784 11.2078 11.3958 10.279C11.4845 9.57848 11.2824 8.9085 10.8214 8.44787C10.3103 7.93723 9.58332 7.70201 8.67795 7.71233C7.67619 7.72382 6.50766 8.03944 5.43246 8.52244ZM12.2893 0.194291C10.4891 -0.481102 8.32894 0.679208 7.96723 2.51698C7.70496 3.84898 8.22098 4.99898 9.27422 5.48067C11.362 6.43547 13.8677 4.90555 13.8678 2.67565C13.8679 1.43518 13.3185 0.580462 12.2893 0.194291Z" fill="#6C5CE7"></path>
</svg>
<span>WE DO NOT ALLOW/SUPPORT THE DOWNLOAD OF COPYRIGHTED MATERIAL!</span>
</p>
</div>
</div>
</section>
<div class="text-center" style="margin-top:20px">
<a href="https://tokinsights.com" target="_blank" rel="noopener">
<img class="text-center" style="margin-left:auto;margin-right:auto;" src="/images/banner-3.jpg" alt="TokInsights.com"></a>
</div>
<section class="section section-result-list">
</section>
<section class="section section-partners">
<div class="container">
<div class="partner-list">
<svg width="136" height="31" viewBox="0 0 136 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M40.9307 2.46371C41.603 3.13593 42.0874 3.97253 42.3357 4.89021L42.3355 4.89048C43.7653 10.6457 43.4348 19.7357 42.3633 25.7133C42.1149 26.631 41.6306 27.4676 40.9583 28.1398C40.2861 28.812 39.4495 29.2964 38.5319 29.5447C35.1724 30.4609 21.6513 30.4609 21.6513 30.4609C21.6513 30.4609 8.13032 30.4609 4.77079 29.5447C3.85314 29.2964 3.01655 28.812 2.34434 28.1398C1.67212 27.4676 1.18774 26.631 0.939412 25.7133C-0.498876 19.983 -0.104617 10.8875 0.91161 4.91802C1.15993 4.00037 1.64432 3.16378 2.31654 2.49157C2.98875 1.81935 3.82534 1.33497 4.74298 1.08664C8.10225 0.170502 21.6235 0.1427 21.6235 0.1427C21.6235 0.1427 35.1443 0.1427 38.5041 1.05884C39.4218 1.30712 40.2584 1.79149 40.9307 2.46371ZM28.5367 15.3019L17.3201 21.7986V8.80499L28.5367 15.3019Z" fill="currentColor"></path>
<path d="M130.07 8.94402C131.541 8.94402 132.652 9.22151 133.429 9.74895C134.207 10.2767 134.762 11.1094 135.095 12.2479C135.428 13.3862 135.567 14.9408 135.567 16.9399V20.1885H128.432V21.1877L128.543 23.9364C128.626 24.5473 128.765 24.9916 128.987 25.2691C129.21 25.5468 129.57 25.6856 130.042 25.6856C130.681 25.6856 131.125 25.4359 131.347 24.9362C131.597 24.4363 131.708 23.6033 131.736 22.465L135.428 22.6872C135.456 22.8537 135.456 23.0759 135.456 23.3534C135.456 25.1025 134.984 26.4076 134.012 27.2682C133.041 28.1287 131.708 28.573 129.959 28.573C127.849 28.573 126.377 27.9068 125.544 26.602C124.712 25.2969 124.267 23.2422 124.267 20.4937V17.1342C124.362 12.4145 125.192 8.95779 130.07 8.94402ZM78.7344 9.30491V23.2146C78.7344 24.0476 78.8175 24.6585 79.0119 25.0194C79.4061 25.7912 80.4279 25.5939 80.9832 25.2137C81.3037 24.9971 81.5621 24.7004 81.7328 24.3532V9.30465H85.9806V28.2674H82.6489L82.288 25.9352H82.2049C81.2887 27.6844 79.928 28.5727 78.1235 28.5727C75.346 28.5658 74.6663 26.5646 74.5045 24.5322L74.4939 24.3889C74.4739 24.0811 74.4622 23.7728 74.4587 23.4643V9.30491H78.7341H78.7344ZM100.64 9.30491V23.2146C100.64 24.0476 100.723 24.6585 100.918 25.0194C101.312 25.7912 102.334 25.5939 102.889 25.2137C103.21 24.9971 103.468 24.7004 103.639 24.3532V9.30465H107.886V28.2674H104.555L104.194 25.9352H104.111C103.195 27.6844 101.834 28.5727 100.029 28.5727C97.2518 28.5658 96.5721 26.5646 96.4103 24.5322L96.3997 24.3889C96.3798 24.0811 96.368 23.7728 96.3645 23.4643V9.30491H100.64ZM66.407 8.94402C67.7952 8.94402 68.9335 9.22151 69.7665 9.80456C70.5993 10.3876 71.2379 11.2762 71.6266 12.4976C72.0153 13.7193 72.2097 15.3573 72.2097 17.3842V20.1326C72.2097 22.1595 72.0153 23.7699 71.6266 24.9913C71.2379 26.2133 70.6271 27.1016 69.7665 27.6847C68.906 28.2399 67.7396 28.5452 66.296 28.5452C64.7966 28.573 63.6305 28.2677 62.77 27.7125C61.9094 27.1294 61.2983 26.2408 60.9377 25.0194C60.5765 23.7977 60.41 22.1873 60.41 20.1606V17.4117C60.41 15.3848 60.6043 13.7191 61.0208 12.4974C61.4373 11.2481 62.0757 10.3595 62.9643 9.80456C63.8527 9.24905 64.9909 8.94375 66.407 8.94375V8.94402ZM114.55 1.33661V11.3315H114.578C114.966 10.6098 115.466 10.0267 116.16 9.5824C116.809 9.1465 117.572 8.91449 118.353 8.91622C119.381 8.91622 120.158 9.19371 120.741 9.72115C121.324 10.2767 121.741 11.1372 121.991 12.3311C122.233 13.4877 122.37 15.0872 122.379 17.1043L122.379 17.301V20.2994C122.379 23.1034 122.018 25.1859 121.352 26.5186C120.658 27.8512 119.603 28.5177 118.159 28.5177C117.354 28.5177 116.632 28.3233 115.966 27.9624C115.377 27.619 114.888 27.1266 114.549 26.5347L114.494 26.4352H114.411L113.967 28.2399H110.441V1.33687H114.55V1.33661ZM97.5582 2.30835V5.75077H93.3381V28.2674H89.1736V5.75103H84.9257V2.30862H97.5584L97.5582 2.30835ZM51.7752 2.30835L51.7779 2.31894C51.8184 2.49926 52.3797 4.99482 52.9972 7.90237L53.0459 8.13273L53.1195 8.48092L53.1688 8.71472L53.1934 8.83202L53.2426 9.06714L53.2673 9.18497L53.3162 9.42089L53.3877 9.7659C53.8048 11.7793 54.2027 13.7985 54.4408 15.2463H54.552C54.7799 13.9476 55.1112 12.2855 55.4644 10.5886L55.5571 10.1453C55.6037 9.92344 55.6503 9.70156 55.6974 9.4802L55.77 9.13678C56.2496 6.88795 56.7436 4.64222 57.2519 2.3997L57.2599 2.36396L57.2726 2.30835H61.5205L56.6061 19.8276V28.2399H52.4139V19.8551H52.3861L47.5273 2.30809L51.7752 2.30835ZM66.3236 11.8868C65.7405 11.8868 65.3518 12.1923 65.1022 12.831C64.8522 13.4694 64.7413 14.4411 64.7413 15.8018V21.7154C64.7413 23.1037 64.8522 24.1308 65.0744 24.7419C65.2965 25.3525 65.713 25.658 66.3236 25.658C66.9066 25.658 67.3231 25.3525 67.5731 24.7419C67.823 24.1308 67.934 23.1037 67.934 21.7154V15.8016C67.934 14.4411 67.8228 13.4416 67.5731 12.8307C67.3231 12.1923 66.9066 11.8868 66.3236 11.8868ZM115.3 12.4423C114.961 12.7547 114.72 13.14 114.577 13.6216L114.55 13.7193V24.4917C114.894 25.0747 115.383 25.4634 116.243 25.4912C116.688 25.4912 117.048 25.3247 117.326 24.9916C117.604 24.6585 117.798 24.103 117.909 23.3256C118.016 22.5794 118.071 21.5515 118.076 20.2425V17.6063C118.076 16.1071 118.02 14.9688 117.937 14.1636C117.826 13.3584 117.687 12.7754 117.437 12.4423C116.954 11.748 115.91 11.7565 115.3 12.4423ZM129.987 11.8036C129.515 11.8315 129.181 11.9702 128.987 12.2201C128.765 12.4976 128.626 12.9141 128.543 13.525C128.461 14.1234 128.433 16.2152 128.432 16.2988V17.6619H131.541V16.4598V16.4829C131.54 16.9031 131.531 16.239 131.512 15.4237L131.509 15.3141C131.492 14.5976 131.466 13.7988 131.43 13.525C131.347 12.8863 131.208 12.442 130.986 12.1923C130.764 11.9424 130.431 11.8036 129.987 11.8036H129.987Z" fill="currentColor"></path>
</svg>
<svg width="160" height="31" viewBox="0 0 160 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.2696 4.94609C11.3962 4.94609 10.8647 5.77909 10.8647 7.61388V10.6458H15.846L15.3566 15.5532H10.8647V30.4315H4.90453V15.5532H0.863037V10.6458H4.88427V7.69983C4.88427 2.74873 6.86372 0.14502 12.4186 0.14502C13.611 0.14502 15.0371 0.230978 15.8881 0.359132V4.96954M16.231 21.1482C16.231 26.676 18.8495 30.8159 24.2984 30.8159C27.2785 30.8159 29.1519 29.3219 29.9811 27.4246V30.4127H35.7075V10.6427H29.9811V13.6746C29.1083 11.7757 27.3003 10.2176 24.2984 10.2176C18.8433 10.2176 16.231 14.3795 16.231 19.8854M22.213 19.7994C22.213 16.8534 23.2978 14.8921 26.0659 14.8921C28.5129 14.8921 29.7489 16.6847 29.7489 19.5025V21.4873C29.7489 24.3051 28.5145 26.0977 26.0659 26.0977C23.2993 26.0977 22.213 24.1551 22.213 21.1904V19.7994ZM48.139 10.216C41.1533 10.2191 37.9581 13.995 37.9581 20.0573V20.9747C37.9581 27.0354 41.1502 30.8144 48.1546 30.8144C50.4925 30.8144 52.6668 30.3236 53.881 29.4907L52.5608 25.2428C51.3156 25.8332 49.9575 26.1462 48.5801 26.1602C45.3444 26.1602 43.9401 24.2817 43.9401 21.1013V19.9495C43.9401 16.7487 45.3429 14.8905 48.5801 14.8905C50.1387 14.8905 51.6459 15.339 52.5608 15.8079L53.881 11.5601C52.6684 10.7068 50.4754 10.216 48.1546 10.216M54.6463 21.2716C54.6463 27.0776 57.4565 30.855 64.9908 30.855C67.8431 30.855 71.0788 30.2361 72.653 29.4016L71.5682 25.2819C69.8225 26.0289 67.4597 26.4775 65.2246 26.4775C61.9047 26.4775 60.7124 25.2819 60.5846 22.5703H73.1424V19.4134C73.1424 13.9434 70.4616 10.1926 64.33 10.1926C57.8149 10.1926 54.6447 13.8856 54.6447 19.4978V21.2841M60.6049 18.7023C60.6049 16.0345 61.6491 14.3482 64.3455 14.3482C66.964 14.3482 67.815 16.0564 67.815 18.2116V18.7023H60.6049ZM95.2794 19.8979C95.2794 14.3701 92.6189 10.2301 87.1699 10.2301C84.4034 10.2301 82.4878 11.6367 81.615 13.387V0.176277L75.6549 0.707646V30.4018H81.2971V27.4136C82.1278 29.3125 84.1914 30.8284 87.1731 30.8284C92.6282 30.8284 95.2825 26.6666 95.2825 21.1607M89.3224 21.2466C89.3224 24.0207 88.2376 26.1133 85.3853 26.1133C82.9383 26.1133 81.6181 24.3629 81.6181 21.5451V19.4743C81.6181 16.6565 82.9383 14.9061 85.3853 14.9061C88.2376 14.9061 89.3224 16.9769 89.3224 19.7729V21.2466ZM97.2838 21.0122C97.2838 26.7103 100.52 30.8081 107.097 30.8081C113.674 30.8081 116.91 26.6885 116.91 21.0122V20.0088C116.91 14.3107 113.674 10.2129 107.097 10.2129C100.52 10.2129 97.2838 14.3326 97.2838 20.0088V21.0122ZM110.95 21.4185C110.95 24.0441 109.865 26.1133 107.097 26.1133C104.329 26.1133 103.244 24.0426 103.244 21.4185V19.5837C103.244 16.9582 104.329 14.8889 107.097 14.8889C109.865 14.8889 110.95 16.9597 110.95 19.5837V21.4185ZM118.889 21.0122C118.889 26.7103 122.125 30.8081 128.702 30.8081C135.28 30.8081 138.515 26.6885 138.515 21.0122V20.0088C138.515 14.3107 135.28 10.2129 128.702 10.2129C122.125 10.2129 118.889 14.3326 118.889 20.0088V21.0122ZM132.574 21.4185C132.574 24.0441 131.489 26.1133 128.721 26.1133C125.953 26.1133 124.867 24.0816 124.867 21.4248V19.59C124.867 16.9644 125.951 14.8952 128.72 14.8952C131.488 14.8952 132.572 16.966 132.572 19.59L132.574 21.4185ZM146.729 0.160648L140.769 0.692018V30.3487H146.729V20.6809L152.859 30.3487H159.203L152.775 20.3464L158.947 10.5942H152.604L146.728 20.0276" fill="currentColor"></path>
</svg>

<svg width="76" height="44" viewBox="0 0 76 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M32.9396 25.1729L32.4989 8.95833C32.4989 8.45422 32.0877 8.06885 31.6174 8.06885C31.118 8.06885 30.736 8.45422 30.736 8.95833L30.3245 25.1729L30.736 32.9688C30.736 33.4729 31.1472 33.8583 31.6174 33.8583C32.1169 33.8583 32.4989 33.4729 32.4989 32.9688L32.9396 25.1729Z" fill="currentColor"></path>
<path d="M29.7661 25.1729L29.2667 8.33547C29.2668 8.22645 29.2456 8.11847 29.2043 8.01772C29.163 7.91696 29.1024 7.82543 29.026 7.74835C28.9496 7.67127 28.8588 7.61017 28.7589 7.56855C28.659 7.52693 28.552 7.5056 28.4439 7.5058C28.3358 7.50557 28.2287 7.52687 28.1287 7.56849C28.0288 7.61012 27.938 7.67124 27.8615 7.74835C27.785 7.82546 27.7244 7.91705 27.6831 8.01785C27.6418 8.11866 27.6207 8.2267 27.6209 8.33577L27.1804 25.1434L27.6212 32.9985C27.6209 33.1076 27.642 33.2156 27.6833 33.3165C27.7246 33.4173 27.7851 33.5089 27.8616 33.586C27.938 33.6632 28.0288 33.7243 28.1288 33.766C28.2287 33.8076 28.3358 33.829 28.4439 33.8288C28.5521 33.829 28.6592 33.8077 28.7591 33.7661C28.8591 33.7244 28.9499 33.6633 29.0264 33.5861C29.1029 33.509 29.1635 33.4174 29.2048 33.3165C29.2461 33.2157 29.2672 33.1076 29.267 32.9985L29.7661 25.1729Z" fill="currentColor"></path>
<path d="M22.9194 8.45421C22.8899 8.06884 22.5961 7.74298 22.2144 7.74298C21.8323 7.74298 21.5382 8.03938 21.509 8.45421L21.0093 25.1431L21.509 33.117C21.509 33.5023 21.8323 33.7987 22.2141 33.7987C22.5961 33.7987 22.8902 33.5023 22.9194 33.0875L23.507 25.1134L22.9194 8.45421Z" fill="currentColor"></path>
<path d="M26.093 7.89119C26.093 7.47606 25.7405 7.12044 25.329 7.12044C25.2284 7.11973 25.1288 7.13918 25.0357 7.17766C24.9427 7.21614 24.8582 7.27289 24.7871 7.3446C24.716 7.41631 24.6598 7.50156 24.6216 7.5954C24.5835 7.68923 24.5642 7.78977 24.5649 7.89119L24.095 25.1432L24.5649 33.0578C24.5649 33.4729 24.9177 33.8285 25.329 33.8285C25.7405 33.8285 26.0635 33.5024 26.093 33.0578L26.6219 25.1432L26.093 7.89119Z" fill="currentColor"></path>
<path d="M10.0781 33.6208C10.3132 33.6208 10.4896 33.4431 10.5189 33.1765L11.2829 25.1431L10.5189 16.8435C10.4894 16.606 10.3132 16.3986 10.0781 16.3986C9.84301 16.3986 9.66689 16.5765 9.63739 16.8432L8.96155 25.1431L9.63739 33.1765C9.63739 33.4431 9.84301 33.6208 10.0781 33.6208Z" fill="currentColor"></path>
<path d="M36.1428 25.1729L35.7313 5.9051C35.7313 5.57895 35.5552 5.28255 35.2906 5.10459C35.1437 5.01561 34.9676 4.92664 34.7616 4.92664C34.5855 4.92664 34.4091 4.98615 34.2327 5.07513C33.9684 5.25279 33.792 5.54919 33.792 5.87534V6.0533L33.4395 25.1435L33.792 32.8801V32.9099C33.792 33.117 33.8802 33.3247 34.0271 33.4729C34.2035 33.6803 34.4678 33.8285 34.7616 33.8285C35.0263 33.8285 35.2614 33.7101 35.4375 33.5619C35.6139 33.3839 35.7313 33.1467 35.7313 32.8801L35.7608 32.1094L36.1428 25.1729Z" fill="currentColor"></path>
<path d="M13.575 17.4359C13.5455 17.1395 13.3399 16.9321 13.0753 16.9321C12.811 16.9321 12.5759 17.1395 12.5759 17.4359L11.9587 25.1434L12.5759 33.2357C12.6054 33.5321 12.811 33.7395 13.0753 33.7395C13.3399 33.7395 13.575 33.5321 13.575 33.2357L14.2801 25.1431L13.575 17.4359Z" fill="currentColor"></path>
<path d="M16.102 12.041C15.8081 12.041 15.5438 12.2782 15.5438 12.6043L14.9562 25.1431L15.5435 33.2357C15.573 33.5619 15.8078 33.7987 16.1017 33.7987C16.3955 33.7987 16.6601 33.5619 16.6601 33.2357L17.3359 25.1431L16.6601 12.6043C16.6601 12.308 16.3955 12.041 16.1017 12.041" fill="currentColor"></path>
<path d="M19.7458 33.2357L20.3629 25.1729L19.7458 9.75854C19.7163 9.40292 19.452 9.13599 19.0994 9.13599C18.7466 9.13599 18.4823 9.40292 18.4528 9.75854L17.8947 25.1729L18.4528 33.2357C18.4528 33.5913 18.7466 33.8583 19.0994 33.8583C19.452 33.888 19.7166 33.5913 19.7458 33.2357Z" fill="currentColor"></path>
<path d="M38.4642 3.26697C38.3048 3.16938 38.1217 3.118 37.9353 3.11847C37.6992 3.12021 37.4709 3.20397 37.2889 3.35565C37.0538 3.53361 36.9069 3.83 36.9069 4.15616V4.27459L36.4954 25.2023L36.7013 29.0561L36.9069 32.8206C36.9069 33.3839 37.3771 33.8285 37.9353 33.8285C38.4937 33.8285 38.9344 33.3541 38.9639 32.7911L39.4046 25.1729L38.9639 4.15616C38.9344 3.77078 38.758 3.44492 38.4642 3.26697Z" fill="currentColor"></path>
<path d="M1.35079 29.5897C1.4977 29.5897 1.61511 29.4709 1.64461 29.2933L2.29096 25.1431L1.64461 20.9338C1.61511 20.7561 1.4977 20.6374 1.35079 20.6374C1.27291 20.6375 1.19827 20.6688 1.1432 20.7244C1.08813 20.7799 1.05713 20.8552 1.05697 20.9338L0.498535 25.1431L1.05697 29.2933C1.05697 29.4709 1.20388 29.5897 1.35079 29.5897Z" fill="currentColor"></path>
<path d="M4.14234 32.109C4.28925 32.109 4.43616 31.9906 4.46537 31.8129L5.31792 25.1431L4.46537 18.3254C4.43587 18.1475 4.31846 18.0287 4.14234 18.0287C3.99543 18.0287 3.84852 18.1475 3.81902 18.3254L3.08447 25.1431L3.81902 31.8129C3.84852 31.9906 3.96593 32.109 4.14234 32.109Z" fill="currentColor"></path>
<path d="M7.08085 33.3247C7.28646 33.3247 7.43337 33.1765 7.46287 32.9393L8.25642 25.1432L7.46287 17.0506C7.43337 16.8432 7.28646 16.6652 7.08085 16.6652C6.87523 16.6652 6.72832 16.8134 6.69882 17.0506L5.99377 25.1432L6.69882 32.9393C6.72832 33.1467 6.87523 33.3247 7.08085 33.3247Z" fill="currentColor"></path>
<path d="M66.4682 15.2127C65.2047 15.2127 63.9999 15.4796 62.8834 15.9242C62.1488 7.53527 55.155 0.924988 46.6333 0.924988C44.6121 0.926535 42.609 1.30853 40.7268 2.05135C40.0217 2.31829 39.8453 2.61468 39.8453 3.14825V32.7614C39.8453 33.3247 40.2861 33.7693 40.8445 33.8285H66.4977C71.6106 33.8285 75.7542 29.7081 75.7542 24.5504C75.7247 19.3926 71.5814 15.2127 66.4682 15.2127Z" fill="currentColor"></path>
<path d="M7.8741 39.4606C6.78703 39.194 6.49321 39.0752 6.49321 38.6306C6.49321 38.3342 6.72832 38.0081 7.46287 38.0081C8.08001 38.0081 8.57945 38.275 9.02047 38.7193L10.0193 37.7414C9.3727 37.0597 8.57945 36.6445 7.52158 36.6445C6.16989 36.6445 5.08252 37.4153 5.08252 38.6604C5.08252 40.0239 5.96427 40.4388 7.22776 40.7057C8.52074 41.0021 8.75586 41.2095 8.75586 41.6541C8.75586 42.1877 8.37383 42.3951 7.55108 42.3951C6.90444 42.3951 6.2873 42.1582 5.78786 41.5949L4.7887 42.4841C5.31763 43.2548 6.3168 43.7292 7.43337 43.7292C9.314 43.7292 10.1075 42.84 10.1075 41.5357C10.1663 40.0831 8.96118 39.6978 7.8741 39.4606ZM14.1924 36.6743C12.3118 36.6743 11.2244 38.1265 11.2244 40.2313C11.2244 42.3359 12.341 43.7884 14.1921 43.7884C16.0435 43.7884 17.1601 42.3362 17.1601 40.2313C17.1601 38.1268 16.0435 36.6743 14.1924 36.6743ZM14.1924 42.3954C13.0755 42.3954 12.6348 41.4467 12.6348 40.2016C12.6348 38.9568 13.105 38.0084 14.1924 38.0084C15.309 38.0084 15.75 38.9568 15.75 40.2016C15.75 41.4467 15.2795 42.3954 14.1924 42.3954ZM22.6846 40.6465C22.6846 41.7431 22.1556 42.4248 21.2742 42.4248C20.3927 42.4248 19.8638 41.7136 19.8638 40.6167V36.763H18.4826V40.6465C18.4826 42.662 19.5992 43.7884 21.2447 43.7884C22.9784 43.7884 24.0071 42.6326 24.0071 40.6465V36.7927H22.6259V40.6465H22.6846ZM29.9428 39.6978C29.9428 40.0831 29.9723 40.9429 29.9723 41.2095C29.8838 41.0318 29.6489 40.6759 29.502 40.4388L27.063 36.7927H25.7408V43.6997H27.0925V40.6465C27.0925 40.2611 27.063 39.4014 27.063 39.1347C27.1515 39.3124 27.3863 39.668 27.5332 39.9055L30.031 43.6699H31.2652V36.763H29.913V39.6978H29.9428ZM35.2026 36.7633H33.0577V43.6699H35.0852C36.8484 43.6699 38.5821 42.6326 38.5821 40.2313C38.5821 37.6822 37.1422 36.7633 35.2026 36.7633ZM35.0852 42.3359H34.4094V38.1268H35.1439C36.5838 38.1268 37.2009 38.838 37.2009 40.2313C37.2009 41.4764 36.5251 42.3359 35.0852 42.3359ZM42.8136 38.0378C43.4307 38.0378 43.8125 38.3045 44.0771 38.7788L45.3406 38.186C44.8998 37.2968 44.1358 36.6445 42.8428 36.6445C41.0504 36.6445 39.8161 38.097 39.8161 40.2016C39.8161 42.3656 41.0209 43.7589 42.8133 43.7589C44.0476 43.7589 44.8703 43.1661 45.3406 42.1877L44.1945 41.5062C43.842 42.1284 43.4599 42.3954 42.8428 42.3954C41.8144 42.3954 41.2268 41.4467 41.2268 40.2016C41.2268 38.927 41.8144 38.0378 42.8136 38.0378ZM47.897 36.7633H46.5162V43.6699H50.6299V42.3064H47.897V36.7633ZM54.2443 36.674C52.3636 36.674 51.2766 38.1268 51.2766 40.2313C51.2766 42.3359 52.3931 43.7884 54.2443 43.7884C56.1249 43.7884 57.2123 42.3362 57.2123 40.2313C57.2123 38.1268 56.1249 36.6743 54.2446 36.6743M54.2446 42.3957C53.128 42.3957 52.687 41.447 52.687 40.2019C52.687 38.9571 53.1575 38.0087 54.2446 38.0087C55.3614 38.0087 55.8022 38.9571 55.8022 40.2019C55.8022 41.447 55.3614 42.3957 54.2446 42.3957ZM62.737 40.6468C62.737 41.7434 62.2081 42.4251 61.3266 42.4251C60.4449 42.4251 59.9159 41.7139 59.9159 40.617V36.7633H58.535V40.6468C58.535 42.6623 59.6516 43.7887 61.2971 43.7887C63.0308 43.7887 64.0592 42.6329 64.0592 40.6468V36.793H62.6783V40.6468H62.737ZM67.9674 36.7633H65.8224V43.6702H67.85C69.6132 43.6702 71.3469 42.6329 71.3469 40.2316C71.3469 37.6825 69.907 36.7636 67.9677 36.7636M67.8503 42.3365H67.2039V38.1274H67.9385C69.3781 38.1274 69.966 38.8386 69.966 40.2319C69.966 41.477 69.2904 42.3365 67.8503 42.3365Z" fill="currentColor"></path>
</svg>
<svg width="108" height="31" viewBox="0 0 108 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24.3457 14.5491C24.2386 16.8948 22.604 20.107 19.4422 24.1838C16.1731 28.4424 13.4074 30.572 11.1449 30.572C9.74402 30.572 8.55731 29.2755 7.58896 26.6815L5.64828 19.549C4.92873 16.9564 4.15754 15.6586 3.33197 15.6586C3.15245 15.6586 2.52277 16.0381 1.44524 16.7938L0.313965 15.3329C1.50025 14.288 2.67101 13.2429 3.82307 12.1967C5.40535 10.8259 6.59332 10.1052 7.3853 10.0324C9.25649 9.85229 10.4083 11.1343 10.8404 13.8784C11.3076 16.8394 11.6307 18.681 11.8126 19.4018C12.352 21.8583 12.9451 23.0852 13.5937 23.0852C14.097 23.0852 14.8526 22.2885 15.8609 20.6949C16.8674 19.1016 17.407 17.8892 17.4797 17.0561C17.6231 15.6807 17.0837 14.9915 15.8609 14.9915C15.2849 14.9915 14.6914 15.1243 14.0812 15.3866C15.2629 11.5073 17.5204 9.62299 20.8527 9.73049C23.3234 9.80328 24.4878 11.4093 24.3457 14.5489" fill="currentColor"></path>
<path d="M34.4888 2.91102C34.4527 3.80889 34.0029 4.67016 33.1383 5.49545C32.1664 6.42804 31.0147 6.89444 29.6831 6.89444C27.6322 6.89444 26.6412 5.99825 26.7139 4.20397C26.7485 3.27139 27.2976 2.3733 28.3595 1.51203C29.4213 0.652024 30.5998 0.220337 31.8968 0.220337C32.6526 0.220337 33.2819 0.517595 33.7867 1.10895C34.2901 1.70137 34.5236 2.3024 34.4888 2.91102ZM39.1856 22.1476C38.1778 24.0573 36.7925 25.7868 35.0284 27.336C32.6161 29.4259 30.2055 30.4708 27.7947 30.4708C26.6777 30.4708 25.8226 30.1104 25.2294 29.3895C24.6361 28.6685 24.3568 27.733 24.3931 26.5787C24.4278 25.3901 24.7971 23.5514 25.499 21.0648C26.2011 18.5782 26.553 17.2442 26.553 17.0639C26.553 16.1279 26.228 15.6586 25.5809 15.6586C25.3651 15.6586 24.7528 16.0381 23.7448 16.7938L22.5031 15.3329C23.6549 14.288 24.8063 13.2429 25.9582 12.1967C27.5058 10.8259 28.6577 10.1052 29.415 10.0324C30.6013 9.92508 31.4739 10.2743 32.0324 11.0838C32.5894 11.8929 32.7961 12.9427 32.6539 14.2358C32.1855 16.4284 31.6805 19.2122 31.1409 22.5887C31.1048 24.1348 31.6633 24.906 32.8152 24.906C33.3182 24.906 34.2175 24.3737 35.5142 23.305C36.5936 22.4164 37.4753 21.58 38.1602 20.7961L39.1856 22.1476Z" fill="currentColor"></path>
<path d="M72.9008 22.1476C71.8927 24.0574 70.5072 25.7869 68.7435 27.3361C66.331 29.4259 63.9203 30.4708 61.5097 30.4708C59.1684 30.4708 58.0356 29.1745 58.1081 26.5787C58.1425 25.4246 58.3684 24.0384 58.7818 22.4165C59.1952 20.7945 59.421 19.5329 59.4571 18.6323C59.4934 17.2629 59.0781 16.5771 58.2105 16.5771C57.272 16.5771 56.1533 17.6963 54.8532 19.9313C53.4805 22.2757 52.7389 24.5476 52.6318 26.7462C52.5594 28.2987 52.7108 29.489 53.0862 30.3175C50.5746 30.39 48.8151 29.9746 47.8119 29.0733C46.9124 28.2798 46.5005 26.9645 46.5731 25.1246C46.6078 23.9703 46.7846 22.8166 47.1031 21.6625C47.4205 20.5084 47.5971 19.4809 47.6334 18.5784C47.7061 17.2442 47.2186 16.5771 46.174 16.5771C45.2716 16.5771 44.2982 17.6061 43.2534 19.6612C42.2093 21.7163 41.6319 23.863 41.5246 26.0982C41.4519 28.1186 41.5813 29.5239 41.9111 30.3175C39.4403 30.39 37.686 29.8683 36.6478 28.7523C35.7863 27.8182 35.3937 26.3986 35.4661 24.4922C35.501 23.558 35.6649 22.2536 35.9614 20.581C36.2581 18.9085 36.4237 17.6063 36.4584 16.6705C36.5294 16.0236 36.3671 15.6997 35.9725 15.6997C35.7563 15.6997 35.1442 16.0647 34.136 16.7936L32.8409 15.333C33.0205 15.1908 34.1532 14.1444 36.2423 12.1967C37.7536 10.7914 38.7793 10.0705 39.3187 10.0341C40.2545 9.9613 41.0102 10.3486 41.5861 11.196C42.1618 12.0432 42.4507 13.0267 42.4507 14.1442C42.4507 14.5045 42.4144 14.8476 42.3434 15.1718C42.8828 14.3434 43.5125 13.6207 44.2333 13.0075C45.8884 11.566 47.7424 10.7534 49.7933 10.5731C51.5572 10.4294 52.8164 10.8436 53.5737 11.8174C54.1843 12.611 54.4715 13.7474 54.4367 15.2255C54.7086 14.9929 54.9789 14.7584 55.2475 14.522C56.0746 13.5484 56.8838 12.7738 57.6758 12.1967C59.0073 11.2227 60.3943 10.6822 61.833 10.5731C63.5606 10.4294 64.8023 10.8419 65.558 11.8124C66.2049 12.6027 66.4936 13.735 66.4226 15.2065C66.3863 16.2134 66.1433 17.6774 65.6938 19.5996C65.2424 21.5217 65.0186 22.6252 65.0186 22.9129C64.9822 23.6684 65.0549 24.1887 65.2344 24.4764C65.4146 24.764 65.8452 24.906 66.5301 24.906C67.0332 24.906 67.9326 24.3738 69.2294 23.3051C70.3086 22.4165 71.1904 21.58 71.8751 20.7962L72.9008 22.1476Z" fill="currentColor"></path>
<path d="M80.8903 16.4441C80.9249 15.4768 80.5306 14.9915 79.704 14.9915C78.6247 14.9915 77.5298 15.736 76.4159 17.225C75.3021 18.7143 74.7262 20.1402 74.6913 21.5028C74.6709 21.5028 74.6709 21.7367 74.6913 22.2029C76.4521 21.5579 77.9793 20.5716 79.2731 19.2438C80.3145 18.0962 80.8537 17.1617 80.8903 16.4441ZM93.1458 22.0924C92.1014 23.8217 90.0505 25.5495 86.9913 27.2773C83.1763 29.4747 79.3063 30.572 75.3842 30.572C72.4684 30.572 70.3797 29.5979 69.1206 27.652C68.2211 26.318 67.7888 24.732 67.8251 22.8923C67.8602 19.9725 69.1569 17.1968 71.7126 14.563C74.5196 11.6798 77.8311 10.2362 81.6459 10.2362C85.1739 10.2362 87.0449 11.6764 87.2611 14.5535C87.4046 16.3871 86.3965 18.2763 84.2383 20.2193C81.9331 22.3422 79.035 23.6906 75.545 24.2658C76.1917 25.1654 77.1638 25.6145 78.4606 25.6145C81.0513 25.6145 83.877 24.9552 86.9374 23.6334C89.1321 22.7059 90.8599 21.7413 92.1203 20.7423L93.1458 22.0924Z" fill="currentColor"></path>
<path d="M101.701 18.2622C101.737 17.2869 101.601 16.392 101.295 15.5793C100.989 14.767 100.548 14.3591 99.9731 14.3591C98.1368 14.3591 96.6252 15.3533 95.4387 17.3405C94.429 18.9674 93.8892 20.7015 93.8185 22.5431C93.7823 23.4473 93.9447 24.2425 94.3043 24.9283C94.6986 25.7235 95.2571 26.1203 95.9781 26.1203C97.5969 26.1203 98.984 25.1639 100.136 23.2478C101.107 21.6578 101.628 19.9965 101.701 18.2622ZM107.802 18.4662C107.657 21.7796 106.434 24.6422 104.131 27.0543C101.827 29.4669 98.9649 30.6732 95.546 30.6732C92.7031 30.6732 90.543 29.7545 89.0678 27.9175C87.9886 26.5503 87.394 24.8397 87.2867 22.7879C87.1053 19.6912 88.2206 16.8455 90.6344 14.2531C93.2253 11.3731 96.4816 9.93286 100.405 9.93286C102.924 9.93286 104.831 10.7802 106.128 12.4716C107.352 14.0208 107.909 16.0192 107.802 18.4662Z" fill="currentColor"></path>
</svg>
<svg width="105" height="31" viewBox="0 0 105 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.1479 11.1699C22.1206 12.5791 24.5374 13.4083 27.1475 13.4083V8.38898C26.6534 8.38901 26.1608 8.33755 25.6775 8.23541V12.1863C23.0676 12.1863 20.6513 11.357 18.6779 9.94784V20.1911C18.6779 25.3154 14.5215 29.469 9.39431 29.469C7.48135 29.469 5.70315 28.8909 4.2262 27.8997C5.91183 29.6224 8.26304 30.691 10.8639 30.691C15.9915 30.691 20.1481 26.5374 20.1481 21.4132V11.1697L20.1479 11.1699ZM21.9613 6.10607C20.9241 4.97645 20.287 3.53733 20.1479 2.01018V1.36456H18.7549C19.1055 3.36347 20.3015 5.07099 21.9613 6.10607ZM7.46906 23.9674C6.90582 23.2294 6.60138 22.3264 6.6028 21.398C6.6028 19.0545 8.50387 17.1543 10.8496 17.1543C11.2866 17.1543 11.7211 17.221 12.1377 17.3531V12.2217C11.6509 12.155 11.1596 12.1267 10.6683 12.137V16.1313C10.2515 15.9992 9.81681 15.9321 9.37956 15.9325C7.03388 15.9325 5.13281 17.8325 5.13281 20.1764C5.13281 21.8336 6.08304 23.2683 7.46906 23.9674Z" fill="currentColor"></path>
<path d="M18.678 9.94784C20.6514 11.357 23.0677 12.1861 25.6778 12.1861V8.2352C24.2476 7.92951 22.9484 7.1852 21.9614 6.10607C20.3016 5.07099 19.1056 3.36326 18.755 1.36456H15.0962V21.4126C15.088 23.7497 13.1898 25.6422 10.8495 25.6422C9.47019 25.6422 8.24472 24.9851 7.46877 23.9674C6.08315 23.2683 5.13271 21.8336 5.13271 20.1764C5.13271 17.8327 7.03379 15.9325 9.37947 15.9325C9.82878 15.9325 10.2621 16.0025 10.6682 16.1313V12.1372C5.63117 12.2412 1.5802 16.3543 1.5802 21.4128C1.5802 23.9379 2.589 26.227 4.22631 27.8997C5.75441 28.9256 7.55403 29.4719 9.39462 29.4688C14.5218 29.4688 18.6782 25.3149 18.6782 20.1909L18.678 9.94784Z" fill="currentColor"></path>
<path d="M25.6775 8.23496V7.16671C24.3638 7.16871 23.076 6.80108 21.9614 6.10583C22.948 7.18532 24.2472 7.92956 25.6775 8.23496ZM18.755 1.36473C18.7215 1.17378 18.6958 0.981556 18.6779 0.788525V0.1427H13.626V20.1909C13.6178 22.5277 11.7202 24.4201 9.37941 24.4201C8.71583 24.4211 8.0613 24.2661 7.4687 23.9676C8.24486 24.9852 9.47013 25.6421 10.8494 25.6421C13.1895 25.6421 15.088 23.7499 15.0962 21.4127V1.36452L18.755 1.36473ZM10.6684 12.1373V11.0001C10.2462 10.9424 9.82063 10.9135 9.39456 10.9137C4.267 10.9133 0.110352 15.0671 0.110352 20.1909C0.110352 23.403 1.74397 26.2341 4.22645 27.8994C2.58914 26.2269 1.58034 23.9377 1.58034 21.4125C1.58034 16.3542 5.63111 12.2414 10.6684 12.1373Z" fill="currentColor"></path>
<path d="M84.2158 25.2682C87.8845 25.2682 90.8586 22.3186 90.8586 18.6801C90.8586 15.0419 87.8845 12.0917 84.2158 12.0917H83.2146C86.8834 12.0917 89.8576 15.0419 89.8576 18.6801C89.8576 22.3186 86.8834 25.2682 83.2146 25.2682H84.2156H84.2158Z" fill="currentColor"></path>
<path d="M83.1243 12.0917H82.1235C78.4549 12.0917 75.4801 15.0419 75.4801 18.6801C75.4801 22.3186 78.4549 25.2682 82.1235 25.2682H83.1243C79.4551 25.2682 76.4809 22.3186 76.4809 18.6801C76.4809 15.0419 79.4551 12.0917 83.1243 12.0917Z" fill="currentColor"></path>
<path d="M54.7333 9.11404V16.6037L58.5545 12.8135H63.1951L58.3722 17.5067L63.7412 25.268H59.6468L55.9164 19.943L54.7333 21.0268V25.1779H50.9113V9.11404H54.7333ZM95.9545 9.11404V16.6037L99.7765 12.8135H104.417L99.5942 17.5067L104.963 25.2684H100.868L97.1372 19.9434L95.9545 21.0272V25.1784H92.1318V9.11404H95.9545ZM83.2144 12.0917C86.8833 12.0917 89.8579 15.0419 89.8579 18.6802C89.8579 22.3186 86.8833 25.2682 83.2144 25.2682H83.1239C79.4551 25.2682 76.4809 22.3186 76.4809 18.6802C76.4809 15.0419 79.4551 12.0917 83.1239 12.0917H83.2144ZM44.7241 9.11404L43.632 12.5436H40.4475V25.1782H36.5337V12.4535H32.6216V9.11383H44.7239L44.7241 9.11404ZM76.7545 9.11404L75.6628 12.5436H72.4782V25.1782H68.5645V12.4535H64.6524V9.11383L76.7545 9.11404ZM49.2729 14.2583V25.1784H45.4524V14.2583H49.2729ZM83.17 15.4769C81.3858 15.4769 79.9388 16.9104 79.9388 18.6802C79.9388 20.45 81.3858 21.8841 83.17 21.8845C84.9531 21.8845 86.4 20.45 86.4 18.6802C86.4 16.9104 84.9531 15.4769 83.17 15.4769ZM47.3618 9.11404C48.4179 9.11404 49.2729 9.96278 49.2729 11.0091C49.2729 12.0555 48.4186 12.9042 47.3618 12.9042C46.3065 12.9038 45.4524 12.0557 45.4524 11.0091C45.4524 9.96278 46.3065 9.11404 47.3618 9.11404Z" fill="currentColor"></path>
</svg>
<svg width="46" height="19" viewBox="0 0 46 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.259033 0.668945H4.91833V18.6046H0.259033V0.668945Z" fill="currentColor"></path>
<path d="M13.7222 8.93074C13.322 6.19725 13.0994 4.67785 13.0554 4.37458C12.8604 2.91134 12.6746 1.63803 12.4969 0.551575C12.0936 0.551575 10.081 0.551575 6.45605 0.551575V18.4872H10.5374L10.5517 6.64449L12.2692 18.4872H15.1763L16.8049 6.38105L16.8202 18.4872H20.8883V0.551575H14.8015L13.7222 8.93074Z" fill="currentColor"></path>
<path d="M28.5804 4.28268C28.6314 4.51141 28.658 5.03013 28.658 5.84089C28.658 6.53626 28.658 12.0992 28.658 12.7946C28.658 13.9883 28.5804 14.7194 28.4262 14.9889C28.271 15.2585 27.8585 15.3923 27.1896 15.3923C27.1896 14.215 27.1896 4.7963 27.1896 3.61897C27.6971 3.61897 28.0433 3.67309 28.2271 3.77928C28.4109 3.8865 28.5293 4.05396 28.5804 4.28268ZM30.6849 18.3045C31.2393 18.183 31.7049 17.9685 32.0828 17.6632C32.4595 17.3569 32.724 16.9331 32.8751 16.3909C33.0273 15.8497 33.1171 14.7745 33.1171 13.1663C33.1171 12.5373 33.1171 7.49814 33.1171 6.86812C33.1171 5.17104 33.0508 4.03353 32.9476 3.45559C32.8435 2.87663 32.5851 2.35076 32.1716 1.87901C31.757 1.40726 31.1525 1.06825 30.3581 0.86199C29.5627 0.655727 28.2659 0.551575 26.0103 0.551575C25.7785 0.551575 24.6205 0.551575 22.5344 0.551575V18.4872H28.1791C29.48 18.4464 30.3152 18.3862 30.6849 18.3045Z" fill="currentColor"></path>
<path d="M40.6344 15.6241C40.5487 15.8518 40.1729 15.9671 39.889 15.9671C39.6113 15.9671 39.4265 15.8569 39.3325 15.6353C39.2386 15.4147 39.1926 14.9113 39.1926 14.123C39.1926 13.6492 39.1926 9.85686 39.1926 9.38307C39.1926 8.56619 39.2335 8.05666 39.3162 7.85346C39.3979 7.6523 39.5776 7.55019 39.8553 7.55019C40.1392 7.55019 40.5201 7.66558 40.6181 7.89737C40.7151 8.12916 40.7641 8.62439 40.7641 9.38307C40.7641 9.6894 40.7641 11.2211 40.7641 13.9791C40.7345 14.9236 40.6916 15.4719 40.6344 15.6241ZM34.7039 18.331H38.8985C39.0732 17.6458 39.1691 17.265 39.1885 17.1884C39.5684 17.6479 39.986 17.993 40.4445 18.2217C40.9009 18.4515 41.584 18.5658 42.113 18.5658C42.8492 18.5658 43.4843 18.3729 44.0204 17.9859C44.5555 17.5999 44.8965 17.1424 45.0415 16.6166C45.1865 16.0897 45.259 15.2891 45.259 14.2129C45.259 13.7095 45.259 9.6843 45.259 9.18089C45.259 8.09853 45.2345 7.39192 45.1865 7.06006C45.1385 6.7282 44.9956 6.39022 44.7576 6.04407C44.5197 5.69791 44.1736 5.42936 43.7202 5.23739C43.2668 5.04543 42.7318 4.94944 42.115 4.94944C41.5789 4.94944 40.8928 5.05666 40.4353 5.26803C39.9789 5.4794 39.5643 5.80002 39.1926 6.22991C39.1926 5.84087 39.1926 3.89669 39.1926 0.395325H34.7039V18.331Z" fill="currentColor"></path>
</svg>
<svg width="44" height="45" viewBox="0 0 44 45" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M26.2388 19.1392L42.3049 0.539978H38.4991L24.543 16.6862L13.4045 0.539978H0.554443L17.4016 24.9582L0.554443 44.46H4.36027L19.0888 27.4054L30.8544 44.46H43.7044M5.73388 3.39825H11.5807L38.4962 41.7421H32.648" fill="currentColor"></path>
</svg>
<svg width="88" height="29" viewBox="0 0 88 29" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M85.9901 9.99954L82.4706 6.50027H75.9324V1.99955H70.3999V22.5002H75.9324V11.9993H80.4575V22.5002H85.9901V9.99954ZM68.3897 6.50027H59.8409L56.3206 9.99954V18.9994L59.8409 22.5002H68.3897V17.0007H61.8516V11.9993H68.3897V6.50027ZM54.3091 6.50027H49.784V1.99955H44.2515V18.9994L47.7717 22.5002H54.3091V17.0007H49.784V11.9993H54.3091V6.50027ZM42.24 1.99955H36.709V4.50046H42.24V1.99955ZM42.24 6.50027H36.709V22.5H42.24V6.50027ZM34.6975 6.50027H29.166V17.0007H27.1551V6.50027H21.6233V17.0007H19.6126V6.50027H14.0801V22.5002H31.178L34.6975 18.9994V6.50027ZM12.0686 6.50027H7.54324V1.99955H2.01173V18.9994L5.53176 22.5002H12.0686V17.0007H7.54324V11.9993H12.0686V6.50027ZM88 8.99938V23.9995L80.4575 29H75.4292V26.4991L71.9092 29H67.3841V26.4991L64.8705 29H56.8243L54.3091 26.4991L53.8057 29H46.7667L43.8881 26.4991L43.7269 29H35.7483L35.4661 26.4991L33.3063 29H21.1199L18.6052 27.9998V29H12.0686L4.52537 24.4988L0 20.0009V-1.20477e-07H9.55497L14.0801 4.50046H34.6975V-1.20477e-07H51.7947V4.50046H56.3206V6.99983L58.8358 4.50046H63.8633L68.3897 -1.20477e-07H77.9439V4.50046H83.4757L88 8.99938Z" fill="currentColor"></path>
</svg>
</div>
</div>
</section>
<section class="section section-info">
<div class="container">
<div class="section-body" id="text-wrapper">
<p>Somos la mejor solución indiscutible para convertir vídeos de YouTube a 1080p. Hacemos del turbio y robusto proceso de convertir vídeos de YouTube por tu cuenta un sencillo proceso de tres pasos, todo gratis.</p>
<h2 id="what-makes-us-special">Lo que nos hace especiales</h2>
<h3 id="no-download-limit">Sin límite de descargas</h3>
<p>Puedes descargar todos los contenidos que quieras sin límites. </p>
<h3 id="downloads-at-no-cost">Descargas gratuitas</h3>
<p>Puedes convertir vídeos de YouTube a WAV y descargarlos gratis aquí. </p>
<h3 id="the-best-speeds">Las mejores velocidades</h3>
<p>Nuestra plataforma convierte vídeos de YouTube en segundos. </p>
<h3 id="easy-to-use">Fácil de usar</h3>
<p>Puedes convertir vídeos de YouTube a WAV con nuestra herramienta con unos pocos clics.</p>
<h3 id="no-need-for-apps">Sin necesidad de aplicaciones</h3>
<p>Como nuestra herramienta está en línea, puedes utilizarla sin tener que instalar nada en tu dispositivo.</p>
<h2 id="how-to-download-youtube-videos-as-1080p-mp4-files">Cómo descargar vídeos de YouTube como archivos .MP4 a 1080p</h2>
<p>Convertir vídeos de YouTube en archivos MP4 1080p no requiere que tengas profundos conocimientos de informática o edición de vídeo. Si ya sabes utilizar la Web, estás más que cualificado para aprender a usar nuestra plataforma. Gracias a nuestra interfaz fácil de usar, podrás convertir vídeos a 1080p y descargarlos con unos pocos clics. El proceso es el siguiente: </p>
<ol>
<li>Estando en YouTube, busca el vídeo que deseas convertir a 1080p. </li>
<li>Copia la URL del vídeo y entra en nuestra web. A continuación, pega el enlace en el cuadro de URL que ves arriba. </li>
<li>Selecciona MP4 1080p como formato de salida. </li>
<li>Haga clic en Descargar.
Nuestra herramienta procesará su solicitud de conversión en cuestión de segundos. Una vez realizada la conversión del vídeo, podrás descargarlo como archivo 1080p.<h2 id="convert-youtube-videos-to-1080p-with-any-device">Convierte vídeos de YouTube a 1080p con cualquier dispositivo</h2>
Nuestra plataforma funciona en todos los dispositivos modernos que puedas imaginar. Puede descargar vídeos de YouTube como archivos WAV con nuestra herramienta utilizando lo siguiente: </li>
<li>iPhones. </li>
<li>iPads.</li>
<li>Ordenadores Mac.</li>
<li>Ordenadores Linux. </li>
<li>PC con Windows. </li>
<li>Amazon Fire. </li>
<li>Teléfonos y tabletas Android. </li>
</ol>
<h2 id="youtube-to-1080p-mp4-faqs">Preguntas frecuentes sobre la conversión de YouTube a MP4 1080p</h2>
<h3 id="what-is-1080p-">¿Qué es 1080p?</h3>
<p>Conocido como Full HD (quizá recuerde cómo los televisores de principios de la década de 2010 solían anunciar Full HD para vender pantallas con 1080p como resolución máxima), sólo significa la visualización de 1080p píxeles en vertical y 1920 píxeles en horizontal.</p>
<h3 id="why-convert-download-youtube-videos-to-1080p-">¿Por qué convertir y descargar vídeos de YouTube a 1080p?</h3>
<p>La razón por la que 1080p es el mejor formato al que puedes convertir vídeos es que es la resolución estándar de las pantallas hoy en día. Todos los televisores, teléfonos, tabletas, etc. admiten la resolución 1080p, y estarán mejor optimizados para ella que para otras.</p>
</div>
</div>
</section>
<section class="section section-features">
<div class="container">
<div class="section-head">
<p class="subtitle">Características</p>
<h2>Lo que nos hace especiales</h2>
</div>
<div class="section-body">
<div class="feature-item">
<div class="feature-counter">1</div>
<div class="feature-name">Sin límite de descargas</div>
<div class="feature-desc">Puedes descargar todos los contenidos que quieras sin límites.
</div>
</div>
<div class="feature-item">
<div class="feature-counter">2</div>
<div class="feature-name">Descargas gratuitas</div>
<div class="feature-desc">
Puedes convertir contenidos de vídeo y audio y descargarlos gratis aquí.
</div>
</div>
<div class="feature-item">
<div class="feature-counter">3</div>
<div class="feature-name">Las mejores velocidades</div>
<div class="feature-desc"> Nuestra plataforma convierte audio y vídeo en segundos.</div>
</div>
<div class="feature-item">
<div class="feature-counter">4</div>
<div class="feature-name">Fácil de usar</div>
<div class="feature-desc">
Puede convertir y descargar contenidos utilizando nuestra herramienta con unos pocos clics.
</div>
</div>
<div class="feature-item">
<div class="feature-counter">5</div>
<div class="feature-name">Sin necesidad de aplicaciones</div>
<div class="feature-desc">
Como nuestra herramienta está en línea, puedes utilizarla sin tener que instalar nada en tu dispositivo.
</div>
</div>
<div class="feature-item">
<div class="feature-counter">6</div>
<div class="feature-name">Bien asegurado</div>
<div class="feature-desc">
Nuestro sitio web está muy bien protegido. Hemos desarrollado este sitio web pensando en la seguridad del usuario. Así que no habrá ningún problema con la seguridad
</div>
</div>
</div>
</div>
</section>
<div class="dropdown-group popover-quality hidden mt-[9px]">
<div class="dropdown-wrapper">
<div class="quality-audio">
<div class="quality-title">Audio</div>
<div class="audio-list quality-list">
<li data-value="mp3">MP3</li>
<li data-value="m4a">M4A</li>
<li data-value="webm">WEBM</li>
<li data-value="aac">AAC</li>
<li data-value="flac">FLAC</li>
<li data-value="opus">OPUS</li>
<li data-value="ogg">OGG</li>
<li data-value="wav">WAV</li>
</div>
</div>
<div class="quality-video">
<div class="quality-title">Video</div>
<div class="video-list quality-list">
<li data-value="360">MP4 (360p)</li>
<li data-value="480">MP4 (480p)</li>
<li data-value="720">MP4 (720p)</li>
<li data-value="1080">MP4 (1080p)</li>
<li data-value="1440">MP4 (1440p)</li>
<li data-value="4k">WEBM (4K)</li>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="footer-main-content ">
<div class="footer-brand text-black-600 dark:text-light-secondary-500 text-center lg:text-left">
<a href="https://downloaderto.com/estx/" class="leading-snug">
<span class="text-light-accent-500 font-bold text-[42px]">downloaderto<span class="text-light-black-600 dark:text-light-secondary-500">.com</span>
</span>
</a>
</div>
<div class="footer-nav">
<div class="mb-[17px] font-bold text-[21px] text-light-black-600 dark:text-light-secondary-500 text-center lg:text-left">
More Links
</div>
<ul class="grid grid-cols-1 lg:grid-cols-2 gap-[30px] lg:gap-x-[50px] lg:gap-y-[25px] text-center lg:text-left">
<li>
<a class="font-light text-[15px] text-light-black-600 dark:text-light-gray-500" href="https://downloaderto.com/estx/" aria-current="page">Descargador de vídeos 1080p de YouTube</a>
</li>
<li>
<a class="font-light text-[15px] text-light-black-600 dark:text-light-gray-500" href="https://downloaderto.com/esi9/youtube-playlist-downloader" aria-current="page">Descargador de listas de reproducción de YouTube</a>
</li>
<li>
<a class="font-light text-[15px] text-light-black-600 dark:text-light-gray-500" href="https://downloaderto.com/esmK/youtube-to-wav" aria-current="page">YouTube a archivos WAV: El mejor conversor gratuito</a>
</li>
<li>
<a class="font-light text-[15px] text-light-black-600 dark:text-light-gray-500" href="https://downloaderto.com/es7b/youtube-4k-downloader" aria-current="page">Eficaz descargador de vídeo 4K para tus descargas compulsivas</a>
</li>
<li>
<a class="font-light text-[15px] text-light-black-600 dark:text-light-gray-500" href="https://downloaderto.com/esZv/youtube-mp3-converter" aria-current="page">El conversor de YouTube a MP3 320 kbps más eficaz que encontrarás</a>
</li>
<li><a href="https://video-download-api.com/" class="font-light text-[15px] text-light-black-600 dark:text-light-gray-500">API</a>
</li>
<li><a href="/" class="font-light text-[15px] text-light-black-600 dark:text-light-gray-500">APP</a>
</li>
<li><a href="/contact" class="font-light text-[15px] text-light-black-600 dark:text-light-gray-500">Contact
Us</a>
</li>
</ul>
</div>
<div class="footer-langs">
<div class="mb-[17px] font-bold text-[21px] text-light-black-600 dark:text-light-secondary-500 text-center lg:text-left">
Idiomas</div>
<div class="lang-list">
<a href="https://downloaderto.com/engf/" hreflang="en">English</a> ·
<a href="https://downloaderto.com/degc/" hreflang="de">Deutsch</a> ·
<a href="https://downloaderto.com/plxU/" hreflang="pl">Polski</a> ·
<a href="https://downloaderto.com/frhE/" hreflang="fr">Français</a> ·
<a href="https://downloaderto.com/estx/" hreflang="es">Español</a> ·
<a href="https://downloaderto.com/elZE/" hreflang="el">Ελληνικά</a> ·
<a href="https://downloaderto.com/lvB6/" hreflang="lv">Latvian</a> ·
<a href="https://downloaderto.com/ltLX/" hreflang="lt">Lithuanian</a> ·
<a href="https://downloaderto.com/nlC7/" hreflang="nl">Nederlands</a> ·
<a href="https://downloaderto.com/zhBZ/" hreflang="zh">繁體中文</a> ·
<a href="https://downloaderto.com/it2F/" hreflang="it">Italiano</a> ·
<a href="https://downloaderto.com/svQL/" hreflang="sv">Svenska</a> ·
<a href="https://downloaderto.com/skTq/" hreflang="sk">Slovensky</a> ·
<a href="https://downloaderto.com/ptZy/" hreflang="pt">Português</a> ·
<a href="https://downloaderto.com/sl0n/" hreflang="sl">Slovenščina</a> ·
<a href="https://downloaderto.com/ruwq/" hreflang="ru">Русский</a> ·
<a href="https://downloaderto.com/da6j/" hreflang="da">Dansk</a> ·
<a href="https://downloaderto.com/firT/" hreflang="fi">suomi</a> ·
<a href="https://downloaderto.com/bgrT/" hreflang="bg">български</a> ·
<a href="https://downloaderto.com/csGR/" hreflang="cs">čeština</a> ·
<a href="https://downloaderto.com/ett2/" hreflang="et">Eestlane</a> ·
<a href="https://downloaderto.com/huu6/" hreflang="hu">Magyar</a> ·
<a href="https://downloaderto.com/roVo/" hreflang="ro">Română</a> ·
<a href="https://downloaderto.com/jaSy/" hreflang="ja">日本語</a> ·
<a href="https://downloaderto.com/kopC/" hreflang="ko">한국인</a> ·
<a href="https://downloaderto.com/idMB/" hreflang="id">bahasa Indonesia</a> ·
<a href="https://downloaderto.com/ab/" hreflang="ab">Abkhazian</a> ·
<a href="https://downloaderto.com/aa/" hreflang="aa">Afar</a> ·
<a href="https://downloaderto.com/af/" hreflang="af">Afrikaans</a> ·
<a href="https://downloaderto.com/sq/" hreflang="sq">Albanian</a> ·
<a href="https://downloaderto.com/ar/" hreflang="ar">العربية</a> ·
<a href="https://downloaderto.com/hy/" hreflang="hy">Հայերեն</a> ·
<a href="https://downloaderto.com/az/" hreflang="az">Azərbaycan</a> ·
<a href="https://downloaderto.com/bs/" hreflang="bs">Bosanski</a> ·
<a href="https://downloaderto.com/tl/" hreflang="tl">Tagalog</a> ·
<a href="https://downloaderto.com/hi/" hreflang="hi">हिन्दी</a> ·
<a href="https://downloaderto.com/ka/" hreflang="ka">ქართული</a> ·
<a href="https://downloaderto.com/hr/" hreflang="hr">Hrvatski</a> ·
<a href="https://downloaderto.com/sr/" hreflang="sr">Српски</a> ·
<a href="https://downloaderto.com/th/" hreflang="th">ไทย</a> ·
<a href="https://downloaderto.com/vi/" hreflang="vi">Tiếng Việt</a> ·
</div>
</div>
</div>
<div class="footer-bottom">
<div class="w-full flex flex-row items-center justify-between py-[27px]">
<div class="font-light text-[15px] text-light-black-500 dark:text-light-gray-500 w-full lg:w-[inherit] text-center lg:text-left">
Copyright © 2022 All Rights
Reseved.</div>
<div class="browser-extension">
<a href="https://addons.mozilla.org/de/firefox/addon/best-youtube-media-downloader/" target="_blank" rel="noopener noreferrer">
<div class="btn-extension btn-firefox">
<div class="browser-icon"></div>
<div class="extension-text">
<span class="label">Download</span>
<span class="browser-name">Firefox Extension</span>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</footer>
<script>
            const is_youtube_allowed = true;
        </script>
<script>
        const contactForm = document.querySelector(".contact-form");

const html = document.querySelector("html");

var repeat_download = false;
var visited_convertr = false;
let oldPopper = null;

const btnQuality = document.querySelector(".btn-quality");

const qualityList = document.querySelector(".dropdown-group");
const qualityItems = document.querySelectorAll(
    ".video-list li, .audio-list li"
);

const themeSwitcher = document.querySelector("#theme-switcher");
const themeSwitcherMobile = document.querySelector("#theme-switcher-mobile");

const menuControl = document.querySelector(".menu-control");
const mobileToggle = document.querySelector(".mobile-toggle");

const inputLink = document.querySelector(".input-url");
const btnDownload = document.querySelector(".btn-download");
const mainBtnQuality = document.querySelector(".btn-quality");
const videoQualities = {
    360: "MP4 (360p)",
    480: "MP4 (480p)",
    720: "MP4 (720p)",
    1080: "MP4 (1080p)",
    1440: "MP4 (1440p)",
    "4k": "WEBM (4K)",
    "8k": "WEBM (8K)",
};
const audioQualities = [
    "mp3",
    "m4a",
    "webm",
    "aac",
    "flac",
    "opus",
    "ogg",
    "wav",
];

const alertSuccess = `
<div class="flex items-center p-4 mb-4 text-green-800 rounded-lg bg-green-50 dark:bg-gray-800 dark:text-green-400" role="alert">
  <svg class="flex-shrink-0 w-4 h-4" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20">
    <path d="M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5ZM9.5 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM12 15H8a1 1 0 0 1 0-2h1v-3H8a1 1 0 0 1 0-2h2a1 1 0 0 1 1 1v4h1a1 1 0 0 1 0 2Z"/>
  </svg>
  <span class="sr-only">Info</span>
  <div class="ms-3 text-sm font-medium alert-msg"></div>
  <button type="button" onclick="removeAlert()" class="ms-auto -mx-1.5 -my-1.5 bg-green-50 text-green-500 rounded-lg focus:ring-2 focus:ring-green-400 p-1.5 hover:bg-green-200 inline-flex items-center justify-center h-8 w-8 dark:bg-gray-800 dark:text-green-400 dark:hover:bg-gray-700" data-dismiss-target="#alert-3" aria-label="Close">
    <span class="sr-only">Close</span>
    <svg class="w-3 h-3" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14">
      <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"/>
    </svg>
  </button>
</div>
`;

const alertError = `
<div class="flex items-center p-4 mb-4 text-red-800 rounded-lg bg-red-50 dark:bg-gray-800 dark:text-red-400" role="alert">
<svg class="flex-shrink-0 w-4 h-4" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20">
  <path d="M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5ZM9.5 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM12 15H8a1 1 0 0 1 0-2h1v-3H8a1 1 0 0 1 0-2h2a1 1 0 0 1 1 1v4h1a1 1 0 0 1 0 2Z"/>
</svg>
<span class="sr-only">Info</span>
<div class="ms-3 text-sm font-medium alert-msg"></div>
<button type="button" onclick="removeAlert()" class="ms-auto -mx-1.5 -my-1.5 bg-red-50 text-red-500 rounded-lg focus:ring-2 focus:ring-red-400 p-1.5 hover:bg-red-200 inline-flex items-center justify-center h-8 w-8 dark:bg-gray-800 dark:text-red-400 dark:hover:bg-gray-700" data-dismiss-target="#alert-2" aria-label="Close">
  <span class="sr-only">Close</span>
  <svg class="w-3 h-3" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14">
    <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"/>
  </svg>
</button>
</div>
`;

var singleResultTemplate = `
<div class="container">
  <div class="result-container">
    <div class="result-content">
      <div class="video-thumb">
        <img src="https://i.ytimg.com/vi/SUogHvm4lNw/hqdefault.jpg" alt="">
      </div>
      <div class="video-details">
        <div class="tag-list">
          <a href="">Video</a>
          <a href="">MP4 1080 p</a>
        </div>
        <div class="flex flex-col gap-2 lg:gap-0">
          <div class="video-title">Paris Evening Walk and Bike Ride - 4K - With Captions!</div>
        <p class="video-url"><span>URL:</span> https://www.youtube.com/watch?v=1_XzrxXnwMM</p>
        <a href="https://www.byclickdownloader.com/How-to-download-youtube-playlists.php?source=loader2&innerpage=playlist" class="font-medium text-[15px] text-light-accent-500">DOWNLOAD BIG PLAYLIST WITH MORE THAN 20 VIDEOS</a>
        </div>
        <a href="" class="btn-download" onclick="openit()">
          <div class="progress animate-pulse"></div>
          <span>Download in Progress ... 0%</span>
        </a>
        <p class="error-msg"></p>
      </div>
    </div>
    <div class="max-w-[496px] mx-auto font-medium text-[15px] lg:text-[21px] text-center text-light-black-600 pt-10">
      Thanks for downloading your video. You can now convert your video for free online <a class="text-light-accent-500" href="https://convertr.org">here</a>
    </div>
  </div>
</div>
`;

const convertingText = `
Download in Progress ... 100 %
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M22.5 11C22.5 16.5228 18.0228 21 12.5 21C6.97715 21 2.5 16.5228 2.5 11C2.5 5.47715 6.97715 1 12.5 1C18.0228 1 22.5 5.47715 22.5 11ZM16.5303 7.96967C16.8232 8.26256 16.8232 8.73744 16.5303 9.0303L11.5303 14.0303C11.2374 14.3232 10.7626 14.3232 10.4697 14.0303L8.46967 12.0303C8.17678 11.7374 8.17678 11.2626 8.46967 10.9697C8.76256 10.6768 9.23744 10.6768 9.53033 10.9697L11 12.4393L13.2348 10.2045L15.4697 7.96967C15.7626 7.67678 16.2374 7.67678 16.5303 7.96967Z" fill="#55EFC4"/>
</svg>
`;

const errorText = `
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 20C17.523 20 22 15.523 22 10C22 4.477 17.523 0 12 0C6.477 0 2 4.477 2 10C2 15.523 6.477 20 12 20ZM10.5 14.991C10.5 14.124 11.159 13.5 11.991 13.5C12.841 13.5 13.5 14.124 13.5 14.991C13.5 15.858 12.841 16.5 11.991 16.5C11.159 16.5 10.5 15.858 10.5 14.991ZM11.172 4C11.1045 4.00007 11.0378 4.01379 10.9757 4.04035C10.9137 4.0669 10.8577 4.10573 10.8111 4.1545C10.7645 4.20327 10.7282 4.26097 10.7045 4.32413C10.6807 4.38729 10.67 4.4546 10.673 4.522L10.979 11.522C10.9847 11.6508 11.0398 11.7724 11.133 11.8614C11.2262 11.9505 11.3501 12.0001 11.479 12H12.522C12.6509 12.0001 12.7748 11.9505 12.868 11.8614C12.9612 11.7724 13.0163 11.6508 13.022 11.522L13.327 4.522C13.33 4.45451 13.3192 4.38712 13.2954 4.3239C13.2717 4.26067 13.2353 4.20292 13.1886 4.15414C13.1418 4.10535 13.0857 4.06654 13.0236 4.04005C12.9614 4.01356 12.8946 3.99993 12.827 4H11.172Z" fill="#F5F6FA"/>
</svg>
Error
`;

const downloadText = `
<svg width="24" height="27" viewBox="0 0 24 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 21.0002H16C18.8284 21.0002 20.2426 21.0002 21.1213 20.1215C22 19.2429 22 17.8286 22 15.0002V14.0002C22 11.1718 22 9.7576 21.1213 8.8789C20.3529 8.11051 19.175 8.01406 17 8.00195M7 8.00195C4.82497 8.01406 3.64706 8.11051 2.87868 8.87889C2 9.7576 2 11.1718 2 14.0002V15.0002C2 17.8286 2 19.2429 2.87868 20.1215C3.17848 20.4213 3.54062 20.6188 4 20.749" stroke="#F5F6FA" stroke-width="2" stroke-linecap="round"/>
<path d="M12 1V14M12 14L9 10.5M12 14L15 10.5" stroke="#F5F6FA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Download to Your Device
`;

const placeholderTemplate = `
    <div class="container">
    <div class="result-container">
        <div class="result-content">
        <div class="video-thumb-placeholder">
            <svg class="w-10 h-10 text-gray-200 dark:text-gray-600" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 18">
                <path d="M18 0H2a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2Zm-5.5 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3Zm4.376 10.481A1 1 0 0 1 16 15H4a1 1 0 0 1-.895-1.447l3.5-7A1 1 0 0 1 7.468 6a.965.965 0 0 1 .9.5l2.775 4.757 1.546-1.887a1 1 0 0 1 1.618.1l2.541 4a1 1 0 0 1 .028 1.011Z"/>
            </svg>
        </div>
        <div class="video-details-placeholder">
            <div class="tag-list-placeholder"></div>
            <div class="flex flex-col gap-2 lg:gap-0">
            <div class="video-title-placeholder"></div>
            <p class="video-url-placeholder"></p>
            </div>
            <a href="" class="btn-download-placholder"></a>
        </div>
        </div>
    </div>
    </div>
`;

const playlistItemTemplate = `
<div class="video-details">
    <div class="counter">1</div>
    <img src="https://i.ytimg.com/vi/SUogHvm4lNw/hqdefault.jpg" alt="">
  <div class="video-meta">
    <div class="video-title">Paris Evening Walk and Bike Ride - 4K - With Captions!</div>
    <p class="video-url"><span>URL:</span> <span class="item-url"></span></p>
  </div>
</div>
<div class="button-group button-playlist-group btn-download-group">
    <div class="btn-child-quality" data-quality="720" onclick="handlePlaylistQualityClick(event)">
      <span>MP4 (720p)</span>
      <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
        <rect width="24" height="24" rx="6" fill="white" />
        <path d="M8 11L12 15L16 11" stroke="#2D3436" stroke-linecap="round" />
      </svg>
    </div>
    <button type="button" class="btn-child-download" onclick="downloadItemInPlaylist(event)">
      <svg width="24" height="27" viewBox="0 0 24 27" fill="none" xmlns="http://www.w3.org/2000/svg">
        <path
          d="M8 21.0002H16C18.8284 21.0002 20.2426 21.0002 21.1213 20.1215C22 19.2429 22 17.8286 22 15.0002V14.0002C22 11.1718 22 9.7576 21.1213 8.8789C20.3529 8.11051 19.175 8.01406 17 8.00195M7 8.00195C4.82497 8.01406 3.64706 8.11051 2.87868 8.87889C2 9.7576 2 11.1718 2 14.0002V15.0002C2 17.8286 2 19.2429 2.87868 20.1215C3.17848 20.4213 3.54062 20.6188 4 20.749"
          stroke="white" stroke-width="2" stroke-linecap="round" />
        <path d="M12 1V14M12 14L9 10.5M12 14L15 10.5" stroke="white" stroke-width="2" stroke-linecap="round"
          stroke-linejoin="round" />
      </svg>
      <span>Download</span>
    </button>
</div>
`;

const playlistResultTemplate = `
<div class="container">
   <div class="result-container">
      <div class="result-head">
         <div class="top-actions">
            <div class="tag-list">
               <a href="">Video</a>
               <a href="">Playlist</a>
            </div>
            <div class="toggle-list" onclick="collapsePlaylist(event)">
               <svg width="11" height="6" viewBox="0 0 11 6" fill="none" xmlns="http://www.w3.org/2000/svg">
                  <path d="M10 5.5L5.5 1L1 5.5" stroke="#6C5CE7" stroke-linecap="round"/>
               </svg>
            </div>
         </div>
         <div class="playlist-title"></div>
      </div>
      <div class="playlist-content">
         <div class="list-video">
         </div>
      </div>
   </div>
</div>
`;

    </script>
<script>
        const checkAdBlocker = () => {
    return new Promise((resolve, reject) => {
        let testAd = document.createElement("img");
        testAd.onload = () => {
            resolve(false); // No ad blocker detected
        };
        testAd.onerror = () => {
            resolve(true); // Ad blocker detected
        };
        testAd.src = "/ads.js";
    });
};

const isValidURL = (str) => {
    try {
        new URL(str);
    } catch (_) {
        return false;
    }

    return true;
};

function openit() {
    if (repeat_download == false) {
        var ad_url = "https://ab.cococococ.com/ajax/ad/l.php";
        repeat_download = true;
    } else {
        var ad_url =
            "https://convertr.org/?utm_source=loader&utm_medium=loader&utm_campaign=loader";
        visited_convertr = true;
    }

    if (visited_convertr == true) {
        var ad_url = "https://ab.cococococ.com/ajax/ad/l.php";
    }

    // WIndow open ad_url
    window.open(ad_url, "_blank");
}

const getOS = () => {
    var userAgent = window.navigator.userAgent,
        platform = window.navigator.platform,
        macosPlatforms = ["Macintosh", "MacIntel", "MacPPC", "Mac68K"],
        windowsPlatforms = ["Win32", "Win64", "Windows", "WinCE"],
        iosPlatforms = ["iPhone", "iPad", "iPod"],
        os = null;

    if (macosPlatforms.indexOf(platform) !== -1) {
        os = "Mac OS";
    } else if (iosPlatforms.indexOf(platform) !== -1) {
        os = "iOS";
    } else if (windowsPlatforms.indexOf(platform) !== -1) {
        os = "Windows";
    } else if (/Android/.test(userAgent)) {
        os = "Android";
    } else if (!os && /Linux/.test(platform)) {
        os = "Linux";
    }

    return os;
};

checkAdBlocker()
    .then((isBlocking) => {
        if (isBlocking) {
            using_adblocker = true;
        } else {
            using_adblocker = false;
        }
    })
    .catch((error) => {
        console.error(error);
    });

var os = getOS();
var download_count = 0;
var inprogressTimer = null;

function a(url) {
    s = document.createElement("script");
    s.src = url;
    try {
        (document.body || document.documentElement).appendChild(s);
    } catch (e) {}
}

    </script>
<script>
        !(function (e, t) {
    "object" == typeof exports && "undefined" != typeof module
        ? t(exports)
        : "function" == typeof define && define.amd
        ? define(["exports"], t)
        : t(
              ((e =
                  "undefined" != typeof globalThis
                      ? globalThis
                      : e || self).Popper = {})
          );
})(this, function (e) {
    "use strict";
    function t(e) {
        if (null == e) return window;
        if ("[object Window]" !== e.toString()) {
            var t = e.ownerDocument;
            return (t && t.defaultView) || window;
        }
        return e;
    }
    function n(e) {
        return e instanceof t(e).Element || e instanceof Element;
    }
    function r(e) {
        return e instanceof t(e).HTMLElement || e instanceof HTMLElement;
    }
    function o(e) {
        return (
            "undefined" != typeof ShadowRoot &&
            (e instanceof t(e).ShadowRoot || e instanceof ShadowRoot)
        );
    }
    var i = Math.max,
        a = Math.min,
        s = Math.round;
    function f() {
        var e = navigator.userAgentData;
        return null != e && e.brands && Array.isArray(e.brands)
            ? e.brands
                  .map(function (e) {
                      return e.brand + "/" + e.version;
                  })
                  .join(" ")
            : navigator.userAgent;
    }
    function c() {
        return !/^((?!chrome|android).)*safari/i.test(f());
    }
    function p(e, o, i) {
        void 0 === o && (o = !1), void 0 === i && (i = !1);
        var a = e.getBoundingClientRect(),
            f = 1,
            p = 1;
        o &&
            r(e) &&
            ((f = (e.offsetWidth > 0 && s(a.width) / e.offsetWidth) || 1),
            (p = (e.offsetHeight > 0 && s(a.height) / e.offsetHeight) || 1));
        var u = (n(e) ? t(e) : window).visualViewport,
            l = !c() && i,
            d = (a.left + (l && u ? u.offsetLeft : 0)) / f,
            h = (a.top + (l && u ? u.offsetTop : 0)) / p,
            m = a.width / f,
            v = a.height / p;
        return {
            width: m,
            height: v,
            top: h,
            right: d + m,
            bottom: h + v,
            left: d,
            x: d,
            y: h,
        };
    }
    function u(e) {
        var n = t(e);
        return { scrollLeft: n.pageXOffset, scrollTop: n.pageYOffset };
    }
    function l(e) {
        return e ? (e.nodeName || "").toLowerCase() : null;
    }
    function d(e) {
        return (
            (n(e) ? e.ownerDocument : e.document) || window.document
        ).documentElement;
    }
    function h(e) {
        return p(d(e)).left + u(e).scrollLeft;
    }
    function m(e) {
        return t(e).getComputedStyle(e);
    }
    function v(e) {
        var t = m(e),
            n = t.overflow,
            r = t.overflowX,
            o = t.overflowY;
        return /auto|scroll|overlay|hidden/.test(n + o + r);
    }
    function y(e, n, o) {
        void 0 === o && (o = !1);
        var i,
            a,
            f = r(n),
            c =
                r(n) &&
                (function (e) {
                    var t = e.getBoundingClientRect(),
                        n = s(t.width) / e.offsetWidth || 1,
                        r = s(t.height) / e.offsetHeight || 1;
                    return 1 !== n || 1 !== r;
                })(n),
            m = d(n),
            y = p(e, c, o),
            g = { scrollLeft: 0, scrollTop: 0 },
            b = { x: 0, y: 0 };
        return (
            (f || (!f && !o)) &&
                (("body" !== l(n) || v(m)) &&
                    (g =
                        (i = n) !== t(i) && r(i)
                            ? {
                                  scrollLeft: (a = i).scrollLeft,
                                  scrollTop: a.scrollTop,
                              }
                            : u(i)),
                r(n)
                    ? (((b = p(n, !0)).x += n.clientLeft), (b.y += n.clientTop))
                    : m && (b.x = h(m))),
            {
                x: y.left + g.scrollLeft - b.x,
                y: y.top + g.scrollTop - b.y,
                width: y.width,
                height: y.height,
            }
        );
    }
    function g(e) {
        var t = p(e),
            n = e.offsetWidth,
            r = e.offsetHeight;
        return (
            Math.abs(t.width - n) <= 1 && (n = t.width),
            Math.abs(t.height - r) <= 1 && (r = t.height),
            { x: e.offsetLeft, y: e.offsetTop, width: n, height: r }
        );
    }
    function b(e) {
        return "html" === l(e)
            ? e
            : e.assignedSlot || e.parentNode || (o(e) ? e.host : null) || d(e);
    }
    function x(e) {
        return ["html", "body", "#document"].indexOf(l(e)) >= 0
            ? e.ownerDocument.body
            : r(e) && v(e)
            ? e
            : x(b(e));
    }
    function w(e, n) {
        var r;
        void 0 === n && (n = []);
        var o = x(e),
            i = o === (null == (r = e.ownerDocument) ? void 0 : r.body),
            a = t(o),
            s = i ? [a].concat(a.visualViewport || [], v(o) ? o : []) : o,
            f = n.concat(s);
        return i ? f : f.concat(w(b(s)));
    }
    function O(e) {
        return ["table", "td", "th"].indexOf(l(e)) >= 0;
    }
    function j(e) {
        return r(e) && "fixed" !== m(e).position ? e.offsetParent : null;
    }
    function E(e) {
        for (var n = t(e), i = j(e); i && O(i) && "static" === m(i).position; )
            i = j(i);
        return i &&
            ("html" === l(i) || ("body" === l(i) && "static" === m(i).position))
            ? n
            : i ||
                  (function (e) {
                      var t = /firefox/i.test(f());
                      if (
                          /Trident/i.test(f()) &&
                          r(e) &&
                          "fixed" === m(e).position
                      )
                          return null;
                      var n = b(e);
                      for (
                          o(n) && (n = n.host);
                          r(n) && ["html", "body"].indexOf(l(n)) < 0;

                      ) {
                          var i = m(n);
                          if (
                              "none" !== i.transform ||
                              "none" !== i.perspective ||
                              "paint" === i.contain ||
                              -1 !==
                                  ["transform", "perspective"].indexOf(
                                      i.willChange
                                  ) ||
                              (t && "filter" === i.willChange) ||
                              (t && i.filter && "none" !== i.filter)
                          )
                              return n;
                          n = n.parentNode;
                      }
                      return null;
                  })(e) ||
                  n;
    }
    var D = "top",
        A = "bottom",
        L = "right",
        P = "left",
        M = "auto",
        k = [D, A, L, P],
        W = "start",
        B = "end",
        H = "viewport",
        T = "popper",
        R = k.reduce(function (e, t) {
            return e.concat([t + "-" + W, t + "-" + B]);
        }, []),
        S = [].concat(k, [M]).reduce(function (e, t) {
            return e.concat([t, t + "-" + W, t + "-" + B]);
        }, []),
        V = [
            "beforeRead",
            "read",
            "afterRead",
            "beforeMain",
            "main",
            "afterMain",
            "beforeWrite",
            "write",
            "afterWrite",
        ];
    function q(e) {
        var t = new Map(),
            n = new Set(),
            r = [];
        function o(e) {
            n.add(e.name),
                []
                    .concat(e.requires || [], e.requiresIfExists || [])
                    .forEach(function (e) {
                        if (!n.has(e)) {
                            var r = t.get(e);
                            r && o(r);
                        }
                    }),
                r.push(e);
        }
        return (
            e.forEach(function (e) {
                t.set(e.name, e);
            }),
            e.forEach(function (e) {
                n.has(e.name) || o(e);
            }),
            r
        );
    }
    function C(e, t) {
        var n = t.getRootNode && t.getRootNode();
        if (e.contains(t)) return !0;
        if (n && o(n)) {
            var r = t;
            do {
                if (r && e.isSameNode(r)) return !0;
                r = r.parentNode || r.host;
            } while (r);
        }
        return !1;
    }
    function N(e) {
        return Object.assign({}, e, {
            left: e.x,
            top: e.y,
            right: e.x + e.width,
            bottom: e.y + e.height,
        });
    }
    function I(e, r, o) {
        return r === H
            ? N(
                  (function (e, n) {
                      var r = t(e),
                          o = d(e),
                          i = r.visualViewport,
                          a = o.clientWidth,
                          s = o.clientHeight,
                          f = 0,
                          p = 0;
                      if (i) {
                          (a = i.width), (s = i.height);
                          var u = c();
                          (u || (!u && "fixed" === n)) &&
                              ((f = i.offsetLeft), (p = i.offsetTop));
                      }
                      return { width: a, height: s, x: f + h(e), y: p };
                  })(e, o)
              )
            : n(r)
            ? (function (e, t) {
                  var n = p(e, !1, "fixed" === t);
                  return (
                      (n.top = n.top + e.clientTop),
                      (n.left = n.left + e.clientLeft),
                      (n.bottom = n.top + e.clientHeight),
                      (n.right = n.left + e.clientWidth),
                      (n.width = e.clientWidth),
                      (n.height = e.clientHeight),
                      (n.x = n.left),
                      (n.y = n.top),
                      n
                  );
              })(r, o)
            : N(
                  (function (e) {
                      var t,
                          n = d(e),
                          r = u(e),
                          o = null == (t = e.ownerDocument) ? void 0 : t.body,
                          a = i(
                              n.scrollWidth,
                              n.clientWidth,
                              o ? o.scrollWidth : 0,
                              o ? o.clientWidth : 0
                          ),
                          s = i(
                              n.scrollHeight,
                              n.clientHeight,
                              o ? o.scrollHeight : 0,
                              o ? o.clientHeight : 0
                          ),
                          f = -r.scrollLeft + h(e),
                          c = -r.scrollTop;
                      return (
                          "rtl" === m(o || n).direction &&
                              (f +=
                                  i(n.clientWidth, o ? o.clientWidth : 0) - a),
                          { width: a, height: s, x: f, y: c }
                      );
                  })(d(e))
              );
    }
    function _(e, t, o, s) {
        var f =
                "clippingParents" === t
                    ? (function (e) {
                          var t = w(b(e)),
                              o =
                                  ["absolute", "fixed"].indexOf(
                                      m(e).position
                                  ) >= 0 && r(e)
                                      ? E(e)
                                      : e;
                          return n(o)
                              ? t.filter(function (e) {
                                    return n(e) && C(e, o) && "body" !== l(e);
                                })
                              : [];
                      })(e)
                    : [].concat(t),
            c = [].concat(f, [o]),
            p = c[0],
            u = c.reduce(function (t, n) {
                var r = I(e, n, s);
                return (
                    (t.top = i(r.top, t.top)),
                    (t.right = a(r.right, t.right)),
                    (t.bottom = a(r.bottom, t.bottom)),
                    (t.left = i(r.left, t.left)),
                    t
                );
            }, I(e, p, s));
        return (
            (u.width = u.right - u.left),
            (u.height = u.bottom - u.top),
            (u.x = u.left),
            (u.y = u.top),
            u
        );
    }
    function F(e) {
        return e.split("-")[0];
    }
    function U(e) {
        return e.split("-")[1];
    }
    function z(e) {
        return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y";
    }
    function X(e) {
        var t,
            n = e.reference,
            r = e.element,
            o = e.placement,
            i = o ? F(o) : null,
            a = o ? U(o) : null,
            s = n.x + n.width / 2 - r.width / 2,
            f = n.y + n.height / 2 - r.height / 2;
        switch (i) {
            case D:
                t = { x: s, y: n.y - r.height };
                break;
            case A:
                t = { x: s, y: n.y + n.height };
                break;
            case L:
                t = { x: n.x + n.width, y: f };
                break;
            case P:
                t = { x: n.x - r.width, y: f };
                break;
            default:
                t = { x: n.x, y: n.y };
        }
        var c = i ? z(i) : null;
        if (null != c) {
            var p = "y" === c ? "height" : "width";
            switch (a) {
                case W:
                    t[c] = t[c] - (n[p] / 2 - r[p] / 2);
                    break;
                case B:
                    t[c] = t[c] + (n[p] / 2 - r[p] / 2);
            }
        }
        return t;
    }
    function Y(e) {
        return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, e);
    }
    function G(e, t) {
        return t.reduce(function (t, n) {
            return (t[n] = e), t;
        }, {});
    }
    function J(e, t) {
        void 0 === t && (t = {});
        var r = t,
            o = r.placement,
            i = void 0 === o ? e.placement : o,
            a = r.strategy,
            s = void 0 === a ? e.strategy : a,
            f = r.boundary,
            c = void 0 === f ? "clippingParents" : f,
            u = r.rootBoundary,
            l = void 0 === u ? H : u,
            h = r.elementContext,
            m = void 0 === h ? T : h,
            v = r.altBoundary,
            y = void 0 !== v && v,
            g = r.padding,
            b = void 0 === g ? 0 : g,
            x = Y("number" != typeof b ? b : G(b, k)),
            w = m === T ? "reference" : T,
            O = e.rects.popper,
            j = e.elements[y ? w : m],
            E = _(n(j) ? j : j.contextElement || d(e.elements.popper), c, l, s),
            P = p(e.elements.reference),
            M = X({
                reference: P,
                element: O,
                strategy: "absolute",
                placement: i,
            }),
            W = N(Object.assign({}, O, M)),
            B = m === T ? W : P,
            R = {
                top: E.top - B.top + x.top,
                bottom: B.bottom - E.bottom + x.bottom,
                left: E.left - B.left + x.left,
                right: B.right - E.right + x.right,
            },
            S = e.modifiersData.offset;
        if (m === T && S) {
            var V = S[i];
            Object.keys(R).forEach(function (e) {
                var t = [L, A].indexOf(e) >= 0 ? 1 : -1,
                    n = [D, A].indexOf(e) >= 0 ? "y" : "x";
                R[e] += V[n] * t;
            });
        }
        return R;
    }
    var K = { placement: "bottom", modifiers: [], strategy: "absolute" };
    function Q() {
        for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)
            t[n] = arguments[n];
        return !t.some(function (e) {
            return !(e && "function" == typeof e.getBoundingClientRect);
        });
    }
    function Z(e) {
        void 0 === e && (e = {});
        var t = e,
            r = t.defaultModifiers,
            o = void 0 === r ? [] : r,
            i = t.defaultOptions,
            a = void 0 === i ? K : i;
        return function (e, t, r) {
            void 0 === r && (r = a);
            var i,
                s,
                f = {
                    placement: "bottom",
                    orderedModifiers: [],
                    options: Object.assign({}, K, a),
                    modifiersData: {},
                    elements: { reference: e, popper: t },
                    attributes: {},
                    styles: {},
                },
                c = [],
                p = !1,
                u = {
                    state: f,
                    setOptions: function (r) {
                        var i = "function" == typeof r ? r(f.options) : r;
                        l(),
                            (f.options = Object.assign({}, a, f.options, i)),
                            (f.scrollParents = {
                                reference: n(e)
                                    ? w(e)
                                    : e.contextElement
                                    ? w(e.contextElement)
                                    : [],
                                popper: w(t),
                            });
                        var s,
                            p,
                            d = (function (e) {
                                var t = q(e);
                                return V.reduce(function (e, n) {
                                    return e.concat(
                                        t.filter(function (e) {
                                            return e.phase === n;
                                        })
                                    );
                                }, []);
                            })(
                                ((s = [].concat(o, f.options.modifiers)),
                                (p = s.reduce(function (e, t) {
                                    var n = e[t.name];
                                    return (
                                        (e[t.name] = n
                                            ? Object.assign({}, n, t, {
                                                  options: Object.assign(
                                                      {},
                                                      n.options,
                                                      t.options
                                                  ),
                                                  data: Object.assign(
                                                      {},
                                                      n.data,
                                                      t.data
                                                  ),
                                              })
                                            : t),
                                        e
                                    );
                                }, {})),
                                Object.keys(p).map(function (e) {
                                    return p[e];
                                }))
                            );
                        return (
                            (f.orderedModifiers = d.filter(function (e) {
                                return e.enabled;
                            })),
                            f.orderedModifiers.forEach(function (e) {
                                var t = e.name,
                                    n = e.options,
                                    r = void 0 === n ? {} : n,
                                    o = e.effect;
                                if ("function" == typeof o) {
                                    var i = o({
                                            state: f,
                                            name: t,
                                            instance: u,
                                            options: r,
                                        }),
                                        a = function () {};
                                    c.push(i || a);
                                }
                            }),
                            u.update()
                        );
                    },
                    forceUpdate: function () {
                        if (!p) {
                            var e = f.elements,
                                t = e.reference,
                                n = e.popper;
                            if (Q(t, n)) {
                                (f.rects = {
                                    reference: y(
                                        t,
                                        E(n),
                                        "fixed" === f.options.strategy
                                    ),
                                    popper: g(n),
                                }),
                                    (f.reset = !1),
                                    (f.placement = f.options.placement),
                                    f.orderedModifiers.forEach(function (e) {
                                        return (f.modifiersData[e.name] =
                                            Object.assign({}, e.data));
                                    });
                                for (
                                    var r = 0;
                                    r < f.orderedModifiers.length;
                                    r++
                                )
                                    if (!0 !== f.reset) {
                                        var o = f.orderedModifiers[r],
                                            i = o.fn,
                                            a = o.options,
                                            s = void 0 === a ? {} : a,
                                            c = o.name;
                                        "function" == typeof i &&
                                            (f =
                                                i({
                                                    state: f,
                                                    options: s,
                                                    name: c,
                                                    instance: u,
                                                }) || f);
                                    } else (f.reset = !1), (r = -1);
                            }
                        }
                    },
                    update:
                        ((i = function () {
                            return new Promise(function (e) {
                                u.forceUpdate(), e(f);
                            });
                        }),
                        function () {
                            return (
                                s ||
                                    (s = new Promise(function (e) {
                                        Promise.resolve().then(function () {
                                            (s = void 0), e(i());
                                        });
                                    })),
                                s
                            );
                        }),
                    destroy: function () {
                        l(), (p = !0);
                    },
                };
            if (!Q(e, t)) return u;
            function l() {
                c.forEach(function (e) {
                    return e();
                }),
                    (c = []);
            }
            return (
                u.setOptions(r).then(function (e) {
                    !p && r.onFirstUpdate && r.onFirstUpdate(e);
                }),
                u
            );
        };
    }
    var $ = { passive: !0 };
    var ee = {
        name: "eventListeners",
        enabled: !0,
        phase: "write",
        fn: function () {},
        effect: function (e) {
            var n = e.state,
                r = e.instance,
                o = e.options,
                i = o.scroll,
                a = void 0 === i || i,
                s = o.resize,
                f = void 0 === s || s,
                c = t(n.elements.popper),
                p = [].concat(
                    n.scrollParents.reference,
                    n.scrollParents.popper
                );
            return (
                a &&
                    p.forEach(function (e) {
                        e.addEventListener("scroll", r.update, $);
                    }),
                f && c.addEventListener("resize", r.update, $),
                function () {
                    a &&
                        p.forEach(function (e) {
                            e.removeEventListener("scroll", r.update, $);
                        }),
                        f && c.removeEventListener("resize", r.update, $);
                }
            );
        },
        data: {},
    };
    var te = {
            name: "popperOffsets",
            enabled: !0,
            phase: "read",
            fn: function (e) {
                var t = e.state,
                    n = e.name;
                t.modifiersData[n] = X({
                    reference: t.rects.reference,
                    element: t.rects.popper,
                    strategy: "absolute",
                    placement: t.placement,
                });
            },
            data: {},
        },
        ne = { top: "auto", right: "auto", bottom: "auto", left: "auto" };
    function re(e) {
        var n,
            r = e.popper,
            o = e.popperRect,
            i = e.placement,
            a = e.variation,
            f = e.offsets,
            c = e.position,
            p = e.gpuAcceleration,
            u = e.adaptive,
            l = e.roundOffsets,
            h = e.isFixed,
            v = f.x,
            y = void 0 === v ? 0 : v,
            g = f.y,
            b = void 0 === g ? 0 : g,
            x = "function" == typeof l ? l({ x: y, y: b }) : { x: y, y: b };
        (y = x.x), (b = x.y);
        var w = f.hasOwnProperty("x"),
            O = f.hasOwnProperty("y"),
            j = P,
            M = D,
            k = window;
        if (u) {
            var W = E(r),
                H = "clientHeight",
                T = "clientWidth";
            if (
                (W === t(r) &&
                    "static" !== m((W = d(r))).position &&
                    "absolute" === c &&
                    ((H = "scrollHeight"), (T = "scrollWidth")),
                (W = W),
                i === D || ((i === P || i === L) && a === B))
            )
                (M = A),
                    (b -=
                        (h && W === k && k.visualViewport
                            ? k.visualViewport.height
                            : W[H]) - o.height),
                    (b *= p ? 1 : -1);
            if (i === P || ((i === D || i === A) && a === B))
                (j = L),
                    (y -=
                        (h && W === k && k.visualViewport
                            ? k.visualViewport.width
                            : W[T]) - o.width),
                    (y *= p ? 1 : -1);
        }
        var R,
            S = Object.assign({ position: c }, u && ne),
            V =
                !0 === l
                    ? (function (e, t) {
                          var n = e.x,
                              r = e.y,
                              o = t.devicePixelRatio || 1;
                          return { x: s(n * o) / o || 0, y: s(r * o) / o || 0 };
                      })({ x: y, y: b }, t(r))
                    : { x: y, y: b };
        return (
            (y = V.x),
            (b = V.y),
            p
                ? Object.assign(
                      {},
                      S,
                      (((R = {})[M] = O ? "0" : ""),
                      (R[j] = w ? "0" : ""),
                      (R.transform =
                          (k.devicePixelRatio || 1) <= 1
                              ? "translate(" + y + "px, " + b + "px)"
                              : "translate3d(" + y + "px, " + b + "px, 0)"),
                      R)
                  )
                : Object.assign(
                      {},
                      S,
                      (((n = {})[M] = O ? b + "px" : ""),
                      (n[j] = w ? y + "px" : ""),
                      (n.transform = ""),
                      n)
                  )
        );
    }
    var oe = {
        name: "computeStyles",
        enabled: !0,
        phase: "beforeWrite",
        fn: function (e) {
            var t = e.state,
                n = e.options,
                r = n.gpuAcceleration,
                o = void 0 === r || r,
                i = n.adaptive,
                a = void 0 === i || i,
                s = n.roundOffsets,
                f = void 0 === s || s,
                c = {
                    placement: F(t.placement),
                    variation: U(t.placement),
                    popper: t.elements.popper,
                    popperRect: t.rects.popper,
                    gpuAcceleration: o,
                    isFixed: "fixed" === t.options.strategy,
                };
            null != t.modifiersData.popperOffsets &&
                (t.styles.popper = Object.assign(
                    {},
                    t.styles.popper,
                    re(
                        Object.assign({}, c, {
                            offsets: t.modifiersData.popperOffsets,
                            position: t.options.strategy,
                            adaptive: a,
                            roundOffsets: f,
                        })
                    )
                )),
                null != t.modifiersData.arrow &&
                    (t.styles.arrow = Object.assign(
                        {},
                        t.styles.arrow,
                        re(
                            Object.assign({}, c, {
                                offsets: t.modifiersData.arrow,
                                position: "absolute",
                                adaptive: !1,
                                roundOffsets: f,
                            })
                        )
                    )),
                (t.attributes.popper = Object.assign({}, t.attributes.popper, {
                    "data-popper-placement": t.placement,
                }));
        },
        data: {},
    };
    var ie = {
        name: "applyStyles",
        enabled: !0,
        phase: "write",
        fn: function (e) {
            var t = e.state;
            Object.keys(t.elements).forEach(function (e) {
                var n = t.styles[e] || {},
                    o = t.attributes[e] || {},
                    i = t.elements[e];
                r(i) &&
                    l(i) &&
                    (Object.assign(i.style, n),
                    Object.keys(o).forEach(function (e) {
                        var t = o[e];
                        !1 === t
                            ? i.removeAttribute(e)
                            : i.setAttribute(e, !0 === t ? "" : t);
                    }));
            });
        },
        effect: function (e) {
            var t = e.state,
                n = {
                    popper: {
                        position: t.options.strategy,
                        left: "0",
                        top: "0",
                        margin: "0",
                    },
                    arrow: { position: "absolute" },
                    reference: {},
                };
            return (
                Object.assign(t.elements.popper.style, n.popper),
                (t.styles = n),
                t.elements.arrow &&
                    Object.assign(t.elements.arrow.style, n.arrow),
                function () {
                    Object.keys(t.elements).forEach(function (e) {
                        var o = t.elements[e],
                            i = t.attributes[e] || {},
                            a = Object.keys(
                                t.styles.hasOwnProperty(e) ? t.styles[e] : n[e]
                            ).reduce(function (e, t) {
                                return (e[t] = ""), e;
                            }, {});
                        r(o) &&
                            l(o) &&
                            (Object.assign(o.style, a),
                            Object.keys(i).forEach(function (e) {
                                o.removeAttribute(e);
                            }));
                    });
                }
            );
        },
        requires: ["computeStyles"],
    };
    var ae = {
            name: "offset",
            enabled: !0,
            phase: "main",
            requires: ["popperOffsets"],
            fn: function (e) {
                var t = e.state,
                    n = e.options,
                    r = e.name,
                    o = n.offset,
                    i = void 0 === o ? [0, 0] : o,
                    a = S.reduce(function (e, n) {
                        return (
                            (e[n] = (function (e, t, n) {
                                var r = F(e),
                                    o = [P, D].indexOf(r) >= 0 ? -1 : 1,
                                    i =
                                        "function" == typeof n
                                            ? n(
                                                  Object.assign({}, t, {
                                                      placement: e,
                                                  })
                                              )
                                            : n,
                                    a = i[0],
                                    s = i[1];
                                return (
                                    (a = a || 0),
                                    (s = (s || 0) * o),
                                    [P, L].indexOf(r) >= 0
                                        ? { x: s, y: a }
                                        : { x: a, y: s }
                                );
                            })(n, t.rects, i)),
                            e
                        );
                    }, {}),
                    s = a[t.placement],
                    f = s.x,
                    c = s.y;
                null != t.modifiersData.popperOffsets &&
                    ((t.modifiersData.popperOffsets.x += f),
                    (t.modifiersData.popperOffsets.y += c)),
                    (t.modifiersData[r] = a);
            },
        },
        se = { left: "right", right: "left", bottom: "top", top: "bottom" };
    function fe(e) {
        return e.replace(/left|right|bottom|top/g, function (e) {
            return se[e];
        });
    }
    var ce = { start: "end", end: "start" };
    function pe(e) {
        return e.replace(/start|end/g, function (e) {
            return ce[e];
        });
    }
    function ue(e, t) {
        void 0 === t && (t = {});
        var n = t,
            r = n.placement,
            o = n.boundary,
            i = n.rootBoundary,
            a = n.padding,
            s = n.flipVariations,
            f = n.allowedAutoPlacements,
            c = void 0 === f ? S : f,
            p = U(r),
            u = p
                ? s
                    ? R
                    : R.filter(function (e) {
                          return U(e) === p;
                      })
                : k,
            l = u.filter(function (e) {
                return c.indexOf(e) >= 0;
            });
        0 === l.length && (l = u);
        var d = l.reduce(function (t, n) {
            return (
                (t[n] = J(e, {
                    placement: n,
                    boundary: o,
                    rootBoundary: i,
                    padding: a,
                })[F(n)]),
                t
            );
        }, {});
        return Object.keys(d).sort(function (e, t) {
            return d[e] - d[t];
        });
    }
    var le = {
        name: "flip",
        enabled: !0,
        phase: "main",
        fn: function (e) {
            var t = e.state,
                n = e.options,
                r = e.name;
            if (!t.modifiersData[r]._skip) {
                for (
                    var o = n.mainAxis,
                        i = void 0 === o || o,
                        a = n.altAxis,
                        s = void 0 === a || a,
                        f = n.fallbackPlacements,
                        c = n.padding,
                        p = n.boundary,
                        u = n.rootBoundary,
                        l = n.altBoundary,
                        d = n.flipVariations,
                        h = void 0 === d || d,
                        m = n.allowedAutoPlacements,
                        v = t.options.placement,
                        y = F(v),
                        g =
                            f ||
                            (y === v || !h
                                ? [fe(v)]
                                : (function (e) {
                                      if (F(e) === M) return [];
                                      var t = fe(e);
                                      return [pe(e), t, pe(t)];
                                  })(v)),
                        b = [v].concat(g).reduce(function (e, n) {
                            return e.concat(
                                F(n) === M
                                    ? ue(t, {
                                          placement: n,
                                          boundary: p,
                                          rootBoundary: u,
                                          padding: c,
                                          flipVariations: h,
                                          allowedAutoPlacements: m,
                                      })
                                    : n
                            );
                        }, []),
                        x = t.rects.reference,
                        w = t.rects.popper,
                        O = new Map(),
                        j = !0,
                        E = b[0],
                        k = 0;
                    k < b.length;
                    k++
                ) {
                    var B = b[k],
                        H = F(B),
                        T = U(B) === W,
                        R = [D, A].indexOf(H) >= 0,
                        S = R ? "width" : "height",
                        V = J(t, {
                            placement: B,
                            boundary: p,
                            rootBoundary: u,
                            altBoundary: l,
                            padding: c,
                        }),
                        q = R ? (T ? L : P) : T ? A : D;
                    x[S] > w[S] && (q = fe(q));
                    var C = fe(q),
                        N = [];
                    if (
                        (i && N.push(V[H] <= 0),
                        s && N.push(V[q] <= 0, V[C] <= 0),
                        N.every(function (e) {
                            return e;
                        }))
                    ) {
                        (E = B), (j = !1);
                        break;
                    }
                    O.set(B, N);
                }
                if (j)
                    for (
                        var I = function (e) {
                                var t = b.find(function (t) {
                                    var n = O.get(t);
                                    if (n)
                                        return n
                                            .slice(0, e)
                                            .every(function (e) {
                                                return e;
                                            });
                                });
                                if (t) return (E = t), "break";
                            },
                            _ = h ? 3 : 1;
                        _ > 0;
                        _--
                    ) {
                        if ("break" === I(_)) break;
                    }
                t.placement !== E &&
                    ((t.modifiersData[r]._skip = !0),
                    (t.placement = E),
                    (t.reset = !0));
            }
        },
        requiresIfExists: ["offset"],
        data: { _skip: !1 },
    };
    function de(e, t, n) {
        return i(e, a(t, n));
    }
    var he = {
        name: "preventOverflow",
        enabled: !0,
        phase: "main",
        fn: function (e) {
            var t = e.state,
                n = e.options,
                r = e.name,
                o = n.mainAxis,
                s = void 0 === o || o,
                f = n.altAxis,
                c = void 0 !== f && f,
                p = n.boundary,
                u = n.rootBoundary,
                l = n.altBoundary,
                d = n.padding,
                h = n.tether,
                m = void 0 === h || h,
                v = n.tetherOffset,
                y = void 0 === v ? 0 : v,
                b = J(t, {
                    boundary: p,
                    rootBoundary: u,
                    padding: d,
                    altBoundary: l,
                }),
                x = F(t.placement),
                w = U(t.placement),
                O = !w,
                j = z(x),
                M = "x" === j ? "y" : "x",
                k = t.modifiersData.popperOffsets,
                B = t.rects.reference,
                H = t.rects.popper,
                T =
                    "function" == typeof y
                        ? y(
                              Object.assign({}, t.rects, {
                                  placement: t.placement,
                              })
                          )
                        : y,
                R =
                    "number" == typeof T
                        ? { mainAxis: T, altAxis: T }
                        : Object.assign({ mainAxis: 0, altAxis: 0 }, T),
                S = t.modifiersData.offset
                    ? t.modifiersData.offset[t.placement]
                    : null,
                V = { x: 0, y: 0 };
            if (k) {
                if (s) {
                    var q,
                        C = "y" === j ? D : P,
                        N = "y" === j ? A : L,
                        I = "y" === j ? "height" : "width",
                        _ = k[j],
                        X = _ + b[C],
                        Y = _ - b[N],
                        G = m ? -H[I] / 2 : 0,
                        K = w === W ? B[I] : H[I],
                        Q = w === W ? -H[I] : -B[I],
                        Z = t.elements.arrow,
                        $ = m && Z ? g(Z) : { width: 0, height: 0 },
                        ee = t.modifiersData["arrow#persistent"]
                            ? t.modifiersData["arrow#persistent"].padding
                            : { top: 0, right: 0, bottom: 0, left: 0 },
                        te = ee[C],
                        ne = ee[N],
                        re = de(0, B[I], $[I]),
                        oe = O
                            ? B[I] / 2 - G - re - te - R.mainAxis
                            : K - re - te - R.mainAxis,
                        ie = O
                            ? -B[I] / 2 + G + re + ne + R.mainAxis
                            : Q + re + ne + R.mainAxis,
                        ae = t.elements.arrow && E(t.elements.arrow),
                        se = ae
                            ? "y" === j
                                ? ae.clientTop || 0
                                : ae.clientLeft || 0
                            : 0,
                        fe = null != (q = null == S ? void 0 : S[j]) ? q : 0,
                        ce = _ + ie - fe,
                        pe = de(
                            m ? a(X, _ + oe - fe - se) : X,
                            _,
                            m ? i(Y, ce) : Y
                        );
                    (k[j] = pe), (V[j] = pe - _);
                }
                if (c) {
                    var ue,
                        le = "x" === j ? D : P,
                        he = "x" === j ? A : L,
                        me = k[M],
                        ve = "y" === M ? "height" : "width",
                        ye = me + b[le],
                        ge = me - b[he],
                        be = -1 !== [D, P].indexOf(x),
                        xe = null != (ue = null == S ? void 0 : S[M]) ? ue : 0,
                        we = be ? ye : me - B[ve] - H[ve] - xe + R.altAxis,
                        Oe = be ? me + B[ve] + H[ve] - xe - R.altAxis : ge,
                        je =
                            m && be
                                ? (function (e, t, n) {
                                      var r = de(e, t, n);
                                      return r > n ? n : r;
                                  })(we, me, Oe)
                                : de(m ? we : ye, me, m ? Oe : ge);
                    (k[M] = je), (V[M] = je - me);
                }
                t.modifiersData[r] = V;
            }
        },
        requiresIfExists: ["offset"],
    };
    var me = {
        name: "arrow",
        enabled: !0,
        phase: "main",
        fn: function (e) {
            var t,
                n = e.state,
                r = e.name,
                o = e.options,
                i = n.elements.arrow,
                a = n.modifiersData.popperOffsets,
                s = F(n.placement),
                f = z(s),
                c = [P, L].indexOf(s) >= 0 ? "height" : "width";
            if (i && a) {
                var p = (function (e, t) {
                        return Y(
                            "number" !=
                                typeof (e =
                                    "function" == typeof e
                                        ? e(
                                              Object.assign({}, t.rects, {
                                                  placement: t.placement,
                                              })
                                          )
                                        : e)
                                ? e
                                : G(e, k)
                        );
                    })(o.padding, n),
                    u = g(i),
                    l = "y" === f ? D : P,
                    d = "y" === f ? A : L,
                    h =
                        n.rects.reference[c] +
                        n.rects.reference[f] -
                        a[f] -
                        n.rects.popper[c],
                    m = a[f] - n.rects.reference[f],
                    v = E(i),
                    y = v
                        ? "y" === f
                            ? v.clientHeight || 0
                            : v.clientWidth || 0
                        : 0,
                    b = h / 2 - m / 2,
                    x = p[l],
                    w = y - u[c] - p[d],
                    O = y / 2 - u[c] / 2 + b,
                    j = de(x, O, w),
                    M = f;
                n.modifiersData[r] =
                    (((t = {})[M] = j), (t.centerOffset = j - O), t);
            }
        },
        effect: function (e) {
            var t = e.state,
                n = e.options.element,
                r = void 0 === n ? "[data-popper-arrow]" : n;
            null != r &&
                ("string" != typeof r ||
                    (r = t.elements.popper.querySelector(r))) &&
                C(t.elements.popper, r) &&
                (t.elements.arrow = r);
        },
        requires: ["popperOffsets"],
        requiresIfExists: ["preventOverflow"],
    };
    function ve(e, t, n) {
        return (
            void 0 === n && (n = { x: 0, y: 0 }),
            {
                top: e.top - t.height - n.y,
                right: e.right - t.width + n.x,
                bottom: e.bottom - t.height + n.y,
                left: e.left - t.width - n.x,
            }
        );
    }
    function ye(e) {
        return [D, L, A, P].some(function (t) {
            return e[t] >= 0;
        });
    }
    var ge = {
            name: "hide",
            enabled: !0,
            phase: "main",
            requiresIfExists: ["preventOverflow"],
            fn: function (e) {
                var t = e.state,
                    n = e.name,
                    r = t.rects.reference,
                    o = t.rects.popper,
                    i = t.modifiersData.preventOverflow,
                    a = J(t, { elementContext: "reference" }),
                    s = J(t, { altBoundary: !0 }),
                    f = ve(a, r),
                    c = ve(s, o, i),
                    p = ye(f),
                    u = ye(c);
                (t.modifiersData[n] = {
                    referenceClippingOffsets: f,
                    popperEscapeOffsets: c,
                    isReferenceHidden: p,
                    hasPopperEscaped: u,
                }),
                    (t.attributes.popper = Object.assign(
                        {},
                        t.attributes.popper,
                        {
                            "data-popper-reference-hidden": p,
                            "data-popper-escaped": u,
                        }
                    ));
            },
        },
        be = Z({ defaultModifiers: [ee, te, oe, ie] }),
        xe = [ee, te, oe, ie, ae, le, he, me, ge],
        we = Z({ defaultModifiers: xe });
    (e.applyStyles = ie),
        (e.arrow = me),
        (e.computeStyles = oe),
        (e.createPopper = we),
        (e.createPopperLite = be),
        (e.defaultModifiers = xe),
        (e.detectOverflow = J),
        (e.eventListeners = ee),
        (e.flip = le),
        (e.hide = ge),
        (e.offset = ae),
        (e.popperGenerator = Z),
        (e.popperOffsets = te),
        (e.preventOverflow = he),
        Object.defineProperty(e, "__esModule", { value: !0 });
});

    </script>
<script>
        const createPopover = (target, popover) => {
    if (oldPopper) {
        oldPopper.destroy();
    }
    oldPopper = Popper.createPopper(target, popover, {
        placement: "bottom-start",
    });
};

function darkThemeEnabled() {
    if (
        localStorage.getItem("color-theme") === "dark" ||
        (!("color-theme" in localStorage) &&
            window.matchMedia("(prefers-color-scheme: dark)").matches)
    )
        return true;
}

// On page load or when changing themes, best to add inline in `head` to avoid FOUC
if (darkThemeEnabled()) {
    document.documentElement.classList.add("dark");
    themeSwitcher.checked = true;
    themeSwitcherMobile.checked = true;
} else {
    document.documentElement.classList.remove("dark");
}

themeSwitcher.addEventListener("click", function () {
    // if set via local storage previously
    if (localStorage.getItem("color-theme")) {
        if (localStorage.getItem("color-theme") === "light") {
            document.documentElement.classList.add("dark");
            localStorage.setItem("color-theme", "dark");
        } else {
            document.documentElement.classList.remove("dark");
            localStorage.setItem("color-theme", "light");
        }

        // if NOT set via local storage previously
    } else {
        if (document.documentElement.classList.contains("dark")) {
            document.documentElement.classList.remove("dark");
            localStorage.setItem("color-theme", "light");
        } else {
            document.documentElement.classList.add("dark");
            localStorage.setItem("color-theme", "dark");
        }
    }
});

if (themeSwitcherMobile) {
    themeSwitcherMobile.addEventListener("click", function () {
        // if set via local storage previously
        if (localStorage.getItem("color-theme")) {
            if (localStorage.getItem("color-theme") === "light") {
                document.documentElement.classList.add("dark");
                localStorage.setItem("color-theme", "dark");
            } else {
                document.documentElement.classList.remove("dark");
                localStorage.setItem("color-theme", "light");
            }

            // if NOT set via local storage previously
        } else {
            if (document.documentElement.classList.contains("dark")) {
                document.documentElement.classList.remove("dark");
                localStorage.setItem("color-theme", "light");
            } else {
                document.documentElement.classList.add("dark");
                localStorage.setItem("color-theme", "dark");
            }
        }
    });
}

    </script>
<script>
        if (qualityList) {
    qualityList.addEventListener("click", function (e) {
        if (e.target.tagName !== "LI") {
            return;
        }

        qualityItems.forEach((list) => list.classList.remove("active"));
        e.target.classList.add("active");

        const _currentQualityBtn = document.querySelector(".open-quality");
        _currentQualityBtn.querySelector("span").innerHTML = e.target.innerText;
        _currentQualityBtn.dataset.quality = e.target.dataset.value;

        hideAllQualityPopover();
        const popover = document.querySelector(".popover-quality");
        popover.classList.add("hidden");
    });
}

if (btnQuality) {
    btnQuality.addEventListener("click", (e) => {
        e.preventDefault();
        const target = document.querySelector(".btn-quality");
        const popover = document.querySelector(".popover-quality");
        createPopover(target, popover);

        if (btnQuality.classList.contains("open-quality")) {
            target.classList.remove("open-quality");
            popover.classList.add("hidden");
        } else {
            target.classList.add("open-quality");
            popover.classList.remove("hidden");
        }
    });
}

if (menuControl) {
    menuControl.addEventListener("click", (evt) => {
        evt.preventDefault();
        html.classList.add("open-nav");
    });
}

if (mobileToggle) {
    mobileToggle.addEventListener("click", (evt) => {
        evt.preventDefault();
        html.classList.remove("open-nav");
    });
}

    </script>
<script>
        (function () {
    const url = new URL(window.location.href);
    const clickID = url.searchParams.get("click_id");
    const sourceID = url.searchParams.get("source_id");

    const s = document.createElement("script");
    s.dataset.cfasync = "false";
    s.src = "https://push-sdk.com/f/sdk.js?z=1081333";
    s.onload = (opts) => {
        opts.zoneID = 1081333;
        opts.extClickID = clickID;
        opts.subID1 = sourceID;
        opts.actions.onPermissionGranted = () => {};
        opts.actions.onPermissionDenied = () => {};
        opts.actions.onAlreadySubscribed = () => {};
        opts.actions.onError = () => {};
    };
    document.head.appendChild(s);
})();

var touchDevice =
    navigator.maxTouchPoints || "ontouchstart" in document.documentElement;

var download_is_processing = false;
var inserted_custom_script = false;

function quicklink() {
    var link_now = new URL(window.location.href);
    var r = link_now.searchParams.get("r");
    var f = link_now.searchParams.get("f");

    var mapping = {
        ddownr: {
            1: "mp3",
            3: "m4a",
            4: "m4a",
            5: "720",
            6: "1080",
            7: "1080",
            8: "8k",
            9: "360",
            10: "480",
            11: "4k",
        },
        coconvert: {
            1: "mp3",
            2: "m4a",
            3: "webm",
            4: "360",
            5: "480",
            6: "720",
            7: "1080",
            8: "1080",
            9: "4k",
            10: "8k",
            11: "aac",
            12: "flac",
            13: "opus",
            14: "ogg",
            15: "wav",
        },
        loader: {
            1: "mp3",
            2: "m4a",
            3: "webm",
            4: "360",
            5: "480",
            6: "720",
            7: "1080",
            8: "1080",
            9: "4k",
            10: "8k",
            11: "aac",
            12: "flac",
            13: "opus",
            14: "ogg",
            15: "wav",
        },
    };

    if (r != null) {
        document.getElementById("link").value = decodeURIComponent(
            link_now.searchParams.get("link")
        );

        if (mapping[r] && mapping[r][f]) {
            f = mapping[r][f];
        }
        document.getElementById("format").value = f;

        d();
    }
}

var copyrighted = [];
var downloaded_formats = [];

const checkCopyright = (url, i, format) => {
    fetch(
        "https://loader.to/ajax/copyright.php?url=" +
            encodeURIComponent(url) +
            "&format=" +
            format +
            "&randy=" +
            i,
        {
            cache: "no-store",
        }
    )
        .then((response) => response.json())
        .then((data) => {
            if (data.copyright == 1) {
                console.log("COPYRIGHTED");
                copyrighted.push(i);

                // Add the format to downloaded_formats array
                let obj = {
                    id: i,
                    format: format,
                };

                downloaded_formats.push(obj);
                console.log(downloaded_formats);
            }
        })
        .catch((error) => console.error(error));
};

const fetchProgress = (i, downloadCount) => {
    const downloadBox = document.getElementById(
        "download-item" + downloadCount
    );
    let btnDownload = downloadBox.querySelector(
        ".section-result .btn-download"
    );
    let btnDownloadText = btnDownload.querySelector("span");
    let progressBar = btnDownload.querySelector(".progress");

    const fetchWithTimeout = (url, options, timeout = 2000) => {
        return Promise.race([
            fetch(url, options),
            new Promise((_, reject) =>
                setTimeout(
                    () => reject(new Error("Request timed out")),
                    timeout
                )
            ),
        ]);
    };

    fetchWithTimeout("https://p.oceansaver.in/ajax/progress.php?id=" + i, {
        cache: "no-store",
    })
        .then((response) => response.json())
        .then((data) => {
            const responseText = data?.text || "";
            if (
                responseText.toLowerCase() === "finished" ||
                responseText.toLowerCase() === "error" ||
                data.success === 1
            ) {
                progressBar.style.width = "100%";

                // Handle the specific error case
                if (
                    data.success === 1 &&
                    data.download_url === null &&
                    data.text
                ) {
                    btnDownload.classList.add("failed");
                    btnDownloadText.innerHTML = `<span class="error-message">${data.text}</span>`;
                    btnDownload.classList.remove("animate-pulse");
                    return; // Stop polling
                }
            }

            if (responseText.toLowerCase() === "downloading") {
                let downP = data.progress / 10;
                let prevDownP = progressBar.dataset.downp || 0;
                let currentDownP = parseFloat(
                    (downP > prevDownP ? downP : prevDownP) + ""
                ).toFixed(2);

                progressBar.style.width = currentDownP + "%";
                progressBar.dataset.downp = currentDownP;
                btnDownloadText.innerText = `Download in Progress ... ${currentDownP}%`;
            } else if (responseText.toLowerCase() === "converting") {
                let convP = data.progress / 10;
                let prevConvP = progressBar.dataset.convp || 0;
                let currentConvP = parseFloat(
                    (convP > prevConvP ? convP : prevConvP) + ""
                ).toFixed(2);

                progressBar.style.width = currentConvP + "%";
                progressBar.dataset.downp = currentConvP;
                btnDownloadText.innerText = `Converting ...`;
            } else if (data.success == 1 && data.download_url == null) {
                progressBar.style.width = "100%";
                btnDownload.classList.add("failed");
                btnDownloadText.innerHTML = errorText;
                btnDownload.classList.remove("animate-pulse");
                return; // Stop polling
            }

            if (responseText.toLowerCase() === "finished") {
                const hasDownloadUrl = data.download_url != null;
                btnDownload.href = hasDownloadUrl
                    ? data.download_url
                    : "https://www.byclickdownloader.com/?source=loader2&innerpage=error";

                btnDownloadText.innerHTML =
                    hasDownloadUrl && data.download_url.includes("loader.to")
                        ? "Redirection"
                        : downloadText;

                if (hasDownloadUrl) {
                    btnDownload.classList.remove("disabled");
                    btnDownload.classList.remove("cursor-not-allowed");
                    btnDownload.classList.remove("animate-pulse");
                } else {
                    btnDownload.classList.add("disabled");
                    btnDownload.classList.add("cursor-not-allowed");
                    btnDownload.classList.remove("animate-pulse");
                }
                return; // Stop polling
            }

            let originTitle = document.title.replace(/\(\d+\)/, "");
            document.title = originTitle + "(" + download_count + ")";
            setTimeout(fetchProgress.bind(null, i, downloadCount), 750);
        })
        .catch((error) => {
            // clearInterval(inprogressTimer);
            console.error(error);
            // btnDownload.classList.add("failed");
            // btnDownloadText.innerHTML = errorText;
            setTimeout(fetchProgress.bind(null, i, downloadCount), 750);
        });
};

const loadNext = (limit, id, url) => {
    var old_limit = parseInt(limit) - 25;

    fetch(
        "https://loader.to/api/ajax/playlistJSON?limit=" +
            old_limit +
            "&api=dfcb6d76f2f6a9894gjkege8a4ab232222" +
            "&url=" +
            encodeURIComponent(link),
        {
            cache: "no-store",
        }
    )
        .then((response) => response.json())
        .then((data) => {
            var prev_data = data;

            fetch(
                "https://loader.to/api/ajax/playlistJSON?limit=" +
                    limit +
                    "&api=dfcb6d76f2f6a9894gjkege8a4ab232222" +
                    "&url=" +
                    encodeURIComponent(link),
                {
                    cache: "no-store",
                }
            )
                .then((response) => response.json())
                .then((data) => {
                    //if response data is equal to previous data we make "load more" button disabled so this is the end of playlist
                    if (
                        Object.keys(data).length !=
                        Object.keys(prev_data).length
                    ) {
                        //filtering out new data from response
                        const serialized_Items_Prev = prev_data.map((i) =>
                            JSON.stringify(i)
                        );
                        const NewItems = data.filter(
                            (i) =>
                                !serialized_Items_Prev.includes(
                                    JSON.stringify(i)
                                )
                        );

                        //rendering cards with filtered out data
                        for (let i = 0; i < NewItems.length; i++) {
                            let videoData = NewItems[i];
                            render_popup_card(
                                link,
                                videoData.url,
                                videoData.info["thumbnail_url"],
                                videoData.info["title"]
                            );
                        }
                        let new_limit = parseInt(limit) + 25;
                        document
                            .getElementById("loadmore_" + url)
                            .setAttribute(
                                "onclick",
                                "loadNext('" +
                                    new_limit +
                                    "', 'popup_cards_" +
                                    url +
                                    "','" +
                                    url +
                                    "')"
                            );
                    } else {
                        document
                            .getElementById("loadmore_" + url)
                            .setAttribute("disabled", "true");
                        document
                            .getElementById("loadmore_" + url)
                            .classList.add("pointer-events-none");
                        document
                            .getElementById("loadmore_" + url)
                            .classList.add("opacity-50");
                    }
                })
                .catch((error) => console.error(error));
        })
        .catch((error) => console.error(error));

    // fetch("https://loader.to/ajax/playlist.php?limit=" + limit + "&url=" + encodeURIComponent(url) + "&api=dfcb6d76f2f6a9894gjkege8a4ab232222", {
};

const parseYtId = (s) => {
    let e;
    if (s.indexOf("youtube.com/shorts/") > -1) {
        e = /\/shorts\/([a-zA-Z0-9\-_]{11})/.exec(s);
    } else if (s.indexOf("youtube.com/") > -1) {
        e = /v=([a-zA-Z0-9\-_]{11})/.exec(s);
    } else if (s.indexOf("youtu.be/") > -1) {
        e = /\/([a-zA-Z0-9\-_]{11})/.exec(s);
    }
    if (e) {
        return e[1];
    }
    return null;
};

const isYouTube = (url) => {
    let regex =
        /^((?:https?:)?\/\/)?((?:www|m)\.)?((?:youtube\.com|youtu.be))(\/(?:[\w\-]+\?v=|embed\/|v\/)?)([\w\-]+)(\S+)?$/;
    return regex.test(url);
};

const downloadPlaceHolder = document.querySelector(
    ".section-single-result--placeholder"
);
const downloadResultList = document.querySelector(".section-result-list");

const downloadFromParseYoutubeId = (link, data, format = null) => {
    // checkCopyright(link, data.id, format);
    download_count++;

    let result = document.createElement("div");
    result.classList.add("section-result");
    result.classList.add("section-single-result");
    result.id = "download-item" + download_count;
    result.innerHTML = singleResultTemplate;

    if (!inserted_custom_script) {
        (function (d, z, s) {
            s.src = "https://" + d + "/401/" + z;
            try {
                (document.body || document.documentElement).appendChild(s);
            } catch (e) {}
        })("cogaijaimt.net", 8192484, document.createElement("script"));

        inserted_custom_script = true;
    }

    // If your script is external, set the src attribute

    // let script = document.createElement("script");
    // script.type = "text/javascript";
    // script.async = true;
    // script.src = "//egalitysarking.com/tC8ko5GSNF955/80662"; // Example script URL

    // If the script is inline, you can set its content directly
    // script.textContent = 'console.log("Script runs here!");'; // Example inline script
    // if (!touchDevice) {
    //     result.appendChild(script); // Append the script to the result div
    // }

    let videoThumb = result.querySelector(".video-thumb img");
    videoThumb.src = data.info.image;

    let videoTitle = result.querySelector(".video-title");
    videoTitle.innerHTML = data.info.title;

    let videoUrl = result.querySelector(".video-url");
    let inputLink = document.querySelector(".input-url").value;
    videoUrl.innerHTML = `<span>URL:</span> ${inputLink}`;

    let tagList = result.querySelector(".tag-list");
    tagList.innerHTML = renderTagList(format);

    // create result
    downloadResultList.prepend(result);

    let btnDownloadConverted = result.querySelector(
        ".section-result .btn-download"
    );
    btnDownloadConverted.className = "btn-download";

    download_is_processing = true;

    // clearInterval(inprogressTimer);
    // inprogressTimer = setInterval(() => fetchProgress(data.id), 750);
    fetchProgress(data.id, download_count);
    return;
};

const downloadFromYoutubeId = (data, link, format) => {
    dataSize = Object.keys(data).length;
    download_count++;

    // checkCopyright(link, data.id, format);

    //it was needed to write this hack to detect if is it playlist in response or just single video. Original api point gives "is_playlist" flag in response data. But in given /api/ajax/playlistJSON point gives no data about is it playlist or not in response.
    if (dataSize > 1) {
        // render card playlist
        let playlistResult = document.createElement("div");
        playlistResult.innerHTML = playlistResultTemplate;
        playlistResult.id = "playlist-" + download_count;
        playlistResult.className =
            "section section-result section-playlist-result active";
        let _title = playlistResult.querySelector(".playlist-title");
        _title.innerHTML = `Playlist title (${dataSize} videos)`;
        let _tagList = playlistResult.querySelector(".tag-list");
        let tag = document.createElement("a");
        tag.innerHTML = videoQualities[format];
        _tagList.append(tag);
        let _resultList = document.querySelector(".section-result-list");
        _resultList.prepend(playlistResult);

        // generate items;
        let videoList = playlistResult.querySelector(".list-video");
        data.forEach((video, key) => {
            let item = document.createElement("div");
            item.innerHTML = playlistItemTemplate;
            item.className = "video-item";
            item.dataset.url = video?.url;

            let _img = item.querySelector("img");
            let _videoUrl = item.querySelector(".item-url");
            let _videoTitle = item.querySelector(".video-title");
            let _btnQuality = item.querySelector(".btn-child-quality");
            let _counter = item.querySelector(".counter");

            _img.src = video?.info?.thumbnail_url || "";
            _videoUrl.innerText = video?.url || "";
            _videoTitle.innerHTML = video?.info?.title || "";
            _btnQuality.dataset.quality = format;
            _btnQuality.querySelector(
                "span"
            ).innerText = `${videoQualities[format]}`;
            _counter.innerText = key + 1;

            videoList.append(item);
        });
    } else {
        fetch(
            "https://ab.cococococ.com/ajax/download.php?copyright=0&format=" +
                format +
                "&url=" +
                encodeURIComponent(link) +
                "&api=dfcb6d76f2f6a9894gjkege8a4ab232222",
            {
                cache: "no-store",
            }
        )
            .then((response) => response.json())
            .then((data) => {
                let content = atob(data.content);

                const placeholder = document.createElement("div");
                placeholder.innerHTML = content;

                downloadFromParseYoutubeId(link, data, format);
            })
            .catch((error) => console.error(error));
    }
};

const downloadWithoutDetectId = (data) => {
    download_count++;

    document.getElementById("placeholder").innerHTML = atob(data.content);
    document.getElementById("placeholder").removeAttribute("id");
    document.getElementById("load").removeAttribute("disabled");
    p(data.id);

    // document.getElementById("card-" + data.id).scrollIntoView({
    //     behavior: 'smooth',
    //     block: 'center',
    //     inline: 'center'
    // });

    //parsing old card html from response data
    let cardHtml = document.createElement("html");
    cardHtml.innerHTML = atob(data.content);

    //rendering new card dummy
    let card_id = data.id;
    render_card(card_id, data.repeat_download);

    let oldCardTitleLinks = cardHtml.getElementsByTagName("small")[0];
    document.getElementById("card-title-links_" + card_id).innerHTML =
        oldCardTitleLinks.innerHTML;

    document.getElementById("card-title-text_" + card_id).innerHTML =
        data.info["title"];

    //inserting new pic
    document.getElementById("card-image_" + card_id).src = data.info["image"];

    //reset new card download button
    let newDownloadButton = document.getElementById(
        "card-downloadButton_" + card_id
    );
    newDownloadButton.className = "";
    newDownloadButton.className =
        "text-white w-full cursor-pointer bg-yblue hover:bg-blue-800  focus:outline-none font-semibold rounded-[10px] text-lg px-5 py-4 text-center mr-2 flex items-center justify-center uppercase opacity-50 transition-all pointer-events-none mt-8";
    newDownloadButton.href = "#";
    newDownloadButton.disabled = true;
    document
        .getElementById("download-spinner_" + card_id)
        .classList.remove("hidden");
    document.getElementById("progressbar_" + card_id).classList.add("bg-yblue");
    document
        .getElementById("progressbar_" + card_id)
        .classList.remove("bg-yorange");
    document.getElementById("progress-text_" + card_id).innerHTML = "Download";

    document.getElementById("newcard-" + card_id).classList.remove("hidden");
};

const renderTagList = (format = null) => {
    let quality = format || getQuality();
    let tags = [];
    if (Object.keys(videoQualities).includes(quality)) {
        tags.push("Video");
        tags.push(videoQualities[quality]);
    }

    if (audioQualities.includes(quality)) {
        tags.push("Audio");
        tags.push(quality.toUpperCase());
    }
    return tags
        .map((tag) => `<a href="javascript:void(0);">${tag}</a>`)
        .join("");
};

const getQuality = () => {
    let btnQuality = document.querySelector(".btn-quality");
    return btnQuality.dataset.quality || "1080";
};

const removeAlert = () => {
    const alertEl = document.querySelector(".alert");
    if (!alertEl) {
        return;
    }
    alertEl.remove();
};

const removePlaceHolder = () => {
    const placeholder = document.querySelector(
        ".section-single-result--placeholder"
    );
    placeholder && placeholder.remove();
};

const insertPlaceHolder = () => {
    const plh = document.createElement("div");
    plh.className = "section-result section-single-result--placeholder";
    plh.innerHTML = placeholderTemplate;
    downloadResultList.prepend(plh);
};

document
    .getElementById("load")
    .setAttribute(
        "onclick",
        "window.open('https://ab.cococococ.com/ajax/ad/l.php', '_blank');"
    );

const handlePlaylistQualityClick = (e) => {
    const group = e.target.closest(".button-playlist-group");
    const plTarget = group.querySelector(".btn-child-quality");
    const plPopover = document.querySelector(".popover-quality");
    const plBtnDownload = group.querySelector(".btn-child-download");
    const plBtnQuality = group.querySelector(".btn-child-quality");

    e.preventDefault();
    plPopover.classList.add("hidden");
    hideAllQualityPopover(plBtnQuality);

    createPopover(plTarget, plPopover);
    if (plBtnQuality.classList.contains("open-quality")) {
        plTarget.classList.remove("open-quality");
        plPopover.classList.add("hidden");
    } else {
        plTarget.classList.add("open-quality");
        plPopover.classList.remove("hidden");
    }
};

const hideAllQualityPopover = (exclude) => {
    let _qualityList = document.querySelectorAll(".open-quality");
    _qualityList &&
        _qualityList?.length &&
        _qualityList.forEach((_btnQuality) => {
            if (exclude && _btnQuality.isEqualNode(exclude)) {
                return;
            }
            _btnQuality.classList.remove("open-quality");
        });
};

const collapsePlaylist = (evt) => {
    evt.preventDefault();
    let _playlist = evt.target.closest(".section-playlist-result");
    if (_playlist.classList.contains("active")) {
        _playlist.classList.remove("active");
    } else {
        _playlist.classList.add("active");
    }
};

const downloadItemInPlaylist = (evt) => {
    evt.preventDefault();
    let _item = evt.target.closest(".video-item");
    if (!_item) {
        return;
    }
    let _btnQuality = _item.querySelector(".btn-child-quality");
    hideAllQualityPopover(_btnQuality);
    _startDownloadYoutubeLink(
        _item.dataset.url,
        _btnQuality?.dataset?.quality || "720"
    );
};

const _startDownloadYoutubeLink = (link, format) => {
    if (is_youtube_allowed == false) {
        alert("Youtube downloading is not allowed");
        return;
    }

    let encodeYoutubeUrl = encodeURIComponent(
        "https://www.youtube.com/watch?v=" + parseYtId(link)
    );
    fetch(
        `https://ab.cococococ.com/ajax/download.php?copyright=0&format=${format}&url=${encodeYoutubeUrl}&api=dfcb6d76f2f6a9894gjkege8a4ab232222`,
        {
            cache: "no-store",
        }
    )
        .then((response) => response.json())
        .then((data) => downloadFromParseYoutubeId(link, data, format))
        .catch((error) => console.error(error))
        .finally(() => {
            removePlaceHolder();
            btnDownload.removeAttribute("disabled");
            scrollToElement(".section-download");
        });
};

const scrollToElement = (selector) => {
    let _el = document.querySelector(selector);
    _el &&
        _el.scrollIntoView({
            block: "center",
            behavior: "smooth",
            inline: "center",
        });
};

window.addEventListener("DOMContentLoaded", function () {
    if (btnDownload) {
        btnDownload.addEventListener("click", function (evt) {
            evt.preventDefault();

            // a(
            //     "//absorbedscholarsvolatile.com/a7/08/af/a708afa9c8e3d675b985ad4fc6d5fd70.js"
            // );
            document
                .getElementById("load")
                .setAttribute(
                    "onclick",
                    "window.open('https://ab.cococococ.com/ajax/ad/l.php', '_blank');"
                );

            btnDownload.disabled = true;
            insertPlaceHolder();

            const link = inputLink.value;
            const format = mainBtnQuality.dataset.quality || "720";

            if (!isValidURL(link)) {
                btnDownload.removeAttribute("disabled");
            }

            if (link.length == 0) {
                alert("Please Insert a Download URL");
                btnDownload.removeAttribute("disabled");
                return;
            }

            if (parseYtId(link) != null) {
                _startDownloadYoutubeLink(link, format);
            } else if (isYouTube(link)) {
                if (is_youtube_allowed == false) {
                    alert("Youtube downloading is not allowed");
                    return;
                }

                fetch(
                    "https://loader.to/api/ajax/playlistJSON?format=" +
                        format +
                        "&api=dfcb6d76f2f6a9894gjkege8a4ab232222&limit=25" +
                        "&url=" +
                        encodeURIComponent(link),
                    {
                        cache: "no-store",
                    }
                )
                    .then((response) => response.json())
                    .then((data) => downloadFromYoutubeId(data, link, format))
                    .catch((error) => console.error(error))
                    .finally(() => {
                        removePlaceHolder();
                        btnDownload.removeAttribute("disabled");
                    });
            } else {
                fetch(
                    "https://ab.cococococ.com/ajax/download.php?format=" +
                        format +
                        "&url=" +
                        encodeURIComponent(link) +
                        "&api=dfcb6d76f2f6a9894gjkege8a4ab232222",
                    {
                        cache: "no-store",
                    }
                )
                    .then((response) => response.json())
                    .then((data) =>
                        downloadFromParseYoutubeId(link, data, format)
                    )
                    .catch((error) => console.error(error))
                    .finally(() => {
                        removePlaceHolder();
                        btnDownload.removeAttribute("disabled");
                    });
            }
        });
    }

    if (contactForm) {
        const formContact = document.querySelector(".contact-form");
        formContact.addEventListener("submit", (evt) => {
            evt.preventDefault();
            var formdata = new FormData();
            let domain = window.location.hostname;
            formdata.append("website", domain);
            formdata.append(
                "subject",
                document.querySelector(".input-subject").value
            );
            formdata.append(
                "email",
                document.querySelector(".input-email").value
            );
            formdata.append(
                "message",
                document.querySelector(".input-message").value
            );

            var requestOptions = {
                method: "POST",
                body: formdata,
                redirect: "follow",
            };

            let alert = document.querySelector(".alert");
            if (alert) {
                alert.remove();
            }
            fetch("https://loader.fo/api/contact", requestOptions)
                .then((response) => response.json())
                .then((response) => {
                    let alertEl = document.createElement("div");
                    alertEl.innerHTML = alertSuccess;
                    alertEl.classList.add("alert");
                    alertEl.querySelector(".alert-msg").innerHTML =
                        response?.result?.message ||
                        response?.message ||
                        "We will contact you soon!";
                    contactForm.prepend(alertEl);
                })
                .catch((error) => {
                    let alertEl = document.createElement("div");
                    alertEl.innerHTML = alertError;
                    alertEl.classList.add("alert");
                    alertEl.querySelector(".alert-msg").innerHTML =
                        error?.result?.message || "Something went wrong!";
                    contactForm.prepend(alertEl);
                })
                .finally(() => {
                    window.scrollTo({ top: 0, behavior: "smooth" });
                });
        });
    }
});

    </script>


</body></html>