html,
body {
    height: calc(100dvh - 10px);
}

body {
    display: flex;
    align-items: center;
    justify-content: center;
}

.spinner {
    width: 100px;
    height: 100px;
}

.spinner svg {
    animation: rotate 1.5s linear infinite;
    height: 100%;
    width: 100%;
    stroke: #6152FF;
}

.spinner circle {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
    animation:
        dash 1.5s ease-in-out infinite 0s;
    stroke-linecap: round;
    fill: none;
    stroke-width: 4;
}

@keyframes rotate {
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes dash {
    0% {
        stroke-dasharray: 1, 200;
        stroke-dashoffset: 0;
    }

    50% {
        stroke-dasharray: 89, 200;
        stroke-dashoffset: -35;
    }

    100% {
        stroke-dasharray: 89, 200;
        stroke-dashoffset: -124;
    }
}


.center {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-right: -50%;
    transform: translate(-50%, -50%)
}

header {
    padding: 24px;
    background-color: #009688;
}

.wrap {
    max-width: 640px;
    margin: 0 auto;
}

ul.menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.overlay {
    position: absolute;
    right: 0;
    left: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.85);
    opacity: 0;
    transition: all 450ms cubic-bezier(0.32, 1, 0.23, 1) 0ms;
}

.overlay .social {
    display: flex;
    justify-content: space-between;
    position: fixed;
    bottom: 0;
    width: 100%;
    padding: 10px;
    background-color: rgba(0, 0, 0, .7);
    padding: 8px 24px 16px;
    border-radius: 10px 10px 0 0;
    box-sizing: border-box;
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.22), 0px 14px 56px rgba(0, 0, 0, 0.25);
    transform: translate(0, 100%);
    transition: all 450ms cubic-bezier(0.32, 1, 0.23, 1) 100ms;
}

.overlay .social ul {
    text-align: justify;
    columns: 74px 3;
    vertical-align: bottom;
}

.overlay .social ul li {
    width: 74px;
    display: inline-block;
}

.overlay .social ul a {
    display: block;
    margin: 8px 0;
    color: gray;
    text-decoration: none;
    text-align: center;
}

.overlay .social ul a span {
    display: inline-block;
    width: 100%;
}

.overlay .social .facebook span {
    color: #3b5998;
}

.overlay .social .twitter span {
    color: #00aced;
}

.overlay .social .linkedin span {
    color: #007bb5;
}

.overlay .social .reddit span {
    display: block;
    width: 48px;
    height: 48px;
    margin: 0 auto;
    border-radius: 2px;
    background-color: #cee3f8;
    color: #fff;
    text-shadow: 1px 1px #000, -1px -1px #000, -1px 1px #000, 1px -1px #000;
}

.overlay .social .reddit span::after {
    content: "";
    display: block;
    height: 4px;
    width: 4px;
    background-color: red;
    border-radius: 50%;
    position: relative;
    top: -24px;
    left: 16px;
    box-shadow: 12px 0 red;
}

.overlay .social .whatsapp span {
    color: #4dc247;
}

.overlay .btn-close {
    color: #666;
    transform: scale(0, 0);
    transition: all 450ms ease-in-out 0;
}

.overlay:target {
    display: block;
    position: fixed;
    top: 0;
    opacity: 1;
}

.overlay:target .social {
    transform: translate(0, 0);
    z-index: 9;
}

.overlay:target .btn-close {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    outline: 0 none;
    transform: scale(1, 1);
}

@media screen and (min-width: 640px) {
    .overlay {
        padding: 0 24px;
    }

    .overlay .social {
        width: calc(100% - 48px);
    }

    .overlay .social ul {
        column-gap: 64px;
    }
}

.mdi::before {
    font-size: 24px;
    line-height: 48px;
}

.social .mdi::before {
    font-size: 48px;
}

.sr-only {
    /* a generic way to visually hide content while remaining accessible to screen readers (h5bp.com) */
    clip: rect(0 0 0 0);
    overflow: hidden;
    position: absolute;
    height: 1px;
    width: 1px;
}

.open-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    line-height: 32px;
    margin: 8px 15px;
}

.open-button {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #fff;
    border: none;
    border-radius: 24px;
    font-size: 14px;
    font-weight: 600;
    height: 48px;
    line-height: 46px;
    outline: none;
    box-sizing: border-box;
    padding: 0 12px;
    text-align: center;
    text-transform: capitalize;
    width: 120px;
    background-color: #6152FF;
}