:root {
	-webkit-text-size-adjust: none;
	font-family: "Miriam Libre";
	font-size: 100%;
	line-height: 1.4;	
}

* {
	box-sizing: border-box;
}

input, select {
	font-family: inherit;
}

button {
	background: none;
	border: none;
	cursor: pointer;
	outline: none;
}

article {
	max-width: 640px;
	height: calc( 100vh - 5em );
	margin: 1em auto 4em;
	padding: 0 1em;
	font-size: clamp( 24px, 6vw, 64px );
	display: grid;
	place-content: center;
}

label {
	position: relative;
	white-space: nowrap;
}

select {
	position: absolute;
	opacity: 0;
	visibility: hidden;
	top: -1rem;
	right: 50%;
	transform: translateX( 50% );
}

aside {
	position: fixed;
	bottom: -100%;
	left: 0;
	right: 0;
	padding: 1em;
	max-height: 80vh;
	overflow: hidden auto;
	background-color: rgba(249, 220, 103, 0.92);
	z-index: 1000;
	display: flex;
	align-items: flex-end;
	transition: bottom 250ms;
}

body.settings-active aside {
	bottom: 0;
}

aside section {
	flex: 1;
}

aside ul {
	list-style: none;
	padding: 0;
	max-width: 240px;
	margin: 0 auto;
}

aside input {
	display: block;
	max-width: 240px;
	width: 100%;
	margin: 0.5em auto;
	font-size: 1.3em;
}

aside ul li {
	line-height: 1.5;
}

aside ul li button {
	display: none;
}

aside ul li:hover button {
	display: inline-block;
	font-size: 0.8em;
	margin-inline-end: .25em;
}

.label-text {
	font-weight: bold;
}

.refresh {
	position: fixed;
	bottom: 1em;
	left: 0; right: 0;
	text-align: center;
}

.refresh button {
	font-size: 2em;
}

[data-locked=true] .label-text {
	font-weight: normal;
}

.settings-button {
	position: absolute;
	top: 20px; left: 20px;
	font-size: 2em;
}

.settings-button:before {
	content: "🧠";
}

body.settings-active .settings-button:before {
	content: "⬇️";
}

body.alt-down .settings-button:before {
	content: "💣";
}

@media ( hover: hover ) {
	label:hover select {
		opacity: 1;
		visibility: visible;
	}
}

@media ( hover: none ) {
	select {
		visibility: visible;
		top: 0;
	}
	article label span {
		pointer-events: none;
	}
}

@media screen and (max-width: 640px) {
	aside {
		display: block;
		max-height: 60vh;
	}
}