<div id="container">
			<div id="black_bar" class="hidden">
				<div class="black_bar hidden">• SERIOUSLY •</div>
			</div>

			<div id="ribbon" class="hidden">
				<div class="ribbon">
					<strong class="ribbon-content">
						<h1>
							<span class="spacer">&nbsp;</span>
							<span class="hidden">B</span>
							<span class="hidden">O</span>
							<span class="hidden">R</span>
							<span class="hidden">E</span>
							<span class="hidden">D</span>
						</h1>
					</strong>
				</div>	
			</div>	

			<div id="star" class="hidden">
				<div class="layer"><div class="star_text">I AM SO</div></div>
				<div class="layer"><div class="star outer rotate"></div></div>
				<div class="layer"><div class="star inner rotate"></div></div>
			</div>	
			
			<div id="flag" class="hidden">
				<div class="layer"><div id="flag_end"></div></div>
				<div class="layer"><div class="flag under"></div></div>
				<div class="layer"><div class="flag_over"></div></div>
				<div class="layer"><div class="flag_text_top">LIKE,</div></div>
				<div class="layer"><div class="flag_text_bottom">KILL ME</div></div>
			</div>

		</div>
.rotate {
	-webkit-animation-name: rotate; 
    -webkit-animation-duration: 10s; 
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
}

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

.slideExpandUp{
	animation-name: slideExpandUp;
	-webkit-animation-name: slideExpandUp;	

	animation-duration: 1s;	
	-webkit-animation-duration: 1s;

	animation-timing-function: ease-out;	
	-webkit-animation-timing-function: ease -out;

	visibility: visible !important;	
}

@keyframes slideExpandUp {
	0% {
		transform: translateY(100%) scaleX(0);
	}
	50%{
		transform: translateY(0%) scaleX(1.1);
	}
	60%{
		transform: translateY(0%) scaleX(0.9);		
	}
	70% {
		transform: translateY(0%) scaleX(1.05);
	}			
	80%{
		transform: translateY(0%) scaleX(0.95);		
	}
	90% {
		transform: translateY(0%) scaleX(1.02);
	}	
	100%{
		transform: translateY(0%) scaleX(1);		
	}
}

@-webkit-keyframes slideExpandUp {
	0% {
		-webkit-transform: translateY(100%) scaleX(0);
	}
	50%{
		-webkit-transform: translateY(0%) scaleX(1.1);
	}
	60%{
		-webkit-transform: translateY(0%) scaleX(0.9);		
	}
	70% {
		-webkit-transform: translateY(0%) scaleX(1.05);
	}			
	80%{
		-webkit-transform: translateY(0%) scaleX(0.95);		
	}
	90% {
		-webkit-transform: translateY(0%) scaleX(1.02);
	}	
	100%{
		-webkit-transform: translateY(0%) scaleX(1);		
	}
}

.fadeIn{
	animation-name: fadeIn;
	-webkit-animation-name: fadeIn;	

	animation-duration: 1.5s;	
	-webkit-animation-duration: 1.5s;

	animation-timing-function: ease-in-out;	
	-webkit-animation-timing-function: ease-in-out;		

	visibility: visible !important;	
}

@keyframes fadeIn {
	0% {
		transform: scale(0);
		opacity: 0.0;		
	}
	60% {
		transform: scale(1.1);	
	}
	80% {
		transform: scale(0.9);
		opacity: 1;	
	}	
	100% {
		transform: scale(1);
		opacity: 1;	
	}		
}

@-webkit-keyframes fadeIn {
	0% {
		-webkit-transform: scale(0);
		opacity: 0.0;		
	}
	60% {
		-webkit-transform: scale(1.1);
	}
	80% {
		-webkit-transform: scale(0.9);
		opacity: 1;	
	}	
	100% {
		-webkit-transform: scale(1);
		opacity: 1;	
	}		
}

