@font-face {
	font-family: 'Open Sans';
	src: url(fonts/OpenSans-Regular.ttf);
}

* {
	margin: 0;
	padding: 0;
}

html, body {
	margin: 0;
	padding: 0;
	height: 100%;
	font-family: 'Open Sans', sans-serif;
}

a {
	text-decoration: none;
}

#container {
	width: 100%;
}

.wrapper {
	display: flex;
	width: 100%;
	justify-content: space-around;
	flex-flow: row wrap;
	padding: 90px 5%;
	box-sizing: border-box;
}

/* HERO IMAGE */

#home {
	background: url("../img/Hero3.jpeg");
	background-attachment: fixed;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	height: 100%;
}

.introduction {
	position: absolute;
	text-align: center;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #ffffff;
	font-size: 30px;
	text-shadow: 2px 2px #1B242F;
}

.name-highlight {
	color: #E31B6D; /* Crimson red */
}

#home i {
	font-size: 45px;
	position: absolute;
	text-align: center;
	bottom: 10%;
	left: 50%;
	transform: translateX(-50%);
	color: #ffffff;
	text-shadow: 2px 2px #1B242F;
	animation: down-bounce 2s infinite;
	transition: 0.4s color;
	cursor: pointer;
}

#home i:hover {
	color: #04C2C9; /* Aqua marine */
	transition: 0.4s color;
}

/* BOUNCING ANIMATION */

@keyframes down-bounce {
	0% {
		bottom: 10%;
	}
	50% {
		bottom: 8%;
	}
	100% {
		bottom: 10%;
	}
}

/* NAV */

nav {
	position: absolute;
	width: 100%;
	display: flex;
	justify-content: space-between;
	background-color: #1B242F; /* Uber dark */
	color: #ffffff;
	font-size: 16px;
	border-bottom: #04C2C9 solid 3px;
	opacity: 0.98;
	text-transform: uppercase;
	z-index: 1000;
}

nav div {
	margin: 0 20px;
}

nav div ul {
	list-style-type: none;
	display: flex;
}

nav div ul li {
	cursor: pointer;
}

nav div ul li, nav div p {
	padding: 19px 20px;
	transition: color 0.5s;
}

nav div ul li:hover {
	color: #E31B6D;
}

.fixed-nav {
	top: 0;
	position: fixed;
	overflow: hidden;
}

.selected {
	color: #E31B6D;
}

.navOption {
}

.nav-icon {
	display: none;
}

/* MOBILE TOP BAR */

.mobile-top-bar {
	display: none;
	top: 0;
}

/* ABOUT */

#about {
	padding-top: 153px;
	justify-content: center;
}

.section-title {
	flex: 1 100%;
	text-align: center;
	margin-bottom: 80px;
	font-size: 35px;
	font-weight: 700;
}

.traits {
	display: flex;
	flex: 1 80%;
	flex-direction: row;
	justify-content: center;
	margin-bottom: 100px;
	flex-wrap: wrap;
}

.traits-wrapper {
	display: flex;
	flex-direction: row;
	justify-content: space-around;
	width: 40%;
}

.trait-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	opacity: 0;
	transform: rotateY(90deg);
}

.trait-icon {
	font-size: 3rem;
	background-color: #04C2C9;
	color: #FFF;
	box-sizing: border-box;
	width: 110px;
	height: 110px;
	text-align: center;
	border-radius: 50%;
	line-height: 110px;
	margin-bottom: 15px;
}

.trait-name {
	font-size: 1.1rem;
	color: #616161;
	font-weight: 700;
	text-align: center;
}

