/*
 * Theme Custom Styles (Combined)
 */

/* Base Noise Texture generated purely via CSS */
.bg-noise {
    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.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

/* Custom Selection */
::selection {
    background-color: #CCFF00;
    color: #050914;
}

/* Improve text rendering */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Lenis smooth scrolling reset */
html.lenis {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-scrolling iframe {
    pointer-events: none;
}

/* Scrollbar Styling */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #0B1120;
}

::-webkit-scrollbar-thumb {
    background: #1E293B;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #334155;
}

/* Circuit Pattern Background */
.circuit-bg {
    background-image: radial-gradient(#0F2C59 1.5px, transparent 1.5px);
    background-size: 24px 24px;
    opacity: 0.05;
}

.dark .circuit-bg {
    background-image: radial-gradient(#78C258 1.5px, transparent 1.5px);
    opacity: 0.07;
}

.chart-container {
    position: relative;
    height: clamp(250px, 40vh, 400px);
    width: 100%;
}

/* Glassmorphism Utilities */
.glass-panel {
    background: rgba(30, 41, 59, 0.4);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Mobile Menu Transition */
#mobile-menu {
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    max-height: 0;
    opacity: 0;
    overflow: hidden;
}

#mobile-menu.active {
    max-height: 400px;
    opacity: 1;
    padding-top: 1rem;
    padding-bottom: 1rem;
}

/* Hidden class for GSAP initial state */
.gsap-reveal {
    opacity: 0;
    transform: translateY(30px);
}