/* --- arc cursor -----------------------------------------------------------
   A full-viewport WebGL stage that never takes a pointer event. It sits under
   the reading chrome but above the artwork, so the discharge reads as
   happening on the surface of the page. The class is added by the script only
   while the arc is live, so a script failure, a coarse pointer or a missing
   WebGL2 context simply leaves the system arrow in place. */
.arc-stage {
  position: fixed;
  inset: 0;
  z-index: 55;
  pointer-events: none;
}

html.has-arc,
html.has-arc * {
  cursor: none !important;
}

/* the arc is drawn in viewport space; nothing of it survives a printout */
@media print {
  .arc-stage {
    display: none !important;
  }
  html.has-arc,
  html.has-arc * {
    cursor: auto !important;
  }
}

/* motion off: the canvas is never mounted, but stay safe if the class lingers */
html[data-motion="paused"] .arc-stage {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .arc-stage {
    display: none;
  }
}
