.header-content {
    transform: translateY(-111%);
    animation: slideDown 0.8s cubic-bezier(0.14, 0.85, 0.26, 0.99) 0.65s forwards;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-111%);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.shade {
    opacity: 0.5;
    animation: fadeOut 2s ease-out 0.1s forwards;
}

@keyframes fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0.25;
    }
}

.header-footer {
    transform: translateY(121%);
    animation: slideUp 0.8s cubic-bezier(0.14, 0.85, 0.26, 0.99) 1s forwards;
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(121%);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.anim-shift {
    opacity: 0;
    display: flex;
    transform: translateY(60px);
}

.anim-shift.active {
    animation: shiftIn 1.25s cubic-bezier(0.21, 0.61, 0.28, 0.98) forwards;
}

@keyframes shiftIn {
    0% {
        display: flex;
        opacity: 0;
        transform: translateY(60px) translateZ(0);
    }
    1% {
        opacity: 0;
        transform: translateY(60px) translateZ(0);
    }
    100% {
        opacity: 1;
        transform: translateY(0) translateZ(0);
    }
}


.anim-shift-left {
    opacity: 0;
    display: flex;
    transform: translateX(60px);
}

.anim-shift-left.active {
    animation: shiftLeft 1.25s cubic-bezier(0.21, 0.61, 0.28, 0.98) forwards;
}

@keyframes shiftLeft {
    0% {
        display: flex;
        opacity: 0;
        transform: translateX(60px) translateZ(0);
    }
    1% {
        opacity: 0;
        transform: translateX(60px) translateZ(0);
    }
    100% {
        opacity: 1;
        transform: translateX(0) translateZ(0);
    }
}

.anim-shift-right {
    opacity: 0;
    display: flex;
    transform: translateX(-60px);
}

.anim-shift-right.active {
    animation: shiftRight 1.25s cubic-bezier(0.21, 0.61, 0.28, 0.98) forwards;
}

@keyframes shiftRight {
    0% {
        display: flex;
        opacity: 0;
        transform: translateX(-60px) translateZ(0);
    }
    1% {
        opacity: 0;
        transform: translateX(-60px) translateZ(0);
    }
    100% {
        opacity: 1;
        transform: translateX(0) translateZ(0);
    }
}


@keyframes revealIn {
    0% {
        opacity: 0;
        display: none;
    }
    1% {
        opacity: 0;
        display: flex;
    }
    100% {
        opacity: 1;
        display: flex;
    }
}

@keyframes revealOut {
    0% {
        opacity: 1;
        display: flex;
    }
    99% {
        opacity: 0;
        display: flex;
    }
    100% {
        opacity: 0;
        display: none;
    }
}

@keyframes zoomIn {
    0% {
        transform: scale(0.8);
        opacity: 0;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

@keyframes zoomOut {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    100% {
        transform: scale(0.8);
        opacity: 0;
    }
}