body.pck-cursor-active,
body.pck-cursor-active * {
    cursor: none !important;
}

body.pck-cursor-active.pck-cursor-paused,
body.pck-cursor-active.pck-cursor-paused * {
    cursor: auto !important;
}

.pck-cursor,
.pck-cursor-trail,
.pck-click-ripple {
    pointer-events: none;
    position: fixed;
    left: 0;
    top: 0;
    box-sizing: border-box;
    will-change: transform, opacity;
}

.pck-cursor {
    width: var(--pck-size, 18px);
    height: var(--pck-size, 18px);
    z-index: var(--pck-z-index, 999999);
    transform: translate3d(-999px, -999px, 0);
    transition: width 160ms ease, height 160ms ease, opacity 160ms ease, background 160ms ease, border-color 160ms ease;
    opacity: var(--pck-opacity, .95);
    mix-blend-mode: var(--pck-blend-mode, normal);
}

.pck-cursor.pck-mode-circle {
    border-radius: 999px;
    background: var(--pck-bg, #12B5CB);
    border: var(--pck-border-width, 2px) solid var(--pck-border, #fff);
}

.pck-cursor.pck-glow {
    box-shadow: 0 0 18px var(--pck-glow, #12B5CB), 0 0 42px rgba(18, 181, 203, .35);
}

.pck-cursor.pck-mode-image {
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.pck-cursor.pck-mode-emoji {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: calc(var(--pck-size, 18px) * .85);
    line-height: 1;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,.22));
}

.pck-cursor.pck-is-hover {
    width: var(--pck-hover-size, 30px);
    height: var(--pck-hover-size, 30px);
}

.pck-cursor-trail {
    z-index: calc(var(--pck-z-index, 999999) - 1);
    width: var(--pck-trail-size, 8px);
    height: var(--pck-trail-size, 8px);
    border-radius: 999px;
    background: var(--pck-trail-color, #12B5CB);
    opacity: .45;
    transform: translate3d(-999px, -999px, 0);
}

.pck-click-ripple {
    z-index: calc(var(--pck-z-index, 999999) - 2);
    width: 10px;
    height: 10px;
    border-radius: 999px;
    border: 2px solid var(--pck-click-color, #12B5CB);
    transform: translate3d(-999px, -999px, 0) scale(1);
    opacity: .75;
    animation: pck-ripple 620ms ease-out forwards;
}

body.pck-cursor-paused .pck-cursor,
body.pck-cursor-paused .pck-cursor-trail {
    opacity: 0 !important;
}

@keyframes pck-ripple {
    to {
        transform: translate3d(var(--pck-ripple-x), var(--pck-ripple-y), 0) scale(7);
        opacity: 0;
    }
}

@media (pointer: coarse) {
    body.pck-cursor-active.pck-hide-mobile,
    body.pck-cursor-active.pck-hide-mobile * {
        cursor: auto !important;
    }

    body.pck-hide-mobile .pck-cursor,
    body.pck-hide-mobile .pck-cursor-trail,
    body.pck-hide-mobile .pck-click-ripple {
        display: none !important;
    }
}
