* {
	box-sizing: border-box;
}
html, body {
	display: flex;
	flex-direction: column;
	justify-content: stretch;
	overflow: hidden;
	height: 100%;
	margin: 0;
}
#app {
	position: relative;
	display: flex;
	flex: 1;
	justify-content: center;
	background: #316;
}
#app > canvas {
	position: absolute;
	width: 100%;
	height: 100%;
	image-rendering: pixelated;
}

#enable-sound {
	width: 24px;
	height: 24px;
	vertical-align: middle;
}

#settings-panel {
	transition: all 1000ms;
	opacity: 0.2;
	transform-origin: top right;
	transform: scale(0.25);
}
#settings-panel:hover, #settings-panel.open {
	transition: all 250ms;
	opacity: 1.0;
	transform: scale(1.0);
}

#settings-panel {
	position: fixed;
	top: 0.5em;
	right: 0.5em;
	width: 250px;
	z-index: 1000;
	color: #fff;
	font-family: sans-serif;
	background: rgba(0, 0, 0, 0.8);
	border-radius: 4px;
	padding: 1em;
	display: flex;
	flex-direction: column;
}
#settings-panel ul {
	padding: 0;
	margin: 0;
	list-style: none;
	line-height: 1.5em;
}
#settings-panel hr {
	width: 100%;
	border: 1px solid #333;
}
#settings-panel button {
	margin-bottom: 0.5em;
	padding: 0.5em;
	font: inherit;
	font-size: 1em;
}
#settings-panel a {
	color: inherit;
	margin-bottom: 0.5em;
}
#settings-panel label {
	user-select: none;
	display: block;
}
#settings label input,
#settings label select {
	width: 5em;
	margin: 0;
}
#settings-panel label input[type="checkbox"] {
	text-align: right;
	background: red;
}
#settings-panel label input[type="number"] {
	text-align: right;
}
#settings-panel label + label {
	margin-top: 0.3em;
}
#settings-panel p {
	margin: 0 0 0.3em 0;
}
#settings-panel #fps {
	margin-top: 0.5em;
}

#settings-panel button#toggle-settings {
	position: absolute;
	top: 0.5em;
	right: 0.5em;
	border-radius: 50%;
	width: 32px;
	height: 32px;
	padding: 0;
	line-height: 32px;
	overflow: hidden;
	color: #fff;
	background: transparent;
	border: 0;
	cursor: pointer;
}
#settings-panel button#toggle-settings:hover {
	background: #333;
}
