* { box-sizing:border-box; }

body{ margin:0; background:#222; }

#piano {
	height:218px;
	width:350px;
	margin:20px auto 20px 0px;
	padding:0px;
	position:relative; 
	border: none;
	box-shadow:0 5px 15px rgba(0,0,0,0.5);
	border-radius:5px;
	display:inline-block;
}

#piano input[type=checkbox] {
	display:none;
}

div#piano label {
	margin:0px;
	padding:0px;
	position:relative;
	float:left;
	display:inline-block;
}

.white {
	height:220px  !important;
	width:50px  !important;
	z-index:1  !important;
	border-left:1px solid #bbb;
	border-bottom:1px solid #bbb;
	border-radius:0 0 5px 5px;
	box-shadow:-1px 0 0 rgba(255,255,255,0.8) inset, 0 0 5px #ccc inset, 0 0 3px rgba(0,0,0,0.2);
	background: linear-gradient(top, #eee 0%,#fff 100%);
	background: -webkit-linear-gradient(top, #eee 0%,#fff 100%);
	
	display:inline-block !important;
}

#piano input[type=checkbox]:checked + .white {
	border-top:1px solid #777;
	border-left:1px solid #999;
	border-bottom:1px solid #999;
	box-shadow:2px 0 3px rgba(0,0,0,0.1) inset, -5px 5px 20px rgba(0,0,0,0.2) inset,0 0 3px rgba(0,0,0,0.2);
	background: linear-gradient(top, #1bb1a4 0%,#abe0dc 100%);
	background: -webkit-linear-gradient(top, #1bb1a4 0%,#abe0dc 100%);
}

.black {
	height:128px !important;
	width:30px;
	margin:0 0 0 -15px !important;
	z-index:2;
	border:1px solid #000;
	border-radius:0 0 3px 3px;
	box-shadow:-1px -1px 2px rgba(255,255,255,0.2) inset, 0 -5px 2px 3px rgba(0,0,0,0.6) inset, 0 2px 4px rgba(0,0,0,0.5);
	background:linear-gradient(45deg, #222 0%,#555 100%);
	
	display:inline-block !important;
}

#piano input[type=checkbox]:checked + .black {
	box-shadow:-1px -1px 2px rgba(255,255,255,0.2) inset, 0 -2px 2px 3px rgba(0,0,0,0.6) inset, 0 1px 2px rgba(0,0,0,0.5);
	background:linear-gradient(left, #1bb1a4 0%,#abe0dc 100%);
		background:-webkit-linear-gradient(left, #1bb1a4 0%,#abe0dc 100%);

}

.d, .e, .g, .a, .b { margin:0 0 0 -15px  !important;  }

.c { border-radius:5px 0 5px 5px  !important; }
.b { border-radius:0 5px 5px 5px  !important; }