* {
	margin: 0;
	padding: 0;
}

body {
	font-family: Verdana, sans-serif;
	padding: 1em;
	display: flex;
	flex-direction: column;
	gap: 1em;
	justify-content: center;
	align-items: center;
	text-align: center;
	max-width: 50em;
	margin: 0 auto;
}

h1, h3 {
	background: #ddf;
	border-radius: .5em;
	padding: .5em;
	margin: 2rem 0;
}

fieldset {
	border: 1px solid #999;
	border-radius: .5em;
	padding: 1em;
	text-align: center;
}

legend {
	padding: 1rem;
	font-size: 1.2em;
}

input, button {
	border-radius: .5em;
	border: none;
	box-shadow: 0px 0px 5px #666;
	padding: .5rem;
	font-size: 1.2em;
	transition: box-shadow .2s;
}

input:focus, button:focus {
	outline: none;
	box-shadow: 0px 0px 5px 2px orange;
}

dl dt {
	font-weight: bold;
}

dl {
	display: flex;
	flex-direction: column;
	gap: 1em;
	justify-content: center;
	align-items: center;
}

#progress {
	display: none;
}

button {
	font-size: 1.3em;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #ffc;
	color: #000;
}

button:hover {
	color: darkred;
	background: #fee;
	text-decoration: underline;
	box-shadow: 0px 0px 5px 2px orange;
}

button svg {
	width: 64px;
	margin-top: .5rem;
}

progress[value] {
	appearance: none;
	border: none;
	width: 30em;
	height: 20px;
	background-color: #ddd;
	border-radius: 3px;
	box-shadow: 0 2px 3px rgba(0,0,0,.5) inset;
	position: relative;
}

progress[value]::-webkit-progress-bar {
	background-color: #ddd;
	border-radius: 3px;
	box-shadow: 0 2px 3px rgba(0,0,0,.5) inset;
}

progress[value]::-webkit-progress-value {
	position: relative;
	background-size: 35px 20px, 100% 100%, 100% 100%;
	border-radius:3px;
	background-image:
	linear-gradient(135deg, transparent, transparent 33%, rgba(0,0,0,.1) 33%, rgba(0,0,0,.1) 66%, transparent 66%),
	linear-gradient(to top, rgba(255, 255, 255, .25), rgba(0,0,0,.2)),
	linear-gradient(to right, #0c9, #f44);
}

p.help {
	color: #666;
	font-size: .8em;
	margin: 2em auto;
	max-width: 25em;
}

p.help strong {
	font-size: 1rem;
	color: #333;
}

.check {
	display: flex;
}

.check label {
	display: block;
	padding: .5rem;
	background: #eee;
	margin: .2rem;
	border-radius: .5em;
	cursor: pointer;
}

#log {
	overflow: auto;
	color: #666;
	font-size: .8em;
	max-height: 15em;
	background: #eee;
	padding: .5em;
	text-align: left;
}

#log table {
	width: 100%;
	border-collapse: collapse;
}

details {
	margin: 2em 0;
}

#log table td {
	padding: .1em .3em;
}

#msg {
	margin: 1em 0;
	color: darkred;
	font-size: 1.2em;
	background: #fee;
	padding: .5rem;
	border: 2px solid darkred;
	border-radius: .5em;
	display: none;
}