/* Approved Darkside cursor: desktop only, with native-pointer fallbacks. */
.ds-art-cursor{display:none;position:fixed;left:0;top:0;width:22px;height:22px;border-radius:50%;background:#fff;mix-blend-mode:exclusion;pointer-events:none;z-index:2147483647;opacity:0;transform:translate3d(-100px,-100px,0) translate(-50%,-50%);transition:width var(--ds-motion-base,150ms) var(--ds-ease,ease),height var(--ds-motion-base,150ms) var(--ds-ease,ease),border-radius var(--ds-motion-base,150ms) var(--ds-ease,ease),opacity var(--ds-motion-fast,110ms) linear;will-change:transform}
@media (hover:hover) and (pointer:fine){
  .ds-art-cursor{display:block}
  html.has-art-cursor,html.has-art-cursor *{cursor:none!important}
  html.has-art-cursor .ds-art-cursor{opacity:1}
  /* Let the cursor supply the inversion instead of inverting a hovered button twice. */
  html.has-art-cursor body :is(.ui-button,.recap-download,.case-contents>summary,.back-top):hover{background:var(--surface);color:var(--text)}
  html.has-art-cursor body .ui-button:hover .pixel-icon{color:var(--accent)}
  .ds-art-cursor[data-mode=button]{transition:width var(--ds-motion-base,150ms) var(--ds-ease,ease),height var(--ds-motion-base,150ms) var(--ds-ease,ease),border-radius var(--ds-motion-base,150ms) var(--ds-ease,ease),opacity var(--ds-motion-fast,110ms) linear,transform var(--ds-motion-fast,110ms) var(--ds-ease,ease-out)}
}
@media (prefers-reduced-motion:reduce){.ds-art-cursor,.ds-art-cursor[data-mode=button]{transition:none}}
@media (forced-colors:active){.ds-art-cursor{display:none!important}}
