/* Cursore custom. Per adattarlo a un nuovo sito cambia solo le variabili. */
:root {
  --cursor-color: #fd86d8;       /* colore del punto: rosa Inciucissimo */
  --cursor-ring-color: #fd86d8;  /* colore dell'anello */
  --cursor-label-bg: #fd86d8;    /* sfondo quando mostra un'etichetta */
  --cursor-label-color: #121212; /* testo dell'etichetta (contrasto sul rosa) */
  --cursor-size: 8px;            /* diametro del punto */
  --cursor-ring-size: 36px;      /* diametro dell'anello */
  --cursor-label-size: 84px;     /* diametro del punto in modalità etichetta */
  --cursor-font: inherit;
}

/* Nasconde il cursore di sistema solo quando quello custom è attivo */
html.has-custom-cursor,
html.has-custom-cursor * {
  cursor: none !important;
}

.cursor,
.cursor-ring {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 9999;
  will-change: transform;
  transition: opacity 0.25s ease;
}

.cursor.is-hidden,
.cursor-ring.is-hidden {
  opacity: 0;
}

/* Punto */
.cursor {
  display: grid;
  place-items: center;
  width: var(--cursor-size);
  height: var(--cursor-size);
  border-radius: 50%;
  background: var(--cursor-color);
  transition: width 0.35s cubic-bezier(0.22, 1, 0.36, 1),
              height 0.35s cubic-bezier(0.22, 1, 0.36, 1),
              background-color 0.35s ease,
              opacity 0.25s ease;
}

.cursor__text {
  font-family: var(--cursor-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cursor-label-color);
  white-space: nowrap;
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 0.2s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.cursor.cursor--label {
  width: var(--cursor-label-size);
  height: var(--cursor-label-size);
  background: var(--cursor-label-bg);
}

.cursor.cursor--label .cursor__text {
  opacity: 1;
  transform: scale(1);
}

/* Anello */
.cursor-ring__shape {
  display: block;
  width: var(--cursor-ring-size);
  height: var(--cursor-ring-size);
  border: 1px solid var(--cursor-ring-color);
  border-radius: 50%;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease;
}

/* Con l'etichetta l'anello sparisce: il punto ingrandito prende il suo posto */
.cursor-ring.is-label .cursor-ring__shape {
  transform: scale(0.5);
  opacity: 0;
}

.cursor-ring__shape.is-pulsing {
  animation: cursor-pulse 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes cursor-pulse {
  0%   { transform: scale(1);   opacity: 1; }
  40%  { transform: scale(1.6); opacity: 0.35; }
  100% { transform: scale(1);   opacity: 1; }
}
