/* --- CORE STYLES --- */
body {
    background-color: #050505;
    color: #f3f3f3;
    font-family: 'Montserrat', sans-serif;
    overflow-x: hidden;
    cursor: default;
}

/* Cinematic Grain Overlay */
.noise {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    background-image: url('https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/web/images/texture.png');
    opacity: 0.05;
    pointer-events: none;
    z-index: 50;
}

/* --- TYPOGRAPHY --- */
.text-outline {
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.2);
    color: transparent;
    transition: 0.3s;
}

.group:hover .text-outline {
    color: #D4AF37;
    -webkit-text-stroke: 0px;
}

/* --- IMAGES & REVEALS --- */
.reveal-img {
    clip-path: inset(0 100% 0 0);
    transition: clip-path 1.5s cubic-bezier(0.77, 0, 0.175, 1);
}

.reveal-active .reveal-img {
    clip-path: inset(0 0 0 0);
}

/* --- CUSTOM CURSOR (Desktop Only) --- */
@media (min-width: 1024px) {
    body {
        cursor: none;
    }

    .cursor-ball {
        position: fixed;
        top: 0;
        left: 0;
        width: 12px;
        height: 12px;
        background: #D4AF37;
        border-radius: 50%;
        pointer-events: none;
        z-index: 9999;
        transform: translate(-50%, -50%);
        mix-blend-mode: difference;
        transition: width 0.3s, height 0.3s;
    }

    .cursor-ball.hovered {
        width: 60px;
        height: 60px;
        background: white;
        opacity: 0.1;
    }
}

/* --- SAFETY LOADER (CSS Only Fallback) --- */
#loader {
    animation: fadeOutLoader 0.5s ease-in-out 0.3s forwards;
}

@keyframes fadeOutLoader {
    to {
        opacity: 0;
        pointer-events: none;
        visibility: hidden;
    }
}