/* Custom cursor — flèche SVG dégradée bleu→violet, pur CSS, aux couleurs du site.
   Hotspot sur la pointe (5,3). Fallback natif si SVG cursor non supporté. */

html,
body {
  cursor: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'><defs><linearGradient id='c' x1='0' y1='0' x2='1' y2='1'><stop offset='0' stop-color='%2360a5fa'/><stop offset='1' stop-color='%23a78bfa'/></linearGradient></defs><path d='M5 3 L5 22 L10 17 L13.5 24 L16.5 22.6 L13 16 L20 16 Z' fill='url(%23c)' stroke='%23070910' stroke-width='1.4' stroke-linejoin='round'/></svg>") 5 3, auto;
}

/* Éléments cliquables — main qui pointe, dégradée cyan→violet, aux couleurs du site,
   à la place de la main grise de l'OS. Hotspot sur le bout de l'index (9,3).
   !important pour battre les `cursor:pointer` déclarés en dur dans les pages.
   `.cm-pointer` est posée par cursor.js sur les éléments custom (cf. JS). */
a,
button,
summary,
label[for],
[role="button"],
[onclick],
.proj-card,
.nav-cta,
.lang-btn,
.tt,
.qr-card,
.footer-link,
input[type="submit"],
input[type="button"],
.cm-pointer {
  cursor: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'><defs><linearGradient id='g' gradientUnits='userSpaceOnUse' x1='4' y1='3' x2='21' y2='23'><stop offset='0' stop-color='%2322d3ee'/><stop offset='1' stop-color='%23a78bfa'/></linearGradient></defs><g stroke='%230b0f1a' stroke-width='2' stroke-linejoin='round' fill='%230b0f1a'><rect x='6.5' y='13' width='14.5' height='10' rx='4.5'/><rect x='4' y='13.5' width='4.4' height='5' rx='2.2'/><rect x='6.5' y='2.5' width='4.2' height='13.5' rx='2.1'/><rect x='10.4' y='8.5' width='3.8' height='9.5' rx='1.9'/><rect x='13.6' y='9' width='3.8' height='9' rx='1.9'/><rect x='16.7' y='10.5' width='3.6' height='7.5' rx='1.8'/></g><g fill='url(%23g)'><rect x='6.5' y='13' width='14.5' height='10' rx='4.5'/><rect x='4' y='13.5' width='4.4' height='5' rx='2.2'/><rect x='6.5' y='2.5' width='4.2' height='13.5' rx='2.1'/><rect x='10.4' y='8.5' width='3.8' height='9.5' rx='1.9'/><rect x='13.6' y='9' width='3.8' height='9' rx='1.9'/><rect x='16.7' y='10.5' width='3.6' height='7.5' rx='1.8'/></g></svg>") 9 3, pointer !important;
}

/* Champs de saisie — on garde le curseur texte natif */
input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
textarea,
[contenteditable="true"] {
  cursor: text;
}

/* Pas d'aura : flèche par défaut + main dégradée sur les cliquables, c'est tout.
   cursor.js tague .cm-pointer les éléments cliquables custom (cf. JS). */
