:root {
    --white: #FFF;
    --black: #000;
}

#page.trans-curtainclose-reverse #handle-tl {
    animation-name: handlesSplitL;
    left: 100%;
    border-right: 3px solid var(--black);
    animation-delay: 0s;
    border-bottom-right-radius: 100% 50%;
    border-top-right-radius: 100% 50%
}

#page.trans-curtainclose-reverse #handle-br {
    animation-name: handlesSplitR;
    right: 100%;
    border-left: 3px solid var(--black);
    border-right: 0;
    border-bottom-left-radius: 100% 50%;
    border-top-left-radius: 100% 50%
}

#page.trans-curtainclose-reverse #handle-tl:before {
    content: "";
    animation-name: handlesSplitA;
    transform: rotate(0deg);
    transform-origin: 50% 50%;
    animation-delay: 0s;
    background-repeat: no-repeat;
    width: 140px;
    height: 140px;
    left: -70px;
    visibility: visible;
    background-image: url(/media/chevrons_left_icon.svg)
}

#page.trans-curtainclose-reverse #handle-br:before {
    content: "";
    animation-name: handlesSplitA;
    transform: rotate(180deg);
    transform-origin: 50% 50%;
    animation-delay: 0s;
    visibility: visible;
    background-repeat: no-repeat;
    width: 140px;
    height: 140px;
    right: -70px;
    background-image: url(/media/chevrons_left_icon.svg)
}

#page.trans-curtainclose-reverse .steps.anim-next:not(.anim-current) .half:nth-child(2) {
    animation-name: curtainOpenR;
    animation-delay: 500ms
}

#page.trans-curtainclose-reverse .steps.anim-next:not(.anim-current) .half:first-child {
    animation-name: curtainOpenL;
    animation-delay: 500ms
}

#page.trans-stackleft-reverse .anim-next .half:nth-child(2) {
    animation-name: curtainOpenR;
    animation-duration: 750ms
}

#page.trans-stackleft-reverse .anim-next .half:first-child {
    animation-name: RslideCloseR;
    animation-duration: 750ms
}

#page.trans-stackleft-reverse .anim-current .half:nth-child(2) {
    animation-name: curtainSwipeR;
    animation-duration: 750ms
}

#page.trans-stackleft-reverse .anim-current .half:first-child {
    left: 0
}

#page.trans-stackright-reverse .anim-next .half:nth-child(2) {
    left: auto !important;
    right: 50%;
    animation-name: LslideCloseL;
    animation-duration: 750ms
}

#page.trans-stackright-reverse .anim-next .half:first-child {
    animation-name: curtainOpenL;
    animation-duration: 750ms
}

#page.trans-stackright-reverse .anim-current .half:nth-child(2) {
    right: 0
}

#page.trans-stackright-reverse .anim-current .half:first-child {
    animation-name: curtainSwipeL;
    animation-duration: 750ms
}

#page.trans-wholeup-reverse .steps.trans-wholeup.anim-next .whole {
    animation-name: SlideHideDown;
    top: 0
}

#page.trans-wholedown-reverse .steps.trans-wholedown.anim-next .whole {
    animation-name: SlideHideUp;
    bottom: 0
}

#page.trans-curtainclose-reverse .steps.anim-previous .overlayed .overimg:nth-child(2) {
    animation-name: fadeIn;
    animation-delay: 500ms;
    animation-duration: 750ms;
    animation-fill-mode: forwards
}

.trans-crossclose-reverse .steps.anim-current .half:nth-child(2) {
    animation-name: curtainSwipeAcrossR
}

.trans-crossclose-reverse .steps.anim-current .half:first-child {
    animation-name: curtainSwipeAcrossL
}

.trans-crossclose-reverse .steps.anim-next .half:nth-child(2) {
    animation-name: curtainOpenR
}

.trans-crossclose-reverse .steps.anim-next .half:first-child {
    animation-name: curtainOpenL
}

.trans-crossopen-reverse .steps.anim-current .half:nth-child(2) {
    animation-name: curtainSwipeAcrossL
}

.trans-crossopen-reverse .steps.anim-current .half:first-child {
    animation-name: curtainSwipeAcrossR
}

.trans-crossopen-reverse .steps.anim-next .half:nth-child(2) {
    animation-name: curtainCloseL
}

.trans-crossopen-reverse .steps.anim-next .half:first-child {
    animation-name: curtainCloseR
}

#page.trans-switchdownup-reverse .steps.anim-current .half:nth-child(2),
#page.trans-switchupdown-reverse .steps.anim-current .half:nth-child(2) {
    top: 0;
    left: 50%
}

#page.trans-switchupdown-reverse .steps.anim-current .half:first-child,
#page.trans-switchdownup-reverse .steps.anim-current .half:first-child {
    top: 0;
    right: 50%
}

#page.trans-switchdownup-reverse .steps.anim-next .half:nth-child(2) {
    left: 50%;
    animation-name: SlideHideDown
}

#page.trans-switchupdown-reverse .steps.anim-next .half:first-child {
    right: 50%;
    animation-name: SlideHideDown
}

#page.trans-switchupdown-reverse .steps.anim-next .half:nth-child(2) {
    left: 50%;
    animation-name: SlideHideUp
}

#page.trans-switchdownup-reverse .steps.anim-next .half:first-child {
    right: 50%;
    animation-name: SlideHideUp
}

.steps.trans-revealdownup .half:nth-child(2),
.steps.trans-revealupdown .half:nth-child(2) {
    left: 50%
}

.steps.trans-revealupdown .half:first-child,
.steps.trans-revealdownup .half:first-child {
    right: 50%
}

.steps.trans-revealdownup .half:first-child,
.steps.trans-revealupdown .half:nth-child(2),
.steps.trans-revealdownup .half:first-child>div,
.steps.trans-revealupdown .half:nth-child(2)>div {
    top: 0
}

.steps.trans-revealupdown .half:first-child,
.steps.trans-revealdownup .half:nth-child(2),
.steps.trans-revealupdown .half:first-child>div,
.steps.trans-revealdownup .half:nth-child(2)>div {
    bottom: 0
}

#page.trans-revealdownup-reverse .steps.anim-next .half:nth-child(2) {
    left: 50%;
    border-top: #740000 2px;
    animation-name: RevealHide;
    animation-duration: 750ms;
    bottom: 0
}

#page.trans-floater-reverse .steps.anim-current .floater {
    right: 100% !important;
    animation-name: LslideOpenR
}

#page.trans-floater-reverse .steps.anim-current .floater {
    right: 100% !important;
    animation-name: LslideOpenR
}

#page.trans-revealupdown-reverse .steps.anim-next .half:first-child {
    right: 50%;
    border-top: #740000 2px;
    bottom: 0;
    animation-name: RevealHide;
    animation-duration: 750ms
}

#page.trans-revealupdown-reverse .steps.anim-next .half:nth-child(2) {
    left: 50%;
    top: 0;
    border-bottom: #740000 2px;
    animation-name: RevealHide;
    animation-duration: 750ms
}

#page.trans-revealdownup-reverse .steps.anim-next .half:first-child {
    right: 50%;
    top: 0;
    border-bottom: #740000 2px;
    animation-name: RevealHide;
    animation-duration: 750ms
}

#page:not(.anim-reverse) .steps.anim-previous .textAppear {
    animation-name: TextDisppear;
    animation-duration: .5s;
    animation-fill-mode: forwards;
    animation-delay: 1200ms
}

#page:not(.anim-reverse) .steps.anim-next .textAppear:not(.freeze-out) {
    animation-name: TextDisppear;
    animation-delay: 0ms !important;
    animation-duration: .5s;
    animation-fill-mode: forwards
}

#page.trans-wholeshiftleft-reverse .steps.trans-wholeshiftleft.anim-current {
    animation-name: RslideOpenL;
    top: 0
}

#page.trans-wholeshiftleft-reverse .steps.trans-wholeshiftleft.anim-next {
    animation-name: RslideCloseL;
    top: 0
}

#page.trans-wholeshiftup-reverse .steps.trans-wholeshiftup.anim-next {
    animation-name: SlideHideUp;
    top: auto
}

