html.ra0-custom-cursor,
html.ra0-custom-cursor *,
html.ra0-custom-cursor *::before,
html.ra0-custom-cursor *::after {
    cursor: none !important;
}

.ra0-cursor-layer {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2147483647;
    display: block;
    width: var(--ra0-cursor-size, 32px);
    height: var(--ra0-cursor-size, 32px);
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    transform: none;
    will-change: left, top;
    contain: layout style paint;
    background-position: left top;
    background-repeat: no-repeat;
    background-size: contain;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

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

@media (any-pointer: coarse) {
    html.ra0-custom-cursor,
    html.ra0-custom-cursor *,
    html.ra0-custom-cursor *::before,
    html.ra0-custom-cursor *::after {
        cursor: auto !important;
    }
    .ra0-cursor-layer { display: none !important; }
}
