@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-color:#0b0f19;--bg-gradient:linear-gradient(135deg, #0b0f19 0%, #1a1b3c 100%);--text-primary:#e2e8f0;--text-secondary:#64748b;--accent-color:#8b5cf6;--accent-hover:#7c3aed;--type-correct:#10b981;--type-incorrect:#ef4444;--type-pending:#94a3b8;--caret-color:#f87171;--glass-bg:#1e293b66;--glass-border:#ffffff14;--glass-shadow:0 8px 32px 0 #0000005e;color:var(--text-primary);background:var(--bg-gradient);background-attachment:fixed;min-height:100vh;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{justify-content:center;align-items:flex-start;min-width:320px;min-height:100vh;margin:0;display:flex}#root{width:100%;max-width:1200px;margin:0 auto;padding:2rem}.code-font{font-family:JetBrains Mono,monospace}h1,h2,h3,h4{letter-spacing:-.025em;font-weight:700}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px}.btn{background:var(--accent-color);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s;display:inline-flex}.btn:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf64d}.btn:active{transform:translateY(0)}.btn-secondary{border:1px solid var(--glass-border);background:#ffffff1a}.btn-secondary:hover{box-shadow:none;background:#ffffff26}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.caret{background-color:var(--caret-color);vertical-align:middle;width:2px;height:1.2em;margin-left:-2px;animation:1s step-end infinite blink;display:inline-block;position:absolute}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:.5s ease-out forwards fadeInUp}.code-display-container{margin-bottom:2rem;padding:2rem;font-size:1.25rem;position:relative;overflow-x:auto}.code-content{white-space:pre-wrap;word-break:break-all;margin:0;position:relative}.char{transition:color .1s;position:relative}.char.pending{color:var(--type-pending)}.char.correct{color:var(--type-correct)}.char.incorrect{color:var(--type-incorrect);background-color:#ef444433;border-radius:2px}.caret{position:absolute;top:0;bottom:0;left:0}.end-caret{background-color:var(--caret-color);vertical-align:middle;width:2px;height:1.2em;animation:1s step-end infinite blink;display:inline-block;position:relative}.results-container{text-align:center;max-width:600px;margin:0 auto;padding:3rem}.results-container h2{color:var(--accent-color);text-shadow:0 0 10px #8b5cf680;margin-bottom:2rem;font-size:2rem}.stats-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:3rem;display:grid}.stat-card{border:1px solid var(--glass-border);background:#ffffff0d;border-radius:12px;padding:1.5rem;transition:transform .2s}.stat-card:hover{transform:translateY(-5px)}.stat-value{color:var(--text-primary);margin-bottom:.5rem;font-family:JetBrains Mono,monospace;font-size:3rem;font-weight:700;line-height:1}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;font-size:.875rem}.results-actions{justify-content:center;gap:1rem;display:flex}.typing-test-container{max-width:900px;margin:0 auto;position:relative}.controls{flex-direction:column;gap:1.25rem;margin-bottom:2rem;transition:opacity .3s;display:flex}.controls.disabled{opacity:.4;pointer-events:none}.control-group{align-items:center;gap:1rem;display:flex}.control-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;width:80px;font-size:.875rem;font-weight:600}.capsule-container{flex-wrap:wrap;gap:.5rem;display:flex}.capsule-badge{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;border-radius:9999px;padding:.35rem 1rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:all .2s}.capsule-badge:hover{color:var(--text-primary);background:#ffffff1a}.capsule-badge.active{background:var(--accent-color);color:#fff;border-color:var(--accent-hover);box-shadow:0 4px 12px #8b5cf64d}.test-header{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.badge-group{gap:.5rem;display:flex}.language-badge{background:var(--accent-color);color:#fff;text-transform:uppercase;letter-spacing:.05em;border-radius:9999px;padding:.25rem .75rem;font-size:.875rem;font-weight:600}.language-badge.category{background:#3b82f6}.test-header h2{color:var(--text-primary);flex-grow:1;margin:0;font-size:1.25rem}.header-actions{align-items:center;gap:1rem;display:flex}.icon-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.icon-btn:hover:not(:disabled){color:var(--accent-color);background:#8b5cf61a}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.progress,.timer-display{color:var(--accent-color);background:#8b5cf61a;border:1px solid #8b5cf633;border-radius:8px;padding:.25rem 1rem;font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:600}.hidden-input{opacity:0;z-index:-1;pointer-events:none;width:0;height:0;position:absolute;top:0;left:0}.start-prompt{text-align:center;color:var(--text-secondary);margin-top:1rem;font-style:italic;animation:2s infinite blink}.app-container{flex-direction:column;width:100%;min-height:100vh;display:flex}.app-header{text-align:center;margin-bottom:1.5rem}.logo{justify-content:center;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.logo-icon{background:#8b5cf61a;border:1px solid #8b5cf633;border-radius:12px;padding:.75rem}.app-header h1{letter-spacing:-.05em;margin:0;font-size:3rem;font-weight:800}.app-header .accent{color:var(--accent-color)}.subtitle{color:var(--text-secondary);font-size:1.125rem}.app-main{flex-direction:column;flex-grow:1;justify-content:flex-start;display:flex}.app-footer{text-align:center;color:var(--text-secondary);opacity:.7;padding:2rem 0;font-size:.875rem}
