@keyframes reveal {
            from { opacity: 0; transform: translateY(30px); }
            to { opacity: 1; transform: translateY(0); }
        }
        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }
        @keyframes falling {
            0% { transform: translateY(-20vh); opacity: 0; }
            10% { opacity: 0.5; }
            90% { opacity: 0.5; }
            100% { transform: translateY(100vh); opacity: 0; }
        }
        @keyframes scanline {
            0% { transform: translateY(-100%); }
            100% { transform: translateY(100%); }
        }
        @keyframes glowPulse {
            0%, 100% { box-shadow: 0 0 15px rgba(75, 226, 119, 0.1); }
            50% { box-shadow: 0 0 30px rgba(75, 226, 119, 0.25); }
        }

        /* Obsidian Nexus Falling Pattern Background */
        .falling-pattern {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: -1;
            overflow: hidden;
            background: radial-gradient(circle at 50% 50%, rgb(var(--rr-surface-container-low)) 0%, rgb(var(--rr-background)) 100%);
        }
        .falling-particle {
            position: absolute;
            width: 1px;
            height: 80px;
            background: linear-gradient(to bottom, transparent, #4be277, transparent);
            animation: falling linear infinite;
        }

        .scanline-container {
            position: absolute;
            inset: 0;
            pointer-events: none;
            overflow: hidden;
            z-index: 10;
        }
        .scanline {
            width: 100%;
            height: 100px;
            background: linear-gradient(to bottom, transparent, rgba(75, 226, 119, 0.03), transparent);
            animation: scanline 8s linear infinite;
        }

        .glow-card {
            transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
            background: rgb(var(--rr-surface-container-low) / 0.4);
            border: 1px solid rgba(255, 255, 255, 0.05);
        }
        .glow-card:hover {
            transform: translateY(-8px) scale(1.01);
            background: rgb(var(--rr-surface-container-low) / 0.6);
            border-color: rgba(75, 226, 119, 0.4);
            box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.5), 0 0 20px rgba(75, 226, 119, 0.1);
        }

        .material-symbols-outlined {
            font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
        }
        .glass-panel {
            background: rgb(var(--rr-background) / 0.8);
            backdrop-filter: blur(12px);
            border: 1px solid rgba(255, 255, 255, 0.05);
        }
        .technical-grid {
            background-image: 
                linear-gradient(rgba(75, 226, 119, 0.03) 1px, transparent 1px),
                linear-gradient(90deg, rgba(75, 226, 119, 0.03) 1px, transparent 1px);
            background-size: 50px 50px;
        }
        .nav-link-indicator {
            position: relative;
        }
        .nav-link-indicator::after {
            content: '';
            position: absolute;
            bottom: -4px;
            left: 50%;
            width: 0;
            height: 2px;
            background: #4be277;
            transition: all 0.3s ease;
            transform: translateX(-50%);
        }
        .nav-link-indicator:hover::after {
            width: 100%;
        }
        html {
            scroll-behavior: smooth;
        }
        .code-accent {
            font-family: 'monospace';
            font-size: 10px;
            letter-spacing: 0.2em;
            color: #4be277;
            text-transform: uppercase;
            opacity: 0.4;
        }
        .sidebar-sticky {
            top: 120px;
            max-height: calc(100vh - 160px);
        }
