@import url('https://fonts.googleapis.com/css2?&family=Geist+Mono:wght@100..900&family=Geist:wght@100..900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');

/*@font-face {
	font-family: "Geist";
	src: url("./fonts/Geist.ttf") format("ttf");
	font-weight: normal;
	font-style: normal;
}*/

:root {
	--bg: #090914;
	--fg: #F1E8E4;
}

html, body {
	overflow: hidden;
	height: 100dvh;
	margin: 0;
	padding: 0;

	position: fixed;
	width: 100dvw;
	overscroll-behavior: none;
}

p {
	margin: 0;
}

* {
	user-select: none;
	transition: opacity ease-in 0.5s;
}

.invisible * {
	opacity: 0;
}

body {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	height: 100dvh;
	padding: 0.5rem;

	box-sizing: border-box;

	background: linear-gradient(0deg, #090914, #1b0d51);
	color: var(--fg);
	font-family: "Geist", "Inter", sans-serif;
}

nav {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;

	> * {
		align-self: center;
	}

	h1 {
		font-size: 1rem;
		line-height: 1rem;
		margin: 0;
	}

	img {
		justify-self: center;
		height: 12.79px;
	}

	span {
		justify-self: end;
		text-align: right;
		margin: 0;
	}
}

main {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	grid-template-rows: 1fr 1fr 1fr;
	gap: 1rem;

	height: 100%;

	> a {
		display: flex;
		flex-direction: column;
		justify-content: end;
		text-decoration: none;

		border: .25rem solid var(--fg);
		padding: 0.5rem;
	}

	> a:hover {
		background-color: var(--fg);
		
		p {
			color: var(--bg);
		}
	}

	a:focus {
		outline: .25rem solid var(--fg);
		outline-offset: .125rem;

		border-color: #CF0C4D;
	}

	.project-title {
		font-size: 2rem;
		letter-spacing: -0.1rem;
		color: var(--fg);
	}

	.project-description {
		font-size: 1rem;
		color: var(--fg);
	}

	#zxcv {
		grid-column: 1 / 3;
	}

	p#slogan {
		position: absolute;
		z-index: 1;
		bottom: 0;
		right: 1vw;
		width: 100%;

		text-align: center;
		letter-spacing: -1.5vw;
		font-size: 17vw;
		line-height: .95;
	}

	#background-shines {
		position: absolute;
		bottom: -7.5vw;
		left: 0;
		width: 115vw;
		left: 50%;
		transform: translateX(-50%);

		filter: blur(5vw);
	}

	p#slogan, #background-shines {
		pointer-events: none;
	}

	.misc {
		height: 100%;

		display: flex;
		flex-direction: column;
		gap: .25rem;
		justify-content: end;
	}

	#email {
		text-decoration: underline;
		cursor: pointer;
	}
}

canvas#screen-canvas {
	position: absolute;
	z-index: 2;
	pointer-events: none;

	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}

@media (width < 1240px) {
	html {
		font-size: 11px;
	}

	nav {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr 1fr;

		gap: 1rem;

		img {
			grid-row: 1 / 2;
			grid-column: 1 / 3;

			height: 8px;

			transform: scaleX(calc((100vw - 2rem) / 192px));
		}

		h1, span {
			grid-row: 2 / 3;

			align-self: flex-start;
		}
	}

	main {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
	}
}

/*@media (width < 1240px), (min-aspect-ratio: 1.5) {
	main > a {
		display: none;
	}
}*/