/**
 * Tutor Cursor Animation Styles
 * 
 * Visual effects for cursor actions
 */

/* ============================================
   CURSOR ANIMATIONS CONTAINER
   ============================================ */

.cursor-animations-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; /* Don't block canvas interactions */
  z-index: 100; /* Above canvas */
}

/* ============================================
   HIGHLIGHT EFFECT
   ============================================ */

@keyframes cursor-highlight-pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.6;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.8;
  }
}

.cursor-highlight {
  position: absolute;
  border: 3px solid #FFD700;
  border-radius: 50%;
  box-shadow: 
    0 0 20px #FFD700,
    inset 0 0 20px #FFD700;
  animation: cursor-highlight-pulse 2s ease-in-out infinite;
  pointer-events: none;
}

.cursor-highlight.intensity-high {
  border-width: 4px;
  box-shadow: 
    0 0 30px #FFD700,
    inset 0 0 30px #FFD700;
}

.cursor-highlight.intensity-low {
  border-width: 2px;
  box-shadow: 
    0 0 10px #FFD700,
    inset 0 0 10px #FFD700;
}

/* ============================================
   POINT EFFECT (Cursor Arrow)
   ============================================ */

@keyframes cursor-point-bounce {
  0%, 100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-10px) scale(1.2);
  }
}

.cursor-point {
  position: absolute;
  width: 0;
  height: 0;
  border-left: 15px solid transparent;
  border-right: 15px solid transparent;
  border-bottom: 30px solid #FF4500;
  filter: drop-shadow(0 0 10px #FF4500);
  animation: cursor-point-bounce 0.8s ease-in-out infinite;
  pointer-events: none;
}

.cursor-point.style-steady {
  animation: none;
  opacity: 0.9;
}

.cursor-point.style-pulse {
  animation: cursor-point-pulse 0.8s ease-in-out infinite;
}

@keyframes cursor-point-pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.3);
    opacity: 0.7;
  }
}

/* ============================================
   CIRCLE EFFECT
   ============================================ */

@keyframes cursor-circle-expand {
  0% {
    transform: scale(0.5);
    opacity: 0.7;
  }
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}

.cursor-circle {
  position: absolute;
  border: 3px solid #00BFFF;
  border-radius: 50%;
  animation: cursor-circle-expand 1s ease-out forwards;
  pointer-events: none;
}

.cursor-circle.radius-tight {
  width: 50px;
  height: 50px;
}

.cursor-circle.radius-medium {
  width: 80px;
  height: 80px;
}

.cursor-circle.radius-wide {
  width: 120px;
  height: 120px;
}

/* ============================================
   TRACE EFFECT
   ============================================ */

.cursor-trace-path {
  stroke: #32CD32;
  stroke-width: 4;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 5px #32CD32);
  pointer-events: none;
}

@keyframes cursor-trace-draw {
  0% {
    stroke-dashoffset: 1000;
  }
  100% {
    stroke-dashoffset: 0;
  }
}

.cursor-trace-path.animating {
  stroke-dasharray: 1000;
  animation: cursor-trace-draw 2s ease-out forwards;
}

/* ============================================
   UNDERLINE EFFECT
   ============================================ */

@keyframes cursor-underline-draw {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}

.cursor-underline {
  position: absolute;
  height: 3px;
  background: #FF6347;
  box-shadow: 0 0 5px #FF6347;
  animation: cursor-underline-draw 0.5s ease-out forwards;
  pointer-events: none;
}

/* ============================================
   FADE IN/OUT TRANSITIONS
   ============================================ */

.cursor-action-fade-in {
  animation: cursor-fade-in 0.3s ease-out;
}

.cursor-action-fade-out {
  animation: cursor-fade-out 0.3s ease-out forwards;
}

@keyframes cursor-fade-in {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes cursor-fade-out {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(0.8);
  }
}

/* ============================================
   GLOW EFFECTS
   ============================================ */

.cursor-glow-gold {
  box-shadow: 
    0 0 10px #FFD700,
    0 0 20px #FFD700,
    0 0 30px #FFD700;
}

.cursor-glow-blue {
  box-shadow: 
    0 0 10px #00BFFF,
    0 0 20px #00BFFF,
    0 0 30px #00BFFF;
}

.cursor-glow-green {
  box-shadow: 
    0 0 10px #32CD32,
    0 0 20px #32CD32,
    0 0 30px #32CD32;
}

.cursor-glow-red {
  box-shadow: 
    0 0 10px #FF4500,
    0 0 20px #FF4500,
    0 0 30px #FF4500;
}

/* ============================================
   ACCESSIBILITY
   ============================================ */

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .cursor-highlight,
  .cursor-point,
  .cursor-circle,
  .cursor-trace-path,
  .cursor-underline {
    animation: none !important;
  }
  
  .cursor-highlight {
    opacity: 0.6;
  }
  
  .cursor-point {
    opacity: 0.9;
  }
}

/* ============================================
   MOBILE OPTIMIZATIONS
   ============================================ */

@media (max-width: 768px) {
  .cursor-highlight {
    border-width: 2px;
  }
  
  .cursor-point {
    border-left-width: 10px;
    border-right-width: 10px;
    border-bottom-width: 20px;
  }
  
  .cursor-trace-path {
    stroke-width: 3;
  }
}