#page.trans-wholeshiftdown-reverse .steps.trans-wholeshiftdown.anim-current {
    animation-name: SlideAppearDown;
    bottom: auto
}

#page.trans-wholeshiftdown-reverse .steps.trans-wholeshiftdown.anim-next {
    animation-name: SlideHideDown;
    top: auto
}

#page.trans-wholeshiftright-reverse .steps.trans-wholeshiftright.anim-current {
    animation-name: LslideOpenR;
    top: 0
}

#page.trans-wholeshiftright-reverse .steps.trans-wholeshiftright.anim-next {
    animation-name: LslideCloseR;
    top: 0
}

#page.trans-wholeshiftup-reverse .steps.trans-wholeshiftup.anim-current {
    animation-name: SlideAppearUp;
    bottom: auto
}

#page.anim-reverse .steps.menupage.anim-next h2,
#page.anim-reverse .steps.menupage.anim-next blockquote div.quote {
    opacity: 1;
    animation-timing-function: ease-in;
    animation-name: fadeOutUp;
    animation-fill-mode: forwards;
    animation-duration: 250ms
}

#page.trans-curtainclose #handle-tl {
    animation-name: handlesJoinL;
    left: 100%;
    animation-delay: 500ms;
    border-right: 3px solid var(--black);
    border-left: none;
    border-bottom-right-radius: 100% 50%;
    border-top-right-radius: 100% 50%
}

#page.trans-curtainclose #handle-br {
    animation-name: handlesJoinR;
    right: 100%;
    animation-delay: 500ms;
    border-left: 3px solid var(--black);
    border-right: 0;
    border-bottom-left-radius: 100% 50%;
    border-top-left-radius: 100% 50%
}

#page.trans-curtainclose #handle-tl:before {
    content: "";
    animation-name: handlesJoinA;
    transform: rotate(0deg);
    transform-origin: 50% 50%;
    background-repeat: no-repeat;
    animation-delay: 1s;
    width: 140px;
    height: 140px;
    left: -70px;
    background-image: url(/media/icon-illumify.png)
}

#page.trans-curtainclose #handle-br:before {
    content: "";
    animation-name: handlesJoinA;
    transform: rotate(180deg);
    transform-origin: 50% 50%;
    animation-delay: 1s;
    background-repeat: no-repeat;
    width: 140px;
    height: 140px;
    right: -70px;
    background-image: url(/media/chevrons_left_icon.svg)
}

#page.trans-curtainclose .anim-current .overlayed .overimg:nth-child(2) {
    animation-name: fadeOut;
    animation-delay: 1.5s;
    animation-duration: 750ms;
    animation-fill-mode: forwards
}

#page.trans-curtainclose .anim-current .half:nth-child(2) {
    animation-name: curtainCloseL;
    animation-delay: 500ms
}

#page.trans-curtainclose .anim-current .half:first-child {
    animation-name: curtainCloseR;
    animation-delay: 500ms
}

.steps:not(.anim-current):not(.anim-previous):not(.anim-next) video {
    display: none
}

.steps.anim-current video {
    display: block
}

.steps.anim-next video {
    animation-name: DelayHide;
    animation-delay: 500ms
}

#page.trans-stackleft .anim-previous .half:nth-child(2) {
    left: 50%;
    animation-name: curtainSwipeL;
    animation-duration: 750ms
}

#page.trans-stackleft .anim-previous .half:first-child {
    left: 0
}

#page.trans-stackleft .anim-current .half:first-child {
    animation-name: RslideOpenL;
    animation-duration: 750ms
}

#page.trans-stackleft .anim-current .half:nth-child(2) {
    animation-name: curtainCloseL;
    animation-duration: 750ms
}

#page.trans-stackright .anim-previous .half:nth-child(2) {
    right: 0
}

#page.trans-stackright .anim-previous .half:first-child {
    animation-name: curtainSwipeR;
    animation-duration: 750ms
}

#page.trans-stackright .anim-current .half:first-child {
    animation-name: curtainCloseR;
    animation-duration: 750ms
}

#page.trans-stackright .anim-current .half:nth-child(2) {
    animation-name: RslideOpenR;
    animation-duration: 750ms
}

.trans-crossclose .steps.anim-previous .half:nth-child(2) {
    animation-name: curtainSwipeAcrossL
}

.trans-crossclose .steps.anim-previous .half:first-child {
    animation-name: curtainSwipeAcrossR
}

.trans-crossclose .steps.anim-current .half:nth-child(2) {
    animation-name: curtainCloseL
}

.trans-crossclose .steps.anim-current .half:first-child {
    animation-name: curtainCloseR
}

.trans-crossopen .steps.anim-current .half:nth-child(2) {
    animation-name: curtainSwipeAcrossR
}

.trans-crossopen .steps.anim-current .half:first-child {
    animation-name: curtainSwipeAcrossL
}

.trans-crossopen .steps.anim-previous .half:nth-child(2) {
    animation-name: curtainOpenR
}

.trans-crossopen .steps.anim-previous .half:first-child {
    animation-name: curtainOpenL
}

#page.trans-switchdownup .steps.anim-previous .half:nth-child(2),
#page.trans-switchupdown .steps.anim-previous .half:nth-child(2) {
    top: 0;
    left: 50%
}

#page.trans-switchupdown .steps.anim-previous .half:first-child,
#page.trans-switchdownup .steps.anim-previous .half:first-child {
    top: 0;
    right: 50%
}

#page.trans-switchdownup .steps.trans-switchdownup.anim-current .half:nth-child(2) {
    left: 50%;
    animation-name: SlideAppearUp;
    top: 100%
}

#page.trans-switchupdown .steps.trans-switchupdown.anim-current .half:first-child {
    right: 50%;
    animation-name: SlideAppearUp;
    top: 100%
}

#page.trans-switchupdown .steps.trans-switchupdown.anim-current .half:nth-child(2) {
    left: 50%;
    animation-name: SlideAppearDown;
    bottom: 100%
}

#page.trans-switchdownup .steps.trans-switchdownup.anim-current .half:first-child {
    right: 50%;
    animation-name: SlideAppearDown;
    bottom: 100%
}

#page.trans-switchupdown .steps.trans-switchupdown.anim-previous .half:nth-child(2) {
    left: 50%
}

#page.trans-switchdownup .steps.trans-switchdownup.anim-previous .half:first-child {
    right: 50%
}

#page.trans-revealdownup .steps.anim-previous .half:nth-child(2),
#page.trans-revealupdown .steps.anim-previous .half:nth-child(2) {
    left: 50%
}

#page.trans-revealupdown .steps.anim-previous .half:first-child,
#page.trans-revealdownup .steps.anim-previous .half:first-child {
    right: 50%
}

#page.trans-revealdownup .steps.anim-previous .half:first-child,
#page.trans-revealupdown .steps.anim-previous .half:nth-child(2),
#page.trans-revealdownup .steps.anim-previous .half:first-child>div,
#page.trans-revealupdown .steps.anim-previous .half:nth-child(2)>div {
    top: 0
}

#page.trans-revealupdown .steps.anim-previous .half:first-child,
#page.trans-revealdownup .steps.anim-previous .half:nth-child(2),
#page.trans-revealupdown .steps.anim-previous .half:first-child>div,
#page.trans-revealdownup .steps.anim-previous .half:nth-child(2)>div {
    bottom: 0
}

#page:not(.anim-reverse) .steps.anim-next .textAppear {
    animation-name: TextDisppear;
    animation-duration: .5s;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards;
    animation-delay: 1200ms
}

#page:not(.anim-reverse) .steps.anim-previous .textAppear:not(.freeze-out) {
    animation-name: TextDisppear;
    animation-duration: .5s;
    animation-delay: 0ms !important;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards
}

#page .steps.anim-current .textAppear {
    animation-name: TextAppear;
    animation-timing-function: ease-in;
    animation-duration: 750ms;
    animation-fill-mode: both
}

