@font-face {
	font-family: "SpaceGrotesk-Variable";
	src: url("../public/fonts/SpaceGrotesk-Variable.ttf") format("truetype");
	font-weight: 300 700;
	font-display: swap;
	font-style: normal;
}

body {
	font-family: "SpaceGrotesk-Variable", sans;
	margin: 0;
	color: black;
}

header {
	margin: 1rem 0rem;
	display: flex;
	justify-content: center;
	width: 100%;
	top: 1rem;
	position: sticky;
	z-index: 1000;
}

a {
	text-decoration: none;
	color: inherit;
}

.status-wrapper {
	text-align: center;
	padding: 0.5rem;
	font-size: 0.875rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

nav {
	display: flex;
	align-items: center;
	border-radius: 99px;
	background: rgba(0, 0, 0, 0);
	padding: 0.75rem;
	margin: 0 4rem;
	border: 1px solid rgb(128, 128, 128);
	gap: 0.5rem;
	background: white;
	box-shadow:
		0 10px 15px -3px rgb(0 0 0 / 0.1),
		0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.logo {
	justify-content: center;
	display: flex;
	align-items: center;
	color: red;
	padding: 0 0.5rem;
}

ul {
	margin: 0;
	padding: 0;
	z-index: 10000;
	color: white;
	display: flex;
	gap: 0.5rem;
}

ul li {
	background: rgba(255, 255, 255);
	justify-content: center;
	display: flex;
	color: black;
	align-items: center;
	border: 1px solid rgb(128, 128, 128);
	padding: 0.5rem 0.75rem;
	border-radius: 99px;
	display: inline-block;
	transition-property: all;
	transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
	transition-duration: 250ms;
}

ul li:hover {
	transition-property: all;
	transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
	transition-duration: 250ms;
	color: white;
	background: rgb(0, 0, 0);
	cursor: pointer;
	filter: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03))
		drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));
}

/* Grid background */
.grid-bg {
	height: 100%;
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: -10000;
}

/* Mask styling */
.grid-mask {
	mask-image: radial-gradient(900px circle at center, white, transparent);
	-webkit-mask-image: radial-gradient(
		900px circle at center,
		white,
		transparent
	);
}

button {
	width: 100%;
	border-radius: 99px;
	justify-content: center;
	display: flex;
	color: black;
	align-items: center;
	border: 1px solid rgb(128, 128, 128);
	padding: 1rem 0.75rem;
	border-radius: 99px;
	background-color: rgba(255, 255, 255, 1);
	font-size: 1rem;
	transition-property: all;
	transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
	transition-duration: 250ms;
}

button:hover {
	transition-property: all;
	transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
	transition-duration: 250ms;
	cursor: pointer;
	background-color: rgba(0, 0, 0, 0.1);
}

canvas {
	border-radius: 20px;
	background: rgba(0, 0, 0, 0.2);
	box-shadow: 0 8px 32px rgba(31, 38, 135, 0.2);
	backdrop-filter: blur(4px);
	border: 1px solid rgba(255, 255, 255, 0.1);
	margin: 20px;
}

#file-input {
	display: none;
}

#upload-btn {
	background-color: black;
	color: white;
	border: none;
}

#upload-btn:hover {
	background-color: rgba(0, 0, 0, 0.75);
	transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
	transition-duration: 250ms;
	transition-property: all;
}

h1 {
	margin: 0;
	padding: 0 1rem;
	font-size: 6rem;
	text-align: center;
}

h2 {
	padding: 0;
	font-size: 4rem;
	text-align: center;
}

p {
	display: flex;
	justify-content: center;
	text-align: center;
	margin: 0% 15%;
	padding: 0 1rem;
	font-size: 1.5rem;
	line-height: 1.75rem;
}
p:not(:first-child) {
	margin-top: 1.5rem; /* Adjust the value if needed to match the design */
}

span {
	text-decoration: 3px red wavy underline;
	text-underline-offset: 5px;
}

.hero {
	margin: 5% 0;
}

.hero-main {
	height: 80vh;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}

.hero ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	width: 100%;
	justify-content: center;
	align-items: center;
	margin: 1rem 0;
	padding: 0;
}

.hero ul li {
	width: 100%;
	transition-duration: 250ms;
	transition-property: all;
	color: white;
	background-color: black;
	mix-blend-mode: difference;
}

/* .hero ul li:nth-child(even) { */
/* 	background-color: white; */
/* 	mix-blend-mode: difference; */
/* 	color: black; */
/* } */

.hero ul li:hover {
	transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
}

.hero ul li > div {
	padding: 7rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	text-align: center;
}
.hero ul li div p {
	margin: 0;
	padding: 0;
}

h3 {
	font-size: 2rem;
	margin: 0;
	padding: 0;
}

.desc {
	display: block;
}
.desc span {
	color: red;
	text-decoration: none;
}

.hero ul:nth-child(even) li div.sep {
	height: 1px;
	width: 100%;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	background: linear-gradient(to right, transparent, white, transparent);
}

nav.menu {
	background-color: rgba(255, 255, 255, 0.6);
	gap: 1rem;
	margin: 0 5rem;
	display: flex;
	justify-content: space-evenly;
	align-items: center;

	transition-duration: 250ms;
}

.visualizer {
	display: flex;
	justify-content: center;
	align-items: center;
}

.hero ul li div.grid {
	display: grid;
	padding: 0rem 7rem 5rem 7rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem;
}

div.works {
	flex-direction: column;
	gap: 2rem;
}

li.no-blend div.btn {
	padding: 0;
	justify-content: center;
}

li.no-blend div.btn > button {
	width: 25%;
}

li.no-blend div.btn > button:hover {
	transition-property: all;
	transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
	transition-duration: 250ms;
	cursor: pointer;
	background-color: rgba(255, 255, 255, 0.8);
}

