/* ================= Animation ================= */

@keyframes pulse {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.2);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes kenburns {
    from {
        transform: scale(1.3);
    }

    to {
        transform: scale(1);
    }
}

@keyframes pulseHeart {

    0% {

        transform: scale(1);
    }

    50% {

        transform: scale(1.12);
    }

    100% {

        transform: scale(1);
    }
    

}

@keyframes calendarHeartBeat {

    0%,
    100% {
        transform: translate(-50%, -48%) scale(1);
    }

    45% {
        transform: translate(-50%, -48%) scale(1.16);
    }

    65% {
        transform: translate(-50%, -48%) scale(1.04);
    }

}

.animate-item {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition:
        opacity var(--save-date-animation-duration) ease,
        transform var(--save-date-animation-duration) var(--animation-easing);
    backface-visibility: hidden;
}

.scroll-reveal {
    opacity: 0;
    transform: translate3d(0, 34px, 0);
    transition:
        opacity var(--section-animation-duration) ease var(--reveal-delay, 0ms),
        transform var(--section-animation-duration) var(--animation-easing) var(--reveal-delay, 0ms);
    backface-visibility: hidden;
}

.scroll-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.about .person.scroll-reveal:nth-of-type(1) {
    transform: translate3d(-74px, 14px, 0);
}

.about .person.scroll-reveal:nth-of-type(2) {
    transform: translate3d(74px, 14px, 0);
}

.about .person.scroll-reveal.is-visible {
    transform: translate3d(0, 0, 0);
}

.gallery-grid {
    overflow: hidden;
}

.gallery-reveal {
    opacity: 0;
    transition:
        opacity var(--gallery-animation-duration) ease var(--gallery-delay, 0ms),
        transform var(--gallery-animation-duration) var(--animation-easing) var(--gallery-delay, 0ms);
    backface-visibility: hidden;
}

.gallery-reveal.from-left {
    transform: translate3d(-42px, 14px, 0) scale(.98);
}

.gallery-reveal.from-right {
    transform: translate3d(42px, 14px, 0) scale(.98);
}

.gallery-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

.section-subtitle.scroll-reveal {
    transform: translate3d(0, 24px, 0);
}

.section-subtitle.scroll-reveal.is-visible {
    transform: translate3d(0, 0, 0);
}

.about-portrait.scroll-reveal {
    transform: translate3d(0, 42px, 0) scale(.985);
}

.about-portrait.scroll-reveal.is-visible {
    transform: translate3d(0, 0, 0) scale(1);
}