#page .steps.stage-step2.anim-current .textAppear {
    animation-name: TextAppear;
    animation-timing-function: ease-in;
    animation-duration: 2000ms;
    animation-fill-mode: forwards
}

#page .steps.anim-current .textAppear.one {
    animation-name: TextAppear;
    animation-timing-function: ease-in;
    animation-duration: 1500ms;
    animation-fill-mode: forwards
}

#page .steps.anim-current .textAppear.two {
    animation-name: TextAppear;
    animation-timing-function: ease-in;
    animation-duration: 1900ms;
    animation-fill-mode: forwards
}

#page .steps.anim-current .textAppear.three {
    animation-name: TextAppear;
    animation-timing-function: ease-in;
    animation-duration: 2100ms;
    animation-fill-mode: forwards
}

#page.trans-revealdownup .steps.trans-revealdownup.anim-current .half:nth-child(2) {
    left: 50%;
    border-top: #740000 2px;
    animation-name: RevealAppear;
    animation-duration: 750ms
}

#page.trans-revealupdown .steps.trans-revealupdown.anim-current .half:first-child {
    right: 50%;
    border-top: #740000 2px;
    animation-name: RevealAppear;
    animation-duration: 750ms
}

#page.trans-revealupdown .steps.trans-revealupdown.anim-current .half:nth-child(2) {
    left: 50%;
    border-bottom: #740000 2px;
    animation-name: RevealAppear;
    animation-duration: 750ms
}

#page.trans-revealdownup .steps.trans-revealdownup.anim-current .half:first-child {
    right: 50%;
    border-bottom: #740000 2px;
    animation-name: RevealAppear;
    animation-duration: 750ms
}

#page.trans-floater .steps.anim-previous .floater {
    left: 100% !important;
    animation-name: RslideCloseL
}

#page.trans-floater .steps.anim-current .floater {
    left: 100% !important;
    animation-name: RslideOpenL
}

#page.trans-revealupdown .steps.trans-revealupdown.anim-previous .half:nth-child(2) {
    left: 50%
}

#page.trans-revealdownup .steps.trans-revealdownup.anim-previous .half:first-child {
    right: 50%
}

#page.trans-staticappear .steps.trans-staticappear.anim-current .whole {
    opacity: 0;
    animation-name: fadeIn;
    animation-delay: 250ms;
    animation-duration: 500ms
}

#page.trans-staticappear .steps.trans-staticappear.anim-current {
    animation-name: fadeIn;
    animation-delay: 250ms;
    animation-duration: 20ms
}

#page.anim-reverse .steps.staticappear-reverse.anim-next,
#page.anim-reverse .steps.trans-staticappear.anim-previous {
    animation-name: fadeOut;
    animation-duration: 20ms;
    animation-delay: 250ms !important
}

#page.trans-wholeup .steps.trans-wholeup.anim-current .whole {
    animation-name: SlideAppearUp;
    top: 100%
}

#page.trans-wholedown .steps.trans-wholedown.anim-current .whole {
    animation-name: SlideAppearDown;
    bottom: 100%
}

#page.trans-wholeshiftleft .steps.trans-wholeshiftleft.anim-current {
    animation-name: RslideOpenL;
    top: 0
}

#page.trans-wholeshiftleft .steps.trans-wholeshiftleft.anim-previous {
    animation-name: RslideCloseL;
    top: 0
}

#page.trans-wholeshiftright .steps.trans-wholeshiftright.anim-current {
    animation-name: LslideOpenR;
    top: 0
}

#page.trans-wholeshiftright .steps.trans-wholeshiftright.anim-previous {
    animation-name: LslideCloseR;
    top: 0
}

#page.trans-wholeshiftup .steps.trans-wholeshiftup.anim-current {
    animation-name: SlideAppearDown;
    top: 0
}

#page.trans-wholeshiftup .steps.trans-wholeshiftup.anim-previous {
    animation-name: SlideHideDown;
    top: 0
}

#page.trans-wholeshiftdown .steps.trans-wholeshiftdown.anim-current {
    animation-name: SlideAppearUp;
    top: 0
}

#page.trans-wholeshiftdown .steps.trans-wholeshiftdown.anim-previous {
    animation-name: SlideHideUp;
    top: 0
}

#page:not(.anim-reverse) .steps.menupage.anim-previous h2,
#page:not(.anim-reverse) .steps.menupage.anim-previous blockquote div.quote {
    animation-timing-function: ease-in;
    animation-name: fadeOutUp;
    animation-fill-mode: forwards;
    animation-duration: 250ms
}

#page .steps.menupage.anim-current h2,
#page .steps.menupage.anim-current blockquote div.quote {
    flex: 0 1 auto;
    opacity: 0;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards;
    will-change: opacity, transform;
}
#page .steps.menupage.anim-current h2  {
    animation-name: fadeIn;
    animation-duration: 500ms;
    animation-delay: 500ms;
}
#page .steps.menupage.anim-current blockquote div.quote {    
    animation-name: fadeInUp; 
    animation-duration: 0.5s;
    animation-delay: 1s; 
}
#page .steps.anim-current.menupage blockquote:after,
#page .steps.anim-current.menupage blockquote:before {
    max-width: 0;
    animation-timing-function: ease-in;
    animation-name: fadeInFat;
    animation-fill-mode: forwards;
    animation-duration: 200ms;
    animation-delay: 500ms
}

#page:not(.anim-reverse) .steps.anim-previous.menupage blockquote:before,
#page:not(.anim-reverse) .steps.anim-previous.menupage blockquote:after,
#page.anim-reverse .steps.anim-next.menupage blockquote:before,
#page.anim-reverse .steps.anim-next.menupage blockquote:after {
    animation-timing-function: ease-in;
    animation-name: fadeOutThin;
    animation-fill-mode: forwards;
    animation-duration: 250ms
}

* {
    margin: 0;
    padding: 0
}

body {
    margin: 100px;
}

.arrow-icon {
    position: relative;
    width: 26px;
    height: 2px;
    background: var(--brand-primary);
    cursor: pointer;
    -webkit-transition: .15s ease-in-out;
    -moz-transition: .15s ease-in-out;
    -o-transition: .15s ease-in-out;
    transition: .15s ease-in-out
}

.arrow-icon.left:hover,
.arrow-icon.right:hover {
    width: 26px
}

.arrow-icon.down:hover {
    transform: translate3d(0px, 3px, 0)
}

.arrow-icon:before {
    position: absolute;
    content: ""
}

.arrow-icon.left:before,
.arrow-icon.right:before {
    width: 52px;
    height: 26px
}

.arrow-icon.down:before,
.arrow-icon.up:before {
    width: 26px;
    height: 52px
}

.arrow-icon:before {
    position: absolute;
    content: "";
    width: 52px;
    height: 26px
}

.arrow-icon.left:before {
    top: -12px;
    left: -12px
}

.arrow-icon.right:before {
    top: -12px;
    left: -12px
}

.arrow-icon.down:before {
    top: -12px;
    left: -12px
}

.arrow-icon.up:before {
    top: -12px;
    left: -12px
}

.arrow-icon:after {
    position: absolute;
    content: "";
    transform: rotate(45deg);
    top: -8px;
    width: 16px;
    height: 16px;
    background: transparent;
    border-color: var(--brand-primary);
    color: var(--brand-primary);
    -webkit-transition: .1s ease-in-out;
    -moz-transition: .1s ease-in-out;
    -o-transition: .1s ease-in-out;
    transition: .1s ease-in-out
}

.arrow-icon.left:after {
    border-left: 2px solid;
    border-bottom: 2px solid
}

.arrow-icon.right:after {
    right: 0;
    border-right: 2px solid;
    border-top: 2px solid
}

.arrow-icon.down,
.arrow-icon.up {
    width: 2px;
    height: 21px;
    left: 47%;
    top: 7px
}

.arrow-icon.up {
    left: 49%;
    top: 11px
}

.arrow-icon.down:after {
    top: 5px;
    left: -7px;
    border-right: 2px solid;
    border-bottom: 2px solid
}

.arrow-icon.up:after {
    top: 0;
    left: -7px;
    border-right: 2px solid;
    border-top: 2px solid;
    transform: rotate(-45deg)
}

