/* ── CURSOR CRAFT v1.2 ── */

#cc-cursor-image,
#cc-cursor-blob,
#cc-cursor-dot,
#cc-cursor-text {
    position: fixed;
    top: 0; left: 0;
    pointer-events: none;
    z-index: 99999;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: opacity .25s;
}

/* image cursor — no default border/bg; JS injects image or symbol */
#cc-cursor-image {
    transition:
        width  .4s cubic-bezier(.34,1.56,.64,1),
        height .4s cubic-bezier(.34,1.56,.64,1),
        border-radius .3s ease,
        opacity .25s;
}

/* blob */
#cc-cursor-blob {
    width: 70px; height: 70px;
    border-radius: 50%;
    border: 2px solid var(--cc-color, #C9A96E);
    background: rgba(201,169,110,0.1);
    mix-blend-mode: screen;
}

/* inner dot (magnetic / text modes) */
#cc-cursor-dot {
    width: 12px; height: 12px;
    border-radius: 50%;
    background: var(--cc-color, #C9A96E);
    transition: width .3s, height .3s, background .3s;
}

/* text label */
#cc-cursor-text {
    transform: translate(-50%, -50%);
    font-size: 11px; font-weight: 700;
    letter-spacing: .1em;
    color: var(--cc-color, #C9A96E);
    background: rgba(0,0,0,.75);
    border: 1px solid rgba(201,169,110,.4);
    padding: 5px 12px;
    border-radius: 99px;
    white-space: nowrap;
    font-family: monospace;
    pointer-events: none;
}

/* canvas for trails */
#cc-cursor-canvas {
    position: fixed; inset: 0;
    pointer-events: none;
    z-index: 99998;
    opacity: 0;
    transition: opacity .25s;
}

/* ── TRACKING DOT ── */
#cc-tracking-dot {
    position: fixed;
    top: 0; left: 0;
    pointer-events: none;
    z-index: 100000;
    opacity: 0;
    transform: translate(-50%, -50%) scale(1);
    transition: opacity .25s, transform .15s ease;
    will-change: left, top;
}
