@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700;900&family=Nunito:wght@200;300;400;600;700;900&family=Mirza:wght@700');

/* -------------- BASIC PAGE SETUP */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;	
}

html, body {
	height: 100%;
}

body {
	background: #0D4102;
	color: #FFD221;
	text-shadow: 0 0 0.1rem black,
				 0 0 0.1rem black,
				 0 0 0.1rem black,
				 0 0 0.1rem black,
				 0 0 0.2rem black;		
}

body > footer {
  position: sticky;
  top: 100vh;
}

/* -------------- Utility Classes */

.mt-2 {
	margin-top: 2rem;
}

/*
	Code source:
	Responsive Navbar Using CSS Grid/Flexbox
	Reggie Bowers
	https://codepen.io/bowersrd/pen/dwXLba
*/

/* -------------- NAVIGATION */
/* Basic Setup */
.page-wrapper {
	width: 100%;
	height: auto;
}

.nav-wrapper {
	width: 100%;
    z-index: 1;
	animation: fadein 20s;	
}

@keyframes fadein {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.navbar {
	display: grid;
	grid-template-columns: 1fr 3fr;
	align-items: center;
	height: 100px;
	overflow: hidden;
}

.navbar .logo {
	justify-self: start;
	height: 60px;
	width: auto;
	margin-left: 20px;
	-webkit-filter: drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black);
			filter: drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black);
}

.navbar ul {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	justify-self: end;
	list-style: none;
}

.nav-item a {
	color: #FFD221;    
	font-family: 'Nunito', sans-serif;
	font-size: 1.6rem;
	letter-spacing: -0.1rem;
	text-decoration: none;
	text-shadow: 0 0 0.1rem black,
		0 0 0.1rem black,
		0 0 0.1rem black,
		0 0 0.1rem black,
		0 0 0.2rem black;
	transition: color 0.3s ease-out;
}

.nav-item a:hover {
	color: hsl(108, 86%, 40%);
}

/* Search Function */  
#search-icon {
	margin-top: 3px;
	margin-left: 15px;
	color: #FFD221; 
	font-size: 0.9rem;	
	text-shadow: 0 0 0.1rem black,
		0 0 0.1rem black,
		0 0 0.1rem black,
		0 0 0.1rem black,
		0 0 0.2rem black;
	transition: color 0.3s ease-out;
}
  
#search-icon:hover {
	color: hsl(108, 86%, 40%);
	cursor: pointer;
}
  
.search {
	transform: translate(-35%);
	-webkit-transform: translate(-35%);
	transition: transform 0.7s ease-in-out;
	color: #FFD221;
}
  
.no-search {
	transform: translate(0);
	transition: transform 0.7s ease-in-out;
}
  
.search-input {
	position: absolute;	
	right: -100px;
	opacity: 0;
	z-index: -1;
	transition: opacity 0.6s ease;
}
  
.search-active {
	opacity: 1;
	z-index: 0;
}
  
input {
	border: 0;
	border-left: 1px solid #ccc;
	border-radius: 1rem;
	outline: 0;
	padding: 5px;
}

/* Mobile Menu */
.menu-toggle .helmet{
	height: 60px;	
	margin: 5px auto;
	-webkit-filter: drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black);
			filter: drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black)
					drop-shadow(0 0 0.1rem black);	
}

.menu-toggle {
	display: none;
	justify-self: end;
	margin-right: 25px;
}

.menu-toggle:hover{
	cursor: pointer;
}

/* -------------- BUFFER SECTION */
.buffer {
	height: 82vh;
}

/*
	Code source:
	Marvel Logo animation | pure CSS
	jessica duarte
	https://codepen.io/jessynd/pen/aObLYJ
*/

/* -------------- INTRO */
.bg {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: url('../images/intro/lokis.jpg');
	z-index: -1;
	animation: fade 6s steps(30) forwards;
}

#retrigger--1:checked~.bg {
	animation-name: fade--1;
}

#retrigger--2:checked~.bg {
	animation-name: fade--2;
}

@keyframes fade--1 {
	0% {
		background-position: 0 0;
		opacity: 1;
	}

	50% {
		background-position: 2000% 2000%;
		opacity: 0.6;
	}

	100% {
		background-position: -2000% -2000%;
		opacity: 0;
	}
}

@keyframes fade--2 {
	0% {
		background-position: 0 0;
		opacity: 1;
	}

	50% {
		background-position: 2000% 2000%;
		opacity: 0.6;
	}

	100% {
		background-position: -2000% -2000%;
		opacity: 0;
	}
}

