#cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 14px;
  height: 14px;
  background: var(--accent);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  transition: width .25s var(--ease), height .25s var(--ease), background .25s;
  will-change: transform;
}

#cursor-follower {
  display: none;
}

body.cursor-hover #cursor {
  width: 20px;
  height: 20px;
}

body.cursor-dark #cursor {
  background: var(--white);
}

body.cursor-on-accent #cursor,
body.cursor-light #cursor {
  background: var(--black);
}

body.cursor-case #cursor {
  width: 46px;
  height: 46px;
  background: var(--accent);
  mix-blend-mode: difference;
}

@media (max-width: 768px), (pointer: coarse) {
  body {
    cursor: auto !important;
  }

  a,
  button,
  input,
  textarea,
  select,
  label {
    cursor: auto !important;
  }

  #cursor,
  #cursor-follower {
    display: none !important;
  }
}
