:root {
    --vegas-timer-color:        white;
    --vegas-kenburns-scale:     1.5;
    --vegas-kenburns-translate: 10%;
    --vegas-blur-value:         32px;
    --vegas-swirl-degree:       35deg;
    --vegas-swirl-scale:        2;
    --vegas-zoom-scale:         2;
}

/* -------------------------------------------------------------------------
 * Base
 * ---------------------------------------------------------------------- */

.vegas-overlay,
.vegas-content-scrollable,
.vegas-timer,
.vegas-slide,
.vegas-slide-inner {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    overflow: hidden;
    border: none;
    padding: 0;
    margin: 0;
}

.vegas-content-scrollable {
    position: relative;
    height: 100%;
    overflow: auto;
}

.vegas-overlay {
    opacity: .5;
    background: transparent url('./overlays/02.png') center center repeat;
}

.vegas-timer {
    top: auto;
    bottom: 0;
    height: 2px;
}

.vegas-timer-progress {
    width: 0%;
    height: 100%;
    background: var(--vegas-timer-color);
    transition: width ease-out;
}

.vegas-timer-running .vegas-timer-progress {
    width: 100%;
}

.vegas-slide,
.vegas-slide-inner {
    margin: 0;
    padding: 0;
    background: transparent center center no-repeat;
    transform: translateZ(0);
    will-change: transform, opacity;
}

body .vegas-container {
    overflow: hidden !important;
    position: relative;
}

.vegas-video {
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
}

body.vegas-container {
    overflow: auto;
    position: static;
    z-index: -2;
}

body.vegas-container > .vegas-timer,
body.vegas-container > .vegas-overlay,
body.vegas-container > .vegas-slide {
    position: fixed;
    z-index: -1;
}

/* -------------------------------------------------------------------------
 * Transitions
 * ---------------------------------------------------------------------- */

/* fade */

.vegas-transition-fade,
.vegas-transition-fade2 {
    opacity: 0;
}

.vegas-transition-fade-in,
.vegas-transition-fade2-in {
    opacity: 1;
}

.vegas-transition-fade2-out {
    opacity: 0;
}

/* blur */

.vegas-transition-blur,
.vegas-transition-blur2 {
    opacity: 0;
    filter: blur(var(--vegas-blur-value)) brightness(1.01);
}

.vegas-transition-blur-in,
.vegas-transition-blur2-in {
    opacity: 1;
    filter: blur(0px) brightness(1.01);
}

.vegas-transition-blur2-out {
    opacity: 0;
}

/* flash */

.vegas-transition-flash,
.vegas-transition-flash2 {
    opacity: 0;
    filter: brightness(25);
}

.vegas-transition-flash-in,
.vegas-transition-flash2-in {
    opacity: 1;
    filter: brightness(1);
}

.vegas-transition-flash2-out {
    opacity: 0;
    filter: brightness(25);
}

/* negative */

.vegas-transition-negative,
.vegas-transition-negative2 {
    opacity: 0;
    filter: invert(100%);
}

.vegas-transition-negative-in,
.vegas-transition-negative2-in {
    opacity: 1;
    filter: invert(0);
}

.vegas-transition-negative2-out {
    opacity: 0;
    filter: invert(100%);
}

/* burn */

.vegas-transition-burn,
.vegas-transition-burn2 {
    opacity: 0;
    filter: contrast(1000%) saturate(1000%);
}

.vegas-transition-burn-in,
.vegas-transition-burn2-in {
    opacity: 1;
    filter: contrast(100%) saturate(100%);
}

.vegas-transition-burn2-out {
    opacity: 0;
    filter: contrast(1000%) saturate(1000%);
}

/* slideLeft */

.vegas-transition-slideLeft,
.vegas-transition-slideLeft2 {
    transform: translateX(100%);
}

.vegas-transition-slideLeft-in,
.vegas-transition-slideLeft2-in {
    transform: translateX(0%);
}

.vegas-transition-slideLeft2-out {
    transform: translateX(-100%);
}

/* slideRight */

.vegas-transition-slideRight,
.vegas-transition-slideRight2 {
    transform: translateX(-100%);
}

.vegas-transition-slideRight-in,
.vegas-transition-slideRight2-in {
    transform: translateX(0%);
}

.vegas-transition-slideRight2-out {
    transform: translateX(100%);
}

/* slideUp */

.vegas-transition-slideUp,
.vegas-transition-slideUp2 {
    transform: translateY(100%);
}

.vegas-transition-slideUp-in,
.vegas-transition-slideUp2-in {
    transform: translateY(0%);
}

.vegas-transition-slideUp2-out {
    transform: translateY(-100%);
}

/* slideDown */

.vegas-transition-slideDown,
.vegas-transition-slideDown2 {
    transform: translateY(-100%);
}

.vegas-transition-slideDown-in,
.vegas-transition-slideDown2-in {
    transform: translateY(0%);
}

.vegas-transition-slideDown2-out {
    transform: translateY(100%);
}

/* zoomIn */

.vegas-transition-zoomIn,
.vegas-transition-zoomIn2 {
    transform: scale(0);
    opacity: 0;
}

.vegas-transition-zoomIn-in,
.vegas-transition-zoomIn2-in {
    transform: scale(1);
    opacity: 1;
}

