* {
	box-sizing: border-box;
}

html,
body {
	font-family: sans-serif;
}

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

main {
	padding: 0 8px;
}

.list {
	padding: 0;
	display: grid;

	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));

	gap: 16px;
}

.card {
	/* transform: skew(14deg); */
	aspect-ratio: 1;
	border: 1px solid currentColor;
	padding: 32px;
	font-stretch: 50%;

	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;

	font-size: 32px;
	text-align: center;
}

.card:hover {
	background-color: grey;
}

.card > * {
	/* transform: skew(-28deg); */
}

.card svg {
	width: 32px;
	height: 32px;
}

.card .instrument svg {
	padding: 32px;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.card img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.card .overlay {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	vertical-align: middle;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: grey;
	opacity: 0;
}

.card .overlay:hover {
	opacity: 1;
}

.card .title {
	font-weight: normal;
}

@media (max-width: 767px) {
	header {
		display: block;
		font-size: 28px;
	}

	header .title {
		display: inline;
		font-size: 28px;
	}

	.search {
		margin-top: 16px;
		display: block;
	}

	.search input {
		font-size: 28px;
	}
}
