.vl-cursor-dot,
.vl-cursor-ring {
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 2147483647;
    opacity: 0;
    transform: translate3d(-50%, -50%, 0);
    transition:
        opacity 160ms cubic-bezier(0.23, 1, 0.32, 1),
        background-color 180ms ease;
    will-change: transform, opacity;
}

.vl-cursor-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #ffffff;
    box-shadow: none;
    mix-blend-mode: difference;
}

.vl-cursor-ring {
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 999px;
    background: #ffffff;
    box-shadow: none;
    mix-blend-mode: difference;
}

html.vl-cursor-ready,
html.vl-cursor-ready body,
html.vl-cursor-ready a,
html.vl-cursor-ready button,
html.vl-cursor-ready [role="button"],
html.vl-cursor-ready [data-cursor],
html.vl-cursor-ready [data-magnetic] {
    cursor: none;
}

html.vl-cursor-ready input,
html.vl-cursor-ready textarea,
html.vl-cursor-ready select,
html.vl-cursor-ready [contenteditable="true"] {
    cursor: auto;
}

html.vl-cursor-visible .vl-cursor-dot,
html.vl-cursor-visible .vl-cursor-ring {
    opacity: 1;
}

html.vl-cursor-hover .vl-cursor-ring {
    background: #ffffff;
}

html.vl-cursor-hover .vl-cursor-dot {
    opacity: 0;
}

/* Bound Tailwind's broad transition-all utility to paint/compositor-safe properties. */
.transition-all {
    transition-property:
        color,
        background-color,
        border-color,
        text-decoration-color,
        fill,
        stroke,
        opacity,
        box-shadow,
        transform,
        filter,
        backdrop-filter !important;
    transition-timing-function: cubic-bezier(0.23, 1, 0.32, 1) !important;
}

.duration-300,
.duration-500,
.duration-700,
.duration-1000 {
    transition-duration: 220ms !important;
}

[data-aos] {
    transition-duration: 260ms !important;
    transition-timing-function: cubic-bezier(0.23, 1, 0.32, 1) !important;
}

[data-aos-delay="300"],
[data-aos-delay="400"],
[data-aos-delay="500"],
[data-aos-delay="600"] {
    transition-delay: 180ms !important;
}

@media (hover: hover) and (pointer: fine) {
    a[href],
    button,
    [role="button"],
    [data-cursor] {
        transition-duration: 180ms;
    }

    a[href]:active,
    button:active,
    [role="button"]:active,
    [data-cursor]:active {
        transform: scale(0.97);
    }

    .hover\:scale-105:hover {
        transform: scale(1.02) !important;
    }

    .group:hover .group-hover\:scale-110 {
        transform: scale(1.025) !important;
    }

    .hover\:-translate-y-1:hover,
    .lift:hover {
        transform: translateY(-3px) !important;
    }
}

@media (max-width: 767px) {
    table {
        display: block;
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    table th,
    table td {
        min-width: 9rem;
    }

    table th:first-child,
    table td:first-child {
        position: sticky;
        left: 0;
        z-index: 1;
        background: #0a0a0a;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 120ms !important;
    }

    .animate-spin,
    .animate-ping,
    .animate-pulse,
    [data-aos] {
        animation: none !important;
        transform: none !important;
    }

    .vl-cursor-dot,
    .vl-cursor-ring {
        display: none;
    }
}

@media (hover: none), (pointer: coarse) {
    .vl-cursor-dot,
    .vl-cursor-ring {
        display: none;
    }

    html.vl-cursor-ready,
    html.vl-cursor-ready body,
    html.vl-cursor-ready a,
    html.vl-cursor-ready button,
    html.vl-cursor-ready [role="button"],
    html.vl-cursor-ready [data-cursor],
    html.vl-cursor-ready [data-magnetic] {
        cursor: auto;
    }

    .hover\:scale-105:hover,
    .group:hover .group-hover\:scale-110,
    .hover\:-translate-y-1:hover,
    .lift:hover {
        transform: none !important;
    }
}
html,
body {
    max-width: 100%;
    overflow-x: clip;
}

.vl-site-footer {
    width: 100%;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    background: #0a0a0a;
}

body.vl-has-generated-footer {
    min-height: 100vh;
    flex-direction: column;
}

.vl-footer-directory {
    width: min(100% - 3rem, 80rem);
    margin: 0 auto;
    padding: 2rem 0;
    color: #94a3b8;
    font-family: inherit;
}

.vl-footer-directory-title {
    margin: 0 0 1rem;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0;
}

.vl-footer-directory-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem 1.125rem;
}

.vl-footer-directory-links a {
    color: #94a3b8;
    font-size: 0.8125rem;
    line-height: 1.5;
    text-decoration: none;
}

.vl-footer-directory-links a:hover,
.vl-footer-directory-links a:focus-visible {
    color: #fff;
}

.vl-footer-directory-copy {
    margin: 1.25rem 0 0;
    color: #64748b;
    font-size: 0.75rem;
}
