/* Please ❤ this if you like it! */


@import url('https://fonts.googleapis.com/css?family=Poppins:400,500,600,700,800,900');

.over-hide {
    overflow: hidden;
}

.size-22 {
    font-size: 22px;
}

.section {
    position: relative;
    width: 100%;
    z-index: 1;
    display: block;
}

.full-height {
    min-height: 100vh;
}

@keyframes border-transform {

    0%,
    100% {
        border-radius: 63% 37% 54% 46% / 55% 48% 52% 45%;
    }

    14% {
        border-radius: 40% 60% 54% 46% / 49% 60% 40% 51%;
    }

    28% {
        border-radius: 54% 46% 38% 62% / 49% 70% 30% 51%;
    }

    42% {
        border-radius: 61% 39% 55% 45% / 61% 38% 62% 39%;
    }

    56% {
        border-radius: 61% 39% 67% 33% / 70% 50% 50% 30%;
    }

    70% {
        border-radius: 50% 50% 34% 66% / 56% 68% 32% 44%;
    }

    84% {
        border-radius: 46% 54% 50% 50% / 35% 61% 39% 65%;
    }
}


/* top-cover */
.top-cover-3d-wrap {
    position: relative;
    /* width: 340px; */
    /* max-width: calc(100% - 20px); */
    height: 410px;
    width: auto;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    perspective: 1000px;
    margin-top: -50px;
}

.top-cover-3d-wrap .top-cover-3d-wrapper {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    transition: transform 700ms 400ms ease-out;
}

.top-cover-3d-wrap .top-cover-container {
    width: 100%;
    height: 100%;
    position: absolute;
    border-radius: 6px;
    left: 0;
    top: 0;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden;
    box-shadow: 0 12px 35px 0 rgba(16, 39, 112, .07);
}

.top-cover-3d-wrap .top-cover-wrap {
    position: relative;
    width: 100%;
    display: block;
    z-index: 1;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden;
}

.top-cover-3d-wrap .img-wrap img {
    width: 100%;
    height: auto;
    display: block;
}

.top-cover-3d-wrap .img-top-cover-container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 350px;
    overflow: hidden;
}

.top-cover-3d-wrap .img-top-cover-container img {
    display: inline-flex;
    align-self: center;
    height: auto;
    width: 100%;
    object-fit: cover;
}

.top-cover-3d-wrap .img-1 {
    position: absolute;
    display: block;
    left: 50%;
    bottom: -50px;
    z-index: 5;
    width: calc(80% + 160px);
    transform: translate3d(-50%, 0, 45px) perspective(100px);
    opacity: 1;
    pointer-events: auto;
    transition: transform 400ms 1200ms ease, opacity 400ms 1200ms ease;
}

/* ./top-cover */

/* cover */

.cover-3d-wrap {
    position: relative;
    /* width: 340px; */
    max-width: calc(100% - 20px);
    height: 414px;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    perspective: 1000px;
    /* margin-top: 90px; */
}

.cover-3d-wrap .cover-3d-wrapper {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    transition: transform 700ms 400ms ease-out;
}

.cover-3d-wrap .cover-container {
    width: 100%;
    height: 100%;
    position: absolute;
    border-radius: 6px;
    left: 0;
    top: 0;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden;
    box-shadow: 0 12px 35px 0 rgba(16, 39, 112, .07);
}

.cover-3d-wrap .cover-wrap {
    position: relative;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 1;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden;
}


.cover-3d-wrap .img-cover-container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 350px;
    overflow: hidden;
}

.cover-3d-wrap .img-cover-container img {
    display: inline-flex;
    align-self: center;
    height: 100%;
    width: auto;
    object-fit: cover;
}

.cover-3d-wrap .img-wrap img {
    width: 100%;
    height: auto;
    display: block;
}

.cover-3d-wrap .img-1 {
    position: absolute;
    display: block;
    left: -105px;
    bottom: -80px;
    z-index: 5;
    width: calc(35% + 30px);
    transform: translate3d(0, 0, 25px) perspective(100px) scale(1);
    opacity: 1;
    pointer-events: auto;
    transition: transform 300ms 1300ms ease, opacity 200ms 1300ms ease;

}

@media (max-width: 640px) {
    .cover-3d-wrap .img-1 {
        position: absolute;
        display: block;
        left: -71px;
        bottom: -58px;
        z-index: 5;
        width: calc(61% + 30px);
        transform: translate3d(0, 0, 25px) perspective(100px) scale(1);
        opacity: 1;
        pointer-events: auto;
        transition: transform 300ms 1300ms ease, opacity 200ms 1300ms ease;

    }
}

.cover-3d-wrap .img-3 {
    position: absolute;
    display: block;
    right: -105px;
    top: -80px;
    z-index: 5;
    width: calc(35% + 30px);
    transform: translate3d(0, 0, 25px) perspective(100px) scale(1) rotate(180deg);
    opacity: 1;
    pointer-events: auto;
    transition: transform 300ms 1300ms ease, opacity 200ms 1300ms ease;

}

@media (max-width: 640px) {
    .cover-3d-wrap .img-3 {
        position: absolute;
        display: block;
        right: -71px;
        top: -58px;
        z-index: 5;
        width: calc(61% + 30px);
        transform: translate3d(0, 0, 25px) perspective(100px) scale(1) rotate(180deg);
        opacity: 1;
        pointer-events: auto;
        transition: transform 300ms 1300ms ease, opacity 200ms 1300ms ease;

    }
}

