:root{--bg-color: #323437;--main-color: #e2b714;--caret-color: #e2b714;--sub-color: #646669;--text-color: #d1d0c5;--error-color: #ca4754;--error-extra-color: #791717;--colorful-error-color: #ca4754;--colorful-error-extra-color: #791717}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-color);font-family:Roboto Mono,JetBrains Mono,monospace;min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}#root{width:100%;max-width:1000px;padding:2rem;display:flex;justify-content:center;align-items:center}.app-container{width:100%;display:flex;flex-direction:column;gap:2rem}.typing-area{position:relative;width:100%}.typing-container{position:relative;font-size:1.8rem;line-height:2.5rem;-webkit-user-select:none;user-select:none;word-break:break-word;outline:none;color:var(--sub-color);text-align:left}.word-wrapper{display:inline-flex;flex-wrap:wrap;gap:.5rem;color:var(--sub-color)}.letter{position:relative}.letter.correct{color:var(--text-color)}.letter.incorrect{color:var(--error-color);border-bottom:1px solid var(--error-color)}.caret{position:absolute;width:2px;height:1.5rem;background-color:var(--caret-color);display:inline-block;animation:blink 1s infinite;transition:all .1s ease;pointer-events:none}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hidden-input{position:absolute;top:0;left:-9999px;pointer-events:none;opacity:0}.timer{color:var(--main-color);font-size:1.5rem;margin-bottom:1rem;opacity:0;transition:opacity .3s;display:flex;gap:1rem;align-items:center}.live-wpm{font-size:1.2rem;color:var(--sub-color)}.timer.active{opacity:1}.mode-toggle{display:flex;gap:1rem;margin-right:auto}.mode-toggle span{cursor:pointer;color:var(--sub-color);transition:color .2s}.mode-toggle span.active{color:var(--main-color)}.mode-toggle span:hover{color:var(--text-color)}.results-container{display:flex;flex-wrap:wrap;gap:3rem;justify-content:center;align-items:center;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stat-box{display:flex;flex-direction:column}.stat-label{color:var(--sub-color);font-size:1.2rem}.stat-value{color:var(--main-color);font-size:4rem;font-weight:700}.stat-box-small{display:flex;flex-direction:column}.stat-value-small{color:var(--text-color);font-size:2rem}.restart-btn{margin-top:2rem;background:none;border:none;color:var(--sub-color);font-family:inherit;font-size:1.2rem;cursor:pointer;transition:color .2s;width:100%}.restart-btn:hover{color:var(--text-color)}.auth-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:100}.auth-modal{background:var(--bg-color);padding:2rem;border-radius:8px;width:100%;max-width:400px;display:flex;flex-direction:column;gap:1.5rem}.auth-modal h2{color:var(--main-color)}.auth-modal form{display:flex;flex-direction:column;gap:1rem}.auth-modal input{background:#2c2e31;border:none;padding:.8rem;color:var(--text-color);border-radius:4px;font-family:inherit}.auth-btn{background:var(--main-color);color:var(--bg-color);border:none;padding:.8rem;border-radius:4px;cursor:pointer;font-weight:700}.auth-switch{text-align:center;color:var(--sub-color);cursor:pointer;font-size:.9rem}.auth-error{color:var(--error-color);font-size:.9rem}.close-btn{background:none;border:none;color:var(--sub-color);cursor:pointer}.nav{position:fixed;top:1rem;right:1rem;display:flex;gap:1rem;color:var(--sub-color)}.nav-item{cursor:pointer}.nav-item:hover{color:var(--text-color)}.leaderboard-container{width:100%;max-width:800px;display:flex;flex-direction:column;gap:2rem;animation:fadeIn .5s ease}.leaderboard-container h1{color:var(--main-color);font-size:1.5rem}.leaderboard-table{width:100%;border-collapse:collapse;text-align:left}.leaderboard-table th{color:var(--sub-color);padding:1rem;border-bottom:2px solid var(--sub-color)}.leaderboard-table td{padding:1rem;border-bottom:1px solid #2c2e31}.leaderboard-table tr:hover{background:#ffffff0d}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
