@media (pointer: fine) and (prefers-reduced-motion: no-preference) {
    html.custom-cursor-active,
    html.custom-cursor-active body,
    html.custom-cursor-active body * { cursor: none !important; }
    .om-cursor-ring,
    .om-cursor-dot {
        position: fixed;
        z-index: 2147483000;
        top: 0;
        left: 0;
        pointer-events: none;
        opacity: 0;
        will-change: transform;
    }
    .om-cursor-ring {
        width: 27px;
        height: 27px;
        border: 1.5px solid #45d8ca;
        border-radius: 50%;
        background: rgb(69 216 202 / 5%);
        transform: translate3d(-50%, -50%, 0) scale(1);
        transition: width .18s ease, height .18s ease, border-color .18s ease, background .18s ease, opacity .15s ease;
    }
    .om-cursor-dot {
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: #a7fff3;
        transform: translate3d(-50%, -50%, 0);
        transition: opacity .15s ease, scale .15s ease;
    }
    html.custom-cursor-active .om-cursor-ring,
    html.custom-cursor-active .om-cursor-dot { opacity: 1; }
    html.custom-cursor-active .om-cursor-ring.is-hovering {
        width: 39px;
        height: 39px;
        border-color: #a6fff2;
        background: rgb(69 216 202 / 14%);
    }
    html.custom-cursor-active .om-cursor-dot.is-pressed { scale: .45; }
    html.custom-cursor-active.cursor-text-mode body input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]),
    html.custom-cursor-active.cursor-text-mode body textarea,
    html.custom-cursor-active.cursor-text-mode body [contenteditable="true"] { cursor: text !important; }
    html.custom-cursor-active.cursor-text-mode .om-cursor-ring,
    html.custom-cursor-active.cursor-text-mode .om-cursor-dot { opacity: 0; }
}
