/* ==========================================================
   CUSTOM CURSOR
   ========================================================== */

* {
    cursor: none !important;
}

.cursor-dot {
    width: 8px;
    height: 8px;
    background: var(--clr-accent);
    border-radius: 50%;
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 99999;
    transform: translate(-50%, -50%);
    transition: transform 0.1s, background 0.2s, width 0.2s, height 0.2s;
}

.cursor-ring {
    width: 36px;
    height: 36px;
    border: 1.5px solid rgba(192, 160, 98, 0.7);
    border-radius: 50%;
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 99998;
    transform: translate(-50%, -50%);
    transition: width 0.25s var(--ease-out),
        height 0.25s var(--ease-out),
        border-color 0.2s,
        background 0.2s;
}

/* Hover states */
.cursor-dot.hovering {
    width: 12px;
    height: 12px;
    background: var(--clr-primary);
}

.cursor-ring.hovering {
    width: 52px;
    height: 52px;
    border-color: var(--clr-primary);
    background: rgba(192, 160, 98, 0.06);
}

/* Click state */
.cursor-dot.clicking {
    width: 6px;
    height: 6px;
    background: var(--clr-accent-2);
}

.cursor-ring.clicking {
    width: 28px;
    height: 28px;
}

/* Text hover state */
.cursor-ring.text-hover {
    width: 4px;
    height: 28px;
    border-radius: 2px;
    border-color: var(--clr-accent);
}

/* Hide on mobile */
@media (pointer: coarse) {

    .cursor-dot,
    .cursor-ring {
        display: none;
    }

    * {
        cursor: auto !important;
    }
}