/* Motion is an enhancement: page content remains visible without this script. */
.ws-motion-layer { transform-origin: 50% 0; }

.ws-cursor {
  position: fixed;
  inset: 0;
  z-index: 10000;
  pointer-events: none;
  overflow: hidden;
  opacity: 0;
  contain: strict;
}
.ws-cursor > i {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 5px;
  height: 5px;
  margin: -2.5px 0 0 -2.5px;
  border-radius: 50%;
  background: var(--visual-cursor, #516b38);
  pointer-events: none;
}
.ws-cursor > .ws-cursor-head {
  width: 7px;
  height: 7px;
  margin: -3.5px 0 0 -3.5px;
  box-shadow: 0 0 0 1.5px var(--visual-cursor-halo, #ffffffbd);
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on,
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on * { cursor: none !important; }
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on input,
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on textarea,
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on [contenteditable]:not([contenteditable="false"]) { cursor: text !important; }
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on input[type="range"] { cursor: ew-resize !important; }
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on select,
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on input[type="checkbox"],
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on input[type="radio"],
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on input[type="button"],
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on input[type="submit"] { cursor: pointer !important; }
  html:not([data-motion="off"]):not([data-cursor="off"]) body.ws-cursor-on .ws-cursor { opacity: 1; }
}

html[data-cursor="off"] .ws-cursor,
html[data-motion="off"] .ws-cursor { display: none; }
html[data-motion="off"],
html[data-motion="off"] *,
html[data-motion="off"] *::before,
html[data-motion="off"] *::after {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}

@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  .ws-cursor { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html, *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
