html,body {position: relative; height: 100%; margin: 0; padding: 0;}
/* Veil */

.veil {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: -10000px;
	z-index: 100;
	opacity: .96;
}

.veil__inner {
	position: absolute;
	background: #000;
}

.veil__top,
.veil__bottom {
	width: 100%;
}

.veil__top {
	top: 0;
}

.veil__bottom {
	bottom: 0;
}

.veil__left,
.veil__right {
	height: 100%;
}

.veil__left {
	left: 0;
}

.veil__right {
	right: 0;
}

.veil__center {
	width: 600px;
	height: 600px;
	background: transparent url('lantern.png') 0 0 no-repeat scroll;
}

.night .veil {
	display: block !important;
}

/* Layer panel */

.night .layer-panel-inner {
	z-index: -10 !important;
	-webkit-box-shadow: 2px 2px 25px #000;
	-moz-box-shadow: 2px 2px 25px #000;
	-ms-box-shadow: 2px 2px 25px #000;
	box-shadow: 2px 2px 25px #000;
}

.layer-panel__handle {
	position: absolute;
	height: 18px;
	width: 100%;
	top: 0;
	left: 0;
	z-index: 1003;
	cursor: move;
}

.layer-panel-inner {
	position: absolute;
	display: none;
	
	width: 212px;
	min-height: 275px;
	top: 130px;
	left: 50%;
	margin-left: 250px;
	
	border: 1px solid #000;
	padding: 18px 0 20px;
	
	background: #d6d6d6 url('bg-layers.png') 0 0 no-repeat scroll;
	
	z-index: 1000;
	
	-moz-user-select: none;
	-webkit-user-select: none;
}

.no-js .layer-panel-inner {
	position: absolute;
	display: block;
	width: 212px;
	min-height: 322px;
	top: 90px;
	right: 0px;
	margin-top: 0;
}

.layer-item {
	position: relative;
	border-bottom: 1px solid;
	border-color: #999;
	padding-left: 7px;
	
	font: 75% Tahoma, Arial, Helvetica, sans-serif;
	background: #dfdfdf;
	cursor: pointer;
}

.layer-item_top {
	display: block;
	border-top: 1px solid #999;
}

.layer-item_placeholder {
	position: relative;
	width: 100%;
	height: 1px;
	margin-top: -3px;
	border: 1px solid #000;
	border-left: 0 none;
	border-right: 0 none;
	background: #999;
}

.layer-item__vis {
	position: absolute;
	width: 22px;
	height: 100%;
	min-height: 30px;
	left: 0;
	z-index: 10;
}

.layer-item__title {
	position: relative;
	border-left: 1px solid #999;
	padding: 7px 5px 8px 45px;
	margin-left: 17px;
}

.layer-item_selected .layer-item__title {
	padding-left: 47px;
	background: #0a246a;
	color: #fff !important;
}

/* --- Controls --- */
.layer-controls {
	position: absolute;
	display: none;
	height: 16px;
	width: 100%;
	left: 0;
	bottom: 0;
	padding: 2px 0;
	border-top: 1px solid #999;
}

.layer-controls__button {
	position: relative;
	float: right;
	width: 25px;
	height: 16px;
	margin-right: 2px;
	cursor: pointer;
}


/* === Icons === */

.icon,
.button {
	position:absolute;
	overflow:hidden;
	width: 16px;
	height: 16px;
	top: 50%;
	margin-top: -8px;
	background-image: url("cake-sprite.png");
	background-repeat: no-repeat;
	z-index: 0;
}

.button {
	width: 12px;
	height: 12px;
	background: transparent;
}

.button .i {
	position: absolute;
	width: 25px;
	height: 12px;
	left: 0;
	top: 0;
	background: transparent url('cake-sprite.png') 0 0 no-repeat scroll;
	z-index: -1;
}

.layer-controls__button:hover,
.layer-controls__button:active,
.layer-controls__button_hover,
.layer-controls__button_active {
	margin: -1px 1px -1px -1px;
	border: 1px solid #999;
	border-top-color: #ebebeb;
	border-left-color: #ebebeb;
}

.layer-controls__button:active,
.layer-controls__button_active {
	border-style: inset;
	border-bottom-color: #fff;
	border-right-color: #fff;
	border-width: 1px;
	background: #ebebeb;
}

