/* Custom cursor — desktop with fine pointer only; disabled on touch / mobile */

.custom-cursor-dot,
.custom-cursor-outline {
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 9999999;
    will-change: transform;
    mix-blend-mode: difference;
    display: none;
}

.custom-cursor-dot {
    width: 8px;
    height: 8px;
    background-color: #ffffff;
    border-radius: 50%;
    margin-top: -4px;
    margin-left: -4px;
}

.custom-cursor-outline {
    width: 25px;
    height: 25px;
    border: 1px solid #ffffff;
    border-radius: 50%;
    margin-top: -20px;
    margin-left: -20px;
    box-sizing: border-box;
}

@media (hover: hover) and (pointer: fine) and (min-width: 769px) {
    body {
        cursor: none !important;
    }

    body a,
    body button,
    body input,
    body select,
    body textarea,
    body [role="button"],
    body label,
    body .cursor-pointer {
        cursor: none !important;
    }

    .custom-cursor-dot,
    .custom-cursor-outline {
        display: block;
    }
}

@media (hover: none), (pointer: coarse), (max-width: 768px) {
    body,
    body a,
    body button,
    body input,
    body select,
    body textarea,
    body [role="button"],
    body label,
    body .cursor-pointer {
        cursor: auto !important;
    }

    .custom-cursor-dot,
    .custom-cursor-outline {
        display: none !important;
        visibility: hidden !important;
    }
}
