/* Functions */
/* Implementation */
body {
  margin: 0;
  padding: 0;
  background: black;
}
.shiftingtiles {
  /*
	height: 900px;
	width: 1440px;
        */
  overflow: hidden;
}
.shiftingtiles > .loading {
  display: none;
  position: absolute;
  line-height: 1080px;
  text-align: center;
  width:  100%;
  height: 100%;
  top:  0;
  left: 0;
  z-index: 100;
  background: black;
  color:      black;
}
.shiftingtiles > .row {
  position: relative;
  width:  333%;
  height: 100%;
  margin: 0 0;
}
@media screen and (min-device-width: 768px) {
  .shiftingtiles > .row {
    width: 200%;
    height: 50%;
  }
}



.shiftingtiles > .row .single1,
.shiftingtiles > .row .single2,
.shiftingtiles > .row .dual1,
.shiftingtiles > .row .dual2 {
    overflow:hidden;
    text-indent:100%;
    white-space:nowrap;
}

.shiftingtiles > .row .single1,
.shiftingtiles > .row .single2,
.shiftingtiles > .row .dual1,
.shiftingtiles > .row .dual2,
.shiftingtiles > .row .dual {
  background: black;
  float: left;
  height: 100%;
  box-sizing: border-box;
  border: 5px solid black;
}


.shiftingtiles > .row .single1 {
  width: 20%;
  background-size: cover;
  background-position: center;
  /* background-image: to be filled in ;*/
  transform-origin: 0 100%;
}
.shiftingtiles > .row .single2 {
  width: 20%;
  background-size: cover;
  background-position: center;
  /* background-image: to be filled in ;*/
  transform-origin: 0 0;
}


.shiftingtiles > .row .dual {
  width: 10%;
  transform-origin: 0 50%;
}
.shiftingtiles > .row .dual > a {
  width: 100%;
  height: 50%;
  box-sizing: border-box;
  border: solid black;
  border-width: 10px 0 0 0;
  background-size: cover;
  background-position: center;
  /* background-image: to be filled in ;*/
}
.shiftingtiles > .row .dual > a:first-child {
  border-top: 0;
}
.shiftingtiles > .row:not(:first-child) {
  margin-left: -100%;
}
.shiftingtiles > .row:not(:first-child) .single1,
.shiftingtiles > .row:not(:first-child) .single2,
.shiftingtiles > .row:not(:first-child) .dual {
  float: right;
}



.shiftingtiles > .row:not(:first-child) .single1 { transform-origin: 100%   0; }
.shiftingtiles > .row:not(:first-child) .single2 { transform-origin:  50% 100%;}
.shiftingtiles > .row:not(:first-child) .dual    { transform-origin: 100% 50%; }



.single1.disappear {
  animation: disappear-single1 1s 0 linear;
  transform-origin: 100% 0;
  animation-fill-mode: forwards;
  animation-iteration-count: 1;
}
.single2.disappear {
  animation: disappear-single2 1s 0 linear;
  transform-origin: 0% 0;
  animation-fill-mode: backwards;
  animation-iteration-count: 1;
}