.vegas-transition-zoomIn2-out {
    transform: scale(var(--vegas-zoom-scale));
    opacity: 0;
}

/* zoomOut */

.vegas-transition-zoomOut,
.vegas-transition-zoomOut2 {
    transform: scale(var(--vegas-zoom-scale));
    opacity: 0;
}

.vegas-transition-zoomOut-in,
.vegas-transition-zoomOut2-in {
    transform: scale(1);
    opacity: 1;
}

.vegas-transition-zoomOut2-out {
    transform: scale(0);
    opacity: 0;
}

/* swirlLeft */

.vegas-transition-swirlLeft,
.vegas-transition-swirlLeft2 {
    transform: scale(var(--vegas-swirl-scale)) rotate(var(--vegas-swirl-degree));
    opacity: 0;
}

.vegas-transition-swirlLeft-in,
.vegas-transition-swirlLeft2-in {
    transform: scale(1) rotate(0deg);
    opacity: 1;
}

.vegas-transition-swirlLeft2-out {
    transform: scale(var(--vegas-swirl-scale)) rotate(calc(-1 * var(--vegas-swirl-degree)));
    opacity: 0;
}

/* swirlRight */

.vegas-transition-swirlRight,
.vegas-transition-swirlRight2 {
    transform: scale(var(--vegas-swirl-scale)) rotate(calc(-1 * var(--vegas-swirl-degree)));
    opacity: 0;
}

.vegas-transition-swirlRight-in,
.vegas-transition-swirlRight2-in {
    transform: scale(1) rotate(0deg);
    opacity: 1;
}

.vegas-transition-swirlRight2-out {
    transform: scale(var(--vegas-swirl-scale)) rotate(var(--vegas-swirl-degree));
    opacity: 0;
}

/* -------------------------------------------------------------------------
 * Animations (Ken Burns)
 * ---------------------------------------------------------------------- */

.vegas-animation-kenburns {
    animation: vegas-kenburns ease-out;
}

@keyframes vegas-kenburns {
    0%   { transform: scale(var(--vegas-kenburns-scale)); }
    100% { transform: scale(1); }
}

/* kenburnsUp */

.vegas-animation-kenburnsUp {
    animation: vegas-kenburnsUp ease-out;
}

@keyframes vegas-kenburnsUp {
    0%   { transform: scale(var(--vegas-kenburns-scale)) translate(0, var(--vegas-kenburns-translate)); }
    100% { transform: scale(1) translate(0, 0); }
}

/* kenburnsDown */

.vegas-animation-kenburnsDown {
    animation: vegas-kenburnsDown ease-out;
}

@keyframes vegas-kenburnsDown {
    0%   { transform: scale(var(--vegas-kenburns-scale)) translate(0, calc(-1 * var(--vegas-kenburns-translate))); }
    100% { transform: scale(1) translate(0, 0); }
}

/* kenburnsLeft */

.vegas-animation-kenburnsLeft {
    animation: vegas-kenburnsLeft ease-out;
}

@keyframes vegas-kenburnsLeft {
    0%   { transform: scale(var(--vegas-kenburns-scale)) translate(var(--vegas-kenburns-translate), 0); }
    100% { transform: scale(1) translate(0, 0); }
}

/* kenburnsRight */

.vegas-animation-kenburnsRight {
    animation: vegas-kenburnsRight ease-out;
}

@keyframes vegas-kenburnsRight {
    0%   { transform: scale(var(--vegas-kenburns-scale)) translate(calc(-1 * var(--vegas-kenburns-translate)), 0); }
    100% { transform: scale(1) translate(0, 0); }
}

/* kenburnsUpLeft */

.vegas-animation-kenburnsUpLeft {
    animation: vegas-kenburnsUpLeft ease-out;
}

@keyframes vegas-kenburnsUpLeft {
    0%   { transform: scale(var(--vegas-kenburns-scale)) translate(var(--vegas-kenburns-translate), var(--vegas-kenburns-translate)); }
    100% { transform: scale(1) translate(0, 0); }
}

/* kenburnsUpRight */

.vegas-animation-kenburnsUpRight {
    animation: vegas-kenburnsUpRight ease-out;
}

@keyframes vegas-kenburnsUpRight {
    0%   { transform: scale(var(--vegas-kenburns-scale)) translate(calc(-1 * var(--vegas-kenburns-translate)), var(--vegas-kenburns-translate)); }
    100% { transform: scale(1) translate(0, 0); }
}

/* kenburnsDownLeft */

.vegas-animation-kenburnsDownLeft {
    animation: vegas-kenburnsDownLeft ease-out;
}

@keyframes vegas-kenburnsDownLeft {
    0%   { transform: scale(var(--vegas-kenburns-scale)) translate(var(--vegas-kenburns-translate), calc(-1 * var(--vegas-kenburns-translate))); }
    100% { transform: scale(1) translate(0, 0); }
}

/* kenburnsDownRight */

.vegas-animation-kenburnsDownRight {
    animation: vegas-kenburnsDownRight ease-out;
}

@keyframes vegas-kenburnsDownRight {
    0%   { transform: scale(var(--vegas-kenburns-scale)) translate(calc(-1 * var(--vegas-kenburns-translate)), calc(-1 * var(--vegas-kenburns-translate))); }
    100% { transform: scale(1) translate(0, 0); }
}
