CSS3 Curved Ribbon

http://forrst.com/posts/CSS3_Curved_Ribbon-IyB

by Umar

HTML

<link href='http://fonts.googleapis.com/css?family=Pacifico&v2' rel='stylesheet' type='text/css'>

<div id="main">
    <h2 class="ribbon">
        <span>So I heard you liek ribbon...</span>
        <b></b>
    </h2>
</div>

CSS

#main {
    position: relative;
    width: 960px;
    height: 200px;
    margin: 0 auto;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .3);
    background-color: #eaeaea;
    border-radius: 20px;
}

.ribbon {
    position: relative;
    width: 100%;
    left: -16px;
    padding: 0 16px;
    margin: 0 0 32px;
}

.ribbon:before, .ribbon:after {
    content: "";
    display: block;
    position: absolute;
    bottom: -24px;
    border: 24px solid #4B8FC3;
    z-index: -1;
}

.ribbon:before {
    left: -38px;
    border-right-width: 24px;
    border-left-color: transparent;
    -webkit-transform: rotate(-16deg);
}

.ribbon:after {
    right: -38px;
    border-left-width: 24px;
    border-right-color: transparent;
    -webkit-transform: rotate(16deg);
}

.ribbon span {
    display: block;
    position: relative;
    width: 100%;
    left: -16px;
    padding: 0 16px 16px;
    background: #96BEDC;
    border-top-left-radius: 496px 16px;
    border-top-right-radius: 496px 16px;
    text-align: center;
    font: 18px/42px Pacifico, sans-serif;
    color: #fff;
    text-shadow: 0 1px 1px rgba(0, 0, 0, .4);
    z-index: 1;
}

.ribbon span:before, .ribbon span:after {
    content: "";
    display: block;
    position: absolute;
    height: 16px;
    left: 0;
    bottom: 0;
    box-shadow: inset 0 2px 3px rgba(0, 0, 0, .3);
}

.ribbon span:before {
    width: 100%;
    background: #71A7D0;
    border-top-left-radius: 496px 16px;
    border-top-right-radius: 496px 16px;
    z-index: 1;
}

.ribbon span:after {
    width: 960px;
    left: 16px;
    background: #eaeaea;
    border-top-left-radius: 480px 16px;
    border-top-right-radius: 480px 16px;
    z-index: 2;
}

.ribbon b:before, .ribbon b:after {
    content: "";
    display: block;
    position: absolute;
    border-style: solid;
    bottom: -16px;
    z-index: 0;
}
.ribbon b:before {
    left: 0;
    border-color: transparent #71A7D0 transparent transparent;
    border-width: 16px 16px 16px 0;
}
.ribbon b:after {
    right:...