.about-wrap {
	width: 600px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.about-me {
	margin-bottom: 40px;
}

.logo {
	width: 270px;
	height: 270px;
	box-sizing: border-box;
	font-size: 650%;
	line-height: 260px;
	font-weight: bold;
	text-align: center;
	color: #FFF;
	/*border: 5px #04C2C9 solid;*/
	border-radius: 50%;
	background-color: #2a3749;
	margin: 0 auto;
	margin-bottom: 30px;
}

.about-me p, .logo + h1{
	width: 450px;
	text-align: center;
	color: #616161;
}

.brackets {
	color: #fff;
}

/*.skill {
	display: flex;
	flex-direction: column;
	align-items: center;
}*/

.skill-bar {
	display: flex;
	background-color: #eee;
	height: 30px;
	width: 90%;
	margin: 7px 0;
	position: relative;
}

.skill-name {
	background-color: #04C2C9;
	font-weight: 700;
	color: #fff;
	text-align: center;
	padding: 4px 0;
	width: 22%;
	height: calc(100% - 8px);
	/*height: 100%;*/
}

.skill-percent {
	font-size: 80%;
	color: #666;
	position: absolute;
	right: 5px;
	top: 50%;
	transform: translateY(-50%);
	opacity: 0;
}

/* ABOUT ANIMATION */

#about .section-title {
	opacity: 0;
}

.traits div:nth-child(1) div:nth-child(1) {
	transition: 0.4s all 1s;
}

.traits div:nth-child(1) div:nth-child(2) {
	transition: 0.4s all 1.2s;
}

.traits div:nth-child(2) div:nth-child(1) {
	transition: 0.4s all 1.4s;
}

.traits div:nth-child(2) div:nth-child(2) {
	transition: 0.4s all 1.6s;
}

.about-me {
	opacity: 0;
}

.blinking-animation {
	animation: blinking 0.8s step-end infinite;
}

.skill {
	opacity: 0;
}

.skill-progression {
	background-color: #00A1A7;
	width: 0%;
	height: 100%;
}

.slide-down {
	animation: slideDown 1s forwards;
}

.slide-left {
	animation: slideLeft 1s forwards 1.6s;
}

.slide-right {
	animation: slideRight 1s forwards 1.6s;
}

@keyframes slideDown {
	0% {
		transform: translateY(-100px);
	}

	100% {
		transform: translateY(0);
		opacity: 1
	}
}

@keyframes slideLeft {
	0% {
		opacity: 0;
		transform: translate(-100px);
	}

	100% {
		opacity: 1;
		transform: translate(0);
	}
}

@keyframes slideRight {
	0% {
		opacity: 0;
		transform: translate(100px);
	}

	100% {
		opacity: 1;
		transform: translate(0);
	}
}

@keyframes blinking {
	0% {
		color: #FFF;
	}

	50% {
		color: #2a3749;
	}

	100% {
		color: #FFF;
	}
}

.skill div:nth-child(1) .skill-progression {
	transition: 1s width ease-out 2s;
}

.skill div:nth-child(1) .skill-percent {
	transition: 1s opacity ease-out 2.5s;
}

.skill div:nth-child(2) .skill-progression {
	transition: 1.1s width ease-out 2s;
}

.skill div:nth-child(2) .skill-percent {
	transition: 1s opacity ease-out 2.6s;
}

.skill div:nth-child(3) .skill-progression {
	transition: 1.2s width ease-out 2s;
}

.skill div:nth-child(3) .skill-percent {
	transition: 1s opacity ease-out 2.7s;
}

.skill div:nth-child(4) .skill-progression {
	transition: 1.3s width ease-out 2s;
}

.skill div:nth-child(4) .skill-percent {
	transition: 1s opacity ease-out 2.8s;
}

.skill div:nth-child(5) .skill-progression {
	transition: 1.4s width ease-out 2s;
}

.skill div:nth-child(5) .skill-percent {
	transition: 1s opacity ease-out 2.9s;
}

.skill div:nth-child(6) .skill-progression {
	transition: 1.5s width ease-out 2s;
}

.skill div:nth-child(6) .skill-percent {
	transition: 1s opacity ease-out 3s;
}

.skill div:nth-child(7) .skill-progression {
	transition: 1.6s width ease-out 2s;
}

.skill div:nth-child(7) .skill-percent {
	transition: 1s opacity ease-out 3.1s;
}