.cover-3d-wrap .img-2 {
    position: absolute;
    display: block;
    left: 0;
    top: 0;
    z-index: 1;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    overflow: hidden;
    width: 100%;
    transform: translate3d(0, 0, 15px) perspective(100px);
}


.cover-3d-wrap .img-4 {
    position: absolute;
    display: block;
    left: -60px;
    top: -60px;
    z-index: 5;
    width: calc(65% + 60px);
    transform: translate3d(0, 0, 45px) perspective(100px) scale(0.5);
    opacity: 0;
    pointer-events: none;
    transition: transform 400ms ease, opacity 200ms 150ms ease;
}


.cover-3d-wrap .img-5 {
    position: absolute;
    display: block;
    right: -70px;
    top: -50px;
    z-index: 6;
    width: calc(60% + 70px);
    transform: translate3d(0, 0, 35px) perspective(100px) scale(0.5) rotate(0deg);
    opacity: 0;
    pointer-events: none;
    transition: transform 400ms 100ms ease, opacity 200ms 250ms ease;
}

.cover-3d-wrap .img-6 {
    position: absolute;
    display: block;
    right: -20px;
    bottom: -55px;
    z-index: 5;
    width: calc(10% + 30px);
    transform: translate3d(0, 0, 25px) perspective(100px) scale(1);
    opacity: 1;
    pointer-events: auto;
    transition: transform 300ms 1300ms ease, opacity 200ms 1300ms ease;
}

.cover-3d-wrap .img-7 {
    position: absolute;
    display: block;
    right: -30px;
    bottom: -65px;
    z-index: 6;
    width: calc(25% + 30px);
    transform: translate3d(0, 0, 35px) perspective(100px) scale(0.5);
    opacity: 0;
    pointer-events: none;
    transition: transform 400ms 100ms ease, opacity 200ms 250ms ease;
}


/* ./cover */

#btn-open {
    font-weight: 600;
}

/* butterfly */

.mariposa {
    position: absolute;
    margin: auto;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    width: 200px;
    height: 200px;
    opacity: 0;
    /* start at 0 so they don't appear while loading */
    -webkit-animation-fill-mode: backwards;
    animation-fill-mode: backwards;
    animation: fly-diagonal 5s infinite linear;
    animation-delay: 0.200s;
    transform: rotateZ(45deg);
    z-index: 999;
}

.mariposa .mariposa-turn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 200px;
    height: 150px;
    perspective: 1000px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    left: 0;
    margin: auto;
    transform-origin: 50% 80%;
    /* turn from a natural center */
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    animation: turn 3s infinite cubic-bezier(0.31, 0.09, 0.77, 1.5);
    transform-style: preserve-3d;
    filter: drop-shadow(50px 30px 10px rgba(0, 0, 0, 0.5));
}

@keyframes fly-diagonal {
    0% {
        opacity: 0;
        transform: translateX(-100%) translateY(100%) rotateZ(45deg);
    }

    3%,
    99% {
        opacity: 1;
    }

    100% {
        transform: translateX(100%) translateY(-100%) rotateZ(45deg);
    }
}


.mariposa:nth-child(2) {
    animation-delay: 0.4s;
}

.mariposa:nth-child(2) .mariposa-turn {
    animation-delay: 0.75s;
}

.mariposa:nth-child(2) .mariposa-turn .mariposa-flutter {
    transform: scale(0.7) rotateX(65deg);
}

.mariposa:nth-child(3) {
    animation-delay: 0.75s;
}

.mariposa:nth-child(3) .mariposa-turn {
    animation-delay: 1.25s;
}

.mariposa:nth-child(3) .mariposa-turn .mariposa-flutter {
    transform: scale(0.3) rotateX(45deg);
}

.mariposa-flutter {
    width: 2rem;
    height: 8rem;
    position: relative;
    top: 0;
    margin: 0 auto;
    background: url("https://assets.codepen.io/2273448/butterfly-body.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transform-style: preserve-3d;
    transform: rotateX(25deg) rotateY(5deg);
}

.mariposa-flutter::before,
.mariposa-flutter::after {
    position: absolute;
    top: 5%;
    margin: auto;
    content: "";
    height: 100%;
    width: 250%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transform-style: preserve-3d;
    animation-delay: 0;
}

.mariposa-flutter::before {
    background-image: url("https://assets.codepen.io/2273448/butterfly-wing.png");
    transform-origin: 0% 50%;
    animation: flutter-r 0.3s infinite ease-out;
    left: 55%;
}

.mariposa-flutter::after {
    background-image: url("https://assets.codepen.io/2273448/butterfly-wing-l.png");
    transform-origin: 100% 50%;
    animation: flutter-l 0.3s infinite ease-out;
    right: 55%;
}

@keyframes flutter-r {

    0%,
    100% {
        transform: rotateY(0deg);
    }

    50% {
        transform: rotateY(-40deg);
    }
}

@keyframes flutter-l {

    0%,
    100% {
        transform: rotateY(0deg);
    }

    50% {
        transform: rotateY(40deg);
    }
}

@keyframes turn {

    0%,
    100% {
        transform: translateX(-20%) rotateZ(30deg);
    }

    25% {
        transform: translateX(50%) rotateZ(-30deg);
    }

    50% {
        transform: translateX(-80%) rotateZ(30deg);
    }

    75% {
        transform: translateX(30%) rotateZ(-30deg);
    }
}



/* ./butterfly */