.ip-header {
	background-color: rgb(33,32,31);
	min-height: 100%;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 300;
}

.ip-logo,
.ip-loader {
	cursor: default;
	left: 0;
	margin: 0 auto;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	text-align: center;
	width: 100%;
}

.ip-logo {
	-webkit-transform: translate3d(0,25%,0);
	height: 55%;
	top: 0;
	transform: translate3d(0,25%,0);
}

.ip-loader {
	bottom: 20%;
}

.ip-header .ip-logo img{
	width: 40%;
}

.ip-header .ip-loader svg path {
	fill: transparent;
	stroke-width: 6;
}

.ip-header .ip-loader svg path.ip-loader-circlebg {
	stroke: transparent;
}

.ip-header .ip-loader svg path.ip-loader-circle {
	-webkit-transition: stroke-dashoffset 0.2s;
	transition: stroke-dashoffset 0.2s;
	stroke: white;
}


/* Animations */

/* Initial animation of header elements */
.loading .ip-logo,
.loading .ip-loader {
	opacity: 1;
}

.loading .ip-logo {
	-webkit-animation: animInitialLogo 1s cubic-bezier(0.7,0,0.2,1) both;
	animation: animInitialLogo 1s cubic-bezier(0.7,0,0.2,1) both;
}

@-webkit-keyframes animInitialLogo {
	from { opacity: 0; }
}

@keyframes animInitialLogo {
	from { opacity: 0; }
}

.loading .ip-loader {
	-webkit-animation: animInitialLoader 1s cubic-bezier(0.7,0,0.3,1) both;
	animation: animInitialLoader 1s cubic-bezier(0.7,0,0.3,1) both;
}

@-webkit-keyframes animInitialLoader {
	from { display: none; opacity: 0; -webkit-transform: scale3d(0.2,0.2,1); }
}

@keyframes animInitialLoader {
	from { display: none; opacity: 0; -webkit-transform: scale3d(0.2,0.2,1); transform: scale3d(0.2,0.2,1); }
}

/* Header elements when loading finishes */
.loaded .ip-logo,
.loaded .ip-loader {
	opacity: 1;
}

.loaded .ip-logo {
	-webkit-transform-origin: 0% 0%;
	transform-origin: 0% 0%;
	-webkit-animation: animLoadedLogo 1s cubic-bezier(0.7,0,0.3,1) forwards;
	animation: animLoadedLogo 1s cubic-bezier(0.7,0,0.3,1) forwards;
}

@-webkit-keyframes animLoadedLogo {
	to { opacity: 0; -webkit-transform: translate3d(0,100%,0) translate3d(0,4rem,0) scale3d(1,1,1); }
}

@keyframes animLoadedLogo {
	to { opacity: 0; -webkit-transform: translate3d(0,100%,0) translate3d(0,4rem,0) scale3d(1,1,1); transform: translate3d(0,100%,0) translate3d(0,4rem,0) scale3d(1,1,1); }
}

.loaded .ip-loader {
	-webkit-animation: animLoadedLoader 0.5s cubic-bezier(0.7,0,0.3,1) forwards;
	animation: animLoadedLoader 0.5s cubic-bezier(0.7,0,0.3,1) forwards;
}

@-webkit-keyframes animLoadedLoader {
	to { opacity: 0; -webkit-transform: translate3d(0,-100%,0) scale3d(0.3,0.3,1); }
}

@keyframes animLoadedLoader {
	to { opacity: 0; -webkit-transform: translate3d(0,-100%,0) scale3d(0.3,0.3,1); transform: translate3d(0,-100%,0) scale3d(0.3,0.3,1); }
}

/* Header animation when loading finishes */
.loaded .ip-header {
	-webkit-animation: animLoadedHeader 1s cubic-bezier(0.7,0,0.3,1) forwards;
	animation: animLoadedHeader 1s cubic-bezier(0.7,0,0.3,1) forwards;
}

@-webkit-keyframes animLoadedHeader {
	to {opacity: 0; -webkit-transform: translate3d(0,-100%,0); }
}

@keyframes animLoadedHeader {
	to {opacity: 0; -webkit-transform: translate3d(0,-100%,0); transform: translate3d(0,-100%,0); }
}

/* Change layout class for header */
.layout-switch .ip-header {
	position: relative;
}

/* No JS */
.no-js .ip-header {
	position: relative;
	min-height: 0px;
}

.no-js .ip-header .ip-logo {
	margin-top: 6rem;
	height: 180px;
	opacity: 1;
	-webkit-transform: none;
	transform: none;
}

.no-js .ip-header .ip-logo svg path {
	fill: white;
}

/* Media queries */

@media screen and (max-width: 45em) {

	.ip-main h2 {
		font-size: 2.25em;
		font-size: 10vw;
	}

	.box {
		width: 100%;
	}

}