Spaces:
Running
Running
| /* 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; | |
| } | |