/* Custom Cursor Wrapper */
.pxl-cursor {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none; /* Mouse clicks pass directly through */
  z-index: 999999;
  opacity: 0;
  will-change: transform;
  transition: opacity 0.25s ease;
}

.pxl-cursor.is-visible {
  opacity: 1;
}

/* Center Dot: centered at (0, 0) */
.pxl-cursor-dot {
  position: absolute;
  top: 0;
  left: 0;
  width: 6px;
  height: 6px;
  background-color: #2156A4; /* Corporate brand blue */
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.15s ease, background-color 0.2s ease;
}

/* Outer Ring Follower: shares the exact same center origin */
.pxl-cursor-follower {
  position: absolute;
  top: 0;
  left: 0;
  width: 34px;
  height: 34px;
  border: 1.5px solid #2156A4;
  border-radius: 50%;
  background-color: transparent;
  transform: translate(-50%, -50%) scale(1);
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1),
              background-color 0.2s ease,
              border-color 0.2s ease;
}

/* Hover state on links/buttons */
.pxl-cursor.is-hover .pxl-cursor-follower {
  transform: translate(-50%, -50%) scale(1.4);
  background-color: rgba(33, 86, 164, 0.12);
  border-color: #19427E;
}

.pxl-cursor.is-hover .pxl-cursor-dot {
  transform: translate(-50%, -50%) scale(0.6);
}

/* Click press state */
.pxl-cursor.is-active .pxl-cursor-follower {
  transform: translate(-50%, -50%) scale(0.85);
}

/* Hide on mobile/touch screens */
@media (hover: none) and (pointer: coarse) {
  .pxl-cursor {
    display: none !important;
  }
}