.project-node-button {
  min-width: 46px;
  min-height: 46px;
  z-index: 4;
  touch-action: manipulation;
}

.project-node-button:hover,
.project-node-button:focus-visible {
  z-index: 25;
}

.project-node-halo,
.project-node-dot,
.project-node-label {
  transition: transform 160ms ease, opacity 160ms ease, box-shadow 160ms ease;
}

.project-node-button:hover .project-node-halo,
.project-node-button:focus-visible .project-node-halo {
  opacity: 0.44 !important;
  transform: scale(1.9);
  box-shadow: 0 0 0 8px var(--globe-marker-halo), 0 8px 22px var(--globe-marker-halo);
}

.project-node-button:hover .project-node-dot,
.project-node-button:focus-visible .project-node-dot {
  opacity: 1 !important;
  transform: translateY(-3px) scale(1.65);
  box-shadow: 0 0 0 2px var(--color-bg), 0 7px 20px var(--globe-marker-halo) !important;
}

.project-node-button:hover .project-node-label,
.project-node-button:focus-visible .project-node-label {
  opacity: 1 !important;
  transform: translateY(-1px);
}

.project-node-button:active .project-node-dot {
  transform: translateY(-1px) scale(1.35);
}

@media (pointer: coarse) {
  .project-node-button {
    min-width: 54px;
    min-height: 54px;
  }

  .project-node-halo {
    opacity: 0.36 !important;
    transform: scale(1.35);
  }
}
