/* Custom cursor */
body {
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'><circle cx='8' cy='8' r='8' fill='%237C3AED' opacity='0.7'/></svg>"), auto;
}

/* Animation for notification bell */
.fa-bell {
  animation: subtle-pulse 2s infinite;
}

@keyframes subtle-pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); }
  100% { transform: scale(1); }
}

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

::-webkit-scrollbar-track {
  background: #1a1a2e;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(to bottom, #7c3aed, #3b82f6);
  border-radius: 4px;
}

/* Code particles effect for cursor trails */
.code-particle {
  position: absolute;
  pointer-events: none;
  user-select: none;
  opacity: 0.7;
  font-family: monospace;
  font-size: 14px;
  color: #7c3aed;
  z-index: 9999;
  animation: float-up 2s forwards;
}

@keyframes float-up {
  0% { transform: translateY(0) rotate(0); opacity: 0.7; }
  100% { transform: translateY(-100px) rotate(20deg); opacity: 0; }
}

/* Add code particles on mouse move */
document.addEventListener('mousemove', function(e) {
  if (Math.random() > 0.95) {
    const particle = document.createElement('div');
    particle.className = 'code-particle';
    
    // Random code character
    const chars = ['<>', '/>', '{', '}', '()', '=>', '[]', ';;', '&&', '||', '=='];
    particle.textContent = chars[Math.floor(Math.random() * chars.length)];
    
    // Position at cursor
    particle.style.left = `${e.pageX}px`;
    particle.style.top = `${e.pageY}px`;
    
    document.body.appendChild(particle);
    
    // Remove after animation completes
    setTimeout(() => {
      particle.remove();
    }, 2000);
  }
});