body, a, button, .gallery-item, .hamburger, .gallery-icon {
    cursor: none !important;
}

.custom-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    pointer-events: none;
    z-index: 99999;
    transform: translate(-50%, -50%);
    transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1), height 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.custom-cursor-dot {
    position: fixed;
    top: 0;
    left: 0;
    width: 20px;
    height: 20px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23173F3A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 3L11 9L17 11L11 13L9 19L7 13L1 11L7 9L9 3Z"/><path d="M20 15L21 18L24 19L21 20L20 23L19 20L16 19L19 18L20 15Z"/></svg>');
    background-size: cover;
    pointer-events: none;
    z-index: 100000;
    transform: translate(-50%, -50%);
    background-color: transparent;
}

.custom-cursor-bloom {
    background-color: transparent;
    border: 1.5px dashed rgba(23, 63, 58, 0.5);
    box-shadow: 0 0 10px rgba(23, 63, 58, 0.1);
    animation: rotateCursor 12s linear infinite;
}

.custom-cursor.hover {
    width: 64px;
    height: 64px;
    background-color: rgba(250, 232, 233, 0.5);
    border-color: rgba(23, 63, 58, 0.9);
    animation: rotateCursor 3s linear infinite;
}

@keyframes rotateCursor {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

@media (max-width: 768px) {
    .custom-cursor, .custom-cursor-dot {
        display: none !important;
    }
    body, a, button, .gallery-item, .hamburger, .gallery-icon {
        cursor: auto !important;
    }
}
