/* ============================================
   CUSTOM CURSOR
   ============================================ */

.cursor {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9998;
  pointer-events: none;
  mix-blend-mode: difference;
}

.cursor__dot {
  width: 8px;
  height: 8px;
  background: var(--warm-ivory);
  border-radius: 50%;
  position: absolute;
  top: -4px;
  left: -4px;
  transition: transform 0.2s var(--ease-out);
}

.cursor__ring {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(245, 240, 235, 0.5);
  border-radius: 50%;
  position: absolute;
  top: -20px;
  left: -20px;
  transition: width 0.4s var(--ease-smooth),
              height 0.4s var(--ease-smooth),
              top 0.4s var(--ease-smooth),
              left 0.4s var(--ease-smooth),
              border-color 0.3s ease,
              background 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cursor__label {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--warm-ivory);
  opacity: 0;
  transition: opacity 0.3s ease;
  white-space: nowrap;
}

/* States */
.cursor.is-hovering-image .cursor__ring {
  width: 80px;
  height: 80px;
  top: -40px;
  left: -40px;
  border-color: rgba(245, 240, 235, 0.8);
  background: rgba(196, 168, 124, 0.15);
}

.cursor.is-hovering-image .cursor__label {
  opacity: 1;
}

.cursor.is-hovering-image .cursor__dot {
  transform: scale(0);
}

.cursor.is-hovering-link .cursor__ring {
  width: 24px;
  height: 24px;
  top: -12px;
  left: -12px;
  border-color: rgba(245, 240, 235, 0.8);
}

.cursor.is-hovering-link .cursor__dot {
  transform: scale(1.5);
}

/* Only show on desktop with fine pointer */
@media (pointer: fine) and (min-width: 768px) {
  .cursor {
    display: block;
  }
}