.textShadow {
	animation-name: textShadow;
	-webkit-animation-name: textShadow;	

	animation-duration: 0.8s;	
	-webkit-animation-duration: 0.8s;

	text-shadow: 4px 4px 0px rgba(150, 150, 150, 0.58);
}

@keyframes textShadow {
	0% {
			text-shadow: 0px 0px 0px rgba(150, 150, 150, 0.0);
	   }
	50% {
		text-shadow: 2px 2px 0px rgba(150, 150, 150, 0.25);
	}
	100% {
		text-shadow: 4px 4px 0px rgba(150, 150, 150, 0.58);
	}							
}

@-webkit-keyframes textShadow {
	0% {
			text-shadow: 0px 0px 0px rgba(150, 150, 150, 0.0);
	   }
	50% {
		text-shadow: 2px 2px 0px rgba(150, 150, 150, 0.25);
	}
	100% {
		text-shadow: 4px 4px 0px rgba(150, 150, 150, 0.58);
	}				
}

.moveOut {
	animation-name: moveOut;
	-webkit-animation-name: moveOut;	

	animation-duration: 0.8s;	
	-webkit-animation-duration: 0.8s;

	animation-timing-function: ease-out;	
	-webkit-animation-timing-function: ease-out;	
}

@keyframes moveOut {
	0% {
		top: 0;
	}
	99% {
		top: 400px;
	}
	100% {
		visibility: hidden;
	}							
}

@-webkit-keyframes moveOut {
	0% {
		top: 0;
	}
	99% {
		top: 400px;
	}
	100% {
		visibility: hidden;
	}			
}

.pullDown{
	animation-name: pullDown;
	-webkit-animation-name: pullDown;	

	animation-duration: 1.1s;	
	-webkit-animation-duration: 1.1s;

	animation-timing-function: ease-out;	
	-webkit-animation-timing-function: ease-out;	

	transform-origin: 50% 0%;
	-ms-transform-origin: 50% 0%;
	-webkit-transform-origin: 50% 0%; 		
}

@keyframes pullDown {
	0% {
		transform: scaleY(0.1);
	}
	40% {
		transform: scaleY(1.02);
	}
	60% {
		transform: scaleY(0.98);
	}
	80% {
		transform: scaleY(1.01);
	}
	100% {
		transform: scaleY(0.98);
	}				
	80% {
		transform: scaleY(1.01);
	}
	100% {
		transform: scaleY(1);
	}							
}

@-webkit-keyframes pullDown {
	0% {
		-webkit-transform: scaleY(0.1);
	}
	40% {
		-webkit-transform: scaleY(1.02);
	}
	60% {
		-webkit-transform: scaleY(0.98);
	}
	80% {
		-webkit-transform: scaleY(1.01);
	}
	100% {
		-webkit-transform: scaleY(0.98);
	}				
	80% {
		-webkit-transform: scaleY(1.01);
	}
	100% {
		-webkit-transform: scaleY(1);
	}		
}

.stretchRight{
	animation-name: stretchRight;
	-webkit-animation-name: stretchRight;	

	animation-duration: 0.2s;	
	-webkit-animation-duration: 0.2s;

	animation-timing-function: ease-out;	
	-webkit-animation-timing-function: ease-out;	

	transform-origin: 0% 0%;
	-ms-transform-origin: 0% 0%;
	-webkit-transform-origin: 0% 0%; 		
}

@keyframes stretchRight {
	0% {
		transform: scaleX(0);
	}
	100% {
		transform: scaleX(1);
	}							
}

@-webkit-keyframes stretchRight {
	0% {
		-webkit-transform: scaleX(0);
	}
	100% {
		-webkit-transform: scaleX(1);
	}		
}

.hidden {
	display: none;
}


/* ------------------------------------------------------------  */

$bar-bg: #000;
$bar-text: #FFF;

$star-size: 200px;
$star-border: 10px;
$star-text: #ffff99;
$star-bg: #3985a9;
$star-border-bg: #80cfe3;

