body {
    margin: 0;
}

.container {
    margin: 15px;
}

*:focus {
    outline: none !important;
}

/***********************************/

.img-responsive {
    max-width: 100%;
    height: auto;
}

.solid-border {
    border: solid 15px white;
}

img.solid-border {
    top: -15px;
    left: -15px;
}

.center-block {
    margin-left: auto;
    margin-right: auto;
}

/***********************************/

.section {
    position: relative;
    padding: 80px;
}

.color-blue1 {
    background-color: #cadae6;
}

.color-pink1 {
    background-color: #ffd6d6;
}

.color-green1 {
    background-color: #81b883;
}

.color-yellow1 {
    background-color: #faf7af;
}

.card {
    position: relative;
    width: 312px;
    height: 312px;
    margin: 0 auto;
}

/***********************************/

.fade-effect img {
    position: absolute;
    -webkit-transition: opacity 1s ease-in-out;
    transition: opacity 1s ease-in-out;
}

.fade-effect img.front {
    opacity: 1;
}

.fade-effect.active img.front,
.no-touch .fade-effect:hover img.front {
    opacity: 0;
}

.fade-effect img.back {
    opacity: 0;
}

.fade-effect.active img.back,
.no-touch .fade-effect:hover img.back {
    opacity: 1;
}

/***********************************/

.flip-effect img {
    position: absolute;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transition: -webkit-transform 1s;
    transition: transform 1s;
}

.flip-effect img.front {
    -webkit-transform: rotateY(0deg);
    transform: rotateY(0deg);
}

.flip-effect.active img.front,
.no-touch .flip-effect:hover img.front {
    -webkit-transform: rotateY(-180deg);
    transform: rotateY(-180deg);
}

.flip-effect img.back {
    -webkit-transform: rotateY(-180deg);
    transform: rotateY(-180deg);
}

.flip-effect.active img.back,
.no-touch .flip-effect:hover img.back {
    -webkit-transform: rotateY(0deg);
    transform: rotateY(0deg);
}

/***********************************/

.door-effect {
    -webkit-perspective: 1200px;
    perspective: 1200px;
}

.door-effect img {
    position: absolute;
    -webkit-transition: -webkit-transform 1s;
    -webkit-transform-style: preserve-3d;
    -webkit-transform-origin: 0 50%;
    transition: transform 1s;
    transform-style: preserve-3d;
    transform-origin: 0 50%;
}

.door-effect img.front {
    -webkit-transform: rotateY(0deg);
    transform: rotateY(0deg);
    z-index: 999 !important;
}

.door-effect.active img.front,
.no-touch .door-effect:hover img.front {
    -webkit-transform: rotateY(-115deg);
    transform: rotateY(-115deg);
}

/***********************************/

.pulse-effect img {
    -webkit-transition: -webkit-transform 0.2s;
    transition: transform 0.2s;
}

.pulse-effect.active img.front,
.no-touch .pulse-effect:hover img.front {
    -webkit-animation: pulse 1s ease infinite;
    animation: pulse 1s ease infinite;
}

@-webkit-keyframes pulse {
    0% {
        -webkit-transform: scale(1);
    }

    50% {
        -webkit-transform: scale(1.1);
    }

    100% {
        -webkit-transform: scale(1);
    }
}

@keyframes pulse {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.1);
    }

    100% {
        transform: scale(1);
    }
}

/***********************************/

.shake-effect img {
    -webkit-transition: -webkit-transform 0.2s;
    transition: transform 0.2s;
}

.shake-effect.active img.front,
.no-touch .shake-effect:hover img.front {
    -webkit-animation: shake 0.5s ease infinite;
    animation: shake 0.5s ease infinite;
}

@-webkit-keyframes shake {
    0% {
        -webkit-transform: translateX(0);
    }

    20% {
        -webkit-transform: translateX(-10px);
    }

    40% {
        -webkit-transform: translateX(10px);
    }

    60% {
        -webkit-transform: translateX(-10px);
    }

    80% {
        -webkit-transform: translateX(10px);
    }

    100% {
        -webkit-transform: translateX(0);
    }
}

@keyframes shake {
    0% {
        transform: translateX(0);
    }

    20% {
        transform: translateX(-10px);
    }

    40% {
        transform: translateX(10px);
    }

    60% {
        transform: translateX(-10px);
    }

    80% {
        transform: translateX(10px);
    }

    100% {
        transform: translateX(0);
    }
}

/***********************************/

.rotate-effect img {
    position: absolute;
}

.rotate-effect img.front {
    -webkit-animation: rotate 2s linear infinite;
    animation: rotate 2s linear infinite;
    -webkit-animation-play-state: paused;
    animation-play-state: paused;
}

.rotate-effect.active img.front,
.no-touch .rotate-effect:hover img.front {;
    -webkit-animation-play-state: running;
    animation-play-state: running;
}

@-webkit-keyframes rotate {
    from {
        -webkit-transform: rotate(0deg);
    }

    to {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/***********************************/

.translate-effect img {
    position: absolute;
}

.translate-effect img.back {
    -webkit-transition: -webkit-transform 0.2s ease-in;
    transition: transform 0.2s ease-in;
}

.translate-effect.active img.back,
.no-touch .translate-effect:hover img.back {
    -webkit-transition: -webkit-transform 1s ease-out;
    transition: transform 1s ease-out;
    -webkit-transform: translateY(-140px);
    transform: translateY(-140px);
}

/***********************************/

footer {
    font-family: Consolas, Verdana, Arial, sans-serif;
    font-size: 0.9em;
    text-align: center;
    padding: 30px 5px 30px 5px;
    margin-right: auto;
    margin-left: auto;
}

footer a {
    text-decoration: none;
    color: #808080;
}

footer a:hover {
    text-decoration: none;
    color: #000000;
}

/***********************************/

@media screen and (max-width: 767px) {
    .container {
        margin: 10px;
    }

    .card {
        width: 212px;
        height: 212px;
    }

    .solid-border {
        border: solid 10px white;
    }

    img.solid-border {
        top: -10px;
        left: -10px;
    }

    .section {
        padding: 30px 20px 30px 20px;
    }
}