/* Frontend styles for YJAR Cursor */
html.ycursor-hide-native body,
body.ycursor-hide-native,
.ycursor-hide-native body {
  cursor: none !important;
}

#ycursor {
  position: fixed;
  left: 0;
  top: 0;
  width: var(--yc-size, 24px);
  height: var(--yc-size, 24px);
  border-radius: 9999px;
  pointer-events: none;
  z-index: 2147483647;
  transform: translate3d(-100px, -100px, 0);
  transition: opacity 0.2s ease;
  mix-blend-mode: var(--yc-blend, normal);
  color: var(--yc-color, #000);
  background-color: currentColor;
  opacity: 1;
  will-change: transform;
}

/* Image cursor */
#ycursor[data-type="image"] {
  background-image: var(--yc-image);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-color: transparent;
}

/* Text cursor */
#ycursor[data-type="text"] {
  width: auto;
  height: auto;
  background: transparent;
  color: var(--yc-color, #000);
  font-size: var(--yc-font-size, 18px);
  line-height: 1;
  white-space: pre;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  #ycursor { transition: none !important; }
}

/* High contrast / forced colors */
@media (forced-colors: active) {
  #ycursor { mix-blend-mode: normal !important; background-color: ButtonText; }
  #ycursor[data-type="text"] { color: ButtonText; }
}