/* CUSTOM CURSOR STYLING */
/* CUSTOM CURSOR CONTAINER (JS moves this) */
.custom-cursor {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 9999999;
  transition:
    transform 0.05s linear,
    opacity 0.2s ease;
}

/* CURSOR INNER ELEMENT (Default: Small Circle) */
.cursor-inner {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--accent-green);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  opacity: 1;
  /* KEY TRANSITION: Smoothly animates size, shape, and opacity over 0.3s */
  transition:
    transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    border-radius 0.3s,
    width 0.3s,
    height 0.3s,
    opacity 0.3s,
    box-shadow 0.3s,
    background-color 0.3s;
}
/* STATE A: TEXT HOVER (I-Beam) */
.text-hover .cursor-inner {
  width: 2px;
  height: 24px;
  border-radius: 0;
  transform: translate(5px, -12px);
  /* Center I-beam */
  background-color: var(--color-yellow);
  box-shadow: none;
}
/* STATE B: LINK HOVER (Circuit Node Expansion) */
/* The central circle remains, but gets a massive glow */
.link-hover .cursor-inner {
  width: 40px;
  height: 40px;
  background-color: transparent;
  border: 1.5px solid var(--accent-green);
  box-shadow: none;
  transform: translate(-16px, -16px);
  /* Center the expanded circle */
  border-radius: 50%;
}

/* Pseudo-element for the LEFT Line */
.custom-cursor::before,
.custom-cursor::after {
  display: none; /* Circuit-line pseudo-elements are intentionally disabled. */
}

/* ACTIVATION: Animate on link-hover class */
.link-hover.custom-cursor::before,
.link-hover.custom-cursor::after {
  display: none;
}
/* HIDE DEFAULT CURSOR */
body,
a,
button,
.nav-link {
  cursor: none !important;
}
/* TOUCH DEVICE OVERRIDES */
@media (hover: none) and (pointer: coarse), (max-width: 768px) {
  .custom-cursor {
    display: none !important;
  }

  body,
  a,
  button,
  .nav-link {
    cursor: auto !important;
  }
}
