.modal, .overlay{
    top: 0;
    left: 0;
    position: fixed;
    height: 100%;
    width: 100%;
    z-index: 1500;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.overlay--absolute{
    position: absolute;
}
.modal{
    background-color: rgba(0, 0, 0, .5);
}
.overlay{
    background-color: rgba(0, 0, 0, .25);
}
.modal:not(.noClose)::before{
    content: "X";
    position: absolute;
    right: 30px;
    top: 40px;
    font-size: 2em;
    font-weight: bold;
    color: #cbcbcb;
    cursor: pointer;
}
.modal > div{
    position: relative;
    background-color: #fff;
    -webkit-box-shadow: 4px 5px 13px 3px #5f5e5e;
    box-shadow: 4px 5px 13px 3px #5f5e5e;
    border-radius: 2px;
    padding: 30px 10px;
    margin: auto;
    /*width: 50%;*/
    min-height: 40%;
    max-height: 95%;
    overflow: auto;

    /*-webkit-perspective: 900px;
    perspective: 900px;*/
    -webkit-animation: flipdown 0.5s ease both;
    animation: flipdown 0.5s ease both;
}
@media screen and (min-width: 48em){
    .modal > div{
        max-height: 80%;
    }
}
.modal.narrow > div {
    display: table;
    min-height: 20%;
    margin-top: 10%;
}
.modal h1 {
    text-align: center;
    text-transform: uppercase;
    margin: 20px auto;
}

@-webkit-keyframes flipdown {
    0% {
        opacity: 0;
        -webkit-transform-origin: top center;
        transform-origin: top center;
        -webkit-transform: rotateX(-90deg);
        transform: rotateX(-90deg);
    }
    5% {
        opacity: 1;
    }
    80% {
        -webkit-transform: rotateX(8deg);
        transform: rotateX(8deg);
    }
    83% {
        -webkit-transform: rotateX(6deg);
        transform: rotateX(6deg);
    }
    92% {
        -webkit-transform: rotateX(-3deg);
        transform: rotateX(-3deg);
    }
    100% {
        -webkit-transform-origin: top center;
        transform-origin: top center;
        -webkit-transform: rotateX(0deg);
        transform: rotateX(0deg);
    }
}

@keyframes flipdown {
    0% {
        opacity: 0;
        -webkit-transform-origin: top center;
        transform-origin: top center;
        -webkit-transform: rotateX(-90deg);
        transform: rotateX(-90deg);
    }
    5% {
        opacity: 1;
    }
    80% {
        -webkit-transform: rotateX(8deg);
        transform: rotateX(8deg);
    }
    83% {
        -webkit-transform: rotateX(6deg);
        transform: rotateX(6deg);
    }
    92% {
        -webkit-transform: rotateX(-3deg);
        transform: rotateX(-3deg);
    }
    100% {
        -webkit-transform-origin: top center;
        transform-origin: top center;
        -webkit-transform: rotateX(0deg);
        transform: rotateX(0deg);
    }
}