.dual.disappear {
  animation: disappear-dual 1s 0 linear;
  transform-origin: 0 50%;
  animation-fill-mode: forwards;
  animation-iteration-count: 1;
}
.dual.disappear + *,
.single1.disappear + *,
.single2.disappear + * {
  animation: bounce 1s 0 linear;
  animation-fill-mode: forwards;
  animation-iteration-count: 1;
}
.dual.disappear + * + *,
.single1.disappear + * + *,
.single2.disappear + * + * {
  animation: bounce-small 1s 0 linear;
  animation-fill-mode: forwards;
  animation-iteration-count: 1;
}
.dual.disappear + * + * + *,
.single1.disappear + * + * + *,
.single2.disappear + * + * + * {
  animation: bounce-small 1s 0 linear;
  animation-fill-mode: forwards;
  animation-iteration-count: 1;
}
.shiftingtiles.leave .row {
  animation: leave-r 1s 0 linear;
  animation-fill-mode: forwards;
}
.shiftingtiles.leave .row:first-child {
  animation: leave-l 1.5s 0 linear;
}
.shiftingtiles.left .row > * {
  display: none;
}
@-moz-keyframes bounce {
    0% { margin: 0     ; }
   10% { margin: 0     ; }
   30% { margin: 0 10px; }
   60% { margin: 0     ; }
   70% { margin: 0  6px; }
   75% { margin: 0 10px; }
   80% { margin: 0  6px; }
   89% { margin: 0  1px; }
   90% { margin: 0     ; }
   91% { margin: 0  1px; }
   96% { margin: 0  3px; }
  100% { margin: 0     ; }
}
@-webkit-keyframes bounce {
    0% { margin: 0     ; }
   10% { margin: 0     ; }
   30% { margin: 0 10px; }
   60% { margin: 0     ; }
   70% { margin: 0  6px; }
   75% { margin: 0 10px; }
   80% { margin: 0  6px; }
   89% { margin: 0  1px; }
   90% { margin: 0     ; }
   91% { margin: 0  1px; }
   96% { margin: 0  3px; }
  100% { margin: 0     ; }
}
@keyframes bounce {
    0% { margin: 0     ; }
   10% { margin: 0     ; }
   30% { margin: 0 10px; }
   60% { margin: 0     ; }
   70% { margin: 0  6px; }
   75% { margin: 0 10px; }
   80% { margin: 0  6px; }
   89% { margin: 0  1px; }
   90% { margin: 0     ; }
   91% { margin: 0  1px; }
   96% { margin: 0  3px; }
  100% { margin: 0     ; }
}

@-moz-keyframes bounce-small {
    0% { margin: 0     ; }
   10% { margin: 0     ; }
   30% { margin: 0  5px; }
   60% { margin: 0     ; }
   70% { margin: 0  3px; }
   75% { margin: 0  5px; }
   80% { margin: 0  3px; }
   89% { margin: 0  1px; }
   90% { margin: 0     ; }
   91% { margin: 0  1px; }
   96% { margin: 0  1px; }
  100% { margin: 0     ; }
}
@-webkit-keyframes bounce-small {
    0% { margin: 0     ; }
   10% { margin: 0     ; }
   30% { margin: 0  5px; }
   60% { margin: 0     ; }
   70% { margin: 0  3px; }
   75% { margin: 0  5px; }
   80% { margin: 0  3px; }
   89% { margin: 0  1px; }
   90% { margin: 0     ; }
   91% { margin: 0  1px; }
   96% { margin: 0  1px; }
  100% { margin: 0     ; }
}
@keyframes bounce-small {
    0% { margin: 0     ; }
   10% { margin: 0     ; }
   30% { margin: 0  5px; }
   60% { margin: 0     ; }
   70% { margin: 0  3px; }
   75% { margin: 0  5px; }
   80% { margin: 0  3px; }
   89% { margin: 0  1px; }
   90% { margin: 0     ; }
   91% { margin: 0  1px; }
   96% { margin: 0  1px; }
  100% { margin: 0     ; }
}

@-moz-keyframes disappear-single1 {
    0% { transform: scale3d(1,    1,    1); width: 20%;                  }
   10% {                                    width: 20%;                  }
   40% { transform: scale3d(0.01, 0.01, 1);                              }
   60% { transform: scale3d(0,    0,    1); width:  0%;                  }
  100% { transform: scale3d(0,    0,    1); width:  0%; border-width: 0; }
}
@-webkit-keyframes disappear-single1 {
    0% { transform: scale3d(1,    1,    1); width: 20%;                  }
   10% {                                    width: 20%;                  }
   40% { transform: scale3d(0.01, 0.01, 1);                              }
   60% { transform: scale3d(0,    0,    1); width:  0%;                  }
  100% { transform: scale3d(0,    0,    1); width:  0%; border-width: 0; }
}
@keyframes disappear-single1 {
    0% { transform: scale3d(1,    1,    1); width: 20%;                  }
   10% {                                    width: 20%;                  }
   40% { transform: scale3d(0.01, 0.01, 1);                              }
   60% { transform: scale3d(0,    0,    1); width:  0%;                  }
  100% { transform: scale3d(0,    0,    1); width:  0%; border-width: 0; }
}

