/* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #F0EFEA; } ::-webkit-scrollbar-thumb { background: #E8E3D8; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #1A1A1A20; } /* Glass utility */ .glass-panel { background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(26, 26, 26, 0.06); } /* Animations */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } /* Reveal on scroll */ .reveal { opacity: 0; transform: translateY(24px); transition: all 0.6s ease-out; } .reveal.active { opacity: 1; transform: translateY(0); } /* Typing cursor for terminal */ .typing-cursor::after { content: '▋'; animation: blink 1s step-start infinite; color: #F6EB21; margin-left: 2px; } @keyframes blink { 50% { opacity: 0; } } /* Code / mono utility */ .font-mono { font-family: 'JetBrains Mono', monospace; } /* Suite chip selected state handled via JS classes, base transition here */ .suite-chip { user-select: none; } /* Smooth widths for progress bars */ .bar-animate { transition: width 1.2s cubic-bezier(0.4, 0, 0.2, 1); } /* Selection color */ ::selection { background: rgba(246, 235, 33, 0.25); color: #1A1A1A; }