/********** GENERAL SETTINGS **********/
html, body {
    padding: 0;
    margin: 0;
}

body {
    font: 300 14px/1.4 'Helvetica Neue',Helvetica,Arial,sans-serif;
    /*background: #000; [now parameterized]*/
}


/********** MAIN PANEL STYLES ***********/

#panelWrap {
    position: fixed; left: 0; top: 0; right: 0; bottom: 0;
    overflow: hidden;
    -webkit-transform: translate3d(0,0,0);
}

#panelWrapInner {
    wasposition: relative;
    was-webkit-backface-visibility: hidden !important; /*try to optimize transitions*/
    wasbackface-visibility: hidden !important; /*try to optimize transitions*/
}

#panelWrap .panel {
    position: relative;
    /* background-color: #000; [Now parameterized] */
}
#panelWrap .panel .loader {
    position: absolute;
    z-index: 5;
    left: 50%; top: 50%;
    margin-left: -8px;
    margin-top: -8px;
    width: 16px;
    height: 16px;
    background: url(data:image/gif;base64,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) no-repeat;
}
#panelWrap .panel>.imgWrap {
    position: absolute;
    left: 0; right: 0; top: 0; bottom: 0;
    overflow: hidden;
    z-index: 10;
    background-size: auto;
    background-position: 50% 50%;
    background-repeat: no-repeat;
}
#panelWrap .caption {
    position: absolute;
    left: 0; top: 0; width: 40%;
    bottom: 0;
    -webkit-transition: all 0.2s ease-in-out;
    background: #000;
    background: rgba(0,0,0,0.9);
    color: #FFF;
    padding: 10px;
    opacity: 0;
}
#panelWrap .caption.showIt {
    opacity: 1;
}


/************** BUTTONS ***********/

.button-sprite {
    background-image: url(../images/button_sprite2.png);
    background-repeat: no-repeat;
}
body.control-btn-white .button-sprite {
    background-image: url(../images/button_sprite2-white.png);
}

.control-btn {
    display: block;
    width: 44px; height: 44px;
    text-decoration: none;
    position: fixed;
    z-index: 40;
    opacity: 0.8;
    -webkit-transition: opacity 0.3s ease-in-out;
    -moz-transition: opacity 0.3s ease-in-out;
    transition: opacity 0.3s ease-in-out;
}
body.no-touch .control-btn:hover {
    opacity: 1;
}
.up-button {
    right: 140px;
    bottom: 20px;
    background-position: -100px 0; /*0 0;*/

}
.gallery-button {
    right: 80px;
    bottom: 20px;
    background-position: -200px 0;
}
.down-button {
    right: 20px;
    bottom: 20px;
    background-position: -300px 0;
}
.close-button {
    right: 20px;
    top: 20px;
    background-position: -400px 0;
}
.info-button {
    left: 20px;
    bottom: 20px;
    background-position: 0 0;
}

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    /* Retina-specific CSS */
    .button-sprite {
        background-size: 600px 600px;
    }
    .up-button {
        background-position: -50px -200px;
    }
    .gallery-button {
        background-position: -100px -200px;
    }
    .down-button {
        background-position: -150px -200px;
    }
    .close-button {
        background-position: -200px -200px;
    }
    .info-button {
        background-position: 0 -200px;
    }
}

.control-btn.disabled {
    opacity: 0 !important; cursor: default;
}
body.oldIE a.control-btn.disabled {
    display: none !important;
}



#infoBox {
    position: fixed;
    bottom: 84px;
    left: 0;
    z-index: 40;
    waswidth: 40%;
    min-width: 200px;
    max-width: 500px;

    -webkit-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;

    background: #000;
    color: #FFF;
    padding: 10px 21px;
    opacity: 0;
}
#infoBox .title {
    font: 300 15px/1.4 'Lato',Arial,Helvetica,sans-serif;
    margin-bottom: 2px;
    color: #FFF;
}
#info-box.showIt .title p {padding: 0;}
#info-box.showIt .title strong{font: 300 17px/1.4 'Lato',Arial,Helvetica,sans-serif;}
#infoBox .desc {
    font: 300 13px/1.4 'Lato',Arial,Helvetica,sans-serif;
    color: #DDD;
}
body.info-box-white #infoBox {
    background: none;
}
body.info-box-white #infoBox .title {
    color: #333;
}
body.info-box-white #infoBox .desc {
    color: #777;
}

#infoBox.showIt {
    opacity: 0.8;
}
body.no-info-box #infoBox {
    display: none !important;
}


/************* GALLERY **************/

