body, .project {
  overflow-y: hidden; }

.container {
  padding-top: 110px; }

.project {
  height: 100%;
  background-color: white;
  font-size: 0px;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch; }
  .project img {
    height: 100%;
    width: auto;
    display: inline-block;
    vertical-align: baseline;
    zoom: 1;
    *display: inline;
    *vertical-align: auto; }

.project-navigation {
  position: absolute;
  z-index: 1; }
  .project-navigation.back {
    top: 50%;
    width: 60px;
    height: 60px;
    background-repeat: no-repeat;
    background-position: center center;
    left: 20px;
    background-image: url("../img/previous.png"); }
  .project-navigation.forward {
    top: 50%;
    width: 60px;
    height: 60px;
    background-repeat: no-repeat;
    background-position: center center;
    right: 20px;
    background-image: url("../img/next.png"); }
  .project-navigation.paging {
    width: 100%;
    text-align: center;
    bottom: 40px; }
  .project-navigation.back, .project-navigation.forward, .project-navigation .paging-steps {
    overflow: hidden;
    white-space: nowrap;
    text-indent: 100%;
    display: block;
    -webkit-transition: all 200ms ease-in-out;
    transition: all 200ms ease-in-out;
    background-color: rgba(0, 0, 0, 0.1);
    cursor: pointer;
    border-radius: 50%;
    border: 1px solid rgba(187, 187, 187, 0.7); }
    .project-navigation.back:hover, .project-navigation.forward:hover, .project-navigation .paging-steps:hover {
      background-color: rgba(109, 198, 255, 0.7); }
  .project-navigation .paging-steps {
    display: inline-block;
    vertical-align: baseline;
    zoom: 1;
    *display: inline;
    *vertical-align: auto;
    width: 20px;
    height: 20px;
    margin-right: 5px; }
    .project-navigation .paging-steps.selected {
      border: 2px solid #00f; }
    .project-navigation .paging-steps:last-child {
      margin-right: 0; }

.overlay {
  width: 100%;
  height: 100%;
  position: absolute;
  padding-top: 80px;
  background-color: rgba(21, 21, 21, 0.95);
  overflow-y: hidden;
  z-index: 2; }
  .overlay p {
    color: #999; }
    .overlay p:last-child {
      margin-bottom: 0; }
    @media only screen and (min-width: 320px) {
      .overlay p {
        font-size: 0.83125em; } }
    @media only screen and (min-width: 768px) {
      .overlay p {
        font-size: 1em; } }
    @media only screen and (min-width: 1080px) {
      .overlay p {
        font-size: 1.16875em; } }
  @media only screen and (min-width: 320px) {
    .overlay h1 {
      font-size: 1.16875em; } }
  @media only screen and (min-width: 768px) {
    .overlay h1 {
      font-size: 1.33125em; } }
  @media only screen and (min-width: 1080px) {
    .overlay h1 {
      font-size: 1.5em; } }
  .overlay .description {
    padding: 20px;
    height: 100%; }
    @media only screen and (min-width: 320px) {
      .overlay .description {
        margin-left: 0%;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch; } }
    @media only screen and (min-width: 1080px) {
      .overlay .description {
        padding: 20px 10%;
        margin-left: 33.333%;
        overflow-y: auto;
        -webkit-overflow-scrolling: auto; } }
    .overlay .description .tag {
      display: inline-block;
      vertical-align: baseline;
      zoom: 1;
      *display: inline;
      *vertical-align: auto;
      -webkit-transition: all 200ms ease-in-out;
      transition: all 200ms ease-in-out;
      padding: 5px 10px;
      background-color: rgba(255, 255, 255, 0.1);
      color: #eee;
      cursor: pointer;
      margin-bottom: 5px; }
      .overlay .description .tag:hover {
        color: #222;
        background-color: rgba(109, 198, 255, 0.7); }
  .overlay .control-close {
    position: absolute;
    height: 30px;
    overflow: hidden;
    white-space: nowrap;
    text-indent: 100%;
    display: block;
    -webkit-transition: all 200ms ease-in-out;
    transition: all 200ms ease-in-out;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 20px 20px;
    cursor: pointer;
    background-color: rgba(255, 255, 255, 0.1); }
    @media only screen and (min-width: 320px) {
      .overlay .control-close {
        bottom: 0;
        left: 0;
        right: 0;
        background-image: url("../img/close-bar.png"); }
        .overlay .control-close:hover {
          background-color: rgba(255, 0, 0, 0.7); } }
    @media only screen and (min-width: 1080px) {
      .overlay .control-close {
        background-image: url("../img/close-cross.png");
        width: 33.333%;
        top: 80px; } }

.controls {
  position: absolute;
  height: 30px;
  -webkit-transition: opacity 200ms ease-in-out;
  transition: opacity 200ms ease-in-out;
  top: 80px;
  z-index: 1;
  font-size: 0; }
  .controls .control-back {
    overflow: hidden;
    white-space: nowrap;
    text-indent: 100%;
    display: block;
    -webkit-transition: all 200ms ease-in-out;
    transition: all 200ms ease-in-out;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 20px 20px;
    cursor: pointer;
    display: inline-block;
    vertical-align: baseline;
    zoom: 1;
    *display: inline;
    *vertical-align: auto;
    height: 30px;
    width: 50%;
    background-color: rgba(0, 0, 0, 0.1);
    background-image: url("../img/back.png"); }
    .controls .control-back:hover {
      background-color: rgba(255, 0, 0, 0.7); }
  .controls .control-open {
    overflow: hidden;
    white-space: nowrap;
    text-indent: 100%;
    display: block;
    -webkit-transition: all 200ms ease-in-out;
    transition: all 200ms ease-in-out;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 20px 20px;
    cursor: pointer;
    display: inline-block;
    vertical-align: baseline;
    zoom: 1;
    *display: inline;
    *vertical-align: auto;
    height: 30px;
    width: 50%;
    background-color: rgba(0, 0, 0, 0.1);
    background-image: url("../img/info.png"); }
    .controls .control-open:hover {
      background-color: rgba(109, 198, 255, 0.7); }

.overlay-displayed {
  filter: alpha(opacity=0);
  -khtml-opacity: 0;
  -webkit-opacity: 0;
  -moz-opacity: 0;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; }

.overflow-on {
  overflow-x: auto !important; }

.preloader {
  z-index: 20;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #333;
  text-align: center; }
  .preloader .loading-anim {
    position: relative;
    display: inline-block;
    vertical-align: baseline;
    zoom: 1;
    *display: inline;
    *vertical-align: auto;
    margin-left: 10px;
    width: 10px;
    height: 10px;
    border: 2px solid #6dc6ff;
    border-radius: 50%;
    -webkit-animation: spin 0.75s infinite linear;
            animation: spin 0.75s infinite linear;
    border-top-color: transparent; }
    .preloader .loading-anim:before, .preloader .loading-anim:after {
      left: -2px;
      top: -2px;
      display: none;
      position: absolute;
      content: '';
      width: inherit;
      height: inherit;
      border: inherit;
      border-radius: inherit; }
    .preloader .loading-anim:after {
      display: block;
      border-color: transparent;
      border-top-color: #6dc6ff;
      -webkit-animation: spin 1.25s infinite linear reverse;
              animation: spin 1.25s infinite linear reverse; }
  .preloader p {
    display: inline-block;
    vertical-align: baseline;
    zoom: 1;
    *display: inline;
    *vertical-align: auto; }
    @media only screen and (min-width: 320px) {
      .preloader p {
        font-size: 0.83125em; } }
    @media only screen and (min-width: 768px) {
      .preloader p {
        font-size: 1em; } }
    @media only screen and (min-width: 1080px) {
      .preloader p {
        font-size: 1.16875em; } }
  .preloader:before {
    display: inline-block;
    vertical-align: baseline;
    zoom: 1;
    *display: inline;
    *vertical-align: auto;
    margin-right: -0.25em;
    height: 100%;
    content: '';
    vertical-align: middle; }
  .preloader .feedback {
    display: inline-block;
    vertical-align: baseline;
    zoom: 1;
    *display: inline;
    *vertical-align: auto;
    vertical-align: middle;
    width: 99%; }
  .preloader .progress {
    height: 4px;
    border: 1px solid #2b2b2b; }
    .preloader .progress .bar {
      display: inline-block;
      vertical-align: baseline;
      zoom: 1;
      *display: inline;
      *vertical-align: auto;
      height: 100%;
      background: #6dc6ff;
      float: left; }

@-webkit-keyframes spin {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }
@keyframes spin {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }
.no-js .project-navigation {
  display: none; }
.no-js .preloader {
  display: none; }
.no-js .overlay:target {
  display: block; }
.no-js .overlay:not(:target) {
  display: none; }

.js .project {
  overflow: hidden; }
.js.no-csstransitions .overlay:target, .js.no-csstransforms .overlay:target {
  display: block; }
.js.no-csstransitions .overlay:not(:target), .js.no-csstransforms .overlay:not(:target) {
  display: none; }
.js.csstransitions.csstransforms .overlay {
  -webkit-transform: none;
  transform: none;
  -webkit-transition: all 600ms cubic-bezier(1, 0, 0, 1);
  transition: all 600ms cubic-bezier(1, 0, 0, 1); }
.js.csstransitions.csstransforms .overlay-hidden .overlay {
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%); }
.js.csscalc .overlay .description {
  height: calc(100% - 30px); }