.pane {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scaleY(1.3);
	perspective: 700px;
}

.rotate {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate3d(1, -1, 0, 40deg) scale(2);
	transform-style: preserve-3d;
	animation: rotate 6s 2s forwards;
}

#retrigger--1:checked~.pane .rotate {
	animation-name: rotate--1;
}

#retrigger--2:checked~.pane .rotate {
	animation-name: rotate--2;
}

@keyframes rotate--1 {
	0% {
		transform: translate(-50%, -50%) rotate3d(1, -1, 0, 40deg) scale(2);
	}

	50% {
		transform: translate(-50%, -50%) rotate3d(0, 0, 0, 0deg) scale(1.1);
	}

	100% {
		transform: translate(-50%, -50%) rotate3d(0, 0, 0, 0deg) scale(1);
	}
}

@keyframes rotate--2 {
	0% {
		transform: translate(-50%, -50%) rotate3d(1, -1, 0, 40deg) scale(2);
	}

	50% {
		transform: translate(-50%, -50%) rotate3d(0, 0, 0, 0deg) scale(1.1);
	}

	100% {
		transform: translate(-50%, -50%) rotate3d(0, 0, 0, 0deg) scale(1);
	}
}

.intro {
	position: absolute;
	top: 50%;
	left: 50%;
	padding: 0.2em;
	font-family: 'Cinzel Decorative', cursive;
	font-size: 9em;
    text-align: center;
	line-height: 1;
	transform-style: preserve-3d;
	transform: translate(-50%, -50%);
	animation: hide 8s linear forwards;	
}

#retrigger--1:checked~.pane .intro {
	animation-name: hide--1;
}

#retrigger--2:checked~.pane .intro {
	animation-name: hide--2;
}

.intro:nth-child(1) {
	animation: change 8s steps(30) forwards;
	background: url('../images/intro/lokis.jpg');
	background-size: 2000px auto;
	-webkit-background-clip: text;
	-webkit-filter: drop-shadow(0 -1px 0 black) drop-shadow(0 1px 0 black) drop-shadow(1px 0 0 black) drop-shadow(-1px 0 0 black);
	color: transparent;
}

#retrigger--1:checked~.pane .intro:nth-child(1) {
	animation-name: change--1;
}

#retrigger--2:checked~.pane .intro:nth-child(1) {
	animation-name: change--2;
}

.intro:nth-child(2) {
	transform: translate3d(-50%, -50%, -2px);
}

.intro:nth-child(3) {
	transform: translate3d(-50%, -50%, -3px);
}

.intro:nth-child(4) {
	transform: translate3d(-50%, -50%, -4px);
}

.intro:nth-child(5) {
	transform: translate3d(-50%, -50%, -5px);
}

.intro:nth-child(6) {
	transform: translate3d(-50%, -50%, -6px);
}

.intro:nth-child(7) {
	transform: translate3d(-50%, -50%, -7px);
}

.intro:nth-child(8) {
	transform: translate3d(-50%, -50%, -8px);
}

.intro:nth-child(9) {
	transform: translate3d(-50%, -50%, -9px);
}

.intro:nth-child(10) {
	transform: translate3d(-50%, -50%, -10px);
}

.intro:nth-child(11) {
	transform: translate3d(-50%, -50%, -11px);
}

.intro:nth-child(12) {
	transform: translate3d(-50%, -50%, -12px);
}

.intro:nth-child(13) {
	transform: translate3d(-50%, -50%, -13px);
}

.intro:nth-child(14) {
	transform: translate3d(-50%, -50%, -14px);
}

.intro:nth-child(15) {
	transform: translate3d(-50%, -50%, -15px);
}

.intro:nth-child(16) {
	transform: translate3d(-50%, -50%, -16px);
}

.intro:nth-child(17) {
	transform: translate3d(-50%, -50%, -17px);
}

.intro:nth-child(18) {
	transform: translate3d(-50%, -50%, -18px);
}

.intro:nth-child(19) {
	transform: translate3d(-50%, -50%, -19px);
}

.intro:nth-child(20) {
	transform: translate3d(-50%, -50%, -20px);
}

@keyframes hide--1 {
	0% {
		visibility: visible;
		opacity: 1;
	}

	100% {
		visibility: hidden;
		opacity: 0;
	}
}

@keyframes hide--2 {
	0% {
		visibility: visible;
		opacity: 1;
	}

	100% {
		visibility: hidden;
		opacity: 0;
	}
}

