header {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-size: 4rem;
	padding: 90px 45px;
}

#rotator {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	height: calc(4rem);
}

#rotator span {
	flex: 1;
}

#rotator span.rotating {
	z-index: 1;
}

header .static {
	width: 100%;
	z-index: 2;
}

.rotating {
	color: var(--contentSecondary);
	position: relative;
	display: inline-block;
	height: calc(4rem * 2);
	line-height: calc(4rem * 2);
	text-align: left;
	animation: slide-in .6s ease forwards;
}

@keyframes slide-in {
	0% {
		top: 100%;
		opacity: 0;
	}
	100% {
		top: 0;
		opacity: 1;
	}
}

@keyframes slide-out {
	0% {
		top: 0; 
		opacity: 1;
	}
	100% {
		top: -100%;
		opacity: 0;
	}
}

main #grid {
	padding: 45px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
	gap: 45px;
}

main #grid.hidden {
	overflow: hidden;
}

main #grid .box {
	display: flex;
	flex-direction: column;
}

main #grid .box .background {
	aspect-ratio: 3 / 2;
	border-radius: 15px;
	overflow: hidden;
	position: relative;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}

main #grid .box .background img {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	object-fit: cover;
}

main #grid .box .description {
	display: flex;
	justify-content: space-between;
	padding: 10px;
	gap: 30px;
}

main #grid .box .description .name {
	font-size: 1.5rem;
}

main #grid .box .description .year {
	color: var(--contentSecondary);
	transform: translateY(0.3rem);
	font-size: 1.2rem;
}

main #overlay {
	opacity: 0;
	pointer-events: none;
	background-color: var(--surfaceBase);
	position: fixed;
	top: 0;
	left: 0;
	height: 100vh;
	width: 100vw;
	box-sizing: border-box;
	padding: 45px;
	display: flex;
	flex-direction: column;
	gap: 45px;
	overflow-y: scroll;
	z-index: 51;
	transition: background-color 400ms, opacity 150ms;
}

main #overlay.active {
	opacity: 1;
	pointer-events: initial;
	background-color: var(--surfaceMuted);
}

main #overlay .head {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

main #overlay .head .back {
	display: flex;
}

main #overlay .head .back svg {
	height: 3rem;
}

main #overlay .project {
	display: none;
	pointer-events: none;
}

main #overlay .project.active {
	display: flex;
}