html.mikaela-cursor-active,
html.mikaela-cursor-active body,
html.mikaela-cursor-active a,
html.mikaela-cursor-active button,
html.mikaela-cursor-active input,
html.mikaela-cursor-active select,
html.mikaela-cursor-active textarea,
html.mikaela-cursor-active label,
html.mikaela-cursor-active [role="button"] {
  cursor: none !important;
}

#noctilys-mikaela-cursor,
#noctilys-mikaela-pointer,
#noctilys-mikaela-tool {
  position: fixed;
  left: 0;
  top: 0;
  display: none;
  pointer-events: none;
  user-select: none;
  will-change: left, top;
}

#noctilys-mikaela-cursor {
  z-index: 2147483645;
  width: var(--mikaela-cursor-size, 128px);
  height: var(--mikaela-cursor-size, 128px);
  transform: translate(-16px, -3px);
  filter: drop-shadow(0 5px 8px rgb(5 2 12 / 60%));
}

#noctilys-mikaela-pointer {
  z-index: 2147483646;
  width: 40px;
  height: 32px;
  transform: translate(-16px, -3px);
  filter: drop-shadow(0 0 5px rgb(216 115 255 / 54%));
}

#noctilys-mikaela-tool {
  z-index: 2147483647;
  width: 22px;
  height: 22px;
  transform: translate(-50%, -50%);
  border: 1px solid #fff;
  border-radius: 7px;
  color: #fff;
  background: rgb(141 86 232 / 92%);
  box-shadow: 0 2px 8px rgb(5 2 12 / 80%);
  font: 800 14px/20px ui-monospace, Consolas, monospace;
  text-align: center;
}

#noctilys-mikaela-tool[data-tool="pointer"] { display: none !important; }
#noctilys-mikaela-tool[data-tool="move"]::before { content: "✥"; }
#noctilys-mikaela-tool[data-tool="crosshair"]::before { content: "+"; }
#noctilys-mikaela-tool[data-tool="help"]::before { content: "?"; }
#noctilys-mikaela-tool[data-tool="not-allowed"]::before { content: "⊘"; }
#noctilys-mikaela-tool[data-tool="resize-ew"]::before { content: "↔"; }
#noctilys-mikaela-tool[data-tool="resize-ns"]::before { content: "↕"; }
#noctilys-mikaela-tool[data-tool="resize-nesw"]::before { content: "↙"; }
#noctilys-mikaela-tool[data-tool="resize-nwse"]::before { content: "↘"; }

#noctilys-mikaela-tool[data-tool="text"] {
  width: 14px;
  height: 24px;
  border: 0;
  border-left: 3px solid #fff;
  border-radius: 0;
  color: transparent;
  background: transparent;
  box-shadow: -1px 0 #50238c, 1px 0 #50238c;
}

#noctilys-mikaela-tool[data-tool="text"]::before,
#noctilys-mikaela-tool[data-tool="text"]::after {
  content: "";
  position: absolute;
  left: -7px;
  width: 11px;
  height: 3px;
  background: #fff;
  box-shadow: 0 0 0 1px #50238c;
}

#noctilys-mikaela-tool[data-tool="text"]::before { top: 0; }
#noctilys-mikaela-tool[data-tool="text"]::after { bottom: 0; }

@media (pointer: coarse), (prefers-reduced-motion: reduce) {
  html.mikaela-cursor-active,
  html.mikaela-cursor-active body,
  html.mikaela-cursor-active a,
  html.mikaela-cursor-active button,
  html.mikaela-cursor-active input,
  html.mikaela-cursor-active select,
  html.mikaela-cursor-active textarea,
  html.mikaela-cursor-active label,
  html.mikaela-cursor-active [role="button"] { cursor: auto !important; }
  #noctilys-mikaela-cursor,
  #noctilys-mikaela-pointer,
  #noctilys-mikaela-tool { display: none !important; }
}

