/* ========================================== */
/* CUSTOM SCROLLBAR & GLASSMORPHISM           */
/* ========================================== */
::-webkit-scrollbar {
    width: 4px;
}
::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.2);
}
::-webkit-scrollbar-thumb {
    background: rgba(139, 92, 246, 0.5);
    border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
    background: rgba(139, 92, 246, 0.8);
}

.glass-panel {
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Custom Cursor Glow */
#cursor-glow {
    pointer-events: none;
    position: fixed;
    width: 350px;
    height: 350px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(139, 92, 246, 0.15) 0%, rgba(168, 85, 247, 0) 70%);
    transform: translate(-50%, -50%);
    transition: width 0.3s, height 0.3s, opacity 0.3s;
    z-index: 9998;
}

/* 3D Tilt Container */
.tilt-card {
    transform-style: preserve-3d;
    perspective: 1000px;
}

/* Typewriter Cursor */
.typewriter-cursor::after {
    content: '|';
    animation: blink 1s infinite;
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

/* Equalizer Bars */
.eq-bar {
    animation: eqBounce 1.2s ease-in-out infinite alternate;
}
.eq-bar:nth-child(1) { animation-delay: 0.1s; }
.eq-bar:nth-child(2) { animation-delay: 0.3s; }
.eq-bar:nth-child(3) { animation-delay: 0.2s; }
.eq-bar:nth-child(4) { animation-delay: 0.4s; }

@keyframes eqBounce {
    0% { height: 3px; }
    100% { height: 14px; }
}

.is-paused .eq-bar {
    animation-play-state: paused;
    height: 3px !important;
}

/* Ripple Click Animation */
.click-ripple {
    position: fixed;
    border: 2px solid rgba(168, 85, 247, 0.8);
    border-radius: 50%;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(0);
    animation: rippleAnim 0.6s ease-out forwards;
    z-index: 9999;
}

@keyframes rippleAnim {
    to {
        transform: translate(-50%, -50%) scale(3);
        opacity: 0;
    }
}