body {
    cursor: none;
}

/* Masquer sur mobile / tactile */
@media (pointer: coarse) {
    body { cursor: auto; }
    .cursor,
    .cursor-dot { display: none; }
}

.cursor {
    width: 20px;
    height: 20px;
    border: 2px solid #fff;
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 9999;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
                opacity 0.4s ease,
                border-width 0.4s ease;
    mix-blend-mode: difference;
}

.cursor-dot {
    width: 6px;
    height: 6px;
    background: #fff;
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 10000;
    transition: transform 0.1s ease;
    mix-blend-mode: difference;
}

/* Clic */
.cursor.click {
    transform: scale(1.5);
    opacity: 0.5;
}

.cursor-dot.click {
    transform: scale(2);
}

/* Hover */
.cursor.hover {
    border-width: 1px;
    transform: scale(2.5);
}

.cursor-dot.hover {
    transform: scale(1.5);
}

.cursor.hover.breathing {
    animation: breathing 1.2s ease-in-out infinite;
}

@keyframes breathing {
    0%, 100% { transform: scale(2.5); opacity: 1; }
    50%       { transform: scale(3.2); opacity: 0.4; }
}
