* {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

::-moz-selection {
    background: #CCFF00;
    color: #0a0a0a;
}

::selection {
    background: #CCFF00;
    color: #0a0a0a;
}

[data-scroll-reveal] {
    overflow: hidden;
    clip-path: inset(0 100% 0 0);
    will-change: clip-path;
}

[data-scroll-reveal].revealed {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1.2s cubic-bezier(0.85, 0, 0.15, 1);
}

[data-scroll-reveal].reveal-up {
    transform: translateY(100%);
    transition: transform 1.2s cubic-bezier(0.85, 0, 0.15, 1);
}

[data-scroll-reveal].reveal-up.revealed {
    transform: translateY(0);
}

header[data-nav] {
    transform: translateY(0);
    will-change: transform;
}

header[data-nav].nav-hidden {
    transform: translateY(-100%);
}

[data-marquee] {
    will-change: transform;
    white-space: nowrap;
}

[data-parallax] {
    overflow: hidden;
}

[data-parallax] img {
    will-change: transform;
    transition: transform 0.8s cubic-bezier(0.85, 0, 0.15, 1);
}

.grid-border {
    border-collapse: collapse;
}

.grid-border > * {
    border-right: 1px solid #333;
    border-bottom: 1px solid #333;
}

.grid-border > *:nth-child(4n) {
    border-right: none;
}

@media (max-width: 1023px) {
    .grid-border > *:nth-child(2n) {
        border-right: none;
    }
}

@media (max-width: 767px) {
    .grid-border > * {
        border-right: none;
    }
}

.marquee-container {
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        black 5%,
        black 95%,
        transparent 100%
    );
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        black 5%,
        black 95%,
        transparent 100%
    );
}

@keyframes pulse-dot {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

.animate-pulse-dot {
    animation: pulse-dot 2s cubic-bezier(0.85, 0, 0.15, 1) infinite;
}

input, textarea, button, a, img, div, section, header, footer, nav, main {
    border-radius: 0 !important;
}
