.typing-window{margin-bottom:20px}.typing-content{background:var(--retro-gray);color:var(--retro-black);padding:16px}.typing-tabs{align-items:flex-end;gap:2px;margin-bottom:16px;padding:4px 0 6px;display:flex;position:relative}.typing-tabs:after{content:"";background:var(--retro-white);height:2px;position:absolute;bottom:6px;left:0;right:0}.typing-tab{background:var(--retro-gray);border:2px solid;border-color:var(--retro-white) var(--retro-dark-gray) transparent var(--retro-white);border-radius:3px 3px 0 0;padding:5px 14px 4px;font-family:VT323,monospace;font-size:1.2rem;text-decoration:none;position:relative}.typing-tabs .typing-tab,.typing-tabs .typing-tab:visited,.typing-tabs .typing-tab:hover{color:var(--retro-black)}.typing-tab:not([aria-current=page]):hover{background:#a0a0a0}.typing-tab:focus-visible{outline:1px dotted var(--retro-black);outline-offset:-4px}.typing-tab[aria-current=page]{z-index:1;cursor:default;margin-bottom:-2px;padding:8px 16px 6px}@media (width<=420px){.typing-tab{padding:5px 8px 4px}.typing-tab[aria-current=page]{padding:8px 10px 6px}}.typing-game{flex-direction:column;gap:16px;max-width:760px;margin:0 auto;display:flex}.typing-book-picker{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.typing-book-label{color:var(--retro-black);font-family:"Press Start 2P",monospace;font-size:.7rem}.typing-book-select{color:var(--retro-black);background:var(--retro-gray);border:3px outset var(--retro-white);cursor:pointer;max-width:100%;padding:6px 8px;font-family:"Press Start 2P",monospace;font-size:.6rem}.typing-stats{background:var(--retro-gray);border:3px outset var(--retro-white);flex-wrap:wrap;align-items:stretch;gap:8px;padding:10px;display:flex}.typing-stat{background:var(--retro-black);border:2px inset var(--retro-dark-gray);flex-direction:column;justify-content:center;align-items:center;min-width:64px;padding:4px 10px;display:flex}.typing-stat-value{color:var(--retro-green);font-family:VT323,monospace;font-size:1.8rem;line-height:1}.typing-stat-label{color:var(--retro-cyan);text-transform:uppercase;font-family:VT323,monospace;font-size:.85rem}.typing-stat--pulse{flex:0 180px;min-width:140px;padding:4px 8px}.typing-pulse-svg{width:100%;height:1.8rem;display:block}.typing-pulse-line{fill:none;stroke:var(--retro-green);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.typing-pulse-baseline{stroke:var(--retro-cyan);stroke-width:1px;stroke-dasharray:3 3;opacity:.6}.typing-progress{flex-direction:column;flex:160px;justify-content:center;gap:4px;min-width:160px;display:flex}.typing-progress .typing-stat-label{color:var(--retro-black)}.typing-progress-track{background:var(--retro-black);border:2px inset var(--retro-dark-gray);height:16px}.typing-progress-fill{background:var(--retro-green);height:100%;transition:width .2s}.typing-passage-wrap{position:relative}.typing-passage{background:var(--retro-white);border:3px inset var(--retro-gray);cursor:text;padding:20px;position:relative}.typing-scroll-viewport{scrollbar-width:thin;scrollbar-color:transparent transparent;height:14.45rem;overflow:hidden auto}.typing-scroll-viewport::-webkit-scrollbar{width:14px}.typing-scroll-viewport::-webkit-scrollbar-track{background:0 0;border:0}.typing-scroll-viewport::-webkit-scrollbar-thumb{background:0 0;border:0}.typing-scroll-viewport--browsing{scrollbar-color:var(--retro-navy) var(--retro-gray)}.typing-scroll-viewport--browsing::-webkit-scrollbar-track{background:var(--retro-gray);border-left:2px solid var(--retro-dark-gray)}.typing-scroll-viewport--browsing::-webkit-scrollbar-thumb{background:var(--retro-navy);border:2px outset var(--retro-white)}.typing-scroll-inner{position:relative}.typing-text{color:var(--retro-dark-gray);white-space:pre-wrap;word-break:break-word;letter-spacing:.5px;margin:0;font-family:VT323,monospace;font-size:1.7rem;line-height:1.7}.typing-text--done{color:var(--retro-black)}.typing-text--pending{color:#7a7a7a}.typing-char{border-radius:2px}.typing-char--pending{color:#7a7a7a}.typing-char--correct{color:var(--retro-black)}.typing-char--incorrect{color:var(--retro-white);background:var(--retro-red)}.typing-char--current{color:var(--retro-black);background:var(--retro-yellow);animation:1s step-end infinite typing-caret}.typing-char--newline{opacity:.55}@keyframes typing-caret{0%,50%{box-shadow:inset 2px 0 0 var(--retro-black)}50.01%,to{box-shadow:none}}.typing-input{opacity:0;border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;top:0;left:0}.typing-browse-bar{background:var(--retro-navy);border:2px outset var(--retro-white);z-index:2;align-items:center;gap:6px;padding:3px 5px;display:flex;position:absolute;bottom:6px;right:6px}.typing-browse-label{color:var(--retro-yellow);font-family:VT323,monospace;font-size:.8rem}.typing-browse-bar .retro-btn{padding:2px 6px;font-size:.75rem}.typing-hint{color:var(--retro-black);text-align:center;margin:0;font-family:VT323,monospace;font-size:1rem}.typing-finished{background:var(--retro-navy);border:3px outset var(--retro-white);text-align:center;padding:30px 20px}.typing-finished-title{color:var(--retro-yellow);margin:0 0 10px;font-family:"Press Start 2P",monospace;font-size:1rem}.typing-finished-hint{color:var(--retro-white);margin:0;font-family:VT323,monospace;font-size:1.2rem}.typing-controls{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.typing-message{color:var(--retro-navy);text-align:center;margin:0;font-family:VT323,monospace;font-size:1.1rem}@media (width<=600px){.typing-text{font-size:1.4rem}.typing-scroll-viewport{height:11.9rem}.typing-stat-value{font-size:1.4rem}.typing-pulse-svg{height:1.4rem}}.typing-stats-page{flex-direction:column;gap:16px;max-width:760px;margin:0 auto;display:flex}.typing-stats-page--keys{max-width:none}.typing-chart-panel{background:var(--retro-black);border:2px inset var(--retro-dark-gray);padding:10px 12px}.typing-chart-title{color:var(--retro-cyan);text-transform:uppercase;margin:0 0 6px;font-family:VT323,monospace;font-size:1rem;font-weight:400}.typing-chart-grid{stroke:var(--retro-dark-gray);stroke-width:1px;stroke-dasharray:2 3}.typing-chart-axis{stroke:var(--retro-dark-gray);stroke-width:1px}.typing-chart-tick{fill:var(--retro-gray);font-family:VT323,monospace;font-size:12px}.typing-chart-label{fill:var(--retro-white);font-family:VT323,monospace;font-size:13px}.typing-chart-line--wpm{stroke:var(--retro-green)}.typing-chart-line--accuracy{stroke:var(--retro-cyan)}circle.typing-chart-line--wpm{fill:var(--retro-green);stroke:none}circle.typing-chart-line--accuracy{fill:var(--retro-cyan);stroke:none}.typing-chart-line--time{stroke:var(--retro-magenta)}circle.typing-chart-line--time{fill:var(--retro-magenta);stroke:none}.typing-chart-tick--right{fill:var(--retro-magenta)}@keyframes typing-chart-grid-pulse{0%,to{opacity:.35}50%{opacity:1}}.typing-chart-panel--loading .typing-chart-grid{animation:1.4s ease-in-out infinite typing-chart-grid-pulse}@keyframes typing-chart-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.typing-chart-line--draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:.8s ease-out forwards typing-chart-draw}@keyframes typing-chart-marker-in{0%{opacity:0}to{opacity:1}}.typing-chart-markers--in circle,.typing-chart-markers--in text{opacity:0;animation:.3s ease-out .6s forwards typing-chart-marker-in}@media (prefers-reduced-motion:reduce){.typing-chart-panel--loading .typing-chart-grid,.typing-chart-line--draw,.typing-chart-markers--in circle,.typing-chart-markers--in text{animation:none}.typing-chart-line--draw{stroke-dasharray:none;stroke-dashoffset:0}.typing-chart-markers--in circle,.typing-chart-markers--in text{opacity:1}}.typing-chart-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.typing-toggle-group{display:flex}.typing-toggle{color:var(--retro-black);background:var(--retro-gray);border:3px outset var(--retro-white);cursor:pointer;padding:4px 12px;font-family:VT323,monospace;font-size:1.1rem}.typing-toggle[aria-pressed=true]{background:#a0a0a0;border-style:inset}.typing-legend{gap:8px;display:flex}.typing-legend-item{color:var(--retro-black);background:var(--retro-gray);border:3px outset var(--retro-white);cursor:pointer;align-items:center;gap:6px;padding:4px 10px;font-family:VT323,monospace;font-size:1.1rem;display:inline-flex}.typing-legend-item[aria-pressed=false]{opacity:.5;border-style:inset}.typing-legend-swatch{border:1px solid var(--retro-black);width:14px;height:14px}.typing-legend-item--wpm .typing-legend-swatch{background:var(--retro-green)}.typing-legend-item--accuracy .typing-legend-swatch{background:var(--retro-cyan)}.typing-legend-item--time .typing-legend-swatch{background:var(--retro-magenta)}.typing-legend-item--trend .typing-legend-swatch{background:var(--retro-yellow)}.typing-chart-line--keywpm{stroke:var(--retro-yellow)}circle.typing-chart-line--keywpm{fill:var(--retro-yellow);stroke:none}.typing-chart-line--trend{stroke:var(--retro-cyan);stroke-width:1.5px;stroke-dasharray:6 4}.typing-chart-line--trend-wpm{stroke:var(--retro-yellow)}.typing-stats-page .typing-toggle-group{flex-wrap:wrap}.typing-key-spotlights{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.typing-key-spotlight{background:var(--retro-black);border:2px inset var(--retro-dark-gray);text-align:center;border-top-style:solid;border-top-width:3px;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;display:flex}.typing-key-spotlight--slow{border-top-color:var(--retro-red)}.typing-key-spotlight--fast{border-top-color:var(--retro-green)}.typing-key-spotlight--bottleneck{border-top-color:var(--retro-magenta)}.typing-key-spotlight-label{color:var(--retro-gray);text-transform:uppercase;font-family:VT323,monospace;font-size:.95rem}.typing-key-spotlight-glyph{color:var(--retro-white);font-family:VT323,monospace;font-size:1.8rem;line-height:1}.typing-key-spotlight-value{color:var(--retro-yellow);font-family:VT323,monospace;font-size:1.1rem}.typing-key-table{background:var(--retro-black);border:2px inset var(--retro-dark-gray);flex-direction:column;display:flex}.typing-key-row{width:100%;color:var(--retro-white);border:none;border-bottom:1px solid var(--retro-dark-gray);text-align:left;cursor:pointer;background:0 0;grid-template-columns:5.5rem 1fr 4rem 4rem;align-items:center;gap:8px;padding:5px 10px;font-family:VT323,monospace;font-size:1.1rem;display:grid}.typing-key-row--head{color:var(--retro-cyan);text-transform:uppercase;cursor:default;z-index:1;background:var(--retro-black);font-size:.95rem;position:sticky;top:0}.typing-key-row:not(.typing-key-row--head):hover{background:#ffffff0f}.typing-key-row--selected{background:#ffff001f}.typing-key-glyph{color:var(--retro-yellow);white-space:pre}.typing-key-num{text-align:right}.typing-key-bar-cell{align-items:center;gap:8px;min-width:0;display:flex}.typing-key-diverge-track{background:var(--retro-dark-gray);border:1px solid var(--retro-black);isolation:isolate;flex:auto;min-width:60px;height:12px;position:relative;overflow:hidden}.typing-key-diverge-center{background:var(--retro-white);z-index:2;width:1px;margin-left:-.5px;position:absolute;top:0;bottom:0;left:50%}.typing-key-diverge-fill{z-index:1;position:absolute;top:0;bottom:0}.typing-key-diverge-fill--slow{background:var(--retro-red)}.typing-key-diverge-fill--fast{background:var(--retro-green)}.typing-key-diverge-track--single .typing-key-diverge-center{display:none}.typing-key-diverge-fill--bottleneck{background:var(--retro-magenta)}.typing-key-bar-value{text-align:right;width:5rem;color:var(--retro-white);flex:none;font-size:1rem}.typing-key-avg-note{color:var(--retro-black);justify-content:center;align-items:center;gap:5px;margin:0;font-family:VT323,monospace;font-size:1rem;display:flex}.typing-key-avg-note strong{color:var(--retro-navy)}.typing-key-avg-note--formula{text-align:center;flex-wrap:wrap;gap:0 4px}.typing-key-avg-swatch{border:1px solid var(--retro-black);width:12px;height:12px;display:inline-block}.typing-key-avg-swatch--slow{background:var(--retro-red)}.typing-key-avg-swatch--fast{background:var(--retro-green)}.typing-key-table--untrusted{opacity:.55}.typing-key-untrusted-heading{text-transform:uppercase;color:var(--retro-gray);border-bottom:1px solid var(--retro-dark-gray);background:#ffffff0a;grid-column:1/-1;margin:0;padding:6px 10px;font-family:VT323,monospace;font-size:.95rem}.typing-key-row--untrusted .typing-key-glyph{color:var(--retro-gray)}.typing-key-detail{min-height:60px}.typing-key-detail-title{color:var(--retro-black);text-align:center;margin:0 0 8px;font-family:VT323,monospace;font-size:1.1rem}.typing-trend-note{text-align:center;color:var(--retro-black);margin:0 0 6px;font-family:VT323,monospace;font-size:1rem}.typing-trend-swatch{vertical-align:middle;background:var(--retro-black);border-top:2px dashed var(--retro-cyan);width:16px;height:9px;display:inline-block}.typing-trend-swatch--wpm{border-top-color:var(--retro-yellow)}.typing-trend-note--up{color:#006000}.typing-trend-note--down{color:maroon}.typing-key-layout{grid-template-columns:minmax(0,380px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.typing-key-layout-list{flex-direction:column;gap:16px;min-width:0;display:flex}.typing-key-layout .typing-key-detail{position:sticky;top:8px}.typing-key-layout .typing-key-row{grid-template-columns:3.5rem 1fr 2.75rem 3rem;gap:6px}.typing-key-layout .typing-key-bar-value{width:4.25rem;font-size:.95rem}.typing-key-layout .typing-key-diverge-track{min-width:40px}@media (width<=800px){.typing-key-layout{grid-template-columns:1fr}.typing-key-layout .typing-key-detail{z-index:3;background:var(--retro-gray);order:-1;padding-bottom:6px;top:0}.typing-key-layout .typing-key-detail svg{max-height:30vh}.typing-key-row--head{position:static}}@media (width<=600px){.typing-key-spotlights{grid-template-columns:1fr}.typing-key-row,.typing-key-layout .typing-key-row{grid-template-columns:4rem 1fr 3rem 3rem;font-size:1rem}.typing-key-bar-value,.typing-key-layout .typing-key-bar-value{display:none}.typing-key-bar-value--lost,.typing-key-layout .typing-key-bar-value--lost{width:3.5rem;display:block}}@keyframes typing-skel-pulse{0%,to{opacity:.35}50%{opacity:1}}@keyframes typing-skel-in{0%{opacity:0}to{opacity:1}}.typing-skeleton{pointer-events:none;animation:.2s ease-out both typing-skel-in}.typing-skel{width:var(--skel-w,100%);height:var(--skel-h,1rem);background:var(--retro-dark-gray);animation:1.4s ease-in-out infinite typing-skel-pulse;display:block}.typing-skel--on-dark{background:#454545}.typing-skel--on-paper{background:#d5d5d5}.typing-skel--end{margin-left:auto}.typing-skel-select{width:378px;max-width:100%}.typing-skeleton .retro-btn,.typing-skeleton .typing-toggle,.typing-skeleton .typing-legend-item{align-items:center;display:inline-flex}.typing-skeleton .retro-btn{height:calc(1.4em + 26px)}.typing-skeleton .typing-toggle,.typing-skeleton .typing-legend-item{height:calc(1.4em + 14px)}.typing-skeleton .typing-sync-link{height:calc(1.4em + 16px)}.typing-skeleton .typing-hint,.typing-skeleton .typing-message,.typing-skeleton .typing-key-avg-note{min-height:1.4em}.typing-skeleton .typing-key-row{min-height:calc(1.4em + 11px)}.typing-skeleton .typing-stat{justify-content:space-evenly;height:calc(2.99rem + 12px)}.typing-skeleton .typing-key-spotlight{justify-content:space-evenly;height:calc(4.67rem + 29px)}.typing-skel-line{align-items:center;height:2.89rem;display:flex}.typing-skel-chart{aspect-ratio:600/240;flex-direction:column;justify-content:space-around;display:flex}@media (width<=600px){.typing-skel-line{height:2.38rem}}@media (width<=520px){.typing-skeleton .typing-hint{min-height:2.8em}}@media (prefers-reduced-motion:reduce){.typing-skel{animation:none}.typing-skeleton{opacity:1;animation:none}}