$ribbon-width: 350px;

$flag-height: 450px;
$flag-width: 110px;


body {
	margin: 0;
	padding: 0;
}

#container {
	position: relative;
	width: 100%;
	padding-top: 50px;
	font-family: 'Helvetica Neue',Helvetica, sans-serif;
}

.layer {
	position: absolute;
}

/* -------------------------------------   BLACK BAR */
#black_bar {
	position: absolute;
	z-index: 200;
	width: 100%;
	margin-top: 310px;
	height: 50px;
	background: $bar-bg;
}

.black_bar {
	position: relative;
	width: 100%;	
	text-align: center;
	color: $bar-text;
	font-weight: bold;
	font-size: 40px;
}

/* -------------------------------------   STAR */


#star {
	position: absolute;
	z-index: 5;
	left: 50%;
	margin-left: -($star-size+($star-border*2))/2;
	// transform: translate(-50%, -50%);
	width: $star-size+($star-border*2);
	color: $star-text;
}

.star {   
	width: $star-size;
    height: $star-size; 
    border-radius: 20px;

    position: relative;
    text-align: center;

    &:before,
    &:after {
    	@extend .star;
    	content: "";
	    position: absolute;
	    top: 0;
	    left: 0;
    }

    &:before {
    	-webkit-transform: rotate(30deg);
       	-moz-transform: rotate(30deg);
        -ms-transform: rotate(30deg);
         -o-transform: rotate(30deg);
    }

    &:after {
    	-webkit-transform: rotate(60deg);
       	-moz-transform: rotate(60deg);
        -ms-transform: rotate(60deg);
         -o-transform: rotate(60deg);
    }
}

.star.outer {
	background: $star-border-bg;
	padding: $star-border;
}

.star.inner {
	background: $star-bg;
	margin-top: $star-border;
	margin-left: $star-border;

	&:before,
	&:after {
		top: -$star-border;
		left: -$star-border;
	}
}

.star_text {
	position: absolute;
	width: $star-size;
	margin-left: $star-border;
	z-index: 10;
	text-align: center;
	margin-top: 50px;
	font-size: 40px;
}

/* -------------------------------------   RIBBON */

#ribbon {
	position: absolute;
	width: $ribbon-width;
	z-index: 100;
	margin-top: 100px;
	left: 50%;
	margin-left: -$ribbon-width/2;
  color: $star-text;
}

.ribbon {
   width: $ribbon-width;
   position: absolute;
   text-align: center;
   font-size: 20px!important;
   background: $star-border-bg;

   h1 {
	   font-size: 50px!important;
	   margin:0px;
	   padding: 6px 10px;
   }

   &:before,
   &:after {
		content: '';
		position: absolute;
		display: block;
		bottom: -1em;
		border: 1.5em solid $star-border-bg;
		z-index: -1;
   	}

	&:before {
	   left: -2em;
	   border-right-width: 1.5em;
	   border-left-color: transparent;
   	}

   	&:after {
	   right: -2em;
	   border-left-width: 1.5em;
	   border-right-color: transparent;
	}

	.ribbon-content {
		&:before,
		&:after {
		   border-color: darken($star-border-bg, 30%) transparent transparent transparent;
		   position: absolute;
		   display: block;
		   border-style: solid;
		   bottom: -1em;
		   content: '';
	   }

	   &:before {
		   left: 0;
		   border-width: 1em 0 0 1em;
	   }

	   &:after {
		   right: 0;
		   border-width: 1em 1em 0 0;
	   }
	}
}

/* -------------------------------------   FLAG */

$flag-bg: #fd8a4b;
$flag-bg-light: #febf3d;

#flag {
	position: absolute;
	margin-top: 10px;
	width: $flag-width;
	left: 50%;
	margin-left: -$flag-width/2;
}

