/* Independent scale axes reproduce the measured response. The pointer anchor
   and artwork/hotspot offsets never transition; there is no follow animation. */
.satin-cursor{
 --satin-cursor-ready:1;
 --satin-ease:linear(0,.044 .9%,.198 2%,1.212 6.8%,1.361 8.1%,1.398 8.7%,1.417 9.4%,1.402 10.4%,1.34 11.5%,.91 16.4%,.852 17.6%,.826 18.9%,.831 19.9%,.856 21%,1.038 26%,1.062 27.2%,1.073 28.5%,1.06 30.6%,.984 35.6%,.97 38%,1.013 47.6%,.995 57.1%,1.002 66.6%,1);
 position:fixed;left:0;top:0;width:1px;height:1px;margin:0;padding:0;border:0;
 z-index:2147483647;pointer-events:none!important;user-select:none;
 contain:layout style;isolation:isolate;overflow:visible;line-height:0;
}
.satin-cursor *{pointer-events:none!important;user-select:none}
.satin-cursor-axis-x,.satin-cursor-axis-y{position:absolute;left:0;top:0;width:0;height:0;transform-origin:0 0}
.satin-cursor-axis-x{transform:scaleX(1);transition:transform 1.3s var(--satin-ease)}
.satin-cursor-axis-y{transform:scaleY(1);transition:transform 1.1s var(--satin-ease)}
.satin-cursor[data-pressed="true"] .satin-cursor-axis-x{transform:scaleX(.8)}
.satin-cursor[data-pressed="true"] .satin-cursor-axis-y{transform:scaleY(.8)}
.satin-cursor-sprite{position:absolute;left:0;top:0;width:32px;height:32px;transform:translate(calc(-100% * var(--satin-hot-x) / 32),calc(-100% * var(--satin-hot-y) / 32))}
.satin-cursor img{display:block;width:32px;height:32px;max-width:none;margin:0;padding:0;border:0;transform:none}
/* Keep the axes alive when hovering text, preserving a rebound if the pointer
   leaves again. The separate I-beam stays fixed in size during selection. */
.satin-cursor .satin-cursor-text{position:absolute;left:0;top:0;transform:translate(-50%,-50%)}
.satin-cursor[data-kind="text"] .satin-cursor-axis-x{visibility:hidden}
.satin-cursor:not([data-kind="text"]) .satin-cursor-text{display:none}
html[data-satin-cursor],html[data-satin-cursor] *{cursor:none!important}
@media(prefers-reduced-motion:reduce){.satin-cursor-axis-x,.satin-cursor-axis-y{transition:none}}
@media(forced-colors:active){.satin-cursor{display:none}}