.layer-controls__button_active .button .i,
.layer-controls__button:hover .button .i,
.button:hover .i {
	left: -13px;
}

.remove-disabled_active,
.remove-disabled:hover,
.add-disabled:hover,
.add-disabled_active {
	cursor: not-allowed;
	background: transparent;
}

.remove-disabled:hover,
.remove-disabled_active,
.add-disabled:hover,
.add-disabled_active {
	border: 1px solid transparent;
}

.remove-disabled_active .button .i,
.remove-disabled:hover .button .i,
.add-disabled:hover .button .i,
.add-disabled_active .button .i {
	left: 0;
}

.layer-controls__button .button {
	top: 50%;
	left: 50%;
	margin: -6px 0 0 -6px;
}

.icon_vis {
	width: 15px;
	height: 14px;
	left: 3px;
	border: 1px solid;
	border-left-color: #999;
	border-top-color: #999;
	border-bottom-color: #ebebeb;
	border-right-color: #ebebeb;
	background-position: -31px -39px; 
}

.shut .icon_vis {
	background: none;
}

.icon_pre {
	width: 30px;
	height: 19px;
	left: 5px;
	margin-top: -11px;
	border: 1px solid #000;
}

.layer-item_selected .icon_pre {
	left: 7px;
}

.icon_lock {
	width: 11px;
	height: 13px;
	left: auto;
	right: 8px;
	margin-top: -5px;
	background-position: -32px -60px;
}

	/* -- Layer previews -- */
	
	.layer-item_strawberries .icon_pre {
		background-position: 0 -21px;
	}
	
	.layer-item_cthulhu .icon_pre {
		background-position: 0 -40px;
	}
	
	.layer-item_subway .icon_pre {
		background-position: 0 -60px;
	}
	
	.layer-item_shit .icon_pre {
		background-position: 0 -80px;
	}
	
	.layer-item_hooi .icon_pre {
		background-position: 0 -100px;
	}
	
	.layer-item_swine .icon_pre {
		background-position: 0 -120px;
	}
	
	.layer-item_umbrella .icon_pre {
		background-position: 0 -140px;
	}
	
	.layer-item_404 .icon_pre {
		background-position: 0 -160px;
	}
	
	.layer-item_fat .icon_pre {
		background-position: 0 -180px;
	}
	
	/* -- Layer control buttons -- */
	.button_remove .i {
		background-position: -31px 0;
	}
	.remove-disabled .button_remove .i {
		background-position: -57px 0;
	}
	
	.button_add .i{
		background-position: -32px -17px;
	}
	
	.add-disabled .button_add .i {
		background-position: -57px -17px;
	}
	
/* === Layers === */
.cake-outer {
	position: relative;
	overflow: hidden;
	display: none;
	width: 100%;
	min-height: 400px;
	padding: 80px 0;
	background: #fff;
	margin: -1.25em 0 -1.15em 0;
}
.cake_no-js {
	display: block;
}
.night .cake-outer {
	padding-bottom: 230px;
	background: #363333;
}
.night .cake-outer__floor {
	position: absolute;
	width: 100%;
	height: 230px;
	left: 0;
	bottom: 0;
	background: url('night-floor.png') 0 0 repeat-x scroll
}

.cake-wrapper {
	position: relative;
	width: 100%;
	margin: 0 auto;
}
.cake-layer {
	position: relative;
	left: -10000;
	text-align: center;
}

.cake_no-js .cake-layer {
	left: 0;
}

.cake-layer_top {
	left: 0;
}

.cake-layer__inner {
	position: relative;
	display: -moz-inline-box;
	display: inline-block;
	vertical-align: top;
	
	*display: inline;
	*width: 350px;
	zoom: 1;
}

.layer-image {
	position: relative;
	display: block;
	border: 0;
	margin: 0 auto;
	padding: 0;
}

.layer-shadow {
	position: absolute;
	display: none;
	visibility: hidden;
	z-index: 0;
}

.layer-shadow_top,
.layer-shadow_free {
	visibility: visible;
}

.shadow-image {
	position: relative;
	display: block;
}

.night .layer-shadow {
	display: block;
}

