/* CSS Customizado para Efeitos Premium (Glassmorphism & Animações) */

::selection {
    background-color: #bbf907;
    color: #000;
}

body.menu-open {
    overflow: hidden;
}

/* Textura de Ruído (Noise) para fundo premium */
.noise-bg {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    pointer-events: none;
    z-index: 50;
    opacity: 0.025;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

/* Luzes Ambientes */
.ambient-glow {
    position: fixed;
    border-radius: 50%;
    filter: blur(120px);
    pointer-events: none;
    z-index: 0;
    opacity: 0.4;
}
.glow-1 {
    top: -20vh; left: -10vw;
    width: 70vw; height: 70vw;
    background: radial-gradient(circle, rgba(14, 48, 52, 0.8) 0%, rgba(2,9,10,0) 70%);
}
.glow-2 {
    bottom: -20vh; right: -10vw;
    width: 60vw; height: 60vw;
    background: radial-gradient(circle, rgba(16, 56, 40, 0.5) 0%, rgba(2,9,10,0) 70%);
}

/* Text Gradients */
.text-gradient {
    background: linear-gradient(135deg, #ffffff 0%, #94a3b8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Glassmorphism Classes */
.glass-nav {
    background: rgba(2, 9, 10, 0.7);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.glass-card {
    background: linear-gradient(145deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.01) 100%);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 1.5rem;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.2);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
}

.glass-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border-radius: 1.5rem;
    padding: 1px;
    background: linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0.5;
    transition: opacity 0.4s ease;
    pointer-events: none;
}

.glass-card:hover {
    transform: translateY(-6px);
    background: linear-gradient(145deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.02) 100%);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 20px rgba(196, 255, 0, 0.05);
}

.glass-card:hover::before {
    background: linear-gradient(135deg, rgba(196, 255, 0, 0.4), rgba(255,255,255,0));
    opacity: 1;
}

/* Abstract UI Lines for illustration */
.ui-line {
    background: linear-gradient(90deg, rgba(196,255,0,0) 0%, rgba(196,255,0,0.5) 50%, rgba(196,255,0,0) 100%);
    height: 1px;
    width: 100%;
}

/* Animações de Scroll (Reveal) */
.reveal {
    opacity: 1;
    transform: translateY(0);
}
.reveal-ready .reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.reveal-ready .reveal.active {
    opacity: 1;
    transform: translateY(0);
}
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }

/* Mobile Menu */
#mobile-menu {
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        transition-delay: 0ms !important;
    }

    .reveal-ready .reveal,
    .reveal-ready .reveal.active {
        opacity: 1;
        transform: none;
    }

    .glass-card:hover {
        transform: none;
    }
}
