* {
	user-select: none;
	-webkit-user-select: none;
}

html {
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	position: fixed;
}

body {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	margin: 0;
	background-color: #f0f0f0;
	touch-action: none;
}

.piano {
	display: flex;
	height: 100%;
	width: 100%;
	background-color: lightgray;
}

.white-key,
.black-key {
	display: flex;
}

.white-key {
	background-color: white;
	box-sizing: border-box;
	flex-grow: 1;
	border: 1px solid black;
}

.white-key.active {
	background-color: rgb(230, 230, 230, 1.0);
}

.black-key {
	background-color: black;
	position: relative;
	z-index: 1;
}

.black-key.active {
	background-color: rgb(40, 40, 40, 1.0);
}

@media (min-aspect-ratio: 1/1) {
	.piano {
		flex-direction: row;
	}

	.white-key,
	.black-key {
		justify-content: center;
		align-items: end;
	}

	.white-key {
		height: 100%;
	}

	.black-key {
		width: 4vw;
		height: 70%;
		margin: 0 -2vw;
	}
}

@media (max-aspect-ratio: 1/1) {
	.piano {
		flex-direction: column-reverse;
	}

	.white-key,
	.black-key {
		justify-content: end;
		align-items: center;
	}

	.white-key {
		width: 100%;
	}

	.black-key {
		width: 70%;
		height: 4vh;
		margin: -2vh 0;
	}
}

.label {

	position: absolute;
	z-index: 2;
	
	font-family: sans-serif;
	margin: 10px;
	text-align: center;
}

.black-key>.label {
	color: rgb(120, 120, 120, 1.0);
}

.white-key>.label {
	color: rgb(180, 180, 180, 1.0);
}