:root {
    --lity-z-index-base: 9990;
    --lity-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    --lity-close-size: 35px;
    --lity-close-text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
    --lity-iframe-ratio: 9/16;  /* Or 3/4 */
    --lity-transition-timing-function: ease;
    --lity-transition-duration: .3s;

    --lity-close-style: {
        text-decoration: none;
        text-align: center;
        padding: 0;
        color: #fff;
        font-style: normal;
        font-size: var(--lity-close-size);
        font-family: Arial, Baskerville, monospace;
        line-height: var(--lity-close-size);
        text-shadow: var(--lity-close-text-shadow);
        border: 0;
        background: none;
        outline: none;
        box-shadow: none;
    }
}

.lity {
    z-index: var(--lity-z-index-base);
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    white-space: nowrap;
    background: #0b0b0b;
    background: rgba(0, 0, 0, 0.9);
    outline: none !important;
    opacity: 0;
    transition: opacity var(--lity-transition-duration) var(--lity-transition-timing-function);
}

.lity.lity-opened {
     opacity: 1;
 }

.lity.lity-closed {
     opacity: 0;
 }

.lity * {
    box-sizing: border-box;
}

.lity-wrap {
    z-index: var(--lity-z-index-base);
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    text-align: center;
    outline: none !important;
}

.lity-wrap:before {
     content: '';
     display: inline-block;
     height: 100%;
     vertical-align: middle;
     margin-right: -0.25em;
 }

.lity-loader {
    z-index: calc(var(--lity-z-index-base) + 1);
    color: #fff;
    position: absolute;
    top: 50%;
    margin-top: -0.8em;
    width: 100%;
    text-align: center;
    font-size: 14px;
    font-family: Arial, Helvetica, sans-serif;
    opacity: 0;
    transition: opacity var(--lity-transition-duration) var(--lity-transition-timing-function);
}

.lity-loading .lity-loader {
    opacity: 1;
}

.lity-container {
    z-index: calc(var(--lity-z-index-base) + 2);
    position: relative;
    text-align: left;
    vertical-align: middle;
    display: inline-block;
    white-space: normal;
    max-width: 100%;
    max-height: 100%;
    outline: none !important;
}

.lity-content {
    z-index: calc(var(--lity-z-index-base) + 3);
    width: 100%;

    transform: scale(1);
    transition: transform var(--lity-transition-duration) var(--lity-transition-timing-function);
}

.lity-loading .lity-content,
.lity-closed .lity-content {
    transform: scale(0.8);
}

.lity-content:after {
     content: '';
     position: absolute;
     left: 0;
     top: 0;
     bottom: 0;
     display: block;
     right: 0;
     width: auto;
     height: auto;
     z-index: -1;
     box-shadow: var(--lity-shadow);
 }

.lity-close {
    z-index: calc(var(--lity-z-index-base) + 4);
    width: var(--lity-close-size);
    height: var(--lity-close-size);

    /* Change to position: absolute to display close button inside content container */
    position: fixed;
    right: 0;
    top: 0;

    -webkit-appearance: none;
    cursor: pointer;

    @apply --lity-close-style;
}

.lity-close::-moz-focus-inner {
     border: 0;
     padding: 0;
 }

.lity-close:hover,
.lity-close:focus,
.lity-close:active,
.lity-close:visited {
    @apply --lity-close-style;
}

.lity-close:active {
     top: 1px;
 }

/* Image */

.lity-image img {
    max-width: 100%;
    display: block;
    line-height: 0;
    border: 0;
}

/* iFrame */

.lity-iframe .lity-container {
    width: 100%;
    max-width: 964px;
}

.lity-iframe-container {
    width: 100%;
    height: 0;
    padding-top: calc(var(--lity-iframe-ratio) * 100%);
    overflow: auto;
    pointer-events: auto;
    transform: translateZ(0);
    -webkit-overflow-scrolling: touch;
}

.lity-iframe-container iframe {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-shadow: var(--lity-shadow);
    background: #000;
}

.lity-hide {
    display: none;
}
