/* Curseur signature Zejunkz — desktop uniquement. */
@media (hover: hover) and (pointer: fine) {
    html.zj-custom-cursor,
    html.zj-custom-cursor body,
    html.zj-custom-cursor body * {
        cursor: none !important;
    }

    .zj-cursor {
        position: fixed;
        top: 0;
        left: 0;
        width: 26px;
        height: 30px;
        z-index: 2147483647 !important;
        pointer-events: none;
        opacity: 0;
        visibility: hidden;
        isolation: isolate;
        will-change: transform;
        transition: opacity 140ms ease, visibility 140ms ease;
    }

    dialog[open] > .zj-cursor {
        position: fixed !important;
        z-index: 2147483647 !important;
    }

    .zj-cursor.is-visible { opacity: 1; visibility: visible; }

    .zj-cursor__visual {
        display: block;
        width: 100%;
        height: 100%;
        transform-origin: 4px 3px;
        transition: transform 160ms cubic-bezier(.2, .8, .2, 1);
    }

    .zj-cursor svg {
        display: block;
        width: 100%;
        height: 100%;
        overflow: visible;
        filter: drop-shadow(0 2px 1px rgba(17, 17, 19, .15));
    }

    .zj-cursor__layer {
        opacity: 0;
        transition: opacity 130ms ease, transform 45ms linear;
    }
    .zj-cursor__layer--cyan { fill: #31b1c2; }
    .zj-cursor__layer--violet { fill: #6867ce; }
    .zj-cursor__layer--burgundy { fill: #b42132; }
    .zj-cursor__layer--red { fill: #df4943; }
    .zj-cursor__layer--orange { fill: #f2a13a; }
    .zj-cursor__arrow { fill: #111113; }

    .zj-cursor.is-moving .zj-cursor__layer--orange { opacity: 1; }
    .zj-cursor.is-moving .zj-cursor__layer--red { opacity: .94; }
    .zj-cursor.is-moving .zj-cursor__layer--burgundy { opacity: .88; }
    .zj-cursor.is-moving .zj-cursor__layer--violet { opacity: .8; }
    .zj-cursor.is-moving .zj-cursor__layer--cyan { opacity: .6; }

    /* La position reste pilotée pendant le fondu pour éviter tout saut à l'arrêt. */
    .zj-cursor__layer--cyan { transform: translate(var(--trail-cyan-x, 0px), var(--trail-cyan-y, 0px)); }
    .zj-cursor__layer--violet { transform: translate(var(--trail-violet-x, 0px), var(--trail-violet-y, 0px)); }
    .zj-cursor__layer--burgundy { transform: translate(var(--trail-burgundy-x, 0px), var(--trail-burgundy-y, 0px)); }
    .zj-cursor__layer--red { transform: translate(var(--trail-red-x, 0px), var(--trail-red-y, 0px)); }
    .zj-cursor__layer--orange { transform: translate(var(--trail-orange-x, 0px), var(--trail-orange-y, 0px)); }

    .zj-cursor.is-interactive .zj-cursor__visual { transform: scale(1.12) rotate(-2deg); }
    .zj-cursor.is-pressed .zj-cursor__visual { transform: scale(.88); }
}

@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
    .zj-cursor { display: none !important; }
}
