/* ── CUSTOM CURSOR ── */
body, a, button, input, textarea, select, [tabindex], .project-card, .article-row, .btn-call, .btn-resume, .contact-link, .nav-btn, .nav-resume, .filter-btn, .cert-card, .showcase-card, .rec-card, .topic-btn {
  cursor: none !important;
}

.cursor {
  position: fixed;
  width: 8px;
  height: 8px;
  background: var(--purple, #7C3AED);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  transition: width 0.2s, height 0.2s, background 0.2s;
}

.cursor-ring {
  position: fixed;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(124, 58, 237, 0.35);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%, -50%);
  transition: all 0.12s ease;
}

body:has(a:hover) .cursor,
body:has(button:hover) .cursor,
body:has(.project-card:hover) .cursor,
body:has(.article-row:hover) .cursor {
  width: 14px;
  height: 14px;
}

body:has(a:hover) .cursor-ring,
body:has(button:hover) .cursor-ring,
body:has(.project-card:hover) .cursor-ring,
body:has(.article-row:hover) .cursor-ring {
  width: 48px;
  height: 48px;
  border-color: rgba(124, 58, 237, 0.6);
}

body:has(.rec-modal-scroll-frame:hover) .cursor,
body:has(.rec-modal-scroll-frame:hover) .cursor-ring {
  opacity: 0 !important;
  visibility: hidden !important;
}

/* ── TOUCH DEVICE — disable custom cursor ── */
@media (hover: none) and (pointer: coarse) {
  .cursor, .cursor-ring { display: none !important; }
  body, a, button, input, textarea, .nav-btn, .filter-btn, .project-card, .article-row, .btn-call, .btn-resume, .cert-card, .contact-link, .nav-resume, .mobile-close, .nav-mobile-toggle, .topic-btn, .showcase-card, .rec-card { cursor: auto !important; }
}
