.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(rgb(0 0 0 / 0.7), rgb(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 { 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 { display: block; position: absolute; animation: scanline 5s linear infinite; inset: 0; background-image: linear-gradient( to bottom, transparent, var(--primary-color-alpha) 7rem, transparent 8rem ); background-size: auto 8rem; background-repeat: no-repeat; background-position-y: -8rem; pointer-events: none; content: ""; @keyframes scanline { 50%, to { background-position-y: calc(100% + 8rem); } } } } .cursor { animation: cursor-blink 1s infinite; @keyframes cursor-blink { 50% { opacity: 0; } } }