/* Shared native cursor pack. Relative URLs also work without a /public URL prefix. */
@media (hover: hover) and (pointer: fine) {
    html {
        --formacity-cursor-default: url("cursors/1.png"), auto;
        --formacity-cursor-link: url("cursors/2-1.png"), pointer;
        /* Animate inherited values, preserving the animations on buttons and links. */
        animation: formacity-cursor-default 1.3s infinite, formacity-cursor-link 5s infinite;
    }

    body {
        cursor: var(--formacity-cursor-default);
    }

    a, button, .btn, .curve, .tab-btn, [role="button"],
    input[type="button"], input[type="submit"], input[type="reset"],
    input[type="checkbox"], input[type="radio"], select, summary {
        cursor: var(--formacity-cursor-link);
    }

    button:disabled, input:disabled, select:disabled, textarea:disabled,
    [role="button"][aria-disabled="true"], .btn.disabled {
        cursor: not-allowed;
    }

    @keyframes formacity-cursor-default {
        0%, 50% { --formacity-cursor-default: url("cursors/1.png"), auto; }
        60% { --formacity-cursor-default: url("cursors/2.png"), auto; }
        70% { --formacity-cursor-default: url("cursors/3.png"), auto; }
        80% { --formacity-cursor-default: url("cursors/4.png"), auto; }
        90% { --formacity-cursor-default: url("cursors/5.png"), auto; }
        100% { --formacity-cursor-default: url("cursors/6.png"), auto; }
    }

    @keyframes formacity-cursor-link {
        0%, 90% { --formacity-cursor-link: url("cursors/2-1.png"), pointer; }
        100% { --formacity-cursor-link: url("cursors/2-2.png"), pointer; }
    }

    html.a11y-reduce-motion,
    html.a11y-large-cursor {
        animation: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        animation: none;
    }
}

/* The front-office pointer-dot and pointer-ring remain independent overlays. */