.skill div:nth-child(8) .skill-progression {
	transition: 1.7s width ease-out 2s;
}

.skill div:nth-child(8) .skill-percent {
	transition: 1s opacity ease-out 3.2s;
}

.skill div:nth-child(9) .skill-progression {
	transition: 1.8s width ease-out 2s;
}

.skill div:nth-child(9) .skill-percent {
	transition: 1s opacity ease-out 3.3s;
}

/* PORTFOLIO */

#portfolio {
	background-color: #f5f5f5;
	padding-bottom: 250px;
}

.project-overlay {
	width: 450px;
	/*height: 290px;*/
	height: calc(450px * 67.44 / 100);
	margin-bottom: 30px;
	opacity: 0;
	box-shadow: #636363 3px 6px 5px;
	background-color: #2b2c2d;
	position: relative;
}

.top-bar {
	position: relative;
	background-color: #2a2a2a;
	height: 30px;
	transition: opacity 0.35s;
}

.top-bar h2 {
	font-size: 90%;
	color: #fff;
	margin: 0;
	text-align: center;
/*	vertical-align: middle;
	height: 100%;*/
	text-transform: uppercase;
	line-height: 2;
}

.circle {
	display: inline-block;
	position: absolute;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background-color: #ffbd2e;
	top: 8px;
	left: 30px;
}

.circle::before {
	left: -20px;
	content: "";
	background-color: #ff5f57;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	display: inline-block;
	position: absolute;
}

.circle::after {
	left: 20px;
	content: "";
	background-color: #28ca41;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	display: inline-block;
	position: absolute;
}

.app{
	height: calc(100% - 30px);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	border: 4px #2a2a2a solid;
	border-top: none;
	transition: opacity 0.35s;
	/*opacity: 0;*/
}

.project-overlay:hover .app, .project-overlay:hover .top-bar {
	opacity: 0;
}

.project-overlay:hover .app-info, .project-overlay:hover .app-button-wrapper{
	opacity: 1;
	z-index: 10;
}

.project-overlay:hover .app-info {
	transform: translate(-50%, -30%);
	top: 30%;
}

.project-overlay:hover .app-button-wrapper {
	transform: translate(-50%, -20%);
	bottom: 20%;	
}

.app-info {
	top: 10%;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	text-align: center;
	opacity: 0;
	transition: 0.35s transform, 0.35s top;
}

.app-name {
	color: #FFF;
	font-size: 150%;
	display: block;
	font-weight: bold;
	line-height: 2;
}

.app-stack {
	/*color: #E31B6D;*/
	color: #04C2C9;
	/*color: #FFF;*/
	font-size: 120%;
	margin: 0 auto;
}

.app-button-wrapper {
	position: absolute;
	bottom: 10%;
	left: 50%;
	transform: translate(-50%, 10%);
	opacity: 0;
	transition: transform 0.35s, bottom 0.35s;
}

.app-button {
	letter-spacing: 1px;
	color: #FFF;
	border: 3px solid #E31B6D;
	padding: 10px;
	transition: background-color 0.2s;
}

.app-button:hover {
	background-color: #E31B6D;
}

#codeguide {
	background-image: url("../img/Codeguide.png");
}

#hearthstone {
	background-image: url("../img/Hearthstone2.png");
}

#quickquiz {
	background-image: url("../img/Quickquiz.png");
}

#blackhack {
	background-image: url("../img/Blackhack.png");
}

#world-cup-memory {
	background-image: url("../img/WorldCupMemory.png");
}

#math4kids {
	background-image: url("../img/Math4Kids.png");
}

/* PROJECT ANIMATION */

#portfolio .section-title {
	opacity: 0;
	transition: opacity 1s;
}

.move-up-animation {
	animation-name: moveUp;
	animation-duration: 1.1s;
	animation-fill-mode: forwards;
}

#portfolio > div:nth-child(2) {
	/*transition: transform 1.1s 0.7s, opacity 1s 0.7s;*/
	animation-delay: 0.7s;
}

