#typing-text{font-size:1.2rem;line-height:1.6;margin-bottom:1.5rem;min-height:150px;border:1px solid #ddd;padding:1rem;border-radius:4px}.current-word{background-color:#ffe08a;border-radius:2px}.correct{color:#48c774}.incorrect{color:#f14668;text-decoration:underline}.stats{font-size:1.2rem;margin-bottom:1rem}.current-word{background-color:#ffe08a;border-radius:2px;padding:2px 0}.typed-word{color:#48c774}#typing-text span{position:relative;white-space:nowrap}#typing-text{white-space:pre-wrap}#test-results{transition:all .3s ease}#typing-input:disabled{background-color:#f5f5f5;cursor:not-allowed}#test-results{perspective:1000px;transition:all .5s cubic-bezier(.175,.885,.32,1.275)}#test-results.is-visible{opacity:1!important;transform:translateY(0)!important;display:block!important}.metric-card{position:relative;padding:1.5rem 1rem;margin:.5rem;border-radius:12px;box-shadow:0 4px 6px rgba(0,0,0,.05);transition:all .3s ease;overflow:hidden;text-align:center;height:calc(100% - 1rem)}.metric-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,var(--primary),var(--info));opacity:0;transition:opacity .3s ease}.metric-card:hover{transform:translateY(-5px);box-shadow:0 10px 15px rgba(0,0,0,.1)}.metric-card:hover::before{opacity:1}.metric-value{font-size:2rem;font-weight:700;color:var(--dark);margin-bottom:.25rem;line-height:1}.metric-value span{font-size:1rem;opacity:.8}.metric-label{font-size:.85rem;text-transform:uppercase;letter-spacing:1px;color:var(--grey-dark);margin-bottom:.5rem}.metric-icon{font-size:1.5rem;opacity:.2;position:absolute;bottom:.5rem;right:.5rem}#restart-test{transition:all .3s ease;position:relative;overflow:hidden}#restart-test::after{content:'';position:absolute;top:50%;left:50%;width:5px;height:5px;background:rgba(255,255,255,.5);opacity:0;border-radius:100%;transform:scale(1,1) translate(-50%,-50%);transform-origin:50% 50%}#restart-test:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(0,0,0,.2)}#restart-test:focus:not(:active)::after{animation:ripple 1s ease-out}#test-results.is-hidden{display:none!important}#test-results.is-visible{opacity:1!important;transform:translateY(0)!important;display:block!important}@keyframes ripple{0%{transform:scale(0,0);opacity:.5}100%{transform:scale(20,20);opacity:0}}