* {
	border: var(--main-radius);
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

:root {
	--hue: 223;
	--bg: hsl(var(--hue), 10%, 90%);
	--fg: hsl(var(--hue), 10%, 10%);
	font-size: calc(16px + (24 - 16) * (100vw - 320px) / (1280 - 320));
}

body,
button {
	color: #000;
	font: 1em/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

body {
	background-color: var(--main-bg-color);
	height: 97vh;
	display: grid;
	place-items: center;
}

.progress-clock {
	display: grid;
	justify-content: center;
	align-content: center;
	position: relative;
	text-align: center;
	width: 16em;
	height: 16em;
}

.progress-clock__time-date,
.progress-clock__time-digit,
.progress-clock__time-colon,
.progress-clock__time-ampm {
	transition: color 0.2s linear;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
}

.progress-clock__time-date,
.progress-clock__time-digit {
	background: transparent;
}

.progress-clock__time-date,
.progress-clock__time-ampm {
	grid-column: 1 / 6;
}

.progress-clock__time-date {
	font-size: 0.75em;
	line-height: 1.33;
}

.progress-clock__time-digit,
.progress-clock__time-colon {
	font-size: 2em;
	font-weight: 400;
	grid-row: 2;
}

.progress-clock__time-colon {
	line-height: 1.275;
}

.progress-clock__time-ampm {
	cursor: default;
	grid-row: 3;
}

.progress-clock__rings {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
}

.progress-clock__ring {
	opacity: 0.1;
}

.progress-clock__ring-fill {
	transition:
		opacity 0s 0.3s linear,
		stroke-dashoffset 0.3s ease-in-out;
}

.progress-clock__ring-fill--360 {
	opacity: 0;
	stroke-dashoffset: 0;
	transition-duration: 0.3s;
}

[data-group]:focus {
	outline: transparent;
}

[data-units] {
	transition: opacity 0.2s linear;
}

[data-group="d"]:focus,
[data-group="d"]:hover {
	color: hsl(333, 90%, 55%);
}

[data-group="h"]:focus,
[data-group="h"]:hover {
	color: hsl(33, 90%, 55%);
}

[data-group="m"]:focus,
[data-group="m"]:hover {
	color: hsl(213, 90%, 55%);
}

[data-group="s"]:focus,
[data-group="s"]:hover {
	color: hsl(273, 90%, 55%);
}

[data-group]:focus~.progress-clock__rings [data-units],
[data-group]:hover~.progress-clock__rings [data-units] {
	opacity: 0.2;
}

[data-group="d"]:focus~.progress-clock__rings [data-units="d"],
[data-group="d"]:hover~.progress-clock__rings [data-units="d"],
[data-group="h"]:focus~.progress-clock__rings [data-units="h"],
[data-group="h"]:hover~.progress-clock__rings [data-units="h"],
[data-group="m"]:focus~.progress-clock__rings [data-units="m"],
[data-group="m"]:hover~.progress-clock__rings [data-units="m"],
[data-group="s"]:focus~.progress-clock__rings [data-units="s"],
[data-group="s"]:hover~.progress-clock__rings [data-units="s"] {
	opacity: 1;
}

/* Dark theme */
@media (prefers-color-scheme: dark) {
	:root {
		--bg: hsl(var(--hue), 10%, 10%);
		--fg: hsl(var(--hue), 10%, 90%);
	}

	.progress-clock__ring {
		opacity: 0.2;
	}
}