/* General */

* {
	font-family: "Syne", sans-serif;
	color: #4700BB;
	min-height: 0;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.dot-pattern {
	background: white;
	background-image: radial-gradient(#4700BB 1px, transparent 0);
	background-size: 50px 50px;
	background-position: 12.5px 12.5px;
}

.purple-shadow {
	filter: drop-shadow(2px 2px 8px rgba(71, 0, 187, 0.2));
}

.text-shadow {
	text-shadow: 10px 10px 12px rgba(71, 0, 187, 0.3);
}

.blur {
	background-color: rgba(71, 0, 187, 0.05);
	backdrop-filter: blur(3px);
}

/* Projects list organization */

.container {
	width: 100vw;
	margin-top: 20vh;
	margin-bottom: 5vh;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.project-container {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	gap: min(48px, 2vh) calc(3% / 2);
	align-items: stretch;
	margin: 0vh 5vh;
}

.project-container a {
	width: 32%;
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	text-decoration: 0;
}

.project {
	width: 100%;
	border-radius: 16px;
	padding: min(2.5vh, 48px);
}

.project img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	margin-bottom: 32px;
	border-radius: 12px;
}

.project-title {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: center;
}

.project-title h2 {
	font-size: 32px;
	width: 80%;
	word-wrap: break-word;
}

.project-title .tag {
	margin: 0;
}

/* Content organization */

.row {
	width: 100%;
	height: fit-content;
	display: flex;
	justify-content: space-between;
	margin: 0vh 5vh;
}

.row:not(:last-child) {
	margin-bottom: min(2vh, 48px);
}

.col-container {
	width: 100%;
	height: fit-content;
	display: flex;
	flex-wrap: nowrap;
	margin: 0vh 5vh;
}

.col {
	width: 50%;
	height: fit-content;
	display: flex;
	flex-direction: column;
}

.col > .content:not(:last-child) {
	margin-bottom: min(2vh, 48px);
}

.content {
	border-radius: 16px;
	padding: min(2.5vh, 48px);
	height: fit-content;
}

.content.text h2 {
	font-size: 40px;
	margin-bottom: 32px;
}

.content.text p {
	font-size: 32px;
	line-height: 130%;
}

.content.text a {
	width: 100%;
	display: inline-block;
	overflow-wrap: break-word;
	font-size: 48px;
	text-decoration: 0;
}

.content.text p a {
	font-size: 32px;
	display: inline;
	text-decoration: underline;
}

.content.text a:hover {
	cursor: pointer;
	text-decoration: underline;
}

.content video, .content img {
	width: 100%;
	border-radius: 12px;
}

.content video:not(:last-child),
.content img:not(:last-child) {
	margin-bottom: 16px;
}

/* Page titles */

.title {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
}

.title h1 {
	width: 100%;
	font-size: 64px;
	margin-bottom: 8px;
}

.tags {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
}

.tag {
	display: inline-block;
	background-color: #4700BB;
	color: #FFFFFF;
	border: 0;
	border-radius: 100px;
	padding: 12px 20px;
	font-size: 24px;
	text-decoration: none;
	margin-top: 8px;
}

.title .tag:not(:last-child) {
	margin-right: 12px;
}

/* Header */

header {
	width: 100vw;
	height: max(7.5vh, 64px);
	position: fixed;
	top: max(2.5vh, 32px);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9999;
}

header .logo {
	height: max(7.5vh, 64px);
}

header .logo img {
	height: 100%;
}

header .about {
	width: max(3vh, 64px);
	height: max(3vh, 64px);
	position: absolute;
	right: 5vh;
	display: flex;
	justify-content: center;
	align-items: center;
	border: 0;
	border-radius: max(1.5vh, 32px);
	background-color: #4700BB;
}

header .about img {
	height: 50%;
}

/* Header responsiveness */

@media only screen and (max-width: 600px) {
	header .logo {
		position: absolute;
		left: 5vh;
	}
}

/* Content responsiveness */


@media only screen and (max-width: 3000px) {
	.project-title h2 {
		font-size: 28px;
	}

	.title h1 {
		font-size: 56px;
	}

	.tag {
		font-size: 22px;
	}

	.content.text h2 {
		font-size: 36px;
		margin-bottom: 28px;
	}
	
	.content.text p {
		font-size: 28px;
	}
	
	.content.text a {
		font-size: 36px;
	}
	
	.content.text p a {
		font-size: 28px;
	}
}

@media only screen and (max-width: 2000px) {
	.project-title h2 {
		font-size: 24px;
	}

	.title h1 {
		font-size: 48px;
	}

	.tag {
		font-size: 20px;
	}

	.content.text h2 {
		font-size: 28px;
		margin-bottom: 20px;
	}
	
	.content.text p {
		font-size: 20px;
	}
	
	.content.text a {
		font-size: 28px;
	}
	
	.content.text p a {
		font-size: 20px;
	}
}

@media only screen and (max-width: 1200px) {
	.project-container {
		gap: min(2vh, 48px) 2%;
	}

	.project-container a {
		width: 49%;
	}

	.project-title h2 {
		font-size: 16px;
	}

	.title h1 {
		font-size: 32px;
	}

	.tags {
		width: 100%;
	}

	.tag {
		font-size: 16px;
	}

	.col-container {
		flex-wrap: wrap;
	}
	
	.col {
		width: 100%;
	}
	
	.col:not(:last-child) {
		margin-bottom: min(2vh, 48px);
	}
	
	.content.text h2 {
		font-size: 24px;
		margin-bottom: 18px;
	}
	
	.content.text p {
		font-size: 18px;
	}
	
	.content.text a {
		font-size: 24px;
	}

	.content.text p a {
		font-size: 18px;
	}
}

@media only screen and (min-width: 1200px) {
	.col:nth-child(odd) {
		margin-right: min(1vh, 24px);
	}
	
	.col:nth-child(even) {
		margin-left: min(1vh, 24px);
	}
}

@media only screen and (max-width: 600px) {
	.project-container {
		gap: min(2vh, 48px) 0;
	}

	.project-container a {
		width: 100%;
	}

	.project-title h2 {
		font-size: 14px;
	}

	.title h1 {
		font-size: 24px;
	}

	.tag {
		font-size: 14px;
	}

	.content.text h2 {
		font-size: 24px;
		margin-bottom: 16px;
	}
	
	.content.text p {
		font-size: 16px;
	}
	
	.content.text a {
		font-size: 24px;
	}

	.content.text p a {
		font-size: 16px;
	}
}