@font-face {
	font-family: 'BornRounded';
	src: url('../fonts/BornRoundedDemo-axrrJ.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
}

::-webkit-scrollbar {
	width: 5px;
	background: transparent;
	height: 10px;
}

::-webkit-scrollbar-thumb {
	background: white;
	border-radius: 10px;
}

* {
	font-family: 'BornRounded', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
	color: white;
	scroll-padding-top: 155px;
	scroll-behavior: smooth;
}

body {
	position: relative;
	padding: 0;
	margin: 0;
	background-color: #00274C;
	overflow-x: hidden;
	overflow-y: overlay;
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.fade-in {
	animation: fadeIn 2.5s;
}

#tsparticles {
	position: relative;
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100vh;
	min-height: 550px;
}

.tooltip {
	position: relative;
}

.tooltip .tooltiptext {
	visibility: hidden;
	background-color: white;
	color: black;
	font-size: 14px;
	text-align: center;
	padding: 5px 0;
	border-radius: 6px;
	width: 110px;
	bottom: 100%;
	left: 50%;
	margin-left: -55px;
	position: absolute;
	z-index: 9999;
}

.tooltip .tooltiptext::after {
	content: ' ';
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -5px;
	border-width: 5px;
	border-style: solid;
	border-color: white transparent transparent transparent;
}

.tooltip:hover .tooltiptext {
	visibility: visible;
}

.tooltip .tooltiptext {
	opacity: 0;
	transition: opacity 1s;
}

.tooltip:hover .tooltiptext {
	opacity: 1;
}

.navbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 3;
	background: transparent;
}

.navbar-solid {
	background-color: #00274C;
}

.leftNavbar {
	display: flex;
	align-items: center;
}

.leftNavbar img {
	width: 40px;
	height: 40px;
	margin: 15px;
	margin-left: 24px;
}

.leftNavbar a {
	position: relative;
	font-size: 24px;
	white-space: nowrap;
	text-decoration: none;
}

.rightNavbar ul {
	display: flex;
	list-style: none;
	padding: 0;
}

.rightNavbar li a {
	display: block;
	position: relative;
	font-size: 18px;
	margin-right: 38px;
	text-decoration: none;
}

.text-hover a::before {
	content: '';
	position: absolute;
	width: 100%;
	height: 2px;
	border-radius: 4px;
	background-color: currentColor;
	bottom: -2px;
	left: 0;
	transform-origin: right;
	transform: scaleX(0);
	transition: transform 0.3s ease-in-out;
}

.text-hover a:hover::before {
	transform-origin: left;
	transform: scaleX(1);
}

.nav-button {
	display: none;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	position: fixed;
	right: 40px;
	width: 30px;
	height: 21px;
	cursor: pointer;
}

.nav-button span {
	height: 3px;
	width: 100%;
	background-color: white;
	border-radius: 10px;
	transition: transform 0.3s ease-in;
}

.toggle .line1 {
	transform: rotate(-45deg) translate(-6px, 6px);
}

.toggle .line2 {
	opacity: 0;
}

.toggle .line3 {
	transform: rotate(45deg) translate(-6px, -6px);
}

.home {
	position: absolute;
	top: 50%;
	left: 50%;
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	text-align: center;
	z-index: 1;
}

.home img {
	width: 150px;
	height: 150px;
}

.home p {
	white-space: nowrap;
	margin: 0;
}

.home-name {
	font-size: 72px;
}

.home-subtext {
	font-size: 28px;
}

.logos a {
	font-size: 0;
}

.logos img {
	height: 37.5px;
	width: 37.5px;
	margin: 15px 7.5px;
}

.title-flex {
	display: flex;
	justify-content: center;
}

.title-border {
	background-color: transparent;
	height: 150px;
	display: flex;
	justify-content: center;
	max-width: 600px;
	width: 50%;
	min-width: 350px;
	position: relative;
	border: 3px solid white;
	border-radius: 20px;
	background-color: #00274C;
}

.title {
	position: absolute;
	color: white;
	top: 50%;
	left: 50%;
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	margin: 0 auto;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	font-size: 48px;
	color: transparent;
}

@keyframes typewriter {
	0% {
		border-right: 2px solid rgba(255, 255, 255, 0.75);
		width: 0;
	}
	99% {
		border-right: 2px solid rgba(255, 255, 255, 0.75);
	}
	100% {
		width: 4.4em;
	}
}