@-webkit-keyframes arrow-left {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    20% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    100% {
        -webkit-transform: translateX(-12px);
        transform: translateX(-12px)
    }
}

@keyframes arrow-left {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    20% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    100% {
        -webkit-transform: translateX(-12px);
        transform: translateX(-12px)
    }
}

.arrow-icon.left:hover {
    -webkit-animation: arrow-left .35s ease-in;
    animation: arrow-left .35s ease-in;
    -webkit-transform-origin: 50% 0;
    -ms-transform-origin: 50% 0;
    transform-origin: 50% 0;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards
}

@keyframes fadeIn {
    0% {
        opacity: 0
    }

    100% {
        opacity: 1
    }
}

@keyframes turnOn {
    0% {
        display: none;
        visibility: hidden
    }

    100% {
        display: block;
        visibility: visible
    }
}

@keyframes turnOff {
    0% {
        display: block;
        visibility: visible
    }

    100% {
        display: none;
        visibility: hidden
    }
}

@keyframes fadeInDelay {
    0% {
        opacity: 0
    }

    33% {
        opacity: 0
    }

    100% {
        opacity: 1
    }
}

@keyframes fadeOut {
    0% {
        opacity: 1
    }

    100% {
        opacity: 0
    }
}

@keyframes curtainCloseL {
    0% {
        left: 100%
    }

    100% {
        left: 50%
    }
}

@keyframes curtainCloseRD {
    0% {
        right: 100%
    }

    50% {
        right: 100%
    }

    100% {
        right: 50%
    }
}

@keyframes curtainCloseLD {
    0% {
        left: 100%
    }

    50% {
        left: 100%
    }

    100% {
        left: 50%
    }
}

@keyframes curtainCloseR {
    0% {
        right: 100%
    }

    100% {
        right: 50%
    }
}

@keyframes curtainSwipeThroughR {
    0% {
        left: 0
    }

    50% {
        left: 50%
    }

    100% {
        left: 100%
    }
}

@keyframes curtainSwipeThroughL {
    0% {
        right: 0
    }

    50% {
        right: 50%
    }

    100% {
        right: 100%
    }
}

@keyframes curtainSwipeR {
    0% {
        right: 50%
    }

    100% {
        right: 0
    }
}

@keyframes curtainSwipeL {
    0% {
        left: 50%
    }

    100% {
        left: 0
    }
}

@keyframes curtainSwipeAcrossL {
    0% {
        left: 50%
    }

    100% {
        left: 0
    }
}

@keyframes curtainSwipeAcrossR {
    0% {
        left: 0
    }

    100% {
        left: 50%
    }
}

@keyframes curtainOpenL {
    0% {
        right: 50%
    }

    100% {
        right: 100%
    }
}

@keyframes curtainOpenR {
    0% {
        left: 50%
    }

    100% {
        left: 100%
    }
}

@keyframes curtainOpenRD {
    0% {
        left: 50%
    }

    50% {
        left: 50%
    }

    100% {
        left: 100%
    }
}

@keyframes curtainOpenLD {
    0% {
        right: 50%
    }

    50% {
        right: 50%
    }

    100% {
        right: 100%
    }
}

@keyframes RslideCloseL {
    0% {
        right: 0
    }

    100% {
        right: 100%
    }
}

@keyframes RslideCloseR {
    0% {
        left: 0
    }

    100% {
        left: 100%
    }
}

@keyframes RslideOpenL {
    0% {
        left: 100%
    }

    100% {
        left: 0
    }
}

@keyframes RslideOpenR {
    0% {
        right: 100%
    }

    100% {
        right: 0
    }
}

@keyframes TextAppear {
    0% {
        transform: translateY(30%) scale(0.5);
        opacity: 0
    }

    66% {
        transform: translateY(0%) scale(1);
        opacity: .5
    }

    100% {
        transform: translateY(0%) scale(1);
        opacity: 1
    }
}

@keyframes TextDisppear {
    0% {
        transform: translateY(0%) scale(1)
    }

    100% {
        transform: translateY(500%) scale(0.5)
    }
}

@keyframes textAppear {
    0% {
        right: 0
    }

    100% {
        right: 100%
    }
}

@keyframes LslideCloseR {
    0% {
        left: 0
    }

    100% {
        left: 100%
    }
}

@keyframes SlideAppearUp {
    0% {
        top: 150%
    }

    100% {
        top: 0
    }
}

@keyframes SlideAppearDown {
    0% {
        bottom: 150%
    }

    100% {
        bottom: 0
    }
}

@keyframes SlideHideDown {
    0% {
        top: 0
    }

    100% {
        top: 150%
    }
}

@keyframes SlideHideUp {
    0% {
        bottom: 0
    }

    100% {
        bottom: 150%
    }
}

@keyframes DelayHide {
    0% {
        display: block
    }

    100% {
        display: none
    }
}

@keyframes RevealAppear {
    0% {
        height: 0
    }

    100% {
        height: 100%
    }
}

@keyframes RevealHide {
    0% {
        height: 100%
    }

    100% {
        height: 0
    }
}

@keyframes LslideOpenL {
    0% {
        left: 100%
    }

    100% {
        left: 0
    }
}

@keyframes LslideOpenR {
    0% {
        right: 100%
    }

    100% {
        right: 0
    }
}

@keyframes handlesJoinA {
    0% {
        opacity: 1;
        transform: rotate(90deg);
        visibility: visible
    }

    25% {
        opacity: 1;
        transform: rotate(0deg);
        visibility: visible
    }

    50% {
        opacity: 0;
        transform: rotate(0deg);
        visibility: visible
    }

    75% {
        opacity: 1;
        transform: rotate(0deg);
        visibility: visible
    }

    100% {
        opacity: 0;
        transform: rotate(0deg);
        visibility: visible
    }
}

@keyframes handlesSplitA {
    0% {
        opacity: 0;
        transform: rotate(0deg);
        visibility: visible
    }

    25% {
        opacity: 1;
        transform: rotate(0deg);
        visibility: visible
    }

    50% {
        opacity: 1;
        transform: rotate(90deg);
        visibility: visible
    }

    100% {
        opacity: 1;
        transform: rotate(90deg);
        visibility: visible
    }
}

@keyframes handlesJoinL {
    0% {
        left: 100%;
        opacity: 1;
        visibility: visible
    }

    50% {
        left: 50%;
        opacity: 1;
        visibility: visible
    }

    100% {
        left: 50%;
        opacity: 0;
        visibility: visible
    }
}

@keyframes handlesJoinR {
    0% {
        right: 100%;
        opacity: 1;
        visibility: visible
    }

    50% {
        right: 50%;
        opacity: 1;
        visibility: visible
    }

    100% {
        right: 50%;
        opacity: 0;
        visibility: visible
    }
}

@keyframes handlesSplitL {
    0% {
        left: 50%;
        opacity: 0;
        visibility: visible
    }

    50% {
        left: 50%;
        opacity: 1;
        visibility: visible
    }

    100% {
        left: 100%;
        opacity: 1;
        visibility: visible
    }
}

@keyframes handlesSplitR {
    0% {
        right: 50%;
        opacity: 0;
        visibility: visible
    }

    50% {
        right: 50%;
        opacity: 1;
        visibility: visible
    }

    100% {
        right: 100%;
        opacity: 1;
        visibility: visible
    }
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(30px)
    }

    100% {
        opacity: 1;
        transform: translateY(0)
    }
}

@keyframes fadeOutUp {
    0% {
        opacity: 1;
        transform: translateY(0)
    }

    100% {
        opacity: 0;
        transform: translateY(-30px)
    }
}

@keyframes fadeInFat {
    0% {
        max-width: 0
    }

    100% {
        max-width: 690px
    }
}

@keyframes fadeOutThin {
    0% {
        max-width: 690px
    }

    100% {
        max-width: 0
    }
}

@keyframes logoAnimation {
    to {
        stroke-dashoffset: 0
    }
}

@keyframes fill {
    from {
        fill: transparent
    }

    to {
        fill: coral
    }
}

