@font-face {
	font-family: "Montserrat";
	src: url("/fonts/montserrat-cyrillic-400-normal.woff2") format("woff2"), url("/fonts/montserrat-cyrillic-400-normal.woff") format("woff");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@keyframes pulse {
	0%,
	100% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.15);
	}
}

body {
	margin: 0;
	height: 100vh;
	display: grid;
	place-items: center;
	background-color: black;
	font-weight: 400;
	font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

.viewport {
	width: 100vw;
	height: 100vh;
	display: grid;
	place-items: center;
	overflow: hidden;
}
.viewport .clock-wrapper {
	position: relative;
	--u: calc(var(--size) / 11);
}
.viewport .clock-wrapper .clock-center {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.clock {
	display: grid;
	grid-template-columns: repeat(11, 1fr);
	font-size: calc(var(--u) * 0.55);
	gap: calc(var(--u) * 0.25);
	letter-spacing: 0.06em;
}

.letter {
	color: rgba(255, 255, 255, 0.15);
	transition: color 0.5s, text-shadow 0.5s;
}
.letter.active {
	color: #fff;
	text-shadow: 0 0 12px rgba(255, 255, 255, 0.75);
}

.corner {
	position: absolute;
	width: calc(var(--u) * 0.1);
	height: calc(var(--u) * 0.1);
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.15);
	box-shadow: 0 0 2px rgba(255, 255, 255, 0.15);
	transition: background 0.5s ease, box-shadow 0.5s ease, transform 0.5s ease;
}
.corner.active {
	background: #fff;
	box-shadow: 0 0 16px 1px white;
	transform: scale(1.2);
	animation: pulse 1s ease-in-out infinite;
}
.corner.tl {
	top: calc(var(--u) * 0.5);
	left: calc(var(--u) * 0.1);
}
.corner.tr {
	top: calc(var(--u) * 0.5);
	right: calc(var(--u) * 0.1);
}
.corner.br {
	bottom: calc(var(--u) * 0.55);
	right: calc(var(--u) * 0.1);
}
.corner.bl {
	bottom: calc(var(--u) * 0.5);
	left: calc(var(--u) * 0.1);
}
