:root {
  --jw-cursor-size: 42px;
  --jw-cursor-hover-size: 68px;
  --jw-cursor-dot-size: 6px;
  --jw-cursor-color: #111111;
}

/* Native cursor is hidden only after JavaScript successfully initializes. */
@media (any-pointer: fine) {
  body.jw-custom-cursor-enabled,
  body.jw-custom-cursor-enabled * {
    cursor: none !important;
  }
}

.jw-cursor {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 2147483646;
  width: 0;
  height: 0;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.jw-cursor.is-visible {
  opacity: 1;
  visibility: visible;
}

.jw-cursor__ring,
.jw-cursor__dot {
  position: fixed;
  left: 0;
  top: 0;
  pointer-events: none;
  will-change: transform, width, height, margin;
}

.jw-cursor__ring {
  width: var(--jw-cursor-size);
  height: var(--jw-cursor-size);
  margin-left: calc(var(--jw-cursor-size) / -2);
  margin-top: calc(var(--jw-cursor-size) / -2);
  border: 1px solid var(--jw-cursor-color);
  border-radius: 50%;
  mix-blend-mode: normal;
  transform: translate3d(-100px, -100px, 0);
  transition:
    width 0.32s cubic-bezier(.2,.75,.25,1),
    height 0.32s cubic-bezier(.2,.75,.25,1),
    margin 0.32s cubic-bezier(.2,.75,.25,1),
    background-color 0.25s ease;
}

.jw-cursor__dot {
  width: var(--jw-cursor-dot-size);
  height: var(--jw-cursor-dot-size);
  margin-left: calc(var(--jw-cursor-dot-size) / -2);
  margin-top: calc(var(--jw-cursor-dot-size) / -2);
  border-radius: 50%;
  background: var(--jw-cursor-color);
  mix-blend-mode: normal;
  transform: translate3d(-100px, -100px, 0);
}

/* Only links make the cursor larger. */
.jw-cursor.is-link-hover .jw-cursor__ring {
  width: var(--jw-cursor-hover-size);
  height: var(--jw-cursor-hover-size);
  margin-left: calc(var(--jw-cursor-hover-size) / -2);
  margin-top: calc(var(--jw-cursor-hover-size) / -2);
  background: rgba(17, 17, 17, 0.10);
}

@media (any-pointer: coarse) and (not (any-pointer: fine)) {
  .jw-cursor {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .jw-cursor__ring {
    transition: none;
  }
}