.handler,
.handler:before,
.half,
div.steps,
.whole,
video,
.floater {
    transition-timing-function: ease-out;
    animation-fill-mode: forwards;
    position: absolute;
    animation-duration: 800ms
}

.menupage.handler,
.menupage.handler:before,
.menupage.half,
div.steps.menupage,
.whole.menupage,
.menupage.floater {
    animation-delay: 250ms
}

.floater {
    width: 100%
}

.steps.menupage .floater {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    max-width: 700px;
    height: 300px
}

.menuitem {
    cursor: pointer
}

#page.anim-reverse .steps.anim-current .half:first-child,
#page.anim-reverse .steps.anim-next .half:first-child {
    right: 50%
}

#page.anim-reverse .steps.anim-current .half:nth-child(2),
#page.anim-reverse .steps.anim-next .half:nth-child(2) {
    left: 50%
}

#logo,
#logo img {
    transition-timing-function: ease-out;
    animation-fill-mode: forwards
}

.handler:before {
    animation-duration: 1s
}

.handler {
    animation-duration: 1s;
    width: 70px;
    height: 140px;
    overflow: hidden;
    background: transparent
}

#page.trans-curtainclose-reverse #logo img {
    animation-name: fadeIn;
    animation-duration: 1s
}

.steps:not(.anim-current):not(.anim-previous) #logo {
    display: none !important
}

#fireflyLogo {
    animation: logoAnimation 4s ease forwards
}

.half .freeze {
    position: absolute;
    top: 50%
}

#page.trans-curtainclose .steps.anim-current .overlayed .overimg:nth-child(2) {
    opacity: 1
}

.steps.trans-curtainclose.anim-previous .overlayed .overimg:nth-child(2),
#page:not(.trans-curtainclose) .steps.anim-current .overlayed .overimg:nth-child(2) {
    opacity: 0
}

.overlayed .overimg:first-child {
    z-index: 1
}

.overlayed .overimg:nth-child(2) {
    z-index: 2
}

#page .steps:not(.trans-revealupdown):not(.trans-revealdownup):not(.trans-switchupdown):not(.trans-switchdownup):not(.trans-stackleft):not(.trans-stackright) .half,
#page>.group {
    position: absolute;
    top: 0;
    display: block
}

#page:not(.trans-wholeup-reverse) .steps.trans-wholeup:not(.anim-previous):not(.anim-current) .whole {
    top: 120%
}

.steps.trans-wholeup.anim-previous {
    top: 0
}

#page:not(.trans-wholedown-reverse) .steps.trans-wholedown:not(.anim-previous):not(.anim-current) .whole {
    bottom: 100%
}

.steps.trans-wholedown.anim-previous {
    bottom: 0
}

#page.trans-wholeshiftright-reverse .steps.trans-wholeshiftright.anim-current {
    animation-name: LslideOpenR;
    top: 0
}

#page.trans-wholeshiftright-reverse .steps.trans-wholeshiftright.anim-next {
    animation-name: LslideCloseR;
    top: 0
}

#page.trans-wholeshiftup-reverse .steps.trans-wholeshiftup.anim-current {
    animation-name: SlideAppearUp;
    bottom: auto
}

#page.trans-wholeshiftup-reverse .steps.trans-wholeshiftup.anim-next {
    animation-name: SlideHideUp;
    top: auto
}

#page.trans-wholeshiftdown-reverse .steps.trans-wholeshiftdown.anim-current {
    animation-name: SlideAppearDown;
    bottom: auto
}

#page.trans-wholeshiftdown-reverse .steps.trans-wholeshiftdown.anim-next {
    animation-name: SlideHideDown;
    top: auto
}

#page:not(.trans-revealupdown-reverse) .steps.trans-revealupdown.anim-next .half,
#page:not(.trans-revealupdown-reverse) .steps.trans-revealdownup.anim-next .half {
    height: 0
}

.steps.trans-floater:not(.anim-current) {
    display: none !important
}

#page:not(.anim-reverse) .steps.trans-staticappear.anim-next,
#page.anim-reverse .steps.trans-staticappear.anim-previous {
    display: none !important
}

#page.trans-revealupdown-reverse .steps.trans-revealupdown.anim-next .half,
#page.trans-revealdownup-reverse .steps.trans-revealupdown.anim-next .half {
    height: 100%
}

#page.trans-revealupdown .steps.trans-revealupdown.anim-current .half,
#page.trans-revealdownup .steps.trans-revealdownup.anim-current .half {
    height: 0
}

#page:not(.trans-switchupdown-reverse) .steps.trans-switchupdown.anim-next .half:first-child,
#page:not(.trans-switchdownup-reverse) .steps.trans-switchdownup.anim-next .half:nth-child(2) {
    bottom: 100%
}

#page:not(.trans-switchupdown-reverse) .steps.trans-switchupdown.anim-next .half:nth-child(2),
#page:not(.trans-switchdownup-reverse) .steps.trans-switchdownup.anim-next .half:first-child {
    top: 100%
}

#page.trans-switchupdown-reverse .steps.trans-switchupdown.anim-next .half:first-child,
#page.trans-switchdownup-reverse .steps.trans-switchdownup.anim-next .half:nth-child(2),
.steps.trans-revealupdown.anim-next .half:nth-child(2),
.steps.trans-revealdownup.anim-next .half:first-child,
.steps.trans-wholedown.anim-next .content {
    top: 0
}

#page.trans-switchupdown-reverse .steps.trans-switchupdown.anim-next .half:nth-child(2),
#page.trans-switchdownup-reverse .steps.trans-switchdownup.anim-next .half:first-child,
.steps.trans-revealupdown.anim-next .half:first-child,
.steps.trans-revealdownup.anim-next .half:nth-child(2),
.steps.trans-wholeup.anim-next .content {
    bottom: 0
}

.handler {
    position: absolute;
    display: block;
    top: 35vh;
    float: left
}

.handler:before {
    position: absolute;
    display: block
}

.steps.anim-previous .half:first-child,
#page.trans-curtainclose .steps.trans-curtainclose:not(.anim-current) .half:first-child,
#page:not(.trans-switchupdown) .steps.trans-switchupdown .half:first-child,
#page:not(.trans-switchdownup) .steps.trans-switchdownup .half:first-child,
#page.trans-stackleft .steps.trans-stackleft.anim-current .half:first-child,
#page.trans-stackleft .steps.trans-stackleft.anim-current .half:nth-child(2),
#page.trans-stackright .steps.trans-stackright.anim-current .half:nth-child(2),
#page.trans-stackright .steps.trans-stackright.anim-current .half:first-child {
    right: 50%
}

.steps.anim-previous .half:nth-child(2),
#page.trans-curtainclose .steps.trans-curtainclose:not(.anim-current) .half:nth-child(2),
#page:not(.trans-switchupdown) .steps.trans-switchupdown .half:nth-child(2),
#page:not(.trans-switchdownup) .steps.trans-switchdownup .half:nth-child(2) {
    left: 50%
}

#page.trans-curtainclose .steps.trans-curtainclose:not(.anim-previous) .half:first-child,
#page.anim-reverse .steps.trans-curtainclose.anim-previous .half:first-child,
#page:not(.anim-reverse) .steps.trans-curtainclose.anim-next .half:first-child,
#page:not(.trans-crossclose-reverse) .steps.trans-crossclose.anim-next .half:first-child,
#page.trans-crossclose .steps.trans-crossclose.anim-current .half:first-child,
#page:not(.trans-stackright-reverse) .steps.trans-stackright.anim-next .half,
#page.trans-stackright .steps.trans-stackright.anim-current .half,
#page:not(.trans-crossopen-reverse) .steps.trans-crossopen.anim-next .half:first-child {
    right: 100%
}

#page.trans-crossopen .steps.trans-crossopen.anim-current,
#page:not(.trans-crossopen-reverse) .steps.trans-crossopen.anim-next {
    z-index: 2
}

