.cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 55px;
  height: 55px;
  border: 1px solid var(--bb-kelly,#00c853);
  border-radius: 50%;
  transform: translate(-50%,-50%);
  pointer-events: none;
  z-index: 2147483646;
  transition: width .3s,height .3s,border-color .3s;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 8px rgba(0,200,83,.4);
  background-image: linear-gradient(90deg,var(--bb-kelly,#00c853) 20%,transparent 20%,transparent 80%,var(--bb-kelly,#00c853) 80%),linear-gradient(180deg,var(--bb-kelly,#00c853) 20%,transparent 20%,transparent 80%,var(--bb-kelly,#00c853) 80%);
  background-position: center;
  background-size: 100% 1px,1px 100%;
  background-repeat: no-repeat;
}

.cursor::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 1px;
  border-top: 1px dotted var(--bb-kelly,#00c853);
  opacity: .4;
}

.cursor::after {
  content: '';
  position: absolute;
  height: 100%;
  width: 1px;
  border-left: 1px dotted var(--bb-kelly,#00c853);
  opacity: .4;
}

.cursor-coords {
  position: absolute;
  right: -85px;
  top: -15px;
  font-family: var(--font-code,'JetBrains Mono',monospace);
  font-size: 14px;
  color: var(--bb-kelly,#00c853);
  line-height: 1.4;
  text-transform: uppercase;
  text-shadow: 0 0 5px rgba(0,200,83,.8);
}

.cursor-dot {
  position: fixed;
  top: 0;
  left: 0;
  width: 4px;
  height: 4px;
  background: #fff;
  border-radius: 50%;
  transform: translate(-50%,-50%);
  z-index: 2147483647;
  pointer-events: none;
  box-shadow: 0 0 12px #fff;
}

.cursor.active {
  width: 85px;
  height: 85px;
  background: rgba(0,200,83,.15);
  border-color: #fff;
}

body {
  cursor: none;
}