.night .layer-shadow_shut,
.night .layer-shafow_resize {
	display: none;
}

	/* === Positioning === */
	.cake-layer_01 {
		display: block;
		height: 134px;
		left: 0;
		z-index: 11;
	}
	.cake-layer_01 .layer-image {
		left: -1px;
	}
	.layer-shadow_01 {
		margin-left: -20px;
	}
	
	.cake-layer_02 {
		height: 110px;
		margin-top: -13px;
		overflow: hidden;
		z-index: 10; 
	}
	.cake-layer_02 .layer-image {
		left: -7px;
	}
	.layer-shadow_02 {
		margin-left: -90px;
	}
	
	.cake-layer_03 {
		height: 80px;
		z-index: 9;
		margin-top: -5px;
	}
	.cake-layer_03 .layer-image {
		position: relative;
		width: 306px;
		height: 80px;
		left: -2px;
		background: transparent url('layer_03.png') -19px 0 no-repeat scroll;
	}
	.subway__l,
	.subway__r {
		height: 80px;
		background: transparent url('layer_03.png') 0 0 no-repeat scroll;
	}
	.subway__l {
		width: 19px;
		left: -19px;
	}
	.subway__r {
		width: 20px;
		right: -20px;
		background-position: center right;
	}
	.layer-shadow_03 {
		margin-left: -45px;
	}
	
	.cake-layer_04 {
		height: 66px;
		margin-top: -5px;
		z-index: 8;
	}
	.cake-layer_04 .cake-layer__inner {
		text-align: left;
	}
	.cake-layer_04 .layer-image {
		left: -7px;
	}
	.layer-shadow_04 {
		margin-left: -32px;
	}
	
	.cake-layer_05 {
		overflow: hidden;
		height: 131px;
		margin-top: -15px;
		z-index: 7;
	}
	.cake-layer_05 .cake-layer__inner {
		width: 233px;
	}
	.cake-layer_05 .layer-image {
		left: -10px;
	}
	.layer-shadow_05 {
		margin-top: -5px;
		margin-left: -10px;
	}
	
	.cake-layer_06 {
		height: 84px;
		margin-top: -2px;
		z-index: 6;
	}
	.cake-layer_06 .layer-image {
		left: -29px;
	}
	.cake-layer_06 .cake-layer__inner {
		opacity: 0;
		width: 381px;
	}
	.cake_no-js .cake-layer_06 .cake-layer__inner {
		opacity: 1;
	}
	
	.layer-shadow_06 {
		margin-left: -42px;
	}
	
	.cake-layer_07 {
		height: 106px;
		margin-top: -1px;
		z-index: 5;
	}
	.cake-layer_07 .layer-image {
		left: -5px;
	}
	.layer-shadow_07 {
		margin-left: -30px;
	}
	
	.cake-layer_08 {
		height: 91px;
		margin-top: -4px;
		z-index: 4;
	}
	.cake-layer_08 .cake-layer__inner {
		width: 314px;
		left: 24px;
		*text-align: left;
	}
	.layer-shadow_08 {
		margin-left: -30px;
	}

