/* Laser head cursor + click spark effect (desktop only) */

html.has-laser-cursor,
html.has-laser-cursor * {
  cursor: none !important;
}

.laser-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 28px;
  height: 40px;
  margin-left: -14px;
  margin-top: -8px;
  z-index: 99999;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease;
  will-change: transform;
}

.laser-cursor.is-visible {
  opacity: 1;
}

.laser-cursor.is-firing .laser-cursor__svg {
  transform: scale(0.88);
  transition: transform 0.1s ease;
}

.laser-cursor__svg {
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 0 6px rgba(3, 86, 255, 0.85));
  transform-origin: 50% 20%;
  transition: transform 0.12s ease;
}

.laser-cursor.is-hover .laser-cursor__beam {
  stroke: #7eb0ff;
}

.laser-cursor.is-hover {
  filter: drop-shadow(0 0 10px rgba(61, 123, 255, 1));
}

.laser-spark {
  position: fixed;
  width: 6px;
  height: 6px;
  margin: -3px 0 0 -3px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 99998;
  background: #ffb059;
  box-shadow:
    0 0 8px #ff8a3d,
    0 0 14px rgba(3, 86, 255, 0.7);
  animation: laser-spark-fly 0.55s ease-out forwards;
}

.laser-spark--blue {
  background: #4d8dff;
  box-shadow:
    0 0 8px #0356ff,
    0 0 16px rgba(182, 196, 255, 0.8);
}

.laser-flash {
  position: fixed;
  width: 12px;
  height: 12px;
  margin: -6px 0 0 -6px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 99997;
  background: radial-gradient(circle, #e4e7ff 0%, #0356ff 40%, transparent 70%);
  box-shadow: 0 0 24px rgba(3, 86, 255, 0.9);
  animation: laser-flash-pop 0.45s ease-out forwards;
}

.laser-ring {
  position: fixed;
  width: 18px;
  height: 18px;
  margin: -9px 0 0 -9px;
  border: 1.5px solid rgba(61, 123, 255, 0.95);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99996;
  animation: laser-ring-expand 0.5s ease-out forwards;
}

@keyframes laser-spark-fly {
  0% {
    opacity: 1;
    transform: translate(0, 0) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(var(--dx), var(--dy)) scale(0.2);
  }
}

@keyframes laser-flash-pop {
  0% {
    opacity: 1;
    transform: scale(0.4);
  }
  100% {
    opacity: 0;
    transform: scale(2.8);
  }
}

@keyframes laser-ring-expand {
  0% {
    opacity: 0.95;
    transform: scale(0.6);
  }
  100% {
    opacity: 0;
    transform: scale(3.4);
  }
}

@media (hover: none), (pointer: coarse) {
  html.has-laser-cursor,
  html.has-laser-cursor * {
    cursor: auto !important;
  }

  .laser-cursor,
  .laser-spark,
  .laser-flash,
  .laser-ring {
    display: none !important;
  }
}