@-moz-keyframes disappear-single2 {
    0% { transform: scale3d(1,    1,    1); width: 20%;                  }
   10% {                                    width: 20%;                  }
   40% { transform: scale3d(0.01, 0.01, 1);                              }
   60% { transform: scale3d(0,    0,    1); width:  0%;                  }
  100% { transform: scale3d(0,    0,    1); width:  0%; border-width: 0; }
}
@-webkit-keyframes disappear-single2 {
    0% { transform: scale3d(1,    1,    1); width: 20%;                  }
   10% {                                    width: 20%;                  }
   40% { transform: scale3d(0.01, 0.01, 1);                              }
   60% { transform: scale3d(0,    0,    1); width:  0%;                  }
  100% { transform: scale3d(0,    0,    1); width:  0%; border-width: 0; }
}
@keyframes disappear-single2 {
    0% { transform: scale3d(1,    1,    1); width: 20%;                  }
   10% {                                    width: 20%;                  }
   40% { transform: scale3d(0.01, 0.01, 1);                              }
   60% { transform: scale3d(0,    0,    1); width:  0%;                  }
  100% { transform: scale3d(0,    0,    1); width:  0%; border-width: 0; }
}

@-moz-keyframes disappear-dual {
    0% { transform: scale3d(1,    1,    1); width: 10%;                  }
   10% {                                    width: 10%;                  }
   40% { transform: scale3d(0.01, 0.01, 1);                              }
   60% { transform: scale3d(0,    0,    1); width:  0%;                  }
  100% { transform: scale3d(0,    0,    1); width:  0%; border-width: 0; }
}
@-webkit-keyframes disappear-dual {
    0% { transform: scale3d(1,    1,    1); width: 10%;                  }
   10% {                                    width: 10%;                  }
   40% { transform: scale3d(0.01, 0.01, 1);                              }
   60% { transform: scale3d(0,    0,    1); width:  0%;                  }
  100% { transform: scale3d(0,    0,    1); width:  0%; border-width: 0; }
}
@keyframes disappear-dual {
    0% { transform: scale3d(1,    1,    1); width: 10%;                  }
   10% {                                    width: 10%;                  }
   40% { transform: scale3d(0.01, 0.01, 1);                              }
   60% { transform: scale3d(0,    0,    1); width:  0%;                  }
  100% { transform: scale3d(0,    0,    1); width:  0%; border-width: 0; }
}



@-moz-keyframes leave-l {
    0% { transform: translate3d(  0,  0, 0);                 }
   99% { transform: translate3d(100%, 0, 0); display: block; }
  100% { transform: translate3d(100%, 0, 0); display: none;  }
}
@-webkit-keyframes leave-l {
    0% { transform: translate3d(  0,  0, 0);                 }
   99% { transform: translate3d(100%, 0, 0); display: block; }
  100% { transform: translate3d(100%, 0, 0); display: none;  }
}
@keyframes leave-l {
    0% { transform: translate3d(  0,  0, 0);                 }
   99% { transform: translate3d(100%, 0, 0); display: block; }
  100% { transform: translate3d(100%, 0, 0); display: none;  }
}

@-moz-keyframes leave-r {
    0% { transform: translate3d(   0,  0, 0);                 }
   99% { transform: translate3d(-100%, 0, 0); display: block; }
  100% { transform: translate3d(-100%, 0, 0); display: none;  }
}
@-webkit-keyframes leave-r {
    0% { transform: translate3d(   0,  0, 0);                 }
   99% { transform: translate3d(-100%, 0, 0); display: block; }
  100% { transform: translate3d(-100%, 0, 0); display: none;  }
}
@keyframes leave-r {
    0% { transform: translate3d(   0,  0, 0);                 }
   99% { transform: translate3d(-100%, 0, 0); display: block; }
  100% { transform: translate3d(-100%, 0, 0); display: none;  }
}
