3D CSS coin flip

Let's see a very very basic integration of the awesome "card flip" effect with simple CSS3 properties. Feel free to use/share/contribute.

HTML

<button id="toggle">toggle</button>
<button id="lower">lower</button>
<button id="flip">flip</button>
<button id="dim">dim</button>
<div class="flip">
    <div class="card">
        <div class="face front">Heads</div>
        <div class="face back">Tails</div>
    </div>
</div>

CSS

body {
    background: #ccc;
}
.flip {
    -webkit-perspective: 800;
    width: 200px;
    height: 200px;
    position: relative;
    margin: 50px auto;
}
/*this specifies the transition effects*/
 .flip .card.flipped {
    -webkit-transform-origin: 50% 50%;
    -webkit-transform: rotateY(-1980deg);
    transition: all 1s ease 0s;
}
.flip .card.lowered {
    /*-webkit-transform-origin: 0% 0%;*/
    -webkit-transform: translate(0px, 200px);
    transition: all 2s ease 0s;
}
/*flipped and lowered*/
 .flip .card.flipped.lowered {
    transition: all 1s ease 0s;
    -webkit-transform: translate(0px, 200px) rotatex(-1980deg);
}
.flip .card.dim {
    opacity: .25;
    transition: all .25s ease 0s;
}
.flip .card {
    width: 100%;
    height: 100%;
    -webkit-transform-style: preserve-3d;
    -webkit-transition: 1s;
}
.flip .card .face {
    width: 100%;
    height: 100%;
    position: absolute;
    -webkit-backface-visibility: hidden;
    z-index: 2;
    font-family: Georgia;
    font-size: 3em;
    text-align: center;
    line-height: 200px;
    -webkit-border-radius: 100px;
    -moz-border-radius: 100px;
    border-radius: 100px;
}
.flip .card .front {
    position: absolute;
    z-index: 1;l
    background: black;
    color: red;
    cursor: pointer;
}
.flip .card .back {
    -webkit-transform: rotatex(180deg);
    background: blue;
    background: white;
    color: black;
    cursor: pointer;
}
button {
    font-size: 48px;
}
}

JavaScript

$('.card').click(function () {
    $(this).toggleClass('flipped lowered dim');
});

$('#toggle').click(function () {
    $('.card').toggleClass('flipped lowered dim');
});

$('#lower').click(function () {
    $('.card').toggleClass('lowered');
});

$('#flip').click(function () {
    $('.card').toggleClass('flipped');
});

$('#dim').click(function () {
    $('.card').toggleClass('dim');
});

$('.card').on('animationEnd',function(){
    alert('animation end');
});