/* ── Motion enhancements: smooth scroll cursor + magnetic hover ── */
/* Loaded on all pages alongside the existing site stylesheet. */

.mx-cursor {
  position: fixed; top: 0; left: 0; width: 8px; height: 8px;
  border-radius: 50%; background: var(--signal, #3a6a9e);
  pointer-events: none; z-index: 9999;
  transform: translate(-50%, -50%);
  transition: width .25s ease, height .25s ease, background .25s ease;
}
.mx-ring {
  position: fixed; top: 0; left: 0; width: 34px; height: 34px;
  border: 1px solid var(--signal, #3a6a9e); border-radius: 50%;
  pointer-events: none; z-index: 9998;
  transform: translate(-50%, -50%);
  transition: width .3s ease, height .3s ease, border-color .3s ease, opacity .3s ease;
}

/* Only show the custom cursor on devices with a real pointer (desktop/trackpad) */
@media (hover: hover) and (pointer: fine) {
  body.mx-ready { cursor: none; }
  body.mx-ready a, body.mx-ready button { cursor: none; }
}
@media (hover: none), (pointer: coarse) {
  .mx-cursor, .mx-ring { display: none !important; }
}

.mx-magnetic { display: inline-block; will-change: transform; }

.mx-cursor-icon {
  position: fixed; top: 0; left: 0; width: 38px; height: 38px;
  pointer-events: none; z-index: 9999;
  transform: translate(-50%, -50%);
  color: #ffffff;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,0.7));
  transition: opacity 0.25s ease;
}
.mx-cursor-icon svg { width: 100%; height: 100%; display: block; }

/* ── Research page: ethereal anomaly over the sky chapter ── */
.mx-orb-wrap {
  position: absolute; inset: 0; pointer-events: none; z-index: 3;
  overflow: hidden;
}
.mx-orb {
  position: absolute; top: 28%; left: 58%;
  width: 130px; height: 130px; border-radius: 50%;
  background: radial-gradient(circle,
    rgba(255,255,255,1) 0%,
    rgba(210,230,255,0.9) 22%,
    rgba(140,175,255,0.55) 45%,
    rgba(90,130,220,0.22) 65%,
    rgba(90,130,220,0) 78%);
  box-shadow:
    0 0 18px 6px rgba(255,255,255,0.5),
    0 0 90px 34px rgba(60,100,200,0.35),
    0 0 160px 70px rgba(20,30,60,0.4);
  filter: blur(1px);
  opacity: 0.95;
}
