:root {
  --uc-size: 18px;
  --uc-scale: 1;
  --uc-x: 0px;
  --uc-y: 0px;
  --uc-bg: #ffffff;
  --uc-border: rgba(255, 255, 255, 0.7);
  --uc-text: #111111;
  --uc-label-opacity: 0;
  --uc-label-scale: 0.88;
  --uc-ease: cubic-bezier(.2, .9, .2, 1);
}

html.uc-ready,
html.uc-ready * {
  cursor: none !important;
}

html.uc-native,
html.uc-native *,
html.uc-native .uc-cursor,
html.uc-native .uc-cursor * {
  cursor: auto !important;
}

.uc-cursor {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 2147483647;
  width: var(--uc-size);
  height: var(--uc-size);
  pointer-events: none;
  transform:
    translate3d(calc(var(--uc-x) - 50%), calc(var(--uc-y) - 50%), 0)
    scale(var(--uc-scale));
  transform-origin: center;
  border-radius: 999px;
  background: var(--uc-bg);
  border: 1px solid var(--uc-border);
  mix-blend-mode: difference;
  opacity: 0;
  transition:
    width 240ms var(--uc-ease),
    height 240ms var(--uc-ease),
    border-radius 240ms var(--uc-ease),
    background-color 180ms ease,
    border-color 180ms ease,
    opacity 160ms ease,
    transform 90ms linear;
  will-change: transform, width, height, border-radius;
}

html.uc-visible .uc-cursor {
  opacity: 1;
}

.uc-cursor::after {
  content: attr(data-label);
  position: absolute;
  left: 50%;
  top: calc(100% + 11px);
  transform: translateX(-50%) scale(var(--uc-label-scale));
  transform-origin: top center;
  padding: 6px 9px;
  border-radius: 999px;
  background: #ffffff;
  color: #111111;
  font: 700 11px/1 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0.02em;
  white-space: nowrap;
  opacity: var(--uc-label-opacity);
  mix-blend-mode: normal;
  transition:
    opacity 180ms ease,
    transform 220ms var(--uc-ease);
}

.uc-cursor[data-has-label="true"] {
  --uc-label-opacity: 1;
  --uc-label-scale: 1;
}

.uc-cursor[data-state="default"] {
  --uc-size: 14px;
  --uc-scale: 1;
}

.uc-cursor[data-state="link"] {
  --uc-size: 42px;
  --uc-scale: 1;
}

.uc-cursor[data-state="button"] {
  --uc-size: 54px;
  --uc-scale: 1;
}

.uc-cursor[data-state="text"] {
  --uc-size: 74px;
  --uc-scale: 1;
}

.uc-cursor[data-state="media"] {
  --uc-size: 68px;
  --uc-scale: 1;
}

.uc-cursor[data-state="drag"] {
  --uc-size: 60px;
  --uc-scale: 1;
}

.uc-cursor[data-state="success"] {
  --uc-size: 58px;
  --uc-bg: #35ff79;
  --uc-border: rgba(53, 255, 121, .8);
  mix-blend-mode: normal;
}

.uc-cursor[data-state="danger"] {
  --uc-size: 62px;
  --uc-bg: #ff3045;
  --uc-border: rgba(255, 48, 69, .9);
  mix-blend-mode: normal;
}

.uc-cursor[data-state="attention"] {
  --uc-size: 60px;
  --uc-bg: #ffd84d;
  --uc-border: rgba(255, 216, 77, .9);
  mix-blend-mode: normal;
}

.uc-cursor[data-state="wait"] {
  --uc-size: 44px;
  animation: uc-pulse 900ms ease-in-out infinite;
}

.uc-cursor[data-state="disabled"] {
  --uc-size: 44px;
  --uc-bg: rgba(170, 170, 170, .9);
  --uc-border: rgba(170, 170, 170, .9);
  mix-blend-mode: normal;
}

.uc-cursor[data-shape="circle"] {
  border-radius: 999px;
  clip-path: none;
}

.uc-cursor[data-shape="soft"] {
  border-radius: 18px;
  clip-path: none;
}

.uc-cursor[data-shape="triangle"] {
  border-radius: 0;
  border: 0;
  clip-path: polygon(50% 0%, 100% 88%, 0% 88%);
}

.uc-cursor[data-shape="diamond"] {
  border-radius: 8px;
  transform:
    translate3d(calc(var(--uc-x) - 50%), calc(var(--uc-y) - 50%), 0)
    scale(var(--uc-scale))
    rotate(45deg);
}

.uc-cursor[data-shape="cross"] {
  border-radius: 0;
  background: transparent;
  border: 0;
  mix-blend-mode: normal;
}

.uc-cursor[data-shape="cross"]::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(currentColor, currentColor) center / 100% 3px no-repeat,
    linear-gradient(currentColor, currentColor) center / 3px 100% no-repeat;
  color: var(--uc-bg);
}

.uc-cursor.is-down {
  --uc-scale: .78;
}

.uc-cursor.is-hidden {
  opacity: 0 !important;
}

.uc-cursor.is-expanded {
  --uc-scale: 1.35;
}

.uc-cursor.is-waiting {
  animation: uc-pulse 900ms ease-in-out infinite;
}

.uc-cursor.is-click-ring::before {
  content: "";
  position: absolute;
  inset: -12px;
  border-radius: inherit;
  border: 1px solid currentColor;
  color: var(--uc-bg);
  animation: uc-ring 520ms ease-out forwards;
}

.uc-cursor-dot {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 2147483647;
  width: 4px;
  height: 4px;
  pointer-events: none;
  transform: translate3d(calc(var(--uc-x) - 50%), calc(var(--uc-y) - 50%), 0);
  border-radius: 999px;
  background: #ffffff;
  mix-blend-mode: difference;
  opacity: 0;
  transition: opacity 160ms ease;
}

html.uc-visible .uc-cursor-dot {
  opacity: .9;
}

html.uc-no-dot .uc-cursor-dot {
  display: none;
}

@keyframes uc-pulse {
  0%, 100% {
    transform:
      translate3d(calc(var(--uc-x) - 50%), calc(var(--uc-y) - 50%), 0)
      scale(.86);
  }
  50% {
    transform:
      translate3d(calc(var(--uc-x) - 50%), calc(var(--uc-y) - 50%), 0)
      scale(1.16);
  }
}

@keyframes uc-ring {
  from {
    opacity: .65;
    transform: scale(.65);
  }
  to {
    opacity: 0;
    transform: scale(1.65);
  }
}

@media (pointer: coarse), (hover: none) {
  html.uc-ready,
  html.uc-ready * {
    cursor: auto !important;
  }

  .uc-cursor,
  .uc-cursor-dot {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .uc-cursor,
  .uc-cursor-dot,
  .uc-cursor::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}