@keyframes change--1 {
	0% {
		background-position: 0 0;
		color: rgba(150, 150, 0, 0.4);
		-webkit-filter: drop-shadow(0 -1px 0 black) drop-shadow(0 1px 0 black) drop-shadow(1px 0 0 black) drop-shadow(-1px 0 0 black);
		border-color: black;
	}

	50% {
		background-position: 200% 200%;
		color: rgba(150, 150, 0, 0.4);
		-webkit-filter: drop-shadow(0 -1px 0 black) drop-shadow(0 1px 0 black) drop-shadow(1px 0 0 black) drop-shadow(-1px 0 0 black);
		border-color: #FFD221;
	}

	100% {
		background-position: -200% -200%;
		color: #FFD221;
		-webkit-filter: drop-shadow(0 0 0 black) drop-shadow(0 0 0 black) drop-shadow(0 0 0 black) drop-shadow(0 0 0 black);
		border-color: #FFD221;
	}
}

@keyframes change--2 {
	0% {
		background-position: 0 0;
		color: rgba(150, 150, 0, 0.4);
		-webkit-filter: drop-shadow(0 -1px 0 black) drop-shadow(0 1px 0 black) drop-shadow(1px 0 0 black) drop-shadow(-1px 0 0 black);
		border-color: black;
	}

	50% {
		background-position: 200% 200%;
		color: rgba(150, 150, 0, 0.4);
		-webkit-filter: drop-shadow(0 -1px 0 black) drop-shadow(0 1px 0 black) drop-shadow(1px 0 0 black) drop-shadow(-1px 0 0 black);
		border-color: #FFD221;
	}

	100% {
		background-position: -200% -200%;
		color: #FFD221;
		-webkit-filter: drop-shadow(0 0 0.1rem black) drop-shadow(0 0 0 black) drop-shadow(0 0 0 black) drop-shadow(0 0 0 black);
		border-color: #FFD221;
	}
}

.retrigger {
	position: absolute;
	left: -5em;
	opacity: 0;
}

@keyframes buttons--1 {

	0%,
	99% {
		visibility: hidden;
	}

	100% {
		visibility: visible;
	}
}

@keyframes buttons--2 {

	0%,
	99% {
		visibility: hidden;
	}

	100% {
		visibility: visible;
	}
}

.buttons {
	position: absolute;
	z-index: 3;
	top: 1em;
	left: 50%;
	width: 10em;
	margin-left: -5em;
	height: 2em;
	line-height: 2em;
	text-align: center;
	cursor: pointer;
	user-select: none;
	animation: button 8s linear;
}

#retrigger--1:checked~.buttons {
	animation-name: buttons--1;
}

#retrigger--2:checked~.buttons {
	animation-name: buttons--2;
}

.buttons .button {
	padding: 0.3em 1em;
	color: black;
	font-size: 1.3em;
	display: none;
	cursor: pointer;
	border: 2px solid black;
}

.buttons .button:hover {
	color: white;
	background: black;
}

#retrigger--2:checked~.buttons .button--1 {
	display: block;
}

#retrigger--1:checked~.buttons .button--2 {
	display: block;
}

/* -------------- MEDIA QUERIES */
/* Mobile Devices - Phones/Tablets */
@media only screen and (max-width: 770px) { 
	.intro {
		font-size: 8em;
	}

	.pane {
		top: 30%;		
	}
}

@media only screen and (max-width: 745px) { 
	.nav-item a {
		font-size: 1.5rem;
	}
	.search-input {
		right: -113px;		
	}
}

@media only screen and (max-width: 720px) { 
		
	/* Mobile Navigation */
	.navbar ul {
		background-color: #0D4102;
		display: flex;
		flex-direction: column;
		position: fixed;		
		top: 100px;		
		width: 100%;
		height: calc(100vh - 55px);
		transform: translate(-101%);
		text-align: center;
		overflow: hidden;
	}

	.navbar li {
	  	padding: 15px;
	}	
	
	.navbar li a {
	  	font-size: 2rem;
	}
	 
	.menu-toggle, .helmet {
		display: block;
		cursor: pointer;
	}
	
	.mobile-nav {
		transform: translate(0%)!important;
  	}
	
	/* Search Disabled On Mobile */	
	.search-input {
		position: static;
		margin: 0 auto;
		z-index: 6;
		width: 80%;
    	text-align: center;
	}

	#search-icon {
		margin-top: 3px;
		margin-left: 0;
		margin-bottom: 10px;		
	}	
}