.spear-project-target-cursor {
  position: fixed;
  z-index: 12000;
  inset: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  contain: strict;
  transition:
    opacity 180ms cubic-bezier(0.4, 0, 0.2, 1),
    visibility 0s linear 180ms;
}

.spear-project-target-cursor.is-active.is-pointer-visible,
.spear-project-target-cursor.is-exiting.is-pointer-visible {
  opacity: 1;
  visibility: visible;
  transition:
    opacity 180ms cubic-bezier(0, 0, 0.2, 1),
    visibility 0s linear 0s;
}

.spear-project-target-cursor__dot,
.spear-project-target-cursor__corner {
  position: absolute;
  top: 0;
  left: 0;
  will-change: transform;
}

.spear-project-target-cursor__dot {
  width: 4px;
  height: 4px;
  margin: -2px 0 0 -2px;
  border-radius: 50%;
  background: rgba(244, 249, 251, 0.98);
  box-shadow:
    0 0 5px rgba(224, 241, 248, 0.58),
    0 0 12px rgba(207, 232, 242, 0.18);
  transition:
    opacity 260ms cubic-bezier(0.4, 0, 0.2, 1),
    filter 180ms cubic-bezier(0.4, 0, 0.2, 1);
}

.spear-project-target-cursor__corner {
  opacity: 1;
  transition: opacity 260ms cubic-bezier(0.4, 0, 0.2, 1);
}

.spear-project-target-cursor.is-exiting .spear-project-target-cursor__dot,
.spear-project-target-cursor.is-exiting .spear-project-target-cursor__corner {
  opacity: 0;
}

.spear-project-target-cursor.is-locked .spear-project-target-cursor__dot {
  opacity: 0.72;
  filter: brightness(1.18);
}

.spear-project-target-cursor.is-exiting.is-locked .spear-project-target-cursor__dot {
  opacity: 0;
}

.spear-project-target-cursor.is-entry-guard .spear-project-target-cursor__dot,
.spear-project-target-cursor.is-entry-guard .spear-project-target-cursor__corner {
  opacity: 0;
  transition: none;
}

.spear-project-target-cursor.is-entry-snap .spear-project-target-cursor__dot,
.spear-project-target-cursor.is-entry-snap .spear-project-target-cursor__corner {
  transition: none;
}

.spear-project-target-cursor__arm {
  position: absolute;
  top: -2px;
  left: 0;
  width: 1px;
  height: 4px;
  border-radius: 0;
  background: rgba(237, 247, 251, 0.96);
  box-shadow:
    0 0 1px rgba(212, 238, 247, 0.28),
    0 0 4px rgba(196, 225, 237, 0.08);
  transform-origin: 0 50%;
  will-change: transform;
}

.spear-project-target-cursor__probe-set.spear-project-target-cursor__probe-set {
  position: absolute !important;
  z-index: 32760;
  inset: 0 !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  overflow: visible;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.spear-project-target-cursor__probe {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  pointer-events: none;
}

.spear-project-target-cursor__probe--tl { top: 0; left: 0; }
.spear-project-target-cursor__probe--tr { top: 0; right: 0; }
.spear-project-target-cursor__probe--br { right: 0; bottom: 0; }
.spear-project-target-cursor__probe--bl { bottom: 0; left: 0; }

.spear-project-target-cursor__probe-host {
  position: relative;
}

.spear-media-gallery__slot.is-hovered
  > .spear-project-target-cursor__probe-set[data-spear-gallery-card-probe] {
  transform: translate3d(0, clamp(-112px, -8vh, -64px), 0);
}

html.has-spear-project-target-cursor,
html.has-spear-project-target-cursor body,
html.has-spear-project-target-cursor #app,
html.has-spear-project-target-cursor #app * {
  cursor: none !important;
}

@media (hover: none), (pointer: coarse) {
  .spear-project-target-cursor {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .spear-project-target-cursor {
    display: none !important;
  }
}
