/* --- HIDE NATIVE CURSOR --- */
@media (hover: hover) and (pointer: fine) {
    *, html, body, a, button, input, select, textarea, [role="button"] {
        cursor: none !important;
    }
    #custom-cursor-container { display: block !important; }
}

#custom-cursor-container {
    display: none;
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 99999;
}

.glow-cursor {
    position: absolute;
    top: 0;
    left: 0;
    width: 32px;
    height: 32px;
    pointer-events: none;
    
    /* Hardware Acceleration */
    will-change: transform;
    backface-visibility: hidden;
    transform-style: preserve-3d;
    
    filter: drop-shadow(0 0 10px var(--accent-glow));
    opacity: 0;
    
    /* IMPORTANT: No 'transform' transition here. It fights the JS. */
    transition: opacity 0.2s ease, scale 0.2s ease;
}

.cursor-visible { opacity: 1 !important; }

/* Clicking State */
.glow-cursor.clicking {
    scale: 0.85; /* Uses the scale property instead of transform to avoid conflict */
}

/* Click Ripple */
.click-ripple {
    position: fixed;
    border: 2px solid var(--accent-primary);
    background: var(--accent-glow);
    border-radius: 50%;
    pointer-events: none;
    z-index: 99998;
    transform: translate(-50%, -50%);
    animation: ripple-out 0.6s cubic-bezier(0.2, 0, 0.2, 1) forwards;
}

@keyframes ripple-out {
    from { width: 0; height: 0; opacity: 0.5; }
    to { width: 60px; height: 60px; opacity: 0; }
}
