.crt { margin: 1rem 0 1rem; box-shadow: var(--edge-highlight), 0 0 0 0.0625rem var(--primary-color-alpha), 0 0.125rem 0.375rem 0.125rem var(--primary-color-alpha), 0 0.25rem 1.5rem 0.25rem 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: 0; box-shadow: none; background-color: transparent !important; padding: 1rem 1rem; color: var(--primary-color) !important; text-shadow: var(--primary-color-alpha) 0 0 0.25rem, var(--primary-color) 0 0 0.75rem; @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) 0.0625rem, transparent 0.1875rem, transparent 0.25rem); 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; } }