.grid {
    max-width: 100%;
    list-style: none;
    margin: 30px auto;
    padding: 0;
}

    .grid li {
        display: block;
        float: left;
        padding: 7px;
        width: 33%;
        opacity: 0;
    }

        .grid li.shown,
        .no-js .grid li,
        .no-cssanimations .grid li {
            opacity: 1;
        }

        .grid li a,
        .grid li img {
            outline: none;
            border: none;
            display: block;
            max-width: 100%;
            width: 100%
        }

.container .icon div, .container .caption {
    display: inline-block
}

.container {
    position: relative
}

    .container::before {
        content: "";
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,.5);
        position: absolute;
        top: 0;
        left: 0;
        opacity: 0;
        transition: all .35s ease 0s
    }

    .container:hover::before {
        opacity: 1
    }

    .container img {
        width: 100%;
        height: auto
    }

    .container .box-content {
        width: 90%;
        height: 90%;
        position: absolute;
        top: 5%;
        left: 5%
    }

        .container .box-content:after, .container .box-content:before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            right: 0;
            opacity: 0;
            transition: all .7s ease 0s
        }

    .container:hover .box-content:after, .container:hover .box-content:before {
        opacity: 1;
        transform: scale(1);
        transition-delay: .15s
    }

    .container .description {
        font-size: 16px;
        font-weight: 700;
        color: #fff;
        /*margin: 15px 0;*/
        opacity: 0;
        transform: translate3d(0,-50px,0);
        transition: transform .5s ease 0s
    }

    .container:hover .description {
        opacity: 1;
        transform: translate3d(0,0,0)
    }

    .container .caption {
        font-size: 21px;
        color: #fff;
        padding: 10px;
        opacity: 0;
        border-radius: 0 19px;
        transform: translate3d(0,-50px,0);
        transition: all .7s ease 0s;
        transition-delay: 0s;
        margin: 2% 0;
        margin-bottom: 2%;
        margin-bottom: 1%;
    }

    .container .icon {
        padding: 0;
        list-style: none
    }

    .container:hover .caption {
        opacity: 1;
        transform: translate3d(0,0,0);
        transition-delay: .15s
    }

    .container .icon {
        width: 100%;
        margin: 0;
        position: absolute;
        bottom: -10px;
        left: 0;
        opacity: 0;
        z-index: 1;
        transition: all .7s ease 0s
    }

    .container:hover .icon {
        bottom: 8%;
        opacity: 1;
        transition-delay: .15s;
    }

    .container .icon div a {
        display: block;
        width: 40px;
        height: 40px;
        line-height: 40px;
        /*border: 1px solid #fff;*/
        border-radius: 32px 32px;
        font-size: 14px;
        color: #fff;
        margin-right: 5px;
        transition: all .4s ease 0s
    }

    .container .icon div i {
        top: -2px;
        position: relative;
    }

    .container .icon div a:hover {
        background: #fff;
        border-color: #fff;
    }

        .container .icon div a:hover > i {
            color: #808080;
        }

.container {
    position: relative;
    text-align: center;
    box-shadow: 0 0 3px rgba(0,0,0,.3);
    overflow: hidden;
}


/* Effect 1: opacity */
.grid.effect-1 li.animate {
    -webkit-animation: fadeIn 0.65s ease forwards;
    animation: fadeIn 0.65s ease forwards;
}

@-webkit-keyframes fadeIn {
    0% {
    }

    100% {
        opacity: 1;
    }
}

@keyframes fadeIn {
    0% {
    }

    100% {
        opacity: 1;
    }
}

/* Effect 2: Move Up */
.grid.effect-2 li.animate {
    -webkit-transform: translateY(200px);
    transform: translateY(200px);
    -webkit-animation: moveUp 0.65s ease forwards;
    animation: moveUp 0.65s ease forwards;
}

@-webkit-keyframes moveUp {
    0% {
    }

    100% {
        -webkit-transform: translateY(0);
        opacity: 1;
    }
}

@keyframes moveUp {
    0% {
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1;
    }
}

/* Effect 3: Scale up */
.grid.effect-3 li.animate {
    -webkit-transform: scale(0.6);
    transform: scale(0.6);
    -webkit-animation: scaleUp 0.65s ease-in-out forwards;
    animation: scaleUp 0.65s ease-in-out forwards;
}

@-webkit-keyframes scaleUp {
    0% {
    }

    100% {
        -webkit-transform: scale(1);
        opacity: 1;
    }
}

@keyframes scaleUp {
    0% {
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
        opacity: 1;
    }
}

/* Effect 4: fall perspective */
.grid.effect-4 {
    -webkit-perspective: 1300px;
    perspective: 1300px;
}

    .grid.effect-4 li.animate {
        -webkit-transform-style: preserve-3d;
        transform-style: preserve-3d;
        -webkit-transform: translateZ(400px) translateY(300px) rotateX(-90deg);
        transform: translateZ(400px) translateY(300px) rotateX(-90deg);
        -webkit-animation: fallPerspective .8s ease-in-out forwards;
        animation: fallPerspective .8s ease-in-out forwards;
    }