.flag {
	background: $flag-bg;
	width: $flag-width;
	height: $flag-height;
	padding-top: 15px;
	position: relative;   
	color: white;
	font-size: 11px;
	letter-spacing: 0.2em;
	text-align: center;
	text-transform: uppercase;
	border-bottom: 25px solid #ffff99;

	&:after {
		content: "";
		position: absolute;
		z-index: 1;
		left: 0;
		bottom: 0;
		width: 0;
		height: 0;
		border-bottom: 40px solid #ffff99;
		border-left: 55px solid transparent;
		border-right: 55px solid transparent;
	}
	
	&.under {
		background: $flag-bg-light;

		&:before {
			content: "";
			position: absolute;
			z-index: 10;
			top: $flag-height;
			left: 0;
			bottom: 0;
			width: 0;
			height: 0;
			border-bottom: 40px solid #FFF;
			border-left: 55px solid transparent;
			border-right: 55px solid transparent;
		}
	}
}

#flag_end {
	position: absolute;
	z-index: 150;
	background: $flag-bg;
	width: $flag-width;
	height: 95px;
	margin-top: ($flag-height)-52;
	
	&:before {
			content: "";
			position: absolute;
			background: $flag-bg;
			margin-top: -20px;
			height: 40px;
			width: $flag-width;
			-moz-transform:skewY(-10deg);
			-webkit-transform:skewY(-10deg);
			-o-transform:skewY(-10deg);
			-ms-transform:skewY(-10deg);
			transform:skewY(-10deg);
		}

	&:after {
		content: "";
		position: absolute;
		z-index: 1;
		left: 0;
		bottom: 0;
		width: 0;
		height: 0;
		border-bottom: 40px solid #fff;
		border-left: 55px solid transparent;
		border-right: 55px solid transparent;
	}

	&.border-top {
		&:before {
			border-top: 1px solid #000;
		}
	}
}

.flag_over {
	background: $flag-bg;
	width: $flag-width;
	height: ($flag-height)-70;
	-moz-transform:skewY(-10deg);
	-webkit-transform:skewY(-10deg);
	-o-transform:skewY(-10deg);
	-ms-transform:skewY(-10deg);
	transform:skewY(-10deg);
}

.flag_text_top {
	text-align: center;
	width: $flag-width;
	margin-top: 250px;
	color: #FFF;
	font-size: 30px;
	font-weight: bold;
}

.flag_text_bottom {
	text-align: center;
	width: $flag-width;
	margin-top: 390px;
	font-size: 22px;
	color: #000;
}
View Compiled
setTimeout("$('#star').removeClass('hidden').addClass('fadeIn');",  100);
setTimeout("$('#ribbon').removeClass('hidden').addClass('slideExpandUp');",  700);
setTimeout("$('.ribbon-content .spacer').addClass('hidden');",  1500);
setTimeout("$('.ribbon-content span').slice(1, 2).removeClass('hidden').addClass('fadeIn');",  1500);
setTimeout("$('.ribbon-content span').slice(2, 3).removeClass('hidden').addClass('fadeIn');",  1600);
setTimeout("$('.ribbon-content span').slice(3, 4).removeClass('hidden').addClass('fadeIn');",  1700);
setTimeout("$('.ribbon-content span').slice(4, 5).removeClass('hidden').addClass('fadeIn');",  1800);
setTimeout("$('.ribbon-content span').slice(5, 6).removeClass('hidden').addClass('fadeIn');",  1900);

setTimeout("$('.ribbon-content').addClass('textShadow');",  3000);

setTimeout("$('#flag').removeClass('hidden').addClass('pullDown');",  3600);
setTimeout("$('#black_bar').removeClass('hidden').addClass('stretchRight');",  4700);
setTimeout("$('.black_bar').removeClass('hidden').addClass('fadeIn');",  4900);
setTimeout("$('#flag_end').addClass('border-top');",  6900);		setTimeout("$('#flag_end').removeClass('border-top').addClass('moveOut').delay(300).fadeOut(300);",  7100);

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js