@keyframes dropIn {
    0% { transform: translate(-50%, -300%); opacity: 0; }
    70% { transform: translate(-50%, -90%); opacity: 1; }
    100% { transform: translate(-50%, -100%); opacity: 1; }
}

@keyframes bounce {
    0%, 80%, 100% { transform: scale(0); opacity: 0.5; }
    40% { transform: scale(1); opacity: 1; }
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes bounceIn {
    0% { transform: scale(0.3) translateY(100px); opacity: 0; }
    50% { transform: scale(1.05) translateY(-10px); opacity: 1; }
    70% { transform: scale(0.95) translateY(5px); }
    100% { transform: scale(1) translateY(0); opacity: 1; }
}

@keyframes openFlap {
    0% { transform: rotateX(0deg); z-index: 4; }
    49% { z-index: 4; }
    50% { z-index: 1; }
    100% { transform: rotateX(180deg); z-index: 1; }
}

@keyframes pullLetter {
    0% { transform: translateY(0); }
    100% { transform: translateY(-90px); }
}

@keyframes fadeInText {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
