[inv-vht-modal-backdrop] {
    background: rgba(0,0,0,0.85);
    position: fixed;
    width: 100%;
    height: 100%;
    top: -999999px;
    left: 0;
    z-index: 999999;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    backface-visibility: hidden;
    transition: opacity 250ms ease;
    display: flex !important;
    padding: 30px 0;
    align-items: center;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

    [inv-vht-modal-backdrop].in {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        cursor: pointer;
    }

    [inv-vht-modal-backdrop].in-pos {
        top: 0;
    }

    [inv-vht-modal-backdrop] [inv-vht-modal] {
        position: relative;
        width: 90%;
        max-width: 550px;
        margin: auto;
        box-shadow: 0 0 0 1px rgba(0,0,0,.2), 0 5px 25px rgba(0,0,0,0.8);
        border-radius: 6px;
        z-index: 999;
        overflow: hidden;
        background: white;
        transition: all 600ms ease, transform 300ms ease;
        transform: scale(.91);
        transition-delay: 0ms;
        opacity: 0;
        visibility: hidden;
        backface-visibility: hidden;
        align-self: flex-start;
    }

    [inv-vht-modal-backdrop].in [inv-vht-modal] {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: scale(1);
        transition-delay: 250ms;
    }

[inv-vht-modal]:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 15px;
    background: transparent;
    z-index: 999;
    border-radius: 8px;
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.25);
}

[inv-vht-modal]:after {
    content: '\25CC';
    width: 50px;
    height: 50px;
    line-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 100px;
    font-family: 'Arial', sans-serif;
    color: #ddd;
    background: transparent;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: -25px;
    margin-top: -25px;
    padding-bottom: 12px;
    -webkit-animation: inv-spin 4s infinite linear;
    -moz-animation: inv-spin 4s infinite linear;
    -ms-animation: inv-spin 4s infinite linear;
    -o-animation: inv-spin 4s infinite linear;
    animation: inv-spin 4s infinite linear;
    z-index: -1;
}

[inv-vht-modal] iframe {
    width: 100%;
    height: auto;
    /*min-height: 500px;*/
    overflow: hidden;
}

@media screen and (max-width: 450px) {
    [inv-vht-modal] iframe {
        min-height: 400px;
    }
}

[inv-vht-modal-close] {
    position: absolute;
    top: 0;
    right: 0;
    width: 30px;
    height: 30px;
    outline: none !important;
    border: none !important;
    background: none;
    z-index: 99999;
    padding: 0;
    margin: 0;
    cursor: pointer;
}

[inv-vht-modal-close]:before, [inv-vht-modal-close]:after {
    content: '';
    background: #333;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 2px;
    height: 16px;
    margin: -8px auto auto -1px;
    transform: rotate(45deg);
}

[inv-vht-modal-close]:after {
    transform: rotate(-45deg);
}

[inv-vht-modal-button] {
    display: inline-block;
    position: relative;
    background-size: 0;
    z-index: inherit;
}

[inv-vht-modal-button]:before {
    content: '';
    background-image: inherit;
    background-repeat: no-repeat;
    background-size: contain;
    width: 160px;
    height: 250px;
    display: block;
    opacity: 0;
    visibility: hidden;
    position: absolute;
    left: 50%;
    top: 100%;
    margin-left: -30px;
    background-position: 0 0;
    transform: scale(.8) perspective(900px) rotateX(25deg) rotateZ(-25deg);
    transform-origin: 0 0;
    transition: opacity 350ms ease-out, visibility 350ms ease-out, transform 350ms ease-out;
    transition-delay: 0ms, 0ms, 350ms;
    z-index: 5;
}

[inv-vht-modal-button]:hover:before, [inv-vht-modal-button]:focus:before, [inv-vht-modal-button].inv-vht-focused:before {
    opacity: 1;
    visibility: visible;
    transform: scale(.8) perspective(900px) rotateZ(-15deg);
    transition-delay: 0ms;
    transition: opacity 450ms cubic-bezier(.59,.01,.45,1.25), visibility 450ms cubic-bezier(.59,.01,.45,1.25), transform 450ms cubic-bezier(.59,.01,.45,1.25);
}

[inv-vht-modal-button-img] {
    display: inline-block;
}

[inv-vht-modal-button-img]:before {
    outline: 0;
}

@-webkit-keyframes inv-spin {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0deg);
    }

    100% {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

@-moz-keyframes inv-spin {
    0% {
        -moz-transform: rotate(0);
        transform: rotate(0);
    }

    100% {
        -moz-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

@-ms-keyframes inv-spin {
    0% {
        -ms-transform: rotate(0);
        transform: rotate(0);
    }

    100% {
        -ms-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

@-o-keyframes inv-spin {
    0% {
        -o-transform: rotate(0);
        transform: rotate(0);
    }

    100% {
        -o-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

@keyframes inv-spin {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0);
    }

    100% {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}
