/* 
    High-End Hover Effects System
    Implemented for ZWDevs
*/

:root {
    --spot-x: 50%;
    --spot-y: 50%;
    --spot-size: 0px;
}

/* Base setup for some effects */
.btn, .filter-btn, .glass-btn, .nav-link, .service-link, .project-link {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* 1. PULSE Effect */
.btn-neon:hover {
    animation: neon-pulse 1.5s infinite;
    border-color: #00f2fe;
    color: #fff;
    text-shadow: 0 0 8px rgba(0, 242, 254, 0.8);
}

@keyframes neon-pulse {
    0% {
        box-shadow: 0 0 5px rgba(0, 242, 254, 0.4), 0 0 10px rgba(0, 242, 254, 0.2);
    }
    50% {
        box-shadow: 0 0 20px rgba(0, 242, 254, 0.8), 0 0 30px rgba(0, 242, 254, 0.4);
    }
    100% {
        box-shadow: 0 0 5px rgba(0, 242, 254, 0.4), 0 0 10px rgba(0, 242, 254, 0.2);
    }
}

/* 2. POUR Effect */
.btn-liquid {
    position: relative;
    background: transparent;
    z-index: 1;
    color: inherit;
    border: 1px solid rgba(255,255,255,0.1);
}

.btn-liquid::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 0%;
    background: linear-gradient(180deg, #4f46e5 0%, #06b6d4 100%);
    transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
    z-index: -1;
    border-radius: 50% 50% 0 0;
}

.btn-liquid:hover::before {
    height: 100%;
    border-radius: 0;
}

.btn-liquid:hover {
    transform: translateY(-2px) scale(1.02);
    color: white !important;
    border-color: transparent;
    box-shadow: 0 10px 20px rgba(79, 70, 229, 0.3);
}

/* 3. PULL Effect */
.btn-elastic:hover {
    transform: skewX(-10deg) scale(1.05);
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* 4. OVERLOAD Effect */
.btn-storm:hover {
    animation: glitchShake 0.3s infinite;
    background: #ff0055;
    color: white;
    border-color: #ff0055;
}

@keyframes glitchShake {
    0% { transform: translate(0); }
    20% { transform: translate(-2px, 2px); }
    40% { transform: translate(-2px, -2px); }
    60% { transform: translate(2px, 2px); }
    80% { transform: translate(2px, -2px); }
    100% { transform: translate(0); }
}

/* 5. TILT Effect */
.btn-glass-parent {
    perspective: 1000px;
}

.btn-glass:hover {
    transform: rotateX(15deg) rotateY(10deg);
    box-shadow: 0 20px 40px rgba(0,0,0,0.3);
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
}

/* 6. REVEAL Effect */
.btn-spotlight {
    background: #1a1a1a;
    color: #444;
}

.btn-spotlight::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(255,255,255,0.8) 0%, transparent var(--spot-size));
    pointer-events: none;
    z-index: 2;
    mix-blend-mode: overlay;
    transition: --spot-size 0.3s ease;
}

.btn-spotlight:hover {
    --spot-size: 150px;
}
