/* UI-76 v2: 24 CSS pixels, independent of page scaling. Both supplied SVGs
   keep their original 32×32 artboards and colors. Rotate around the arrow tip. */
.custom-cursor {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    overflow: clip;
    contain: strict;
    pointer-events: none;
}
.custom-cursor[hidden], .custom-cursor__art[hidden] { display: none !important; }
.custom-cursor__position { position: absolute; left: 0; top: 0; width: 0; height: 0; }
.custom-cursor__art {
    position: absolute;
    left: calc(-1 * var(--cursor-hotspot-x));
    top: calc(-1 * var(--cursor-hotspot-y));
    width: var(--cursor-size);
    height: var(--cursor-size);
    max-width: none;
    transform-origin: var(--cursor-hotspot-x) var(--cursor-hotspot-y);
    transform: rotate(var(--cursor-angle, 0deg));
}
.custom-cursor__art[data-art="arrow"] {
    transition: transform 160ms ease-out;
}
.custom-cursor.is-inverted .custom-cursor__art { filter: invert(1); }
@media (prefers-reduced-motion: reduce) {
    .custom-cursor__art[data-art="arrow"] { transition: none; }
}
html.has-custom-cursor, html.has-custom-cursor * { cursor: none !important; }
@media (forced-colors: active), (any-pointer: coarse), (hover: none) {
    .custom-cursor { display: none !important; }
    html.has-custom-cursor, html.has-custom-cursor * { cursor: revert !important; }
}