#page.trans-curtainclose .steps.trans-curtainclose:not(.anim-previous) .half:nth-child(2),
#page.anim-reverse .steps.trans-curtainclose.anim-previous .half:nth-child(2),
#page:not(.anim-reverse) .steps.trans-curtainclose.anim-next .half:nth-child(2),
#page:not(.trans-crossclose-reverse) .steps.trans-crossclose.anim-next .half:nth-child(2),
#page.trans-crossclose .steps.trans-crossclose.anim-current .half:nth-child(2),
#page:not(.trans-stackleft-reverse) .steps.trans-stackleft.anim-next .half,
#page.trans-stackleft .steps.trans-stackleft.anim-current .half,
#page:not(.trans-crossopen-reverse) .steps.trans-crossopen.anim-next .half:nth-child(2) {
    left: 100%
}

.half {
    overflow: hidden
}

.section.anim-next {
    animation-name: turnOff;
    animation-delay: 500ms !important;
    animation-duration: 20ms;
    animation-fill-mode: forwards
}

.anim-previous,
.actor-previous {
    z-index: 3
}

.anim-current,
.actor-current {
    z-index: 4
}

.anim-next,
.actor-next {
    z-index: 5
}

.handler {
    z-index: 7
}

.handler,
.infosteps,
.menupage:not(.anim-current):not(.anim-next):not(.anim-previous),
.steps:not(.anim-current):not(.anim-next):not(.anim-previous) {
    visibility: hidden;
    display: none
}

#page .steps.anim-current.menupage blockquote {
    overflow-x: visible
}

div.light-highlighter {
    display: block !important;
    pointer-events: none;
    height: 9999px !important;
    width: 9999px !important;
    background: green !important;
    position: fixed !important;
    opacity: 50% !important;
    background: -webkit-radial-gradient(center center, circle cover, rgba(117, 245, 71, 0), rgba(0, 0, 0, 0.8) 4%) !important;
    background: radial-gradient(center center, circle cover, rgba(117, 245, 71, 0), rgba(0, 0, 0, 0.8) 100%) 4%) !important;
    z-index: 9 !important
}

#page:not(.anim-reverse) .anim-previous.anim-staticappear {
    z-index: 6
}

#page:not(.anim-reverse) .anim-previous.anim-next {
    z-index: 5
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    vertical-align: baseline;
    text-decoration: none
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block
}

body {
    line-height: 1;
    overflow: hidden
}

ol,
ul {
    list-style: none
}

blockquote,
q {
    quotes: none
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none
}

.content blockquote {
    width:100%;
    max-width: 690px;
    margin: auto;
    clear: both;
    line-height: 1.5;
    animation: reveal 1s forwards
}

.content blockquote:before {
    content: "";
    display: block;
    padding-top: 20px;
    margin: 0 auto;
    width: 100%;
    border-top: 2px solid var(--white);
}

.group:not(.anim-current) #contact_form_content {
    display: none
}

.content blockquote:after {
    content: "";
    padding-bottom: 20px;
    display: block;
    margin: 0 auto;
    width: 100%;
    border-bottom: 2px solid var(--white)
}

@keyframes reveal {
    0% {
        width: 0
    }

    100% {
        width: 100%
    }
}

@keyframes rightFadeInOut {
    0% {
        position: absolute;
        right: -3rem;
        opacity: 0
    }

    75% {
        position: absolute;
        right: 10rem;
        opacity: 1
    }

    100% {
        opacity: 0;
        right: 10rem
    }
}

.content blockquote p {
    margin-bottom: 20px;
    font-size: clamp(18px, 3vw, 26px);
}

.stage-step209 .content blockquote p,
.stage-step210 .content blockquote p,
.stage-step211 .content blockquote p,
.stage-step402 .content blockquote p,
.stage-step403 .content blockquote p,
.stage-step404 .content blockquote p,
.stage-step404 .content blockquote p,
.stage-step405 .content blockquote p,
.stage-step406 .content blockquote p {
    font-size: clamp(18px, 3vw, 24px);
}

.content blockquote ol,
.content blockquote ul {    
    font-size: clamp(18px, 3vw, 26px);
    font-weight: 400;
    justify-content: center;
    display: flex;
    flex-direction: column;
    align-content: center;
    align-items: center
}

.content blockquote ol li {
    list-style: decimal
}

.content blockquote ul li {
    list-style: square
}

.content blockquote .txt-small p {
    line-height: 1.1;
    margin-bottom: 5px;    
    font-size: clamp(18px, 3vw, 20px);
}

.content blockquote.txt-left p,
.txt-left {
    text-align: left
}

.stage-step302 .content blockquote {
    border: 0
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

html {
    width: 100%;
    height: 100%;
    -webkit-font-smoothing: antialiased;
    touch-action: manipulation;
    box-sizing: border-box;
    scroll-behavior: smooth;
}

*,
*:before,
*:after {
    box-sizing: inherit
}

body {
    -webkit-text-size-adjust: 100%;
    font-family: 'Open Sans', Arial, sans-serif;
    width: 100%;
    height: 100%;
    background-color: var(--brand-primary);
    color: var(--white);
    position: relative
}

.group:before,
.group:after {
    content: " ";
    display: table
}

.group:after {
    clear: both
}

h1,
h2 {
    font-size: clamp(20px, 3vw, 70px);
    font-weight: 400;
    line-height: 1.2;
    padding-bottom: 1em;
}

.menupage h2 {    
    font-size: clamp(22px, 3vw, 50px);
}
.stage-step2 h2 {
    padding-bottom:0;
    font-size: clamp(30px, 3vw, 70px);
}
h2.padding-sm,
.quote-parent h2 {
    padding-bottom:0.25em;
}
h3,
h4 {
    font-size: clamp(24px, 5vw, 50px);
    line-height: 1.25;
    font-weight: 400;
}
.half h3 {
    max-width:70%;
    margin-left:auto;
    margin-right:auto;
}
p {
    font-size: clamp(14px, 2vw, 26px);
    font-weight: 400;
    line-height: 1.3;
    margin-bottom: 1em
}

p:last-child,
.content blockquote p:last-child {
    margin-bottom: 0
}

a,
a:hover {
    text-decoration: none
}

img {
    max-width: 100%;
    height: auto
}

i,
em {
    font-family: 'Open Sans', sans-serif;
    font-style: italic
}

strong,
b {
    font-weight: 600
}

a {
    color: var(--white)
}

sup {
    vertical-align: top;
    font-size: 36%
}

blockquote sup {
    font-size: 46%;
    position: relative;
    top: 4px;
    left: 4px
}

u {
    text-decoration: underline
}

#svg-icon-1 {
    margin: 1em 0;
    width: 80px
}

.rowspan1.brd-top,
.rowspan2.brd-top,
.rowspan1.brd-bottom,
.rowspan2.brd-bottom {
    border: 0
}

.rowspan1.brd-bottom,
.rowspan2.brd-bottom {
    border-bottom: 2px solid var(--brand-primary)
}

.rowspan1.brd-top,
.rowspan2.brd-top {
    border-top: 2px solid var(--brand-primary)
}

.txt-primary {
    color: var(--brand-primary)
}

.txt-secondary {
    color: var(--brand-secondary)
}

.txt-white {
    color: var(--white)
}

.bg-primary {
    background-color: var(--brand-primary)
}
.bg-primary.opacity {
    background-color: rgba(var(--brand-primary-rgb), 0.7)
}
.bg-secondary {
    background-color: var(--brand-secondary)
}
.bg-secondary.opacity {
    background-color: rgba(var(--brand-secondary-rgb), 0.7)
}
.bg-white {
    background-color: var(--white)
}

.bg-black {
    background-color: var(--black)
}
.half {
    height: 100vh;
    float: left;
    width: 50%
}

.whole {
    height: 100vh;
    float: left;
    width: 100%
}

.rowspan1,
.rowspan2 {
    width: 100%;
    padding: 5%;
    overflow: hidden;
    display: grid;
    justify-items: center;
    align-items: center
}

.rowspan1 {
    height: 50vh
}

.rowspan2 {
    height: 100vh
}
#page .content img.max-100,
.max-720 {
    margin: auto
}
#page .content img.max-100 {
    max-width: 100px;
}
.max-720 {
    max-width: 720px;
}

