/* ==========================================================================
   CUSTOM PREMIUM CURSOR
   ========================================================================== */

/* Hide default cursor only on devices with a fine pointer (desktop) */
@media (pointer: fine) {
    body.cursor-enabled,
    body.cursor-enabled * {
        cursor: none !important;
    }

    body.cursor-enabled input,
    body.cursor-enabled textarea,
    body.cursor-enabled select,
    body.cursor-enabled [contenteditable="true"] {
        cursor: text !important;
    }
}

/* Base cursor styles - hidden by default, shown via JS on desktop */
.cursor-dot,
.cursor-outline {
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 99999;
    border-radius: 50%;
    opacity: 0;
    transform: translate(-50%, -50%);
    transition: opacity 0.3s ease, width 0.3s ease, height 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
    will-change: transform;
}

/* Center Dot */
.cursor-dot {
    width: 6px;
    height: 6px;
    background-color: #111;
}

/* Outer Ring */
.cursor-outline {
    width: 30px;
    height: 30px;
    border: 1.5px solid rgba(17, 17, 17, 0.65);
}

/* Active States */
body.cursor-ready .cursor-dot,
body.cursor-ready .cursor-outline {
    opacity: 1;
}

/* Hover over interactive links */
body.cursor-hover-link .cursor-outline {
    width: 38px;
    height: 38px;
    background-color: rgba(17, 17, 17, 0.08);
    border-color: #111;
}

/* Hover over project images */
body.cursor-view-project .cursor-outline {
    width: 58px;
    height: 58px;
    background-color: rgba(17, 17, 17, 0.08);
    border-color: #111;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
}

body.cursor-view-project .cursor-dot {
    opacity: 0;
}

/* Disable on touch devices */
@media (pointer: coarse) {
    .cursor-dot,
    .cursor-outline {
        display: none !important;
    }
}