.crt {
	margin: 1rem 0 1rem;
	box-shadow:
		var(--edge-highlight),
		0 0 0 0.0625rem var(--accent-color-alpha),
		0 0.125rem 0.375rem 0.125rem var(--accent-color-alpha),
		0 0.25rem 1.5rem 0.25rem var(--accent-color-alpha);
	border-radius: var(--rounded-corner);
	background-image: radial-gradient(color-mix(in srgb, var(--accent-color) 30%, black),
			color-mix(in srgb, var(--accent-color) 10%, black) 80%,
			color-mix(in srgb, var(--accent-color) 5%, black));

	pre {
		--text-shadow-1: hsl(from var(--accent-color) h s l / 0.5);
		--text-shadow-2: hsl(from var(--accent-color) h calc(s * 2) l);
		animation: flicker 0.25s alternate infinite;
		margin: 0;
		box-shadow: none;
		background-color: transparent !important;
		padding: 1rem 1rem;
		color: var(--accent-color);
		text-shadow:
			var(--text-shadow-1) 0 0 0.25rem,
			var(--text-shadow-2) 0 0 0.75rem;

		@keyframes flicker {
			25% {
				opacity: 0.95;
			}

			50% {
				opacity: 0.85;
			}

			75% {
				opacity: 1;
			}

			to {
				opacity: 0.9;
			}
		}
	}
}

.scanlines {
	position: relative;
	overflow: hidden;

	&::before {
		display: block;
		position: absolute;
		z-index: 1;
		animation: scanlines 0.1s linear infinite;
		inset: 0;
		background-image: repeating-linear-gradient(to bottom,
				rgb(0 0 0 / 0.25),
				rgb(0 0 0 / 0.25) 0.125rem,
				transparent 0.125rem,
				transparent 0.25rem);
		pointer-events: none;
		content: "";

		@keyframes scanlines {
			to {
				background-position-y: 0.25rem;
			}
		}
	}

	&::after {
		--scanline-color: rgb(from var(--accent-color) r g b / 0.05);
		display: block;
		position: absolute;
		animation: scanline 5s linear infinite;
		inset: 0;
		background-image: linear-gradient(
			to bottom,
			transparent,
			var(--scanline-color) 16rem);
		background-size: auto 16rem;
		background-repeat: no-repeat;
		background-position-y: -16rem;
		pointer-events: none;
		content: "";

		@keyframes scanline {
			to {
				background-position-y: calc(100% + 16rem);
			}
		}
	}
}

.cursor {
	animation: cursor-blink 1s infinite;

	@keyframes cursor-blink {
		50% {
			opacity: 0;
		}
	}
}