#logo {
    position: relative;
    z-index: 100
}

#logo .logo1 {
    animation-duration: 1s;
    -vendor-animation-duration: 1s;
    animation-delay: 1s;
    -vendor-animation-delay: 1s
}

#logo .logo-tagline h1 {
    font-size: clamp(28px, 5vw, 50px);
    font-weight: 600;
    padding: 2em;
    color: var(--white);
    opacity:0.7;
    text-shadow: 0 0 6px var(--black);
    animation-duration: 2s;
    -vendor-animation-duration: 2s;
    animation-delay: 2s;
    -vendor-animation-delay: 2s;
}

#page {
    position: relative;
    background: var(--black)
}

#page .section {
    width: 100%;
    height: 100vh;
    overflow: hidden
}

#page .content {
    position: relative;
    width: 100%;
    max-height: 100%;
    text-align: center
}

#page .videopane .content {
    transform: translateY(0);
    top: 0;
    width: 100%;
    height: 100%
}

#page .videopane.rowspan1 {
    padding: 0
}

.content.overlayer {
    top: 0 !important
}

#page .content img {
    max-width: 80%;
    max-height: 80%;
    max-height: 80vh
}

#page .content #logo {
    height: 100vh;
    margin: auto;
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    align-items: center
}

#page .content #logo img {
    max-height: 100%;
    max-width: 100%;
    width: 400px;
    position: relative
}

#page .rowspan1 .content img {
    max-width: 80%;
    max-height: 80%;
    max-height: 40vh
}

#page #step1 .content {
    top: 10%;
    transform: translateY(-10%)
}

#page .stage-step4 .rowspan2.bg-primary .content {
    top: 30%
}

.stage-step4 .rowspan2 h4 {
    margin-bottom: 10%
}

.stage-step4 .rowspan1.bg1 {
    background-image: url(/media/images/background-g5e41f6e6d_1920.jpg);
    background-size: cover;
    padding: 0
}

.stage-step4 .rowspan1.bg1 .video-bg video {
    width: auto
}
.stage-step5 .rowspan2 {
    background-size: cover
}

.stage-step5 .rowspan2 h2 {
    text-align: left;
    margin-left: 30vw
}

.stage-step6 .rowspan2 {
    background-size: cover
}

#section4.stage-step601 .rowspan2.videopane,
#section5.stage-step301 .rowspan2.videopane {
    padding: 0
}

#section4.stage-step601 .video-bg video,
#illumifiers.stage-step301 .video-bg video,
#section5.stage-step301 .video-bg video {
    object-fit: cover
}

.stage-step7 .rowspan1.bg1 {
    background-image: url(/media/images/background-g5e41f6e6d_1920.jpg);
    background-size: cover;
    padding: 0
}

.stage-step7 .rowspan2.bg2 {
    background-image: url(/media/images/feather-4431599_1920.jpg);
    background-size: contain;
    background-position: bottom center;
    background-repeat: no-repeat
}

.stage-step8 .rowspan2.bg1 {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat
}

.stage-step7 .rowspan2 h2 {
    font-weight: 600;
    line-height: 1.6;
    font-size: clamp(24px, 5vw, 70px);
    padding-bottom:0.5em;
}

.stage-step8 .rowspan2 h2 {
    text-align: left;
    line-height: 1.4;
    font-size: clamp(24px, 5vw, 76px);
    padding-left: 10%;
    font-weight: 600
}

#page .stage-step9 .content {
    transform: translateY(0%);
    top: 0
}

.stage-step9 h2 {
    margin-top: 0;
    text-align: left
}

.stage-step301 .half:first-child .rowspan1:first-child {
    background-image: url(/media/images/girl-2696947_1920.jpg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat
}

#page .stage-step303 .content {
    text-align: left
}

.stage-step303 .rowspan2.bg1 {
    background-image: url(/media/images/feather-4431599_1920.jpg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat
}

.stage-step401 h2 {
    border: 1px solid #7fa9ae;
    margin: auto;
    padding: 10px 20px 15px;
    float: right;
    font-weight: 800;
    margin-right: 10%
}

.stage-step407 h3 {
    font-size: clamp(20px, 5vw, 40px);
}

.stage-step408 h3 {
    text-align: center
}

.stage-step408 .content blockquote {
    max-width: 1000px;
    margin: auto;
    border: 0
}

.stage-step409 .rowspan2.bg1 {
    background-image: url(/media/images/art-2170116_1280.png);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat
}

.stage-step410 p {
    max-width: 1000px;
    margin: auto
}

.stage-step501 .rowspan2.bg1 {
    background-image: url(/media/images/feather-4431599_1920.jpg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat
}

#section3.stage-step201 h2 {
    margin-bottom: 10%
}

.bdimg {
    border: 5px solid #eaeaea
}

video::-webkit-media-controls-overlay-play-button {
    display: none
}

.video-bg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: block
}

.video-bg video {
    left: 50%;
    min-height: 100%;
    min-width: 100%;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    object-fit: fill
}

.video-bg .video.v2 {
    max-height: 600px
}


.stage-step204 .rowspan2 {
    background-image: url(/media/images/hd-wallpaper-gcc1117d9f_1920.jpg);
    background-size: cover
}

.nobg.stage-step204 .rowspan2 {
    background-image: none;
    padding-top: 0;
    padding-bottom: 0
}

.stage-step208 .content blockquote,
.stage-step301 .content blockquote {
    border: 0;
    max-width: 960px
}

@media(min-aspect-ratio:16/9) {
    #video-bg>video {
        height: 300%;
        top: -100%
    }
}

@media(max-aspect-ratio:16/9) {
    #video-bg>video {
        width: 300%;
        left: -100%
    }
}

@supports(object-fit:cover) {
    #video-bg>video {
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover
    }
}

.button_container {
    position: fixed;
    top: 20px;
    right: 20px;
    height: 38px;
    width: 50px;
    cursor: pointer;
    z-index: 77777776;
    border:1px solid var(--white);
    transition: opacity .25s ease;
    box-shadow:0 0 1px var(--brand-primary);
}

.button_container:hover {
    opacity: .7
}

.button_container.active .top {
    -webkit-transform: translateY(11px) translateX(0) rotate(45deg);
    transform: translateY(11px) translateX(0) rotate(45deg);
    background: var(--white);
    top: 5px
}

.button_container.active .middle {
    opacity: 0;
    background: var(--white)
}

.button_container.active .bottom {
    -webkit-transform: translateY(-11px) translateX(0) rotate(-45deg);
    transform: translateY(-11px) translateX(0) rotate(-45deg);
    background: var(--white)
}

.button_container span {
    background: var(--white);
    border: 0;
    height: 4px;
    width: 60%;
    position: absolute;
    top: 8px;
    left: 20%;
    transition: all .35s ease;
    cursor: pointer;
    box-shadow:0 0 2px var(--brand-primary);
}

.button_container span:nth-of-type(2) {
    top: 17px
}

.button_container span:nth-of-type(3) {
    top: 26px
}

.button_container.active span {
    width: 56%;
    left: 21%
}

.button_container.active span:nth-of-type(3) {
    top: 27px
}

.button-im {
    color: var(--white);
    border: 1px solid var(--white);
    background: transparent;
    padding: 10px 20px;
    transition: color .3s linear;
    -webkit-transition: color .3s linear;
    -moz-transition: color .3s linear;
    display:inline-block;
}

.button-im:hover {
    color: var(--brand-primary);
    border: 1px solid var(--brand-primary);
    background: var(--white)
}

.overlay {
    position: fixed;
    background: #var(--white);
    top: 0;
    left: 0;
    width: 100%;
    height: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity .35s, visibility .35s, height .35s;
    overflow: hidden;
    z-index: 6666666
}

.overlay.open {
    opacity: .95;
    visibility: visible;
    height: 100%;
    position: fixed;
    top: 0
}

.overlay.open li strong {
    font-weight: 800
}

.overlay.open li {
    -webkit-animation: fadeInRight .5s ease forwards;
    animation: fadeInRight .5s ease forwards;
    -webkit-animation-delay: .35s;
    animation-delay: .35s
}