.hero ul li.no-blend {
	mix-blend-mode: normal;
}

div.grid div {
	border: 1px white dashed;
	padding: 0rem 1rem 1rem 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.grid img {
	width: 100%;
	height: 100%;
}

.hero h2 a:hover span {
	text-decoration: 3px black wavy underline;
	text-underline-offset: 5px;
	color: red;
	transition-property: all;
	transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
	transition-duration: 250ms;
}

footer {
	display: flex;
	background: black;
	margin: 0;
	height: 100%;
	padding: 2rem;
}

footer > div {
	width: 100%;
	height: 100%;
}

footer .logo {
	width: 100%;
	height: 100%;
	justify-content: start;
	display: flex;
	align-items: center;
	color: red;
	padding: 1rem;
}

footer .grid {
	color: white;
	align-items: center;
	height: auto;
	width: 100%;
	display: flex;
}

footer .grid a {
	display: flex;
	justify-content: end;
	align-items: center;
	margin: 0;
	width: 100%;
	height: 100%;
}

footer .grid > div {
	padding: 0;
	border: 0px white dashed;
	height: 100%;
	display: flex;
	justify-content: end;
	width: 100%;
}

main .form {
	width: 100%;
	height: 75vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

form button {
	width: 100%;
	border-radius: 0.5rem;
	border: 1px red solid;
}

form button:hover {
	background: rgba(255, 0, 0, 0.7);
}

form div {
	width: 100%;
	display: flex;
	gap: 0.75rem;
	flex-direction: column;
}

form {
	width: 500px;
	padding: 4rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 1rem;
	border: 1px red dotted;
}

input,
textarea {
	height: 2.5rem;
	border-radius: 0.5rem;
	border: 1px hsl(20, 5.9%, 90%) solid;
	padding: 0.5rem 0.75rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
}

input::placeholder,
textarea::placeholder {
	color: grey;
}

.social {
	height: 75vh;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: 1rem;
}

#contact label {
	color: red;
}

/* Dark Mode  */
@media (prefers-color-scheme: dark) {
	body {
		background-color: #121212;
		color: white;
	}

	nav {
		background: rgba(30, 30, 30, 0.9);
		border-color: rgba(100, 100, 100, 0.5);
		box-shadow:
			0 10px 15px -3px rgb(0 0 0 / 0.3),
			0 4px 6px -4px rgb(0 0 0 / 0.3);
	}

	.logo {
		color: #ff4d4d;
	}

	ul li {
		background: rgba(50, 50, 50, 0.9);
		color: white;
		border-color: rgba(100, 100, 100, 0.5);
	}

	ul li:hover {
		background: rgba(200, 200, 200, 0.2);
		color: white;
	}

	button {
		background-color: rgba(50, 50, 50, 0.9);
		color: white;
		border-color: rgba(100, 100, 100, 0.5);
	}

	button:hover {
		background-color: rgba(100, 100, 100, 0.3);
	}

	canvas {
		background: rgba(255, 255, 255, 0.1);
		box-shadow: 0 8px 32px rgba(31, 38, 135, 0.1);
		border-color: rgba(255, 255, 255, 0.05);
	}

	.hero ul li {
		background-color: rgba(255, 255, 255, 0.8);
		mix-blend-mode: difference;
		color: black;
	}

	form {
		border-color: rgba(255, 0, 0, 0.5);
	}

	input,
	textarea {
		background-color: rgba(30, 30, 30, 0.9);
		color: white;
		border-color: rgba(100, 100, 100, 0.5);
	}

	input::placeholder,
	textarea::placeholder {
		color: rgba(200, 200, 200, 0.7);
	}

	footer {
		background: white;
		color: black;
	}

	footer .logo {
		color: red;
	}

	footer .grid {
		color: black;
	}

	.hero h2 a:hover span {
		text-decoration: 3px white wavy underline;
	}
}

@media screen and (max-width: 1024px) {
	h1 {
		font-size: 4rem;
	}

	h2 {
		font-size: 3rem;
	}

	p {
		margin: 0% 5%;
		font-size: 1.25rem;
		line-height: 1.5rem;
	}

	nav {
		margin: 0 2rem;
		padding: 0.5rem;
	}

	.hero ul li div {
		padding: 3rem;
	}

	.hero ul li div.grid {
		grid-template-columns: 1fr;
		padding: 0rem 3rem 3rem 3rem;
	}
}

@media screen and (max-width: 768px) {
	h1 {
		font-size: 3rem;
	}

	h2 {
		font-size: 2.5rem;
	}

	p {
		margin: 0% 2%;
		font-size: 1rem;
		line-height: 1.25rem;
	}

	header {
		position: fixed;
		bottom: 2rem;
		left: 0;
		right: 0;
		top: auto;
		margin: 0;
		z-index: 1000;
	}

	form {
		width: 90%;
		padding: 2rem;
	}

	.hero ul li div {
		padding: 1rem;
		flex-direction: column;
	}
	body > nav {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.5rem;
		padding: 1rem;
		margin-bottom: 2rem;
	}

	body > nav button {
		flex: 1 1 calc(33.333% - 0.5rem);
		max-width: calc(33.333% - 0.5rem);
		margin: 0.25rem;
		padding: 0.5rem;
		font-size: 0.75rem;
	}

	.visualizer {
		display: flex;
		justify-content: center;
		align-items: center;
		padding: 0 1rem;
	}

	canvas {
		width: 100% !important;
		height: auto !important;
		max-width: 100%;
		border-radius: 10px;
		margin: 0;
	}

	#status-message {
		text-align: center;
		padding: 0.5rem;
		font-size: 0.875rem;
		display: flex;
		align-items: center;
		justify-content: center;
	}
}