@-webkit-keyframes fallPerspective {
    0% {
    }

    100% {
        -webkit-transform: translateZ(0px) translateY(0px) rotateX(0deg);
        opacity: 1;
    }
}

@keyframes fallPerspective {
    0% {
    }

    100% {
        -webkit-transform: translateZ(0px) translateY(0px) rotateX(0deg);
        transform: translateZ(0px) translateY(0px) rotateX(0deg);
        opacity: 1;
    }
}

/* Effect 5: fly (based on http://lab.hakim.se/scroll-effects/ by @hakimel) */
.grid.effect-5 {
    -webkit-perspective: 1300px;
    perspective: 1300px;
}

    .grid.effect-5 li.animate {
        -webkit-transform-style: preserve-3d;
        transform-style: preserve-3d;
        -webkit-transform-origin: 50% 50% -300px;
        transform-origin: 50% 50% -300px;
        -webkit-transform: rotateX(-180deg);
        transform: rotateX(-180deg);
        -webkit-animation: fly .8s ease-in-out forwards;
        animation: fly .8s ease-in-out forwards;
    }

@-webkit-keyframes fly {
    0% {
    }

    100% {
        -webkit-transform: rotateX(0deg);
        opacity: 1;
    }
}

@keyframes fly {
    0% {
    }

    100% {
        -webkit-transform: rotateX(0deg);
        transform: rotateX(0deg);
        opacity: 1;
    }
}

/* Effect 6: flip (based on http://lab.hakim.se/scroll-effects/ by @hakimel) */
.grid.effect-6 {
    -webkit-perspective: 1300px;
    perspective: 1300px;
}

    .grid.effect-6 li.animate {
        -webkit-transform-style: preserve-3d;
        transform-style: preserve-3d;
        -webkit-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: rotateX(-80deg);
        transform: rotateX(-80deg);
        -webkit-animation: flip .8s ease-in-out forwards;
        animation: flip .8s ease-in-out forwards;
    }

@-webkit-keyframes flip {
    0% {
    }

    100% {
        -webkit-transform: rotateX(0deg);
        opacity: 1;
    }
}

@keyframes flip {
    0% {
    }

    100% {
        -webkit-transform: rotateX(0deg);
        transform: rotateX(0deg);
        opacity: 1;
    }
}

/* Effect 7: helix (based on http://lab.hakim.se/scroll-effects/ by @hakimel) */
.grid.effect-7 {
    -webkit-perspective: 1300px;
    perspective: 1300px;
}

    .grid.effect-7 li.animate {
        -webkit-transform-style: preserve-3d;
        transform-style: preserve-3d;
        -webkit-transform: rotateY(-180deg);
        transform: rotateY(-180deg);
        -webkit-animation: helix .8s ease-in-out forwards;
        animation: helix .8s ease-in-out forwards;
    }

@-webkit-keyframes helix {
    0% {
    }

    100% {
        -webkit-transform: rotateY(0deg);
        opacity: 1;
    }
}

@keyframes helix {
    0% {
    }

    100% {
        -webkit-transform: rotateY(0deg);
        transform: rotateY(0deg);
        opacity: 1;
    }
}

/* Effect 8:  */
.grid.effect-8 {
    -webkit-perspective: 1300px;
    perspective: 1300px;
}

    .grid.effect-8 li.animate {
        -webkit-transform-style: preserve-3d;
        transform-style: preserve-3d;
        -webkit-transform: scale(0.4);
        transform: scale(0.4);
        -webkit-animation: popUp .8s ease-in forwards;
        animation: popUp .8s ease-in forwards;
    }

@-webkit-keyframes popUp {
    0% {
    }

    70% {
        -webkit-transform: scale(1.1);
        opacity: .8;
        -webkit-animation-timing-function: ease-out;
    }

    100% {
        -webkit-transform: scale(1);
        opacity: 1;
    }
}

@keyframes popUp {
    0% {
    }

    70% {
        -webkit-transform: scale(1.1);
        transform: scale(1.1);
        opacity: .8;
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
        opacity: 1;
    }
}

@media screen and (max-width: 900px) {
    .grid li {
        width: 50%;
    }
}

@media screen and (max-width: 400px) {
    .grid li {
        width: 100%;
    }
}


.container:hover .thumb-text {
    top: 0;
}

.thumb-wrap {
    width: 90% !important;
    height: 90%;
    position: absolute !important;
    top: 5%;
    left: 5%;
}

.thumb-text {
    position: absolute;
    top: -280px;
    width: 100%;
    height: auto;
    background-color: orange;
    z-index: 5;
    padding: 29px 0;
    transition: all .7s ease 0s;
    color: #ffffff;
    cursor: default;
}

    .thumb-text > h2 {
        margin-bottom: 10px;
    }
