.crt {
	margin: 1rem 0 1rem;
	box-shadow: 0 0 0 1px var(--primary-color-alpha), 0 2px 6px 2px var(--primary-color-alpha), 0 4px 24px 4px var(--primary-color-alpha);
	border-radius: var(--rounded-corner);
	background: radial-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.85)), var(--primary-color);

	pre {
		animation: flicker 0.25s alternate infinite;
		margin: unset;
		box-shadow: unset;
		background-color: unset !important;
		padding: 1rem 1rem;
		color: var(--primary-color) !important;
		text-shadow: var(--primary-color-alpha) 0 0 4px, var(--primary-color) 0 0 12px;

		@keyframes flicker {
			from {
				opacity: 1;
			}

			25% {
				opacity: 0.95;
			}

			50% {
				opacity: 0.85;
			}

			75% {
				opacity: 1;
			}

			to {
				opacity: 0.9;
			}
		}

		@media (prefers-reduced-motion) {
			animation: none;
		}
	}
}

.scanlines {
	position: relative;
	overflow: hidden;

	&::before {
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
		animation: scanlines 0.25s linear infinite;
		background: repeating-linear-gradient(to top, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.25) 1px, transparent 3px, transparent 4px);
		width: 100%;
		height: calc(100% + 0.5rem);
		pointer-events: none;
		content: "";

		@keyframes scanlines {
			from {
				transform: translateY(-0.5rem);
			}

			to {
				transform: translateY(0);
			}
		}

		@media (prefers-reduced-motion) {
			animation: none;
		}
	}

	&::after {
		display: block;
		position: absolute;
		bottom: 100%;
		left: 0;
		animation: scanline 5s linear infinite;
		background: linear-gradient(to top, transparent 0%, var(--primary-color-alpha) 10%, transparent 100%);
		width: 100%;
		height: 8rem;
		pointer-events: none;
		content: "";

		@keyframes scanline {
			from {
				bottom: 100%;
			}

			50% {
				bottom: 100%;
			}

			to {
				bottom: -8rem;
			}
		}

		@media (prefers-reduced-motion) {
			animation: none;
		}
	}
}

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

	@keyframes cursor-blink {
		from {
			opacity: 1;
		}

		50% {
			opacity: 0;
		}

		75% {
			opacity: 1;
		}
	}

	@media (prefers-reduced-motion) {
		animation: none;
	}
}
