/* Global Styles & Customizations */
body {
    font-family: 'Inter', sans-serif;
    background-color: #000;
    color: #d4d4d8;
}

/* Preloader Styles */
#preloader.hidden {
    opacity: 0;
    pointer-events: none;
}

.loader-circle {
    border: 4px solid rgb(55 65 81 / 0.6); /* zinc-700 with opacity */
    border-top: 4px solid #34d399; /* emerald-400 */
    border-radius: 50%;
    width: 50px;
    height: 50px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}


/* CUSTOM SCROLLBAR */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background-color: #18181b; /* zinc-900 */
}
::-webkit-scrollbar-thumb {
    background-color: #52525b; /* zinc-600 */
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background-color: #10b981; /* emerald-500 */
}

/* HIDE CURSOR */
body, a, button, [data-clickable] {
    cursor: none;
}

/* BACKGROUND & GLITCH EFFECT */
@keyframes subtle-pan {
    0% { background-position: 0% 0%; }
    50% { background-position: 10% 5%; }
    100% { background-position: 0% 0%; }
}

.animated-grid-bg {
    background-image:
        linear-gradient(to right, rgba(55, 65, 81, 0.2) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(55, 65, 81, 0.2) 1px, transparent 1px);
    background-size: 3rem 3rem;
    animation: subtle-pan 20s linear infinite;
}

.glitch-hover { position: relative; }
.glitch-hover:hover::before, .glitch-hover:hover::after {
    content: attr(data-text);
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: #000;
    overflow: hidden;
}
.glitch-hover:hover::before {
    left: 2px; text-shadow: -1px 0 #10b981;
    animation: glitch-anim-1 1.5s infinite linear alternate-reverse;
}
.glitch-hover:hover::after {
    left: -2px; text-shadow: -1px 0 #34d399; /* emerald-400 */
    animation: glitch-anim-2 1.5s infinite linear alternate-reverse;
}

@keyframes glitch-anim-1 { 0% { clip-path: inset(15% 0 86% 0); } 25% { clip-path: inset(54% 0 8% 0); } 50% { clip-path: inset(22% 0 54% 0); } 75% { clip-path: inset(89% 0 3% 0); } 100% { clip-path: inset(43% 0 46% 0); } }
@keyframes glitch-anim-2 { 0% { clip-path: inset(78% 0 13% 0); } 25% { clip-path: inset(11% 0 33% 0); } 50% { clip-path: inset(91% 0 4% 0); } 75% { clip-path: inset(34% 0 51% 0); } 100% { clip-path: inset(2% 0 89% 0); } }

/* Fade in on scroll animation */
.fade-in-section {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.fade-in-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}
