/* Cursor personalizado: modelo 3D real (Three.js), acabado pixelado.
   Ver cursor.js para el porqué de cada decisión.

   Progresivo: el cursor nativo del sistema NUNCA se oculta hasta que
   cursor.js confirma que puede dibujar el sustituto (JS activo, dispositivo
   de puntero fino). */

html.qs-cursor-active,
html.qs-cursor-active * {
  cursor: none !important;
}

.qs-cursor-3d {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 2147483000;
  pointer-events: none;
  will-change: transform;
}

.qs-cursor-3d canvas {
  display: block;
  --qs-bounce: 1;
  transform: scale(var(--qs-bounce));
}

@media (max-width: 700px), (hover: none), (pointer: coarse) {
  html.qs-cursor-active,
  html.qs-cursor-active * { cursor: auto !important; }
  .qs-cursor-3d { display: none !important; }
}
