:root {
  --kms-cursor-blackfire-cyan: #00cfff;
  --kms-cursor-blackfire-ice: #7df7ff;
  --kms-cursor-blackfire-metal: #7d8792;
  --kms-cursor-blackfire-deep: #020509;
}

html.kms-custom-cursor:not(.kms-custom-cursor-is-native),
html.kms-custom-cursor:not(.kms-custom-cursor-is-native) body,
html.kms-custom-cursor:not(.kms-custom-cursor-is-native) * {
  cursor: none !important;
}

html.kms-custom-cursor :is(input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), textarea, [contenteditable="true"], .ql-editor),
html.kms-custom-cursor :is(input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), textarea, [contenteditable="true"], .ql-editor) * {
  cursor: text !important;
}

html.kms-custom-cursor:not(.kms-custom-cursor-is-native) :is(select, option, input[type="checkbox"], input[type="radio"], input[type="range"], input[type="color"], input[type="file"], canvas, [draggable="true"], [data-sortable], [data-kms-native-cursor], .kms-native-cursor),
html.kms-custom-cursor:not(.kms-custom-cursor-is-native) :is([data-kms-native-cursor], .kms-native-cursor) * {
  cursor: auto !important;
}

#kmsCustomCursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 50px;
  height: 58px;
  pointer-events: none;
  z-index: 2147483000;
  opacity: 0;
  transform: translate3d(var(--kms-cursor-x, -80px), var(--kms-cursor-y, -80px), 0);
  transition: filter 0.18s ease;
  will-change: transform, opacity, filter;
  contain: layout style paint;
}

#kmsCustomCursor.kms-cursor-visible:not(.is-text) {
  opacity: 1;
}

#kmsCustomCursor .kms-cursor-arrow {
  position: absolute;
  left: -2px;
  top: -2px;
  width: 44px;
  height: 52px;
  overflow: visible;
  transform-origin: 4px 4px;
  transition: transform 0.18s ease;
}

#kmsCustomCursor .kms-cursor-arrow__fill {
  fill: url("#kmsCursorBlackfire");
  stroke: rgba(125, 135, 146, 0.95);
  stroke-width: 1.25;
  stroke-linejoin: round;
}

#kmsCustomCursor .kms-cursor-arrow__edge {
  fill: none;
  stroke: rgba(0, 207, 255, 0.72);
  stroke-width: 0.85;
  stroke-linejoin: round;
  opacity: 0.9;
}

#kmsCustomCursor .kms-cursor-arrow__shine {
  fill: rgba(255, 255, 255, 0.28);
  opacity: 0.72;
}

#kmsCustomCursor .kms-cursor-arrow__bevel {
  fill: none;
  stroke: rgba(255, 255, 255, 0.44);
  stroke-width: 0.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#kmsCustomCursor .kms-cursor-arrow__cyan-line {
  fill: none;
  stroke: var(--kms-cursor-blackfire-cyan);
  stroke-width: 1.05;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.95;
}

#kmsCustomCursor .kms-cursor-arrow__core {
  fill: var(--kms-cursor-blackfire-deep);
  stroke: var(--kms-cursor-blackfire-ice);
  stroke-width: 1.05;
}

#kmsCustomCursor.is-interactive {
  filter: saturate(1.2) contrast(1.12);
}

#kmsCustomCursor.is-interactive .kms-cursor-arrow {
  transform: scale(1.08) rotate(-2deg);
}

#kmsCustomCursor.is-pressed .kms-cursor-arrow,
#kmsCustomCursor.is-drag .kms-cursor-arrow {
  transform: scale(0.94) translate(1px, 1px);
}

#kmsCustomCursor.is-text {
  opacity: 0;
}

#kmsCustomCursor.is-native,
html.kms-custom-cursor-is-native #kmsCustomCursor {
  opacity: 0 !important;
}

html.kms-custom-cursor-is-text #kmsCustomCursor {
  opacity: 0;
}

@media (max-width: 768px) {
  #kmsCustomCursor {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #kmsCustomCursor,
  #kmsCustomCursor .kms-cursor-arrow {
    transition-duration: 0.01ms !important;
  }
}