#gallery {
    position: relative;
    z-index: 100;
    overflow: hidden;
    /*overflow-y: auto;*/
    padding: 10px;
}
#gallerySubBackground {
    /*background: #000; [now parameterized]*/
    position: absolute;
    left: 0; right: 0; top: 0; bottom: 0;
}
#galleryBackground {
    position: fixed;
    z-index: 50;
    left: 0; right: 0; top: 0; bottom: 0;
    /*overflow-y: auto;*/
    overflow: hidden;
    /*background: #000; [now parameterized]*/
}
.box {
    float: left;
    position: relative;
    width: 20%;
    padding-bottom: 20%;
    /*overflow: hidden; ? */
}
.boxInner {
    position: absolute;
    left: 10px;
    right: 10px;
    top: 10px;
    bottom: 10px;
    overflow: hidden;
    cursor: pointer;
}
.boxInner .title, .boxInner .desc { display: none; } /*these are just scaffolding*/
.boxInner .loader {
    position: absolute;
    z-index: 5;
    left: 50%; top: 50%;
    margin-left: -8px;
    margin-top: -8px;
    width: 16px;
    height: 16px;
    background: url(data:image/gif;base64,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) no-repeat;
}
.boxInner .imgWrap {
    position: absolute;
    left: 0; right: 0; top: 0; bottom: 0;
    overflow: hidden;
    z-index: 10;
    background-size: auto;
    background-position: 50% 50%;
    background-repeat: no-repeat;
}
.boxInner .titleBox {
    position: absolute;
    z-index: 20;
    bottom: 0;
    left: 0;
    right: 0;
    top: 0;
    background: #000;
    background: rgba(0, 0, 0, 0.5);
    color: #FFF;
    padding: 42% 10px;
    text-align: center;
    font: 300 18px/1.4 'Lato',Arial,Helvetica,sans-serif;
    -webkit-transition: all 0.3s ease-out;
    -moz-transition: all 0.3s ease-out;
    -o-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
    opacity: 0;
}
body.oldIE .boxInner .titleBox {
    display: none;
}
body.no-touch .boxInner:hover .titleBox, body.touch .boxInner.touchFocus .titleBox {
    opacity: 1;
    display: block;
}
body.oldIE .boxInner:hover .titleBox {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
}

body.oldIE .gallery-hiding .box div {
    filter: inherit !important;
}



body.no-touch .boxInner {
    -o-transform: scale(1,1); -ms-transform: scale(1,1); -moz-transform: scale(1,1); -webkit-transform: scale(1,1); transform: scale(1,1);
    -o-transition: all 0.4s ease-in-out; -ms-transition: all 0.4s ease-in-out; -moz-transition: all 0.4s ease-in-out; -webkit-transition: all 0.4s ease-in-out; transition: all 0.4s ease-in-out;
}
body.no-touch .boxInner:hover {
    -o-transform: scale(1.03,1.03); -ms-transform: scale(1.03,1.03); -moz-transform: scale(1.03,1.03); -webkit-transform: scale(1.03,1.03); transform: scale(1.03,1.03);
}



@media only screen and (max-width : 380px) {
    /* Smartphone view: 1 tile */
    .box {
        width: 50%;
        padding-bottom: 50%;
    }
}
@media only screen and (max-width : 650px) and (min-width : 381px) {
    /* Tablet view: 2 tiles */
    .box {
        width: 33.3%;
        padding-bottom: 33.3%;
    }
}
@media only screen and (max-width : 1050px) and (min-width : 651px) {
    /* Small desktop / ipad view: 3 tiles */
    .box {
        width: 33.3%;
        padding-bottom: 33.3%;
    }
}
@media only screen and (max-width : 1290px) and (min-width : 1051px) {
    /* Medium desktop: 4 tiles */
    .box {
        width: 25%;
        padding-bottom: 25%;
    }
}
body.oldIE-w1 .box {
    width: 50%;
    padding-bottom: 50%;
}
body.oldIE-w2 .box {
    width: 33.3%;
    padding-bottom: 33.3%;
}
body.oldIE-w3 .box {
    width: 33.3%;
    padding-bottom: 33.3%;
}
body.oldIE-w4 .box {
    width: 25%;
    padding-bottom: 25%;
}



/************ CSS EFFECTS ************/

/*!
Modified from Animate.css - http://daneden.me/animate
Licensed under the MIT license

Copyright (c) 2013 Daniel Eden
*/
.animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

.animated.infinite {
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
}

.animated.hinge {
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
}

@-webkit-keyframes bounce-bottom {
    0%, 20%, 50%, 80%, 100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }

    40% {
        -webkit-transform: translateY(-30px);
        transform: translateY(-30px);
    }

    60% {
        -webkit-transform: translateY(-15px);
        transform: translateY(-15px);
    }
}

@keyframes bounce-bottom {
    0%, 20%, 50%, 80%, 100% {
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0);
    }

    40% {
        -webkit-transform: translateY(-30px);
        -ms-transform: translateY(-30px);
        transform: translateY(-30px);
    }

    60% {
        -webkit-transform: translateY(-15px);
        -ms-transform: translateY(-15px);
        transform: translateY(-15px);
    }
}

.animated-bounce-bottom {
    -webkit-animation-name: bounce-bottom;
    animation-name: bounce-bottom;
}

@-webkit-keyframes bounce-top {
    0%, 20%, 50%, 80%, 100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }

    40% {
        -webkit-transform: translateY(30px);
        transform: translateY(30px);
    }

    60% {
        -webkit-transform: translateY(15px);
        transform: translateY(15px);
    }
}

@keyframes bounce-top {
    0%, 20%, 50%, 80%, 100% {
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0);
    }

    40% {
        -webkit-transform: translateY(30px);
        -ms-transform: translateY(30px);
        transform: translateY(30px);
    }

    60% {
        -webkit-transform: translateY(15px);
        -ms-transform: translateY(15px);
        transform: translateY(15px);
    }
}

.animated-bounce-top {
    -webkit-animation-name: bounce-top;
    animation-name: bounce-top;
}