@import url("/assets/css/base/tokens.css");

/* ===== Zerosoft Cursor (dot + trailing ring + ripple) ===== */
.zc-dot,
.zc-ring {
  position: fixed;
  left: 0;
  top: 0;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 2147483646;
  display: none; /* ilk mousemove’e kadar gizli */
  will-change: transform, opacity;
}

/* İç nokta (imleci birebir izler) */
.zc-dot {
  width: var(--zc-dot-size);
  height: var(--zc-dot-size);
  border-radius: 50%;
  background: var(--zc-dot-color);
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.06) inset;
}

/* Dış halka (gecikmeli izler) */
.zc-ring {
  width: var(--zc-ring-size);
  height: var(--zc-ring-size);
  border-radius: 50%;
  border: var(--zc-ring-w) solid var(--zc-ring-color);
  opacity: var(--zc-ring-opa);
  transform: translate(-50%, -50%) scale(1);
  transition: transform 0.18s ease-out; /* tıklama büyümesi için */
}

/* Tıklama dalgası */
.zc-ripple {
  position: fixed;
  left: 0;
  top: 0;
  width: var(--zc-ring-size);
  height: var(--zc-ring-size);
  border-radius: 50%;
  pointer-events: none;
  z-index: 2147483645;
  transform: translate(-50%, -50%) scale(0.5);
  opacity: 0.6;
  border: var(--zc-ring-w) solid var(--zc-ring-color);
  animation: zc-ripple 480ms ease-out forwards;
}
@keyframes zc-ripple {
  to {
    transform: translate(-50%, -50%) scale(2.6);
    opacity: 0;
  }
}

/* Az hareket tercihinde ripple’ı kapat */
@media (prefers-reduced-motion: reduce) {
  .zc-ripple {
    animation: none;
    display: none;
  }
}
@media (pointer: coarse) {
  .zc-dot,
  .zc-ring,
  .zc-ripple {
    display: none;
  }
}
