* {
    margin: 0;
    padding: 0;
}

.animate {
    width: 100%;
    /* display: flex;
    justify-content: center;
    align-items: center; */
    height: 100vh;
    overflow: hidden;
}

.source {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    height: 150px;
    width: 150px;
    border-radius: 100%;
    background: #ffffff;
    top: -100px;
    left: -100px;
    background-color: transparent;
}

.logo-btn {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    height: 150px;
    width: 150px;
    border-radius: 100%;
    background: #ffffff;
    box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
    top: 100px;
    margin: auto;
    background-color: rgb(235, 111, 169);
    z-index: -1;
    animation: bounce 1s infinite alternate;
    -webkit-animation: bounce 1s infinite alternate;
    display: flex;
    justify-content: center;
    align-items: center;
}

.logo {
    animation-name: rotate;
    animation-duration: 0.5s;
    animation-iteration-count: 1;
    animation-delay: 2.5s;
    animation-timing-function: linear;
    animation-direction: normal;
}

@keyframes rotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@keyframes bounce {
    from {
        transform: translateY(0px);
    }
    to {
        transform: translateY(-55px);
    }
}

@-webkit-keyframes bounce {
    from {
        transform: translateY(0px);
    }
    to {
        transform: translateY(-25px);
    }
}

.source::after {
    opacity: 4;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: -8px;
    left: -8px;
    right: 0;
    bottom: 0;
    content: "";
    height: 100%;
    width: 100%;
    border: 8px solid rgba(255, 0, 0, 0.548);
    border-radius: 100%;
    animation-name: ripple;
    animation-duration: 3s;
    animation-delay: 0s;
    animation-iteration-count: infinite;
    animation-timing-function: cubic-bezier(0.65, 0, 0.34, 1);
    z-index: -1;
}

.source::before {
    opacity: 4;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: -8px;
    left: -8px;
    right: 0;
    bottom: 0;
    content: "";
    height: 100%;
    width: 100%;
    border: 8px solid rgba(0, 217, 255, 0.548);
    border-radius: 100%;
    animation-name: ripple;
    animation-duration: 3s;
    animation-delay: 0.5s;
    animation-iteration-count: infinite;
    animation-timing-function: cubic-bezier(0.65, 0, 0.34, 1);
    z-index: -1;
}

@keyframes ripple {
    from {
        opacity: 1;
        transform: scale3d(0.75, 0.75, 1);
    }
    to {
        opacity: 0;
        transform: scale3d(100, 100.5, 1);
    }
}