/* Base styles */ body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; line-height: 1.6; } /* Code display styling */ #codeDisplay { white-space: pre-wrap; color: #c9d1d9; background-color: #1e1e1e; font-family: 'Fira Code', 'Courier New', monospace; line-height: 1.5; tab-size: 2; } /* Typing area styling */ #typingArea { font-family: 'Fira Code', 'Courier New', monospace; line-height: 1.5; tab-size: 2; } /* Progress bar animation */ #progressFill { transition: width 0.3s ease; } /* Modal animations */ .modal-enter { opacity: 0; transform: scale(0.95); } .modal-enter-active { opacity: 1; transform: scale(1); transition: opacity 200ms, transform 200ms; } .modal-exit { opacity: 1; } .modal-exit-active { opacity: 0; transform: scale(0.95); transition: opacity 200ms, transform 200ms; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #2d3748; } ::-webkit-scrollbar-thumb { background: #4a5568; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #718096; } /* Leaderboard table styling */ #leaderboardBody tr:nth-child(even) { background-color: rgba(74, 85, 104, 0.2); } #leaderboardBody tr:hover { background-color: rgba(74, 85, 104, 0.4); } /* Active button styling */ .active-button { transform: scale(0.98); box-shadow: 0 0 10px rgba(59, 130, 246, 0.5); } /* Typing cursor */ .cursor { position: relative; } .cursor::after { content: ''; position: absolute; width: 2px; height: 1.2em; background: #3b82f6; animation: blink 1s infinite; right: -2px; top: 50%; transform: translateY(-50%); } @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } } /* Code highlighting */ .correct { color: #10b981; } .incorrect { color: #ef4444; text-decoration: underline; } .current { background-color: rgba(59, 130, 246, 0.2); border-radius: 2px; }