/* cursor.css — misure e colori del cursore (variabili: nessun brand) */
:root { --cur-accent: #1f9d63; --cur-on-accent: #fff; --cur-light: #fff; --cur-light-tint: #cfe9dc; }

.cursor { position: fixed; left: 0; top: 0; z-index: 300; pointer-events: none; opacity: 0; transition: opacity .2s; }
.cursor.is-on { opacity: 1; }
.cursor__ring { position: absolute; width: 28px; height: 28px; margin: -14px 0 0 -14px; border: 1.5px solid var(--cur-accent); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  transition: width .25s, height .25s, margin .25s, background-color .25s, border-color .25s; }
.cursor__dot { position: absolute; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: var(--cur-accent); transition: background-color .25s, opacity .2s; }
.cursor__label { font: 600 12px/1 system-ui, sans-serif; color: var(--cur-on-accent); opacity: 0; transition: opacity .2s; white-space: nowrap; }

.cursor.is-link .cursor__ring { width: 46px; height: 46px; margin: -23px 0 0 -23px; background: color-mix(in srgb, var(--cur-accent) 12%, transparent); }
.cursor.is-link .cursor__dot, .cursor.is-label .cursor__dot { opacity: 0; }
.cursor.is-label .cursor__ring { width: 64px; height: 64px; margin: -32px 0 0 -32px; background: var(--cur-accent); }
.cursor.is-label .cursor__label { opacity: 1; }
/* parti animate: pillola ovale piccola, per non coprire l'animazione */
.cursor.is-pill .cursor__ring { width: 54px; height: 24px; margin: -12px 0 0 -27px; border-radius: 999px; }
.cursor.is-pill .cursor__label { font-size: 11px; letter-spacing: .02em; }

/* su fondi scuri */
.cursor.is-light .cursor__ring { border-color: var(--cur-light-tint); }
.cursor.is-light .cursor__dot { background: var(--cur-light); }
.cursor.is-light.is-link .cursor__ring { background: rgba(255,255,255,.12); }
.cursor.is-light.is-label .cursor__ring { background: var(--cur-light); border-color: var(--cur-light); }
.cursor.is-light.is-label .cursor__label { color: #14202a; }

/* il cursore di sistema non si nasconde mai: il custom è un'aggiunta, non una sostituzione */
@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) { .cursor { display: none !important; } }
