@font-face {
	font-family: pixel;
	src: url(/assets/fonts/thin.ttf);
	size-adjust: 80%;
}

body {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 64px;
	color: var(--black);
	font-family: mspgothic;
	text-shadow: 0 0 0.25em #f2eff2;
	background:
		radial-gradient(closest-side circle at 64%, #d2daf7, transparent),
		url(assets/clouds.png) center / cover,
		repeating-radial-gradient(circle at calc(50% - 294.5px) 50%, #faedd8, #d9dbfb, #cfe7f5, #e5f4fc, #faedd8 33%);
	min-height: 100vh;
	box-sizing: border-box;
}

/* index */

#index {
	--padding: 25px;
	background: url(assets/disc.png) center / cover var(--black);
	width: 500px;
	height: 500px;
	box-sizing: border-box;
	margin-left: -125px;
	box-shadow:
		-8px 8px var(--black),
		16px 16px 64px -32px #cfe7f5;
	border-radius: 50%;
	flex-shrink: 0;
	position: relative;
	contain: size;

	&::before {
		content: "from one box, you unearth a flimsy case; inside, a dusty compact disc, scratched all over. it seems to have been well-used in its time. tucked under the rim of the case, you find a scrap of paper, reading: \"jummbox works... i sure hope it does! bahaha\".";
		color: #d2daf7;
		text-shadow: 0 0 2em;
		font-family: serif;
		font-style: italic;
		letter-spacing: 0.1em;
		max-width: 17.5%;
		opacity: 0.75;
		z-index: -1;
		position: fixed;
		left: 32px;
		top: calc(100vh - 535px);
	}

	&::after {
		content: "";
		display: block;
		background: url(assets/case.png) center / cover;
		width: 500px;
		height: calc(500px * 511 / 579);
		box-shadow: 8px -8px var(--black);
		rotate: 8deg;
		z-index: -1;
		position: fixed;
		left: -50px;
		bottom: -50px;
	}

	ul {
		list-style-type: none;
	}
}

#search, #index a, .index-year {
	width: calc(50% - 32px);
	box-sizing: border-box;
	padding-inline: 77px 25px;
	transform-origin: -32px;
	translate: 0 -50%;
	position: absolute;
	left: calc(50% + 32px);
	top: 50%;
}

#search {
	font: italic 0.875em serif;
	letter-spacing: 0.05em;
}

#index a {
	display: block;
	text-overflow: ellipsis;
	white-space: nowrap;
	padding-block: 0.125em;
	overflow: hidden;
	transition: background-color 0.5s;

	&:hover {
		background-color: #f2eff280;
		box-shadow: 0 0 4px #f2eff2;
		transition: background-color 0.125s;
	}
}

.index-year {
	color: rgb(from currentcolor r g b / 0.75);
	font-size: 1em;
	font-family: pixel;
	padding-top: 1em;
}

.scroll-hidden, .search-hidden {
	display: none !important;
}

/* tracks */

#tracks {
	width: 100%;
	max-width: 400px;
	max-height: 400px;
	box-sizing: border-box;
	padding-inline: 1em;
	overflow: hidden auto;

	> header, > nav {
		color: #c2b8f7;
		font-family: serif;
		font-style: italic;
		text-align: center;
		text-shadow: 0 0 2em;
		letter-spacing: 0.125em;

		p {
			margin-block: 0.25em;
		}
	}

	> nav {
		padding-block: 0.25em;
		border-block: 1px solid #d2daf7;
		margin-block: 2em;

		a {
			text-decoration: underline;
			margin-inline: 0.5em;
			&[rel="prev"]::before {content: "← "}
			&[rel="next"]::after {content: " →"}
		}
	}

	article {
		contain: inline-size layout paint style;
		margin-block: 2em;

		header {
			display: grid;
			grid-template-columns: auto 1fr;
			align-items: center;
			column-gap: 0.5em;
			margin-bottom: 0.5em;
			/* z-index: 1;
			position: relative; */
		}

		h2 {
			font: bold 1.5em / 1 sans-serif;
			width: 66.67%;
			transform-origin: left;
			background-image: radial-gradient(75% 50% at left, #faedd880, transparent);
			scale: 1.5 1;
			grid-column: 1 / 3;
		}

		iframe {
			background-color: var(--black);
		}
		
		iframe, audio {
			text-shadow: none;
			width: 100%;
			border-radius: 6px;
		}

		p {
			background: url(assets/scrap.png) no-repeat bottom / 100%;
			padding: 0.5em 1em;
			margin-block: 0;
		}
	}
}

h1 {
	font-size: 2em;
	scale: 1.5 1;
	letter-spacing: 0.125em;
}

.track-tags, .track-date {
	font-family: pixel;
	margin-block: -0.33rem 0;
}

.track-tags {
	display: flex;
	align-items: center;
	gap: 0.25em;
	list-style-type: none;
	padding-left: unset;

	li {
		color: color-mix(in srgb, currentcolor, #cbbaf3 25%);
		text-shadow: none;
		background-color: #cbbaf3c5;
		padding: 0.125em 0.5em;
		border-radius: 1em;
		image-rendering: pixelated;

		&::before {content: "#"}
	}
}

/* queries */

@media (max-width: 900px) {
	body {
		flex-direction: column;
		overflow-x: hidden;
		contain: inline-size;
	}

	#index {
		margin-left: -250px;
		&::before, &::after {content: unset}
	}

	#tracks {
		max-height: unset;
	}
}

@media (scripting: none) {
	#index {
		ul {
			display: block;
			height: 60%;
			padding-left: 0;
			margin: 20%;
			overflow: hidden auto;
			background-image: radial-gradient(closest-side, #f2eff2 67%, transparent);
		}

		a {
			width: unset;
			padding: 0.25em 0.5em;
			translate: unset;
			position: unset;
		}
	}

	#search {
		display: none;
	}
}