/* Trail de corações que segue o mouse — cursor segue normal.
   Só desktop (pointer fino); respeita prefers-reduced-motion. */
.cursor-trail {
  position: fixed; z-index: 9999; pointer-events: none;
  transform: translate(-50%, -50%);
  animation: trailFade 0.85s ease-out forwards;
  will-change: transform, opacity;
}
@keyframes trailFade {
  0%   { opacity: 0.95; transform: translate(-50%, -50%) scale(1) rotate(var(--r, 0deg)); }
  100% { opacity: 0;    transform: translate(-50%, -150%) scale(0.25) rotate(var(--r, 0deg)); }
}
@media (prefers-reduced-motion: reduce) {
  .cursor-trail { display: none; }
}

/* botão de ligar/desligar o trail (canto inferior esquerdo) */
.trail-toggle {
  position: fixed; left: 14px; bottom: 14px; z-index: 10000;
  width: 36px; height: 36px; border-radius: 50%;
  display: grid; place-items: center;
  background: rgba(0, 0, 0, 0.42); color: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  cursor: pointer; opacity: 0.5;
  transition: opacity 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.trail-toggle:hover { opacity: 1; color: #ff5a68; border-color: rgba(255, 90, 104, 0.4); }
.trail-toggle.off { color: rgba(255, 255, 255, 0.32); }
