/* ── Custom Cursor ─────────────────────────────────────────── */

/* Default — custom black arrow (32px) */
* { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 20 20'%3E%3Cpath d='M4 1 L16 9 L10.5 11 L8 18 Z' fill='%23111' stroke='%23fff' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") 4 1, auto !important; }

/* Clickable elements — pointer arrow (32px) */
a, button, [role='button'], label, select, summary,
input[type='submit'], input[type='button'], input[type='reset'] {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 22 22'%3E%3Cpath d='M4 1 L18 10 L11.5 12 L9 19 Z' fill='%23111' stroke='%23fff' stroke-width='1.2' stroke-linejoin='round'/%3E%3Ccircle cx='17' cy='17' r='3' fill='%23111'/%3E%3C/svg%3E") 4 1, pointer !important;
}

/* Trailing dot */
#rt-cursor-dot {
  position: fixed;
  top: 0;
  left: 0;
  width: 12px;
  height: 12px;
  background: #111;
  border-radius: 50%;
  pointer-events: none;
  z-index: 999999;
  transform: translate(-50%, -50%);
  will-change: transform;
  transition: opacity 0.3s ease, width 0.15s ease,
              height 0.15s ease, background 0.15s ease;
}

/* Click feedback */
#rt-cursor-dot.rt-clicked {
  width: 8px;
  height: 8px;
  transition: width 0.07s ease, height 0.07s ease;
}

/* Touch devices — restore everything */
@media (hover: none) and (pointer: coarse) {
  * { cursor: auto !important; }
  a, button, [role='button'], label, select, summary,
  input[type='submit'], input[type='button'], input[type='reset'] {
    cursor: pointer !important;
  }
  #rt-cursor-dot { display: none !important; }
}