.overlay.open li:nth-of-type(2) {
    -webkit-animation-delay: .4s;
    animation-delay: .4s
}

.overlay.open li:nth-of-type(3) {
    -webkit-animation-delay: .45s;
    animation-delay: .45s
}

.overlay.open li:nth-of-type(4) {
    -webkit-animation-delay: .50s;
    animation-delay: .50s
}

.overlay nav {
    position: relative;
    height: 100vh;
    display: grid;
    justify-items: center;
    align-items: center;
    justify-content: center;
    align-content: center;
    font-size: clamp(18px, 3vw, 28px);
    font-weight: 400;
    text-align: center;
    background: var(--white)
}

.overlay ul {
    list-style: none;
    padding: 0;
    margin: 0 auto;
    display: inline-block;
    position: relative;
    height: 100%;
}

.overlay ul li {
    display: block;
    position: relative;
    opacity: 1;
    border-bottom: 2px solid var(--brand-primary)
}

.overlay ul li.social-connect {
    border: 0
}

.overlay ul li a {
    display: block;
    padding: 0.5em;
    position: relative;
    color: var(--brand-primary);
    text-decoration: none
}
.overlay ul li.social-connect {
    margin-top:1em
}
.overlay ul li.social-connect a {
    display: inline-block;
    padding: 5px;
    color: var(--brand-primary);
    transition: all .5s ease
}

.overlay ul li.social-connect a:hover {
    color: var(--brand-secondary)
}

.background {
    background-size: cover;
    background-repeat: no-repeat
}

.background.ignite {
    position: relative
}

.background.clients {
    background-size: cover
}

.offers-block {
    padding: 0 1em 2em;
}

.about-block {
    padding: 0 1em;
    max-width: 600px;
    margin: auto
}

@keyframes lensflare {
    from {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(360deg)
    }
}

@keyframes slow-grow {
    0% {
        transform: scale(0.8, 0.8)
    }

    100% {
        transform: scale(1.5, 1.5)
    }
}

@keyframes slow-shrink {
    0% {
        transform: scale(1.5, 1.5)
    }

    100% {
        transform: scale(1, 1)
    }
}

.st0 {
    fill: #d3a45f
}

.st1 {
    fill: #3e8c94
}

.st2 {
    fill: #d9ebea
}

@keyframes flipInX {
    0% {
        transform: perspective(400px) rotateX(90deg);
        opacity: 0
    }

    40% {
        transform: perspective(400px) rotateX(-10deg)
    }

    70% {
        transform: perspective(400px) rotateX(10deg)
    }

    100% {
        transform: perspective(400px) rotateX(0deg);
        opacity: 1
    }
}

body.preloader-site {
    overflow: hidden
}

.preloader-wrapper {
    height: 100%;
    width: 100%;
    background: var(--brand-primary);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999999
}

.preloader-wrapper .preloader {
    position: absolute;
    top: calc(50% - 50px);
    left: calc(50% - 50px);
    width: 120px
}
.preloader img {
    width: 100px; 
    height: 100px;
    animation: spin 2s linear infinite, pulse 1.5s ease-in-out infinite;
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1); /* Slightly larger */
    }
}

#next-button {
    position: absolute;
    bottom: 15px;
    left: 50%;
    margin-left: -22px;
    z-index: 999999999;
    width: 44px;
    height: 44px;
    text-align: center;
    background: var(--white);
    line-height: 44px;
    border-radius: 100%;
    border: 2px solid var(--brand-primary);
    transition: all .5s ease
}

#next-button:hover {
    transform: scale(1.075)
}

#contact_form_content {
    width: 90%;
    height: 80vh;
    margin: auto
}

#connect .rowspan2 {
    padding: 0
}

.quote-parent {
    height: 60vh;
    margin-top: 20vh
}


#theForm {
    max-width: 720px;
    margin: auto
}

#theForm div {
    padding: .5rem
}

#theForm label {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden
}

#theForm input[type=email],
#theForm input[type=number],
#theForm input[type=password],
#theForm input[type=tel],
#theForm input[type=text],
#theForm input[type=url],
#theForm textarea {
    font-family: 'Open Sans', sans-serif;
    min-height: 46px;
    padding: 10px 20px;
    width: 100%;
    background: var(--white);
    border: 1px solid var(--white);
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -moz-border-radius: .75em;
    -webkit-border-radius: .75em;
    border-radius: .75em;
    font-size: 18px;
    color: var(--brand-primary);
    outline: 0
}

#theForm input[type='submit'],
#theForm button {
    color: var(--brand-primary);
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    background-color: var(--white);
    -moz-border-radius: .75em;
    -webkit-border-radius: .75em;
    border-radius: .75em;
    border: 0;
    outline: 0;
    display: inline-block;
    padding: 10px 40px;
    font-size: 18px;
    text-align: center;
    vertical-align: middle;
    cursor: pointer
}

#theForm input[type='submit']:hover,
#theForm button:hover,
#theForm input[type='submit']:active,
#theForm button:active {
    background-color: rgba(255, 255, 255, .35);
    color: var(--white)
}

@media(max-width:1024px) {
    .half h3 {
        max-width:100%;
    }
    .button-im {
        display: block;
        text-align: center
    }

    .video-bg {
        background-color: var(--black)
    }

    .video-bg video {
        height: auto;
        min-height: 300px;
        width: auto;
        min-width: 100%;
        object-fit: none
    }

    .video-bg.intro,
    .video-bg.background {
        background-color: transparent
    }

    .video.intro {
        min-height: 100%
    }

    .intro.video-bg video {
        object-fit: fill;
        height: 100%
    }
}

@media(max-height:800px) {
    #page .content #logo svg {
        width: 386px;
        height: 500px;
        margin-top: 8%
    }
}

@media(max-height:700px) {
    #page .content #logo svg {
        margin-top: 5%
    }
}

@media(max-height:600px) {
    #page .content #logo svg {
        margin-top: 1%
    }
}
@media(max-width:991px) {
    #logo .logo-tagline h1 {
        padding:1em
    }
    .quote-parent  {
        margin-top:0;
        width:100%;
    }
    #page .content #logo img {max-width:60%}
    .rowspan1, .rowspan2 {padding:4em 1em}
    .rowspan1 .content, .rowspan2 .content {
        padding:0;
    }
    #section5 .content {
        padding:1em;
    }
    #theForm {
        max-width:80%;
        padding:0 1em;
    }
    #theForm input[type=email], 
    #theForm input[type=number], 
    #theForm input[type=password], 
    #theForm input[type=tel], 
    #theForm input[type=text], 
    #theForm input[type=url], 
    #theForm textarea {
        padding:5px 20px;
        min-height:30px;
    } 
    #theForm textarea {
        height:160px;
    }

}
@media(max-width:767px) {
    .button_container {
        height: 36px;
        width: 40px
    }

    .button_container span {
        height: 3px;
        top: 8px
    }

    .button_container span:nth-of-type(2) {
        top: 16px
    }

    .button_container span:nth-of-type(3) {
        top: 24px
    }    
}

@media(max-width:460px) {    
    .content blockquote {
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media screen and (min-device-width:320px) and (max-device-width:991px) and (orientation:portrait) {
    .video-bg video {
        left: 0;
        height: auto;
        min-height: 300px;
        min-width: 100%;
        transform: translateY(-50%)
    }
}

#fireflyGroup {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: fill .5s ease forwards 4s
}

#fireFlyOutline {
    stroke-dasharray: 295px;
    stroke-dashoffset: 295px;
    animation: logoAnimation 4s ease forwards
}

#fly1 {
    stroke-dasharray: 15px;
    stroke-dashoffset: 15px;
    animation: logoAnimation 4s ease forwards .4s
}

#fly2 {
    stroke-dasharray: 17px;
    stroke-dashoffset: 17px;
    animation: logoAnimation 4s ease forwards .8s
}

#fly3 {
    stroke-dasharray: 18px;
    stroke-dashoffset: 18px;
    animation: logoAnimation 4s ease forwards .9s
}
