/* Mungos custom two-state cursor.
   Two layers so the follow (position) and the hover pop (scale) never fight:
   - #mungos-cursor   → positioned by JS every frame (NO transition = no lag).
   - .mungos-cursor__inner → holds the image; scales on hover with a transition,
     anchored at its top-left so it doesn't drift. */

#mungos-cursor {
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 2147483647; /* above everything */
    transform: translate(-100px, -100px);
    will-change: transform;
    opacity: 1;
    transition: opacity 0.2s ease;
}

#mungos-cursor .mungos-cursor__inner {
    width: 40px;
    height: 40px;
    background-repeat: no-repeat;
    background-position: top left; /* image hotspot = the pointer */
    background-size: contain;
    /* No transform/scale on hover — hover ONLY swaps the image (no movement). */
}

/* Hide the native cursor everywhere once ours is active. The high-specificity
   selectors beat external `cursor: url(...)` rules from theme/snippets. */
html.mungos-cursor-active,
html.mungos-cursor-active body,
html.mungos-cursor-active body *,
html.mungos-cursor-active * {
    cursor: none !important;
}

/* But keep the real caret in text fields — replacing it there hurts usability. */
html.mungos-cursor-active input[type="text"],
html.mungos-cursor-active input[type="email"],
html.mungos-cursor-active input[type="search"],
html.mungos-cursor-active input[type="number"],
html.mungos-cursor-active input[type="tel"],
html.mungos-cursor-active input[type="url"],
html.mungos-cursor-active input[type="password"],
html.mungos-cursor-active textarea {
    cursor: text !important;
}