.cake-layer_09 {
		height: 42px;
		margin-top: -1px;
		z-index: 3;
	}
	.cake-layer_09 .layer-image {
		left: -10px;
	}
	.layer-shadow_09 {
		margin-left: -40px;
	}
	

	/* === Kerning pairs -- skipping default position === */
		/* Cthulhu */
			.kern_02_03 {
				margin-top: -12px;
			}
			
			.kern_02_04 {
				margin-top: -25px;
			}
			
			.kern_02_05 {
				margin-top: -2px;
			}
			
			.kern_02_06 {
				margin-top: -11px;
			}
			
			.kern_02_07 {
				margin-top: -11px;
			}
			
			.kern_02_08 {
				margin-top: 0px;
			}
			
			.kern_02_09 {
				margin-top: -11px;
			}
		/* Subway */
			.kern_03_01 {
				margin-top: -10px;
			}
			
			.kern_03_04 {
				margin-top: -20px;
			}
			
			.kern_03_05 {
				margin-top: -4px;
			}
			
			.kern_03_06 {
				margin-top: -7px;
			}
			
			.kern_03_07 {
				margin-top: -7px;
			}
			
			.kern_03_08 {
				margin-top: -3px;
			}
			
			.kern_03_09 {
				margin-top: -7px;
			}
		/* Shit */
			.kern_04_01 {
				margin-top: -7px;
			}
			
			.kern_04_02 {
				margin-top: -6px;
			}
			
			.kern_04_05 {
				margin-top: 0;
			}
			
			.kern_04_06 {
				margin-top: -3px;
			}
			
			.kern_04_07 {
				margin-top: -3px;
			}
			
			.kern_04_08 {
				margin-top: 1px;
			}
			
			.kern_04_09 {
				margin-top: -2px;
			}
		/* Hooi */
			.kern_05_01 {
				margin-top: -3px;
			}
			
			.kern_05_02 {
				margin-top: -1px;
			}
			
			.kern_05_03 {
				margin-top: -1px;
			}
			
			.kern_05_06 {
				margin-top: 0;
			}
			
			.kern_05_07 {
				margin-top: -1px;
			}
			
			.kern_05_08 {
				margin-top: 2px;
			}
			
			.kern_05_09 {
				margin-top: -2px;
			}
		/* Swine */
			.kern_06_01 {
				margin-top: -7px;
			}
			
			.kern_06_02 {
				margin-top: -6px;
			}
			
			.kern_06_03 {
				margin-top: -4px;
			}
			
			.kern_06_04 {
				margin-top: -17px;
			}
			
			.kern_06_07 {
				margin-top: -4px;
			}
			
			.kern_06_08 {
				margin-top: -2px;
			}
			
			.kern_06_09 {
				margin-top: -4px;
			}
		/* Umbrellas */
			.kern_07_01 {
				margin-top: -4px;
			}
			
			.kern_07_02 {
				margin-top: -4px;
			}
			
			.kern_07_03 {
				margin-top: -3px;
			}
			
			.kern_07_04 {
				margin-top: -15px;
			}
			
			.kern_07_05,
			.kern_07_06 {
				margin-top: -1px;
			}
			
			.kern_07_08 {
				margin-top: 1px;
			}
			
			.kern_07_09 {
				margin-top: -3px;
			}
		/* 404 */
			.kern_08_01 {
				margin-top: -6px;
			}
			
			.kern_08_02 {
				margin-top: -4px;
			}
			
			.kern_08_03 {
				margin-top: -5px;
			}
			
			.kern_08_04 {
				margin-top: -18px;
			}
			
			.kern_08_05 {
				margin-top: -3px;
			}
			
			.kern_08_06 {
				margin-top: -4px;
			}
			
			.kern_08_09 {
				margin-top: -5px;
			}
		/* Fat */
			.kern_09_01 {
				margin-top: -5px;
			}
			
			.kern_09_02 {
				margin-top: -4px;
			}
			
			.kern_09_03 {
				margin-top: -3px;
			}
			
			.kern_09_04 {
				margin-top: -15px;
			}
			
			.kern_09_05 {
				margin-top: -3px;
			}
			
			.kern_09_06 {
				margin-top: -1px;
			}
			
			.kern_09_07 {
				margin-top: -1px;
			}
			
/* Disclaimer */
.cake-disclaimer {
	display: none;
	font-size: 295%;
	margin-top: 1.25em;
	text-align: center;
	white-space: nowrap;
}

.night .cake-disclaimer {
	display: none !important;
}

.cake_no-js .cake-disclaimer {
	display: block;
}

.cake-disclaimer p {
	margin: .25em;
}

.disclaimer__ten-years {
	color: red;
}

/* Free shadows */
.layer-shadow_hand {
	width: 301px;
	height: 288px;
	right: 0;
	top: 200px;
	left: auto;
}

.layer-shadow_knife {
	width: 333px;
	height: 322px;
	top: 50px;
	left: 0;
}

.layer-shadow_confetti {
	width: 1084px;
	height: 299px;
	left: 500px;
	top: 500px;
	margin-left: -592px;
}

/* Confetti */
.cake-confetti {
	position: absolute;
	width: 100%;
	height: 299px;
	left: -35px;
	bottom: 50px;
	z-index: 0;
}

.confetti__layer {
	position: absolute;
	display: none;
	width: 100%;
	height: 100%;
	background: transparent url('confetti-layers.png') center 0 repeat-y scroll;
}

.night .confetti__layer {
	display: none !important;
}

.confetti__layer_front {
	height: 220px;
}

.confetti__layer_back {
	height: 245px;
	top: -30px;
	background-position: center -220px;
}

.confetti__layer_blurred {
	top: -60px;
	background-position: center -465px;
}