@keyframes blinkTextCursor {
	from {
		border-right-color: white;
	}
	to {
		border-right-color: transparent;
	}
}

.title.visible {
	color: white;
	animation: typewriter 1s steps(10) 0.75s 1 normal both, blinkTextCursor 500ms steps(40) infinite normal;
}

.about-me {
	text-align: center;
	min-height: 500px;
	display: flex;
	flex-flow: row wrap;
	align-content: center;
	justify-content: center;
	background-size: cover;
	width: 100%;
}

.about-me-default {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex: 1 1 0;
	margin: 125px 30px;
	z-index: 1;
}

.about-me-text {
	min-width: 300px;
	width: 35vw;
	background-color: #00274C;
}

.name-svg {
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	min-width: 350px;
	stroke-dasharray: 4002;
	stroke-width: 15px;
}

.name-svg.visible {
	animation: 3s fillSvg ease-in;
	stroke: white;
}

@keyframes fillSvg {
	0% {
		stroke-dashoffset: 4002;
	}
	100% {
		stroke-dashoffset: 0;
	}
}

.about-me-text p.visible {
	color: white;
}

.about-me-text ul {
	padding: 0;
}

.about-me-text li {
	padding: 15px 0px;
	font-size: 25px;
	text-align: center;
	list-style: none;
	opacity: 0;
}

@keyframes text-anim {
	0% {
		opacity: 0;
		transform: translate(-50%);
	}
	100% {
		opacity: 1;
	}
}

.about-me-text ul .visible {
	animation: text-anim 2s ease;
	opacity: 1;
}

#about-me-img .visible {
	animation: fadeIn 3.25s ease;
	opacity: 1;
}

.projects {
	display: flex;
	flex-flow: row wrap;
	align-content: center;
	justify-content: center;
	background-size: cover;
	min-height: 500px;
}

.project-default {
	display: flex;
	align-items: center;
	flex-direction: column;
	position: relative;
	padding: 16px;

	height: 450px;
	max-height: 450px;
	width: 350px;
	max-width: 350px;

	background-color: #00274C;
	border: 3px solid white;
	box-sizing: border-box;
	cursor: pointer;
	transition: all 0.3s ease-in-out;
}

.project-default:hover {
	top: -15px;
	transition: all 0.3s ease-in-out;
}

.projects .visible {
	animation: projectAnim 2s ease;
	opacity: 1;
}

@keyframes projectAnim {
	0% {
		opacity: 0;
		transform: translate(0, +10%);
	}
	100% {
		opacity: 1;
	}
}

.project-default p {
	color: white;
}

.project-title {
	width: 100%;
}

.project-title img {
	position: relative;
	left: 50%;
	transform: translate(-50%);
	height: 100px;
	margin: 0;
}

.project-title p {
	position: relative;
	font-size: 23px;
	margin: 0;
	text-align: center;
	padding-bottom: 7.5px;
	border-bottom: 3px solid white;
}

.project-body p {
	font-size: 20px;
	text-align: left;
}

.project-awards {
    background-color: #fabc1e;
    padding: 5px;
    text-align: center;
    border-radius: 10px;
    min-height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
	left: 50%;
    width: 85%;
	transform: translate(-50%);
	bottom: 75px;
}

.project-awards p {
    color: #1d1d1d;
    margin: 0
}

.higherlower {
	color: #ff6060;
	text-decoration: none;
}

.higherlower:hover {
	text-decoration: underline;
}

.pong {
	color: rgb(255, 24, 255);
	text-decoration: none;
}

.pong:hover {
	text-decoration: underline;
}

.project-default button {
	position: absolute;
	left: 50%;
	bottom: 15%;
	transform: translate(-50%);
	max-width: 200px;
	margin-bottom: 10px;
	padding: 10px;
	background-color: #00274C;
	text-decoration: none;
	border: 3px solid white;
	border-radius: 10px;
	z-index: 2;
}

.project-default button a {
	font-size: 18px;
	white-space: nowrap;
	text-decoration: none;
	z-index: 2;
}

.project-default button:hover {
	background-color: white;
}

.project-default button:hover a {
	color: black;
}

.project-skills {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	left: 50%;
	transform: translate(-50%);
	bottom: 16px;
	z-index: 99;
}

