@media (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html.has-guarana-cursor,
  html.has-guarana-cursor body,
  html.has-guarana-cursor a,
  html.has-guarana-cursor button,
  html.has-guarana-cursor input,
  html.has-guarana-cursor textarea,
  html.has-guarana-cursor select,
  html.has-guarana-cursor summary,
  html.has-guarana-cursor label {
    cursor: none;
  }

  .guarana-cursor {
    --cursor-x: -100px;
    --cursor-y: -100px;
    --cursor-rotation: 0deg;
    position: fixed;
    z-index: 9999;
    top: 0;
    left: 0;
    width: 42px;
    height: 48px;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(var(--cursor-x), var(--cursor-y), 0)
      translate(-50%, -50%) rotate(var(--cursor-rotation)) scale(0.9);
    transition: opacity 140ms ease;
    will-change: transform;
  }

  .guarana-cursor img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    /* rgba(26,26,26) era preto-asfalto, token deletado. Agora e preto-semente. */
    filter: drop-shadow(0 3px 3px rgba(28, 19, 16, 0.18));
    transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
  }

  .guarana-cursor.is-visible { opacity: 1; }
  .guarana-cursor.is-interactive img { transform: scale(1.12) rotate(-5deg); }
  .guarana-cursor.is-pressed img { transform: scale(0.88); }
}
