html {
  height: 100%;
}

body {
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  background-color: #333;
  
  display: -webkit-box;
  -webkit-box-align: center;
  -webkit-box-orient: horizontal;
  -webkit-box-pack: center;

  display: -moz-box;
  -moz-box-align: center;
  -moz-box-orient: horizontal;
  -moz-box-pack: center;
}

.flow {
  -webkit-transform-style: preserve-3d;
  min-height: 229px;
}

.flow img {
  margin-right: -125px;
  margin-bottom: 25px;
  margin-left: 0;
  width: 170px;
  border-radius: 2px;
  box-shadow: 0 1px 1px rgba( 0, 0, 0, .4 );
  -webkit-transition:
    -webkit-transform .4s ease-out,
    width             .4s ease-out,
    margin-right      .4s ease-out,
    margin-left       .4s ease-out,
    box-shadow        .2s ease-out;
  -webkit-transform-origin: 50% 50%;
  -webkit-transform: perspective(300) rotateY(50deg);
  -webkit-box-reflect: below 0
    -webkit-gradient(linear, left top, left bottom,
      from( transparent ), 
      color-stop( 0.2, transparent ), 
      to( rgba( 255, 255, 255, .2 ) )
    );
}

.flow a:target {
  pointer-events: none;
}

.flow a:target img {
  margin: 0 100px;
  width: 225px;
  -webkit-border-radius: 3px;
  -webkit-box-shadow: 0 3px 3px rgba( 0, 0, 0, .4 );
  -webkit-transform: none;
  -webkit-transform: rotate(0deg);
  pointer-events: none;
}

.flow a:target ~ a img {
  margin-right: 0;
  margin-left: -125px;
  -webkit-transform: perspective(300) rotateY(-50deg);
}

.flow a:hover, .flow a:focus {
  outline: none;
}

.flow a:hover img, .flow a:focus img {
  box-shadow: 0 0 7px #2EA9ED;
  -webkit-box-reflect: below 0px
    -webkit-gradient(linear, left top, left bottom,
      from( transparent ), 
      color-stop( 0.2, transparent ), 
      to( rgba( 255, 255, 255, .2 ) )
    );
}