#portfolio > div:nth-child(3) {
	/*transition: transform 1.1s 0.8s, opacity 1s 0.8s;*/
	animation-delay: 0.8s;
}

#portfolio > div:nth-child(4) {
	/*transition: transform 1.1s 0.9s, opacity 1s 0.9s;*/
	animation-delay: 0.9s;
}

#portfolio > div:nth-child(5) {
	/*transition: transorm 1.1s 1s, opacity 1s 1s;*/
	animation-delay: 1s;
}

#portfolio > div:nth-child(6) {
	/*transition: transform 1.1s 1.1s, opacity 1s 1.1s;*/
	animation-delay: 1.1s;
}

#portfolio > div:nth-child(7) {
	/*transition: transform 1.1s 1.2s, opacity 1s 1.2s;*/
	animation-delay: 1.2s;
}

@keyframes moveUp {
	from {
		opacity: 0;
		transform: translateY(100px);
	} to {
		opacity: 1;
		transform: translateY(0px);
	}
}

/* CONTACT */

.diagonal {
	width: 100%;
	height: 120px;
	background-color: #252934;
	position: absolute;
	transform: skewY(4deg) translateY(-40px);
}

.diagonal-reverse {
	width: 100%;
	height: 120px;
	background-color: #252934;
	position: absolute;
	transform: skewY(-4deg) translateY(-40px);	
}

#contact {
	background-color: #252934;
/*	height: 600px;
	box-sizing: border-box;*/
}

#contact h1 {
	color: #fff;
	margin-top: 0;
}

.contact-text {
	color: #04C2C9;
	font-size: 105%;
	flex: 1 100%;
	text-align: center;
	line-height: 1.7;
	opacity: 0;
}

.email-icon {
	color: #fff;
	background-color: #E31B6D;
	font-size: 300%;
	flex: 1;
	text-align: center;
	margin: 40px 0;
	padding: 5px 7px;
	/*border: 1px solid #E31B6D;*/
	border-radius: 10px;
	transform: scale(0);
	transition: border-radius 0.5s, font-size 0.5s, padding 0.5s, margin 0.5s, background-color 0.5s, color 0.5s;
}

.email-icon:hover {
	border-radius: 50%;
	padding: 8px 10px;
	margin: 37px 0;
	/*font-size: 300%;*/
	background-color: #fff;
	color: #E31B6D;
}

.icon-wrapper a {
	margin: 15px 5px;
}

.social-icon {
	color: #fff;
	background-color: #1B242F;
	padding: 10px;
	font-size: 150%;
	transform: scale(0);
	transition: color	0.3s, background-color 0.3s;
	margin-top: 20px;
}

.social-icon:hover {
	color: #1B242F;
	background-color: #fff;
}

/* CONTACT ANIMATION */

#contact .section-title {
	opacity: 0;
}

.email-text {
	animation-delay: 0.3s;
}

.email-icon {
	animation-delay: 0.6s;
}

.social-text {
	animation-delay: 0.9s;
}

.linkedin-icon {
	animation-delay: 1.2s;
}

.github-icon {
	animation-delay: 1.5s;
}

.slide-right-far {
	animation-name: slideRightFar;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
}

.slide-left-far {
	animation-name: slideLeftFar;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
}

.grow {
	animation-name: grow;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
}

@keyframes slideRightFar {
	0% {
		transform: translate(-150px);
		opacity: 0;
	}

	100% {
		transform: translate(0);
		opacity: 1;
	}
}

@keyframes slideLeftFar {
	0% {
		opacity: 0;
		transform: translate(150px);
	}

	100% {
		opacity: 1;
		transform: translate(0);
	}
}

