.crt { margin: 1rem 0 1rem; box-shadow: var(--edge-highlight), var(--shadow-glow); 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) !important; 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; } } }