html,
body,
body.has-custom-cursor {
  cursor: auto !important;
}

body.has-custom-cursor a,
body.has-custom-cursor button,
body.has-custom-cursor summary,
body.has-custom-cursor [role="button"],
body.has-custom-cursor .nav-link,
body.has-custom-cursor .dropdown-item,
body.has-custom-cursor .portfolio-item,
body.has-custom-cursor .service-card {
  cursor: pointer !important;
}

body.has-custom-cursor input,
body.has-custom-cursor select,
body.has-custom-cursor textarea {
  cursor: auto !important;
}

.site-cursor-aura,
.site-cursor-core {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  opacity: 0;
  z-index: 10000;
  will-change: transform, opacity, width, height;
}

.site-cursor-aura {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(125, 211, 252, 0.62);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(125, 211, 252, 0.16), transparent 62%),
    radial-gradient(circle, rgba(255, 255, 255, 0.1), transparent 42%);
  box-shadow: 0 0 26px rgba(47, 156, 234, 0.28);
  mix-blend-mode: screen;
  transition:
    opacity 0.18s ease,
    width 0.18s ease,
    height 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease;
}

.site-cursor-core {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #7dd3fc;
  box-shadow: 0 0 16px rgba(125, 211, 252, 0.9);
  transition: opacity 0.12s ease;
}

body.site-cursor-visible .site-cursor-aura {
  opacity: 0.9;
}

body.site-cursor-visible .site-cursor-core {
  opacity: 1;
}

body.site-cursor-interactive .site-cursor-aura {
  width: 64px;
  height: 64px;
  border-color: rgba(255, 255, 255, 0.72);
  box-shadow:
    0 0 34px rgba(47, 156, 234, 0.35),
    inset 0 0 18px rgba(125, 211, 252, 0.16);
}

body.site-cursor-interactive .site-cursor-core {
  opacity: 0.55;
}

@media (max-width: 1199px), (pointer: coarse), (prefers-reduced-motion: reduce) {
  .site-cursor-aura,
  .site-cursor-core {
    display: none !important;
  }
}