@keyframes grow {
	0% {
		opacity: 0;
		transform: scale(0);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}

@media only screen and (min-width: 1920px) {
	.project-overlay {
		width: 490px;
		height: calc(490px * 67.44 / 100);
	}
}

/* MOBILE DEVICES */

@media only screen and (max-width: 500px) {

	.mobile-top-bar {
		display: flex;
		position: fixed;
		font-size: 0.8rem;
	}

	.mobile-top-bar .nav-left{
		display: block;
	}

	.nav-left p {
		padding: 15px;
	}

	.navbar {
		top: auto;
		bottom: 0;
		position: fixed;
		border-bottom: none;
		justify-content: center;
		opacity: 1;
	}

	.nav-left {
		display: none;
	}

	.nav-right ul {
		padding-left: 0;
		margin: 0;
	}

	.nav-right ul li {
		padding: 10px 20px;
	}

	.nav-icon {
		display: block;
		text-align: center;
	}

	.nav-text {
		display: block;
		font-size: 8px;
	}

	#container {
		margin-bottom: 40px;
	}

	.section-title {
		font-size: 1.8rem;
	}

	.traits {
		margin-bottom: 30px;
	}

	.traits-wrapper {
		width: 80%;
	}

	.trait-wrap {
		width: 40%;
		margin-bottom: 30px;
	}

	.trait-icon {
		width: 70px;
		height: 70px;
		line-height: 70px;
		font-size: 2rem;
	}

	.about-wrap {
		width: 95%;
	}

	.about-me p, .about-me h1 {
		width: 90%;
	}

	.about-me h1 {
		font-size: 1.5rem;
	}

	.about-me p {
		font-size: 0.8rem;
	}

	.logo {
		width: 200px;
		height: 200px;
		line-height: 190px;
		font-size: 4.5rem;
	}

	.skill-bar {
		height: 20px;
	}

	.skill-name {
		font-size: 0.5rem;
		line-height: 1.4;
	}

	.skill-percent {
		font-size: 50%;
	}

	.contact-text {
		font-size: 0.7rem;
	}

	.email-icon {
		font-size: 2.5rem;
	}

	.email-icon:hover {
	}

}

@media only screen and (max-width: 900px) {

	.introduction {
		font-size: 1rem;
	}

	.navbar {
		font-size: 0.8rem;
	}

	.trait-icon {
		width: 90px;
		height: 90px;
		line-height: 90px;
		font-size: 2.5rem;
	}

	.trait-name {
		font-size: 0.8rem;
	}

	.project-overlay {
	width: 300px;
	height: calc(300px * 67.44 / 100);
	}

	.top-bar {
		height: 20px;
	}

	.top-bar h2 {
		font-size: 40%;
		line-height: 3;
	}

	.circle {
		width: 7px;
		height: 7px;
		top: 6px;
		left: 15px;
	}

	.circle::before {
		width: 7px;
		height: 7px;
		left: -10px;
	}

	.circle::after {
		width: 7px;
		height: 7px;
		left: 10px;
	}

	.app {
		height: calc(100% - 22px);
	}

	.app-name {
		font-size: 100%;
	}

	.app-stack {
		font-size: 70%;
	}

	.app-button {
		font-size: 8px;
		padding: 7px
	}

	/* ABOUT MOBILE ANIMATION */

	@keyframes slideRight {
		0% {
			transform: translateY(10px);
		}

		50% {
			opacity: 1;
		}

		100% {
			transform: translateY(0);
			opacity: 1
		}
	}

	@keyframes slideLeft {
		0% {
			opacity: 0;
			transform: translate(-10px);
		}

		50% {
			opacity: 1;
		}

		100% {
			opacity: 1;
			transform: translate(0);
		}
	}

	 CONTACT MOBILE ANIMATION 

	@keyframes slideRightFar {
		0% {
			transform: translate(-15px);
			opacity: 0;
		}

		50% {
			opacity: 1;
		}

		100% {
			opacity: 1;
			transform: translate(0);
		}
	}

	@keyframes slideLeftFar {
		0% {
			opacity: 0;
			transform: translate(15px);
		}

		50% {
			opacity: 1;
		}

		100% {
			opacity: 1;
			transform: translate(0);
		}
	}

}