/*
  Schumann Resonance custom cursor
*/

html.sr-custom-cursor,
html.sr-custom-cursor body.sr-site {
  cursor: none !important;
}

html.sr-custom-cursor body.sr-site a,
html.sr-custom-cursor body.sr-site button,
html.sr-custom-cursor body.sr-site [role="button"],
html.sr-custom-cursor body.sr-site input,
html.sr-custom-cursor body.sr-site textarea,
html.sr-custom-cursor body.sr-site select,
html.sr-custom-cursor body.sr-site label,
html.sr-custom-cursor body.sr-site summary {
  cursor: none !important;
}

.sr-cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.25s ease;
  mix-blend-mode: normal;
}

.sr-cursor.is-visible {
  opacity: 1;
}

.sr-cursor__ring {
  position: absolute;
  width: 38px;
  height: 38px;
  margin: -19px 0 0 -19px;
  border-radius: 50%;
  border: 1.5px solid rgba(56, 189, 248, 0.72);
  box-shadow:
    0 0 18px rgba(56, 189, 248, 0.35),
    inset 0 0 12px rgba(56, 189, 248, 0.12);
  transition: width 0.22s ease, height 0.22s ease, margin 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
  animation: srCursorPulse 7.83s ease-in-out infinite;
}

.sr-cursor__wave {
  position: absolute;
  inset: 7px;
  color: rgba(103, 232, 249, 0.85);
  opacity: 0.9;
  animation: srCursorWaveSpin 12s linear infinite;
}

.sr-cursor__dot {
  position: absolute;
  width: 5px;
  height: 5px;
  margin: -2.5px 0 0 -2.5px;
  border-radius: 50%;
  background: #fde68a;
  box-shadow: 0 0 10px rgba(251, 191, 36, 0.85);
}

.sr-cursor__halo {
  position: absolute;
  width: 56px;
  height: 56px;
  margin: -28px 0 0 -28px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(56, 189, 248, 0.14) 0%, transparent 70%);
  opacity: 0.55;
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.sr-cursor[data-mode="link"] .sr-cursor__ring {
  width: 48px;
  height: 48px;
  margin: -24px 0 0 -24px;
  border-color: rgba(103, 232, 249, 0.92);
}

.sr-cursor[data-mode="cta"] .sr-cursor__ring {
  width: 54px;
  height: 54px;
  margin: -27px 0 0 -27px;
  border-color: rgba(251, 191, 36, 0.95);
  box-shadow:
    0 0 22px rgba(251, 191, 36, 0.42),
    inset 0 0 14px rgba(251, 191, 36, 0.16);
}

.sr-cursor[data-mode="cta"] .sr-cursor__wave {
  color: rgba(253, 230, 138, 0.95);
}

.sr-cursor[data-mode="cta"] .sr-cursor__dot {
  background: #fbbf24;
  box-shadow: 0 0 14px rgba(251, 191, 36, 1);
}

.sr-cursor.is-pressed .sr-cursor__ring {
  transform: scale(0.88);
}

.sr-cursor.is-pressed .sr-cursor__halo {
  opacity: 0.85;
  transform: scale(1.12);
}

@keyframes srCursorPulse {
  0%, 100% { transform: scale(1); opacity: 0.88; }
  50% { transform: scale(1.06); opacity: 1; }
}

@keyframes srCursorWaveSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@media (pointer: coarse), (prefers-reduced-motion: reduce) {
  html.sr-custom-cursor,
  html.sr-custom-cursor body.sr-site,
  html.sr-custom-cursor body.sr-site a,
  html.sr-custom-cursor body.sr-site button {
    cursor: auto !important;
  }

  .sr-cursor {
    display: none !important;
  }
}
