/* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #0f172a; } ::-webkit-scrollbar-thumb { background: #334155; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #475569; } /* Animations */ @keyframes scanline { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } } .scanline-effect { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, transparent 50%, rgba(16, 185, 129, 0.02) 51%); background-size: 100% 4px; pointer-events: none; z-index: 50; } @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 10px rgba(16, 185, 129, 0.2); } 50% { box-shadow: 0 0 20px rgba(16, 185, 129, 0.6); } } .glow-active { animation: pulse-glow 2s infinite; } /* CRT Flicker Effect for text */ .crt-text { text-shadow: 0 0 2px rgba(255, 255, 255, 0.5); } /* Utility for Grid layout fallback */ .grid-fallback { display: grid; gap: 1.5rem; } /* Link active state */ .link-active { background-color: rgba(16, 185, 129, 0.1); color: #10b981; border-right: 3px solid #10b981; } /* Page Transitions */ .page-section { animation: fadeIn 0.4s ease-out forwards; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }