*{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0;padding:0}body,html{color:#f0f2f8}.alphabetype-root,body,html{background-color:#0f1117;min-height:100vh}.alphabetype-root{display:flex;flex-direction:column}.navbar{background-color:#1a1d27;border-bottom:1px solid #2e3346;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:1rem 2rem}.navbar,.navbar .nav-brand{align-items:center;display:flex}.navbar .nav-brand{cursor:pointer;gap:.75rem}.navbar .nav-brand .brand-logo{background:linear-gradient(135deg,#3b82f6,#22c55e);border-radius:6px;color:#fff;font-size:1.1rem;font-weight:800;letter-spacing:1px;padding:.3rem .6rem}.navbar .nav-brand .brand-title{color:#f0f2f8;font-size:1.35rem;font-weight:700;letter-spacing:-.5px}.navbar .nav-links{align-items:center;display:flex;gap:.75rem}.navbar .nav-links .nav-btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:8px;color:#94a3b8;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:.5rem;padding:.5rem 1rem;transition:all .2s ease}.navbar .nav-links .nav-btn:hover{background-color:#ffffff0d;color:#f0f2f8}.navbar .nav-links .nav-btn.active{background-color:#3b82f61a;border-color:#3b82f64d;color:#3b82f6}.navbar .nav-auth{align-items:center;display:flex}.navbar .nav-auth .google-signin-btn{background-color:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.55rem 1.1rem;transition:background-color .2s ease}.navbar .nav-auth .google-signin-btn:hover{background-color:#1469f4}.navbar .nav-auth .user-profile{align-items:center;background-color:#ffffff0a;border:1px solid #2e3346;border-radius:20px;display:flex;gap:.75rem;padding:.35rem .85rem}.navbar .nav-auth .user-profile .avatar{border-radius:50%;height:28px;object-fit:cover;width:28px}.navbar .nav-auth .user-profile .avatar-placeholder{align-items:center;background-color:#3b82f6;border-radius:50%;color:#fff;display:flex;font-size:.85rem;font-weight:800;height:28px;justify-content:center;width:28px}.navbar .nav-auth .user-profile .user-name{color:#f0f2f8;font-size:.9rem;font-weight:600}.navbar .nav-auth .user-profile .signout-btn-full{align-items:center;background-color:#ef44441f;border:1px solid #ef44444d;border-radius:8px;color:#ef4444;cursor:pointer;display:flex;font-size:.825rem;font-weight:700;gap:.4rem;margin-left:.25rem;padding:.35rem .75rem;transition:all .2s ease}.navbar .nav-auth .user-profile .signout-btn-full .signout-icon{font-size:.85rem}.navbar .nav-auth .user-profile .signout-btn-full:hover{background-color:#ef4444;border-color:#ef4444;color:#fff}.main-content{flex:1 1;margin:0 auto;max-width:1000px;padding:2.5rem 1.5rem;width:100%}.practice-view{align-items:center;display:flex;flex-direction:column;gap:2rem}.practice-view .timer-header{align-items:center;display:flex;gap:3rem;justify-content:center;width:100%}.practice-view .timer-header .stat-card{align-items:center;background-color:#1a1d27;border:1px solid #2e3346;border-radius:12px;display:flex;flex-direction:column;min-width:170px;padding:1.25rem 2rem}.practice-view .timer-header .stat-card .stat-label{color:#94a3b8;font-size:.75rem;font-weight:700;letter-spacing:1px;margin-bottom:.35rem}.practice-view .timer-header .stat-card .stat-value{color:#f0f2f8;font-family:monospace;font-size:2.2rem;font-weight:800}.practice-view .timer-header .reset-btn{align-items:center;background-color:#1a1d27;border:1px solid #2e3346;border-radius:50%;color:#94a3b8;cursor:pointer;display:flex;font-size:1.3rem;height:56px;justify-content:center;transition:all .2s ease;width:56px}.practice-view .timer-header .reset-btn:hover{border-color:#94a3b8;color:#f0f2f8;transform:rotate(180deg)}.practice-view .instruction-box{background-color:#ffffff05;border:1px dashed #2e3346;border-radius:10px;padding:1rem 1.75rem;text-align:center}.practice-view .instruction-box p{color:#94a3b8;font-size:.95rem;margin-bottom:.5rem}.practice-view .instruction-box p strong{color:#f0f2f8}.practice-view .instruction-box .keybind-pills{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.practice-view .instruction-box .keybind-pills .pill{color:#94a3b8;font-size:.825rem}.practice-view .instruction-box .keybind-pills .pill code{background-color:#1a1d27;border:1px solid #2e3346;border-radius:4px;color:#3b82f6;font-family:monospace;font-weight:600;padding:.15rem .4rem}.practice-view .alphabet-grid{grid-gap:.6rem;display:grid;gap:.6rem;grid-template-columns:repeat(13,1fr);width:100%}@media(max-width:768px){.practice-view .alphabet-grid{grid-template-columns:repeat(7,1fr)}}.practice-view .alphabet-grid .letter-box{align-items:center;aspect-ratio:1;background-color:#1a1d27;border:1.5px solid #2e3346;border-radius:10px;display:flex;flex-direction:column;justify-content:center;position:relative;transition:all .15s ease}.practice-view .alphabet-grid .letter-box .letter-char{color:#94a3b8;font-size:1.4rem;font-weight:700}.practice-view .alphabet-grid .letter-box .typed-err-sub{bottom:4px;color:#ef4444;font-size:.75rem;font-weight:800;position:absolute}.practice-view .alphabet-grid .letter-box.complete{background-color:#22c55e26;border-color:#22c55e}.practice-view .alphabet-grid .letter-box.complete .letter-char{color:#22c55e}.practice-view .alphabet-grid .letter-box.wrong{animation:shake .2s ease-in-out;background-color:#ef444426;border-color:#ef4444}.practice-view .alphabet-grid .letter-box.wrong .letter-char{color:#ef4444}.practice-view .alphabet-grid .letter-box.current{border-color:#3b82f6;box-shadow:0 0 12px #3b82f666}.practice-view .alphabet-grid .letter-box.current .letter-char{color:#f0f2f8}.practice-view .error-alert{background-color:#ef444426;border:1px solid #ef4444;border-radius:8px;color:#ef4444;font-size:.9rem;padding:.75rem 1.25rem}.practice-view .error-alert code{background-color:#0000004d;border-radius:4px;font-weight:700;padding:.15rem .35rem}.practice-view .recent-scores-container{background-color:#1a1d27;border:1px solid #2e3346;border-radius:12px;padding:1.25rem 1.5rem;width:100%}.practice-view .recent-scores-container .recent-scores-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.practice-view .recent-scores-container .recent-scores-header h3{align-items:center;color:#f0f2f8;display:flex;font-size:1.05rem;gap:.5rem}.practice-view .recent-scores-container .recent-scores-header .recent-count{color:#94a3b8;font-size:.8rem}.practice-view .recent-scores-container .no-scores{color:#94a3b8;font-size:.875rem;font-style:italic}.practice-view .recent-scores-container .recent-scores-grid{display:flex;flex-wrap:wrap;gap:.6rem}.practice-view .recent-scores-container .recent-scores-grid .score-chip{align-items:center;background-color:#ffffff0a;border:1px solid #2e3346;border-radius:8px;display:flex;font-size:.85rem;gap:.6rem;padding:.4rem .75rem}.practice-view .recent-scores-container .recent-scores-grid .score-chip .score-rank{color:#94a3b8;font-weight:600}.practice-view .recent-scores-container .recent-scores-grid .score-chip .score-time{color:#22c55e;font-family:monospace;font-weight:700}.practice-view .recent-scores-container .recent-scores-grid .score-chip .score-date{color:#94a3b8;font-size:.75rem}.leaderboard-view{display:flex;flex-direction:column;gap:1.5rem}.leaderboard-view .leaderboard-header{display:flex;flex-direction:column;gap:1rem}.leaderboard-view .leaderboard-header .back-btn{align-items:center;align-self:flex-start;background:#0000;border:none;color:#94a3b8;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.4rem}.leaderboard-view .leaderboard-header .back-btn:hover{color:#f0f2f8}.leaderboard-view .leaderboard-header h2{align-items:center;display:flex;font-size:1.75rem;font-weight:800;gap:.6rem}.leaderboard-view .leaderboard-header h2 .gold-trophy{color:#eab308}.leaderboard-view .leaderboard-header .leaderboard-tabs{background-color:#0003;border:1px solid #2e3346;border-radius:10px;display:flex;gap:.6rem;padding:.35rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.leaderboard-view .leaderboard-header .leaderboard-tabs .tab-btn{align-items:center;background:#0000;border:none;border-radius:7px;color:#94a3b8;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.4rem;padding:.5rem 1rem;transition:all .2s ease}.leaderboard-view .leaderboard-header .leaderboard-tabs .tab-btn:hover{color:#f0f2f8}.leaderboard-view .leaderboard-header .leaderboard-tabs .tab-btn.active{background-color:#3b82f6;box-shadow:0 2px 8px #3b82f64d;color:#fff}.leaderboard-view .leaderboard-header .guest-notice{background-color:#eab3081a;border:1px solid #eab3084d;border-radius:8px;color:#eab308;font-size:.9rem;padding:.75rem 1rem}.leaderboard-view .leaderboard-table-wrapper{background-color:#1a1d27;border:1px solid #2e3346;border-radius:12px;overflow:hidden}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table{border-collapse:collapse;text-align:left;width:100%}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table th{background-color:#0003;border-bottom:1px solid #2e3346;color:#94a3b8;font-size:.85rem;font-weight:700;padding:1rem 1.25rem}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table td{border-bottom:1px solid #ffffff0a;font-size:.95rem;padding:.9rem 1.25rem}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table tr.highlight-user{background-color:#3b82f626}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table tr:last-child td{border-bottom:none}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table .rank-col{font-weight:700;width:100px}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table .player-col{align-items:center;display:flex;gap:.75rem}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table .player-col .avatar{border-radius:50%;height:32px;object-fit:cover;width:32px}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table .player-col .avatar-placeholder{align-items:center;background-color:#3b82f6;border-radius:50%;color:#fff;display:flex;font-size:.85rem;font-weight:800;height:32px;justify-content:center;width:32px}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table .player-col .player-name{font-weight:600}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table .player-col .you-badge{background-color:#3b82f6;border-radius:4px;color:#fff;font-size:.65rem;font-weight:800;padding:.15rem .4rem}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table .time-col{color:#22c55e;font-family:monospace;font-size:1.05rem;font-weight:800}.leaderboard-view .leaderboard-table-wrapper .leaderboard-table .date-col{color:#94a3b8;font-size:.85rem}.keybinds-page-view{display:flex;flex-direction:column;gap:1.75rem}.keybinds-page-view .keybinds-page-header{display:flex;flex-direction:column;gap:.5rem}.keybinds-page-view .keybinds-page-header .back-btn{align-items:center;align-self:flex-start;background:#0000;border:none;color:#94a3b8;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.4rem;margin-bottom:.5rem}.keybinds-page-view .keybinds-page-header .back-btn:hover{color:#f0f2f8}.keybinds-page-view .keybinds-page-header h2{align-items:center;color:#f0f2f8;display:flex;font-size:1.75rem;font-weight:800;gap:.6rem}.keybinds-page-view .keybinds-page-header .page-subtitle{color:#94a3b8;font-size:.95rem}.keybinds-page-view .keybinds-page-card{background-color:#1a1d27;border:1px solid #2e3346;border-radius:14px;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem}.keybinds-page-view .keybinds-page-card .keybind-setting-row{align-items:center;background-color:#0003;border:1px solid #ffffff0a;border-radius:10px;display:flex;gap:1.5rem;justify-content:space-between;padding:1.25rem 1.5rem}.keybinds-page-view .keybinds-page-card .keybind-setting-row .setting-info{display:flex;flex-direction:column;gap:.25rem}.keybinds-page-view .keybinds-page-card .keybind-setting-row .setting-info .setting-title{color:#f0f2f8;font-size:1rem;font-weight:700}.keybinds-page-view .keybinds-page-card .keybind-setting-row .setting-info .setting-desc{color:#94a3b8;font-size:.85rem}.keybinds-page-view .keybinds-page-card .keybind-setting-row .keybind-bind-btn{background-color:#0f1117;border:1px solid #2e3346;border-radius:8px;color:#3b82f6;cursor:pointer;font-family:monospace;font-size:1rem;font-weight:700;min-width:120px;padding:.6rem 1.2rem;text-align:center;transition:all .2s ease}.keybinds-page-view .keybinds-page-card .keybind-setting-row .keybind-bind-btn:hover{background-color:#3b82f614;border-color:#3b82f6}.keybinds-page-view .keybinds-page-card .keybind-setting-row .keybind-bind-btn.binding{animation:pulse 1s infinite alternate;border-color:#eab308;color:#eab308}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#000000bf;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-overlay .modal-content.auth-modal{background-color:#1a1d27;border:1px solid #2e3346;border-radius:16px;box-shadow:0 10px 30px #00000080;display:flex;flex-direction:column;gap:1.25rem;max-width:420px;padding:1.75rem;width:90%}.modal-overlay .modal-content.auth-modal .modal-header{align-items:center;display:flex;justify-content:space-between}.modal-overlay .modal-content.auth-modal .modal-header h3{color:#f0f2f8;font-size:1.35rem;font-weight:700}.modal-overlay .modal-content.auth-modal .modal-header .close-btn{background:#0000;border:none;color:#94a3b8;cursor:pointer;font-size:1.1rem}.modal-overlay .modal-content.auth-modal .modal-header .close-btn:hover{color:#f0f2f8}.modal-overlay .modal-content.auth-modal .modal-body{display:flex;flex-direction:column;gap:1rem}.modal-overlay .modal-content.auth-modal .modal-body .modal-error-box{background-color:#ef444426;border:1px solid #ef4444;border-radius:8px;color:#ef4444;font-size:.85rem;padding:.65rem .9rem}.modal-overlay .modal-content.auth-modal .modal-body .auth-form{display:flex;flex-direction:column;gap:.9rem}.modal-overlay .modal-content.auth-modal .modal-body .auth-form .form-group{display:flex;flex-direction:column;gap:.35rem}.modal-overlay .modal-content.auth-modal .modal-body .auth-form .form-group label{color:#94a3b8;font-size:.8rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.modal-overlay .modal-content.auth-modal .modal-body .auth-form .form-group input{background-color:#0f1117;border:1px solid #2e3346;border-radius:8px;color:#f0f2f8;font-size:.95rem;padding:.65rem .85rem}.modal-overlay .modal-content.auth-modal .modal-body .auth-form .form-group input:focus{border-color:#3b82f6;outline:none}.modal-overlay .modal-content.auth-modal .modal-body .auth-form .auth-submit-btn{background-color:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:700;margin-top:.25rem;padding:.75rem;transition:background-color .2s ease}.modal-overlay .modal-content.auth-modal .modal-body .auth-form .auth-submit-btn:hover{background-color:#1469f4}.modal-overlay .modal-content.auth-modal .modal-body .auth-form .auth-submit-btn:disabled{cursor:not-allowed;opacity:.6}.modal-overlay .modal-content.auth-modal .modal-body .auth-divider{align-items:center;display:flex;margin:.25rem 0}.modal-overlay .modal-content.auth-modal .modal-body .auth-divider:after,.modal-overlay .modal-content.auth-modal .modal-body .auth-divider:before{background-color:#2e3346;content:"";flex:1 1;height:1px}.modal-overlay .modal-content.auth-modal .modal-body .auth-divider span{color:#94a3b8;font-size:.8rem;padding:0 .75rem}.modal-overlay .modal-content.auth-modal .modal-body .google-modal-btn{align-items:center;background-color:#fff;border:none;border-radius:8px;color:#1a1d27;cursor:pointer;display:flex;font-size:.9rem;font-weight:700;gap:.6rem;justify-content:center;padding:.7rem;transition:background-color .2s ease}.modal-overlay .modal-content.auth-modal .modal-body .google-modal-btn:hover{background-color:#f0f0f0}.modal-overlay .modal-content.auth-modal .modal-body .google-modal-btn:disabled{cursor:not-allowed;opacity:.6}.modal-overlay .modal-content.auth-modal .modal-body .toggle-auth-mode-btn{background:#0000;border:none;color:#3b82f6;cursor:pointer;font-size:.85rem;margin-top:.25rem;text-align:center}.modal-overlay .modal-content.auth-modal .modal-body .toggle-auth-mode-btn:hover{text-decoration:underline}.katz-footer{background-color:#0f1117;border-top:1px solid #2e3346;padding:1.25rem 0;text-align:center;width:100%}.katz-footer a{color:#94a3b8;font-size:.75rem;font-weight:700;letter-spacing:2px;text-decoration:none;text-transform:uppercase;transition:color .2s ease}.katz-footer a:hover{color:#f0f2f8}@keyframes shake{0%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}to{transform:translateX(0)}}@keyframes pulse{0%{opacity:.6}to{opacity:1}}
/*# sourceMappingURL=main.a230fd08.css.map*/