.project-skills img {
	height: 35px;
	position: relative;
	display: flex;
	margin: 3.75px;
}

footer {
	position: relative;
	background-color: white;
	width: 100%;
	margin: 0;
}

footer p {
	color: black;
	font-size: 24px;
}

footer ul span {
	color: black;
	font-size: 30px;
}

footer ul a {
	color: black;
	list-style-type: none;
}

.footer-flex {
	display: flex;
	flex-flow: row wrap;
	align-content: center;
	justify-content: center;
}

.footer-default {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1 1 0;
	position: relative;
	margin: 35px;
	padding: 0;
	min-width: 250px;
	max-width: 450px;
}

.contact-info p {
	text-align: center;
	margin-top: 15px;
	margin-bottom: 0px;
}

.footer-title {
	font-size: 40px;
	margin: 0;
}

.footer-mid img {
	height: 45px;
	width: 45px;
}

.footer-mid p {
	margin: 0;
}

.footer-nav {
	text-align: center;
}

.footer-nav a {
	position: relative;
	color: black;
	font-size: 20px;
	margin-top: 15px;
	margin-bottom: 0px;
	text-align: center;
	text-decoration: none;
}

@media (max-width: 959px) {
	.footer-mid {
		order: 1;
	}
}

@media (max-width: 900px) {
	#about-me-img {
		display: none;
	}

	.about-me-default p {
		width: 50vw;
	}

	@keyframes text-open {
		0% {
			padding: 0;
			width: 50vw;
			min-width: 300px;
			font-size: 0;
			line-height: 0px;
			color: transparent;
		}
		50% {
			font-size: 25px;
			padding: 35px 0px;
			line-height: 42.5px;
			color: transparent;
		}
	}
}

@media (max-width: 650px) {
	.nav-button {
		display: flex;
	}

	.rightNavbar ul {
		flex-direction: column;
		position: absolute;
		right: 0;
		height: 100vh;
		width: 50%;
		margin-top: 35px;
		box-sizing: border-box;
		background: rgba(0, 0, 0, 0.7);
		-webkit-backdrop-filter: blur(1rem);
		backdrop-filter: blur(1rem);
		transform: translateX(100%);
		transition: transform 0.325s ease-in;
	}

	@keyframes navbarFade {
		from {
			opacity: 0;
			transform: translateX(50px);
		}
		to {
			opacity: 1;
			transform: translateX(0px);
		}
	}

	.rightNavbar li {
		padding: 50px 40px 50px 0px;
	}

	.rightNavbar li a {
		float: right;
		margin-right: 0px;
		height: 100%;
		max-width: fit-content;
		white-space: nowrap;
		text-align: right;
	}

	.rightNavbar li:hover {
		background: rgba(255, 255, 255, 0.15);
	}

	.rightNavbar ul.nav-active {
		transform: translateX(0%);
	}
}

@media (max-width: 500px) {
	.home-name {
		font-size: 60px;
	}
	.home-subtext {
		font-size: 22px;
	}
	.title {
		font-size: 40px;
	}
	.title-border {
		height: 150px;
		min-width: 325px;
	}
	.about-me-text li {
		font-size: 22.5px;
	}
}

@media (max-width: 429px) {
	.project-title img {
		height: 85px;
	}

	.project-title p {
		font-size: 22px;
	}

	.project-body p {
		font-size: 18px;
	}
}

@media (max-width: 356px) {
	.project-title img {
		height: 80px;
	}

	.project-title p {
		font-size: 20px;
	}

	.project-body p {
		font-size: 16.5px;
	}

	.project-default button a {
		font-size: 16.5px;
	}
}

.pic {
	max-width: 500px;
	min-width: 250px;
	width: 30vw;
	opacity: 0;
	border-radius: 10000px;
}

.swiper {
	width: 100%;
	height: 750px;
}

.swiper-wrapper {
	display: flex;
	align-items: center;
    padding-left: 100px;
}

.swiper-button-next,
.swiper-button-prev {
	color: black !important;
	background-color: rgba(255, 255, 255, .75);
	padding: 10px;
	border-radius: 5px;
}

.swiper-button-next:hover,
.swiper-button-prev:hover {
	background-color: rgba(255, 255, 255, .5);
}

@media (max-width: 500px) {
    .swiper-wrapper {
        padding-left: 0;
    }
}