@keyframes rotateRing {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes floatShape {
    0%, 100% {
        transform: translate(0, 0);
    }
    50% {
        transform: translate(-20px, 20px);
    }
}

@keyframes pulseShape {
    0%, 100% {
        transform: scale(1);
        opacity: 0.05;
    }
    50% {
        transform: scale(1.2);
        opacity: 0.1;
    }
}

@keyframes shineEffect {
    0% {
        transform: translate(-100%, -100%) rotate(45deg);
    }
    20%, 100% {
        transform: translate(100%, 100%) rotate(45deg);
    }
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1);
        box-shadow: var(--shadow-md);
    }
    50% {
        transform: scale(1.05);
        box-shadow: 0 15px 25px rgba(105, 43, 83, 0.25);
    }
}

/* Reveal animation class */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease;
}

.reveal.revealed {
    opacity: 1;
    transform: translateY(0);
}