/* Soft disc; magnetic controls; corner marks on album and work cards. */
.ruqoa-cursor-dot{display:none}
.ruqoa-cursor-ring{position:fixed;left:0;top:0;pointer-events:none!important;z-index:9999;opacity:0;width:14px;height:14px;border:0;border-radius:50%;background:color-mix(in srgb,var(--accent) 30%,transparent);contain:layout style;will-change:left,top;transform:translate(-50%,-50%) rotate(var(--cursor-angle,0deg)) scale(var(--cursor-stretch,1),var(--cursor-squash,1));transition:width 320ms cubic-bezier(.2,.85,.25,1.08),height 320ms cubic-bezier(.2,.85,.25,1.08),border-radius 280ms ease,background-color 240ms ease,border-color 240ms ease}
.cursor-enabled .ruqoa-cursor-ring{opacity:1}
.cursor-enabled,.cursor-enabled *{cursor:none!important}
.cursor-stuck .ruqoa-cursor-ring{width:var(--cursor-width);height:var(--cursor-height);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:5px;background:transparent;transform:translate(-50%,-50%)}
.cursor-stuck.cursor-card .ruqoa-cursor-ring{border:0;border-radius:0;background:linear-gradient(var(--accent),var(--accent)) left top/14px 1px,linear-gradient(var(--accent),var(--accent)) left top/1px 14px,linear-gradient(var(--accent),var(--accent)) right top/14px 1px,linear-gradient(var(--accent),var(--accent)) right top/1px 14px,linear-gradient(var(--accent),var(--accent)) left bottom/14px 1px,linear-gradient(var(--accent),var(--accent)) left bottom/1px 14px,linear-gradient(var(--accent),var(--accent)) right bottom/14px 1px,linear-gradient(var(--accent),var(--accent)) right bottom/1px 14px;background-repeat:no-repeat}
.cursor-stuck.cursor-down .ruqoa-cursor-ring{transform:translate(-50%,-50%) scale(.98)}
[data-magnetic-hover]{position:relative;isolation:isolate}
html body [data-magnetic-hover]>.magnetic-hover-fill{position:absolute;inset:-4px;z-index:-1;pointer-events:none!important;border-radius:5px;opacity:0;background:color-mix(in srgb,var(--accent) 11%,transparent);margin:0!important;padding:0!important;min-width:0;min-height:0;max-width:none;max-height:none;display:block;box-sizing:border-box;border:0;box-shadow:none;transition:transform 240ms cubic-bezier(.2,.8,.3,1);will-change:transform,opacity}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.ruqoa-cursor-dot,.ruqoa-cursor-ring,.magnetic-hover-fill{display:none}.cursor-enabled,.cursor-enabled *{cursor:revert!important}}
@media print{.ruqoa-cursor-dot,.ruqoa-cursor-ring,.magnetic-hover-fill{display:none}}

/* Keep a large target from stretching or flipping while shrinking back. */
.ruqoa-cursor-ring{transition:width 360ms cubic-bezier(.22,.7,.3,1),height 360ms cubic-bezier(.22,.7,.3,1),border-radius 300ms ease,background-color 240ms ease,border-color 240ms ease}
.cursor-releasing:not(.cursor-stuck) .ruqoa-cursor-ring{transform:translate(-50%,-50%)!important;background:transparent!important;border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)!important;border-radius:50%;transition:width 360ms cubic-bezier(.22,.7,.3,1),height 360ms cubic-bezier(.22,.7,.3,1),border-radius 300ms ease,background-color 180ms ease,border-color 180ms ease}

/* Start the idle fill fade as soon as the pointer leaves a target. */
body:not(.cursor-stuck) .ruqoa-cursor-ring{background:transparent}
.cursor-idle-fill{position:absolute;inset:0;border-radius:inherit;pointer-events:none!important;background:color-mix(in srgb,var(--accent) 30%,transparent);opacity:1}

/* Logo dragging keeps the idle disc rather than reverting to a native hand. */
.cursor-down:not(.cursor-stuck) .ruqoa-cursor-ring{transform:translate(-50%,-50%) scale(.85)}
