:root{--tp-font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--tp-font-mono:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;--tp-results-chart-height:260px;--tp-scrollbar-size:4px;--tp-radius-sm:2px;--tp-radius-md:4px;--tp-layout-max-width:870px;--tp-live-status-bar-width:clamp(300px, 25vw, 400px);--tp-page-content-offset-top:32px;--tp-page-bg:var(--tp-color-bg-layout);--tp-page-text:var(--tp-color-text);--tp-text-primary:var(--tp-color-text);--tp-text-muted:var(--tp-color-text-description);--tp-text-disabled:var(--tp-color-text-disabled);--tp-caret:var(--tp-color-text);--tp-border:var(--tp-color-border);--tp-fill-secondary:var(--tp-color-fill-secondary);--tp-finger-zone-mix-idle:40%;--tp-finger-zone-mix-active:65%;--tp-finger-target-border-mix:52%}@media (prefers-color-scheme:dark){:root{--tp-finger-zone-mix-idle:62%;--tp-finger-zone-mix-active:78%;--tp-finger-target-border-mix:58%}}
:where(html,body,*){scrollbar-width:thin;scrollbar-color:var(--tp-scrollbar-thumb) transparent}:where(html,body,*)::-webkit-scrollbar{width:var(--tp-scrollbar-size);height:var(--tp-scrollbar-size)}:where(html,body,*)::-webkit-scrollbar-track{background:0 0}:where(html,body,*)::-webkit-scrollbar-thumb{background-color:var(--tp-scrollbar-thumb);background-clip:padding-box;border:1px solid #0000;border-radius:999px}:where(html,body,*)::-webkit-scrollbar-thumb:hover{background-color:var(--tp-scrollbar-thumb-hover)}:where(html,body,*)::-webkit-scrollbar-corner{background:0 0}body{background:var(--tp-page-bg,#f5f5f5);min-height:100dvh;font-family:var(--tp-font-sans);color:var(--tp-page-text,#000000e0);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}:where(h1,h2,h3,h4,h5,h6){letter-spacing:-.025em;color:var(--tp-color-text,inherit);margin:0;font-weight:600;line-height:1.25}main{text-align:left}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:1px solid color-mix(in srgb, var(--tp-color-text,currentColor) 35%, transparent);outline-offset:1px}::selection{background:var(--tp-color-fill-secondary);color:inherit}
.tp-playground-root{width:100%;max-width:var(--tp-layout-max-width);flex-direction:column;align-items:center;margin-inline:auto;display:flex}.tp-content-column{width:100%;max-width:var(--tp-layout-max-width);flex-direction:column;align-items:center;display:flex}.tp-focus-fade{transition:opacity .125s}.tp-focus-fade--dimmed{opacity:0;pointer-events:none}.tp-playground-config-slot{justify-content:center;align-items:center;width:100%;min-height:44px;margin-bottom:32px;padding:0 8px;display:flex;overflow:visible}.tp-pg-focus-dim,.tp-focus-fade{justify-content:center;width:100%;display:flex}
.tp-page-chrome{flex-shrink:0;transition:opacity .125s}.tp-page-header:empty{display:none}.tp-page-header{padding:16px 24px}.tp-page-inner{width:100%;max-width:var(--tp-layout-max-width);margin-inline:auto}.tp-brand-wordmark{font-family:var(--tp-font-mono);letter-spacing:-.03em;color:var(--tp-text-primary);align-items:baseline;font-size:1.125rem;font-weight:600;line-height:1;display:inline-flex}.tp-brand-wordmark-accent{color:var(--tp-text-muted);margin:0 .02em;font-size:.72em;font-weight:700;position:relative;top:-.35em}.tp-page-shell{background:var(--tp-page-bg);flex-direction:column;min-height:100dvh;display:flex}.tp-page-shell-primary{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.tp-page-shell-drawer-host{position:relative;overflow:hidden}.tp-page-footer{background:0 0;padding:16px 24px}
.tp-app-content{box-sizing:border-box;min-height:0;padding:var(--tp-page-content-offset-top) 24px 24px;flex-direction:column;flex:1 1 0;justify-content:flex-start;align-items:stretch;display:flex}
.tp-pg-content{box-sizing:border-box;min-height:0;padding:var(--tp-page-content-offset-top) 24px 24px;flex-direction:column;flex:1 1 0;justify-content:flex-start;align-items:center;display:flex}.tp-page-shell-drawer-host:has([data-tp-pg-focus]) .tp-page-chrome{opacity:0;pointer-events:none}.tp-page-shell-drawer-host:has([data-tp-pg-focus]) .tp-pg-content *{visibility:hidden}:is(.tp-page-shell-drawer-host:has([data-tp-pg-focus]) .tp-playground-root,.tp-page-shell-drawer-host:has([data-tp-pg-focus]) .tp-playground-root *){visibility:visible}.tp-page-shell-drawer-host:has([data-tp-pg-focus]) .tp-pg-focus-dim{opacity:0;pointer-events:none}.tp-pg-focus-dim{transition:opacity .125s,visibility .125s}
.tp-min-w-0{min-width:0}.tp-save-compact{flex:1;min-width:200px}.tp-field-full-width{width:100%}.tp-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tp-skeleton-full{width:100%}.tp-skeleton-fill{height:100%}
.tp-kbd{font-family:var(--tp-font-mono);color:var(--tp-text-muted);background:var(--tp-fill-secondary);border:1px solid var(--tp-border);border-radius:var(--tp-radius-sm);box-shadow:none;align-items:center;padding:.1em .45em;font-size:.85em;font-weight:500;line-height:1.25;display:inline-flex}.ant-drawer-close{white-space:nowrap;width:auto}.ant-btn-primary .tp-kbd{color:inherit;background:color-mix(in srgb, currentColor 14%, transparent);border-color:color-mix(in srgb, currentColor 28%, transparent)}.tp-shortcut-keys.ant-flex{vertical-align:middle;display:inline-flex}.tp-kbd-separator.ant-typography{color:var(--tp-text-muted);margin:0}.tp-kbd-separator{-webkit-user-select:none;user-select:none;align-self:center;align-items:center;font-size:.85em;line-height:1;display:inline-flex}.ant-btn-primary .tp-kbd-separator.ant-typography{color:inherit;opacity:.55}
.tp-test-config-nav{width:100%;max-width:var(--tp-layout-max-width);margin-inline:auto;font-size:.875rem;display:none}@media (min-width:768px){.tp-test-config-nav{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:1em;display:grid}}.tp-test-config-side{align-items:center;min-height:44px;display:flex}.tp-test-config-side--start{justify-content:flex-end}.tp-test-config-side--end{justify-content:flex-start}.tp-test-config-core{flex-shrink:0;justify-content:center;align-items:center;display:flex}.tp-mode-presets-stack{width:max-content;display:grid;position:relative}.tp-mode-presets-stack>*{grid-row-start:1;grid-column-start:1}.tp-mode-presets-layer{flex-shrink:0}.tp-mode-presets-layer--active{opacity:1;pointer-events:auto;position:relative}.tp-mode-presets-layer--inactive{opacity:0;pointer-events:none;position:absolute;inset:0}.tp-mode-selector{z-index:2;flex-shrink:0;position:relative}.tp-segment-label{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.tp-segment-label .tp-segment-icon{font-size:12px}.tp-segment-label .tp-kbd{margin-left:4px;font-size:.65rem}
.tp-typing-mono{font-family:var(--tp-font-mono)}.tp-typing-root{width:100%;font-size:2rem}.tp-typing-viewport{cursor:pointer;height:144px;position:relative;overflow:hidden}.tp-caret-tooltip-anchor{opacity:0}.tp-typing-test+.tp-typing-after-viewport{margin-top:1.5rem;padding-top:.75rem}.tp-typing-after-viewport{justify-content:center;width:100%;margin-bottom:.25rem;display:flex}.tp-typing-test+.tp-shortcuts-bar{margin-top:40px}.tp-typing-after-viewport+.tp-shortcuts-bar{margin-top:1.25rem}.tp-typing-virtual-scroll{width:100%;overflow:hidden}.tp-typing-virtual-inner{width:100%}.tp-typing-virtual-row{width:100%;position:absolute;top:0;left:0}.tp-words-line{flex-wrap:nowrap;align-items:flex-start;min-width:100%;height:48px;display:flex}.tp-words-line .tp-word{flex-shrink:0}.tp-words-display{flex-wrap:wrap;display:flex}.tp-word{font-variant:no-common-ligatures;border-bottom:2px solid #0000;margin:.25em .3em;font-size:1em;line-height:1em;position:relative}.tp-word--active-error{border-bottom-color:var(--tp-error)}.tp-letter{display:inline-block}@keyframes caretFlashSmooth{0%,to{opacity:0}50%{opacity:1}}
.letter-pending{color:var(--tp-text-muted)}.letter-correct{color:var(--tp-text-primary)}.letter-incorrect{color:var(--tp-error)}.letter-extra{color:var(--tp-error);background:var(--tp-error-muted);border-radius:var(--tp-radius-sm)}.letter-missed{color:var(--tp-error);opacity:.55;text-decoration:underline;-webkit-text-decoration-color:var(--tp-error);text-decoration-color:var(--tp-error);text-underline-offset:.15em}
.tp-live-stats{min-height:1.25em;font-family:var(--tp-font-mono);color:var(--tp-text-muted);pointer-events:none;-webkit-user-select:none;user-select:none;align-items:flex-end;margin-left:.25em;font-size:1em;line-height:1;display:flex}.tp-live-stats--hidden{visibility:hidden}.tp-live-stats__time,.tp-live-stats__acc{font-variant-numeric:tabular-nums}.tp-live-stats__acc{margin-left:.5em}.tp-live-stats-wrapper{pointer-events:none;min-height:1.25em;margin-top:-1.25em;margin-bottom:.25em;transition:opacity .125s}.tp-live-stats-wrapper--hidden{opacity:0}
.tp-page-shell-drawer-host .tp-page-shell-primary{margin-inline-end:0;transition:margin-inline-end .3s,width .3s,max-width .3s}.tp-page-shell-drawer-host.tp-page-shell--live-status-bar .tp-page-shell-primary{margin-inline-end:var(--tp-live-status-bar-width)}.tp-live-status-bar-drawer.ant-drawer{pointer-events:none;position:absolute;inset:0}.tp-live-status-bar-drawer.ant-drawer .ant-drawer-content-wrapper{box-shadow:none;pointer-events:auto;height:100%;transition:opacity .3s,transform .3s;width:var(--tp-live-status-bar-width)!important}.tp-page-shell[data-tp-live-status-bar]:has(.tp-playground-root):is(:not(:has([data-tp-test-focused])),:has([data-tp-test-sleeping])) .tp-live-status-bar-drawer.ant-drawer .ant-drawer-content-wrapper{opacity:.44}.tp-page-shell[data-tp-live-status-bar]:has(.tp-playground-root):not(:has([data-tp-test-focused])) .tp-live-status-bar-drawer.ant-drawer .ant-drawer-content-wrapper{pointer-events:none}.tp-live-status-bar-drawer.ant-drawer .ant-drawer-content{background:var(--tp-page-bg);overflow:hidden}.tp-live-status-bar-drawer__body{box-sizing:border-box;overscroll-behavior:contain;max-width:100%;padding:8px 12px 16px;overflow:hidden auto}.tp-live-status-bar__slots{width:100%}.tp-live-status-bar__slot-title{margin-bottom:12px;display:block}@media (min-width:1729px){:root{--tp-live-status-bar-width:clamp(300px, 26vw, 420px)}}@media (min-width:1920px){:root{--tp-live-status-bar-width:clamp(380px, 28vw, 560px)}}@media (max-width:768px){.tp-page-shell--live-status-bar .tp-page-shell-primary{margin-inline-end:0}.tp-live-status-bar-drawer.ant-drawer{display:none}}
.tp-live-status-bar__stat{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.tp-live-status-bar__stat-label{flex:auto;min-width:0;font-size:.8125rem}.tp-live-status-bar__stat-value{font-family:var(--tp-font-mono);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:1rem;line-height:1.2}.tp-live-status-bar-live-panel{flex-direction:column;gap:14px;min-width:0;max-width:100%;display:flex}.tp-live-status-bar-live-context{font-family:var(--tp-font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.6875rem;display:block}.tp-live-status-bar__progress .tp-progress__title,.tp-live-status-bar__progress .tp-progress__label{font-family:var(--tp-font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem}.tp-live-status-bar__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.tp-live-status-bar__tile{border:1px solid var(--tp-color-border);background:var(--tp-color-fill-secondary);border-radius:8px;padding:10px 12px;position:relative;overflow:hidden}.tp-live-status-bar__tile-sparkline{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.tp-live-status-bar__tile-sparkline path{transition:d .2s}.tp-live-status-bar__tile-content{z-index:1;flex-direction:column;gap:4px;display:flex;position:relative}.tp-live-status-bar__tile--featured{grid-column:1/-1}.tp-live-status-bar__tile-content--featured{flex-direction:row;justify-content:space-between;align-items:baseline;gap:12px}.tp-live-status-bar__tile-value--featured{font-size:2rem;font-weight:500;line-height:1}.tp-live-status-bar-live-panel--active .tp-live-status-bar__tile-value--featured{animation:.16s tp-live-status-bar-wpm-tick}@keyframes tp-live-status-bar-wpm-tick{0%{opacity:.72}to{opacity:1}}.tp-live-status-bar__tile-label{letter-spacing:.06em;text-transform:uppercase;font-size:.6875rem}.tp-live-status-bar__tile-value{font-family:var(--tp-font-mono);font-variant-numeric:tabular-nums;color:var(--tp-text-primary);font-size:1.25rem;font-weight:500;line-height:1.1}.tp-live-status-bar__divider.ant-divider{border-color:var(--tp-color-border);margin:2px 0}.tp-live-status-bar-live-hint{text-align:center;padding-top:4px;font-size:.8125rem;display:block}.tp-live-status-bar-live-header{width:100%}.tp-live-status-bar-live-dot{background:var(--tp-text-disabled);border-radius:50%;flex-shrink:0;width:8px;height:8px}.tp-live-status-bar-live-panel--active .tp-live-status-bar-live-dot{background:var(--tp-text-primary)}.tp-live-status-bar-live-dot--pulse{animation:1.2s ease-in-out infinite tp-live-status-bar-pulse}.tp-live-status-bar-live-panel--sleeping .tp-live-status-bar-live-dot{background:var(--tp-text-muted)}.tp-live-status-bar-live-dot--sleeping{animation:none}@keyframes tp-live-status-bar-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.88)}}.tp-live-status-bar-live-label,.tp-live-status-bar-live-time{font-family:var(--tp-font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem}@media (max-width:1728px){.tp-live-status-bar-live-panel{gap:12px}.tp-live-status-bar__tile-value--featured{font-size:1.625rem}.tp-live-status-bar__tile{padding:8px 10px}.tp-live-status-bar__tile-value{font-size:1.0625rem}.tp-live-status-bar__stat-value{font-size:.9375rem}}
.tp-finger-map-root{opacity:.9;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;margin:0;transition:opacity .15s}.tp-finger-map-root--dimmed{opacity:.44}.tp-finger-map-scroll{width:min(100%,52rem);overflow-x:auto}.tp-finger-map-keyboard{min-width:max-content;margin-inline:auto}.tp-finger-map-row{flex-wrap:nowrap}.tp-finger-map-row--home{margin-left:1.1rem}.tp-finger-map-row--bottom{margin-left:2.2rem}.tp-finger-map-row--space{margin-top:.125rem}.tp-finger-map-key{border:1px solid var(--tp-color-border);min-width:2.125rem;height:2.125rem;font-family:var(--tp-font-mono);color:var(--tp-color-text-description);background:var(--tp-color-bg-container);border-radius:.375rem;flex:none;justify-content:center;align-items:center;padding:0 .35rem;line-height:1;transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s;display:flex;position:relative}.tp-finger-map-key-label{letter-spacing:.01em;font-size:.8125rem;font-weight:600}.tp-finger-map-key-label--wide{letter-spacing:.04em;text-transform:lowercase;font-size:.75rem;font-weight:500}.tp-finger-map-key--wide{min-width:16rem;height:2rem}.tp-finger-map-key--left-pinky{background:color-mix(in srgb, var(--tp-color-finger-left-pinky) var(--tp-finger-zone-mix-idle), var(--tp-color-bg-container))}.tp-finger-map-key--left-ring{background:color-mix(in srgb, var(--tp-color-finger-left-ring) var(--tp-finger-zone-mix-idle), var(--tp-color-bg-container))}.tp-finger-map-key--left-middle{background:color-mix(in srgb, var(--tp-color-finger-left-middle) var(--tp-finger-zone-mix-idle), var(--tp-color-bg-container))}.tp-finger-map-key--left-index{background:color-mix(in srgb, var(--tp-color-finger-left-index) var(--tp-finger-zone-mix-idle), var(--tp-color-bg-container))}.tp-finger-map-key--right-index{background:color-mix(in srgb, var(--tp-color-finger-right-index) var(--tp-finger-zone-mix-idle), var(--tp-color-bg-container))}.tp-finger-map-key--right-middle{background:color-mix(in srgb, var(--tp-color-finger-right-middle) var(--tp-finger-zone-mix-idle), var(--tp-color-bg-container))}.tp-finger-map-key--right-ring{background:color-mix(in srgb, var(--tp-color-finger-right-ring) var(--tp-finger-zone-mix-idle), var(--tp-color-bg-container))}.tp-finger-map-key--right-pinky{background:color-mix(in srgb, var(--tp-color-finger-right-pinky) var(--tp-finger-zone-mix-idle), var(--tp-color-bg-container))}.tp-finger-map-key--thumb{background:color-mix(in srgb, var(--tp-color-finger-thumb) var(--tp-finger-zone-mix-idle), var(--tp-color-bg-container))}.tp-finger-map-key--target{border-color:color-mix(in srgb, var(--tp-color-text) var(--tp-finger-target-border-mix), var(--tp-color-border));color:var(--tp-color-text);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tp-color-text) 16%, transparent)}.tp-finger-map-key--finger-active.tp-finger-map-key--left-pinky{background:color-mix(in srgb, var(--tp-color-finger-left-pinky) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-finger-map-key--finger-active.tp-finger-map-key--left-ring{background:color-mix(in srgb, var(--tp-color-finger-left-ring) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-finger-map-key--finger-active.tp-finger-map-key--left-middle{background:color-mix(in srgb, var(--tp-color-finger-left-middle) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-finger-map-key--finger-active.tp-finger-map-key--left-index{background:color-mix(in srgb, var(--tp-color-finger-left-index) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-finger-map-key--finger-active.tp-finger-map-key--right-index{background:color-mix(in srgb, var(--tp-color-finger-right-index) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-finger-map-key--finger-active.tp-finger-map-key--right-middle{background:color-mix(in srgb, var(--tp-color-finger-right-middle) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-finger-map-key--finger-active.tp-finger-map-key--right-ring{background:color-mix(in srgb, var(--tp-color-finger-right-ring) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-finger-map-key--finger-active.tp-finger-map-key--right-pinky{background:color-mix(in srgb, var(--tp-color-finger-right-pinky) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-finger-map-key--finger-active.tp-finger-map-key--thumb{background:color-mix(in srgb, var(--tp-color-finger-thumb) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-finger-map-key--finger-active .tp-finger-map-key-label--wide{color:var(--tp-color-text)}
.tp-typing-hands-root{opacity:.9;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;margin:0;transition:opacity .15s}.tp-typing-hands-root--dimmed{opacity:.44}.tp-typing-after-viewport-stack{flex-direction:column;align-items:center;gap:.75rem;width:100%;display:flex}.tp-typing-hands__pair{justify-content:space-between;align-items:center;width:11.25rem;height:6.25rem;display:flex;position:relative}.tp-typing-hands__hand{height:100%;color:color-mix(in srgb, var(--tp-color-text-description) 55%, transparent);justify-content:space-between;align-items:flex-end;font-size:6.25rem;display:flex;position:relative}.tp-typing-hands__hand>svg{height:100%}.tp-typing-hands__hand--left{margin-right:1rem;transform:rotateY(180deg)}.tp-typing-hands__hand:after{content:" ";width:18.4%;height:100%;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tp-color-text) 10%, transparent);border-radius:200px 200px 0 0;display:none;position:absolute}.tp-typing-hands__hand--left-pinky:after,.tp-typing-hands__hand--right-pinky:after{clip-path:polygon(0% 0%,100% 0%,98% 99%,2% 62%);height:40%;display:block;top:25%;right:0}.tp-typing-hands__hand--left-pinky:after{background:color-mix(in srgb, var(--tp-color-finger-left-pinky) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-typing-hands__hand--right-pinky:after{background:color-mix(in srgb, var(--tp-color-finger-right-pinky) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-typing-hands__hand--left-ring:after,.tp-typing-hands__hand--right-ring:after{clip-path:polygon(0 0,99% 0,99% 100%,0 100%);height:42.6%;display:block;top:7.6%;right:19.1%}.tp-typing-hands__hand--left-ring:after{background:color-mix(in srgb, var(--tp-color-finger-left-ring) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-typing-hands__hand--right-ring:after{background:color-mix(in srgb, var(--tp-color-finger-right-ring) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-typing-hands__hand--left-middle:after,.tp-typing-hands__hand--right-middle:after{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);width:17.4%;height:50%;display:block;top:.3%;right:39.5%}.tp-typing-hands__hand--left-middle:after{background:color-mix(in srgb, var(--tp-color-finger-left-middle) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-typing-hands__hand--right-middle:after{background:color-mix(in srgb, var(--tp-color-finger-right-middle) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-typing-hands__hand--left-index:after,.tp-typing-hands__hand--right-index:after{clip-path:polygon(0 0,99% 0,99% 77%,-1% 100%);width:18%;height:54.2%;display:block;top:7.9%;right:58.6%}.tp-typing-hands__hand--left-index:after{background:color-mix(in srgb, var(--tp-color-finger-left-index) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-typing-hands__hand--right-index:after{background:color-mix(in srgb, var(--tp-color-finger-right-index) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container))}.tp-typing-hands__hand--thumb:after{background:color-mix(in srgb, var(--tp-color-finger-thumb) var(--tp-finger-zone-mix-active), var(--tp-color-bg-container));clip-path:polygon(0% 22.5%,1.7% 14.6%,3% 12.4%,16.1% 4.1%,10.6% 5.7%,21.6% 2.8%,37.4% -.7%,58.4% 1.3%,56.3% .3%,72.3% 10%,100% 30.4%,100% 100%,4% 29%,3% 28%);border-radius:0;width:23%;height:38%;display:block;top:48%;left:0%}@media (max-width:768px){.tp-typing-hands__pair{width:6.75rem;height:3.75rem}.tp-typing-hands__hand{font-size:3.75rem}}
.tp-shortcuts-bar{width:100%;min-height:20px;color:var(--tp-text-muted);opacity:.62;justify-content:center;font-size:14px;font-weight:400;transition:opacity .125s;display:flex}.tp-shortcuts-bar .ant-space{justify-content:center}.tp-shortcuts-bar .ant-typography,.tp-shortcuts-bar .ant-btn{color:inherit}.tp-shortcuts-bar .tp-shortcut-keys{opacity:1}.tp-shortcuts-bar .tp-kbd{color:inherit;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;font-size:.9em;font-weight:400;line-height:1.2}.tp-shortcuts-bar .tp-kbd-separator.ant-typography{color:inherit;opacity:.65}.tp-shortcuts-bar--dimmed{opacity:0;pointer-events:none}.tp-shortcuts-divider.ant-divider-vertical{opacity:.55;height:14px;margin:0}
.tp-skeleton-word-bar{border-radius:var(--tp-radius-sm);background:var(--tp-skeleton-from);height:1em;display:block}.tp-skeleton-word-bar--active{background:linear-gradient(90deg, var(--tp-skeleton-from) 25%, var(--tp-skeleton-to) 37%, var(--tp-skeleton-from) 63%);background-size:400% 100%;animation:1.4s infinite tp-skeleton-shimmer}@keyframes tp-skeleton-shimmer{0%{background-position:100%}to{background-position:0}}
.tp-mobile-unsupported{width:100%;max-width:var(--tp-layout-max-width);justify-content:center;margin-inline:auto;padding-block:24px;display:none}@media (max-width:767px),(hover:none) and (pointer:coarse){.tp-mobile-unsupported{display:flex}.tp-playground-root{display:none!important}}.tp-mobile-unsupported-card{text-align:center;width:100%;max-width:28rem}.tp-mobile-unsupported-title.ant-typography{margin-bottom:0}.tp-mobile-unsupported-description.ant-typography{margin-bottom:0;font-size:.9375rem;line-height:1.5}
.tp-results-card .ant-card-body{padding:20px 24px}.tp-results-card-inner{width:100%;max-width:100%}.tp-results-chart-col{min-width:0}.tp-results-footer{border-top:1px solid var(--tp-border);width:100%;padding-top:16px}.tp-results-footer-stats{grid-template-columns:minmax(56px,.95fr) minmax(56px,.95fr) repeat(5,minmax(0,1fr));align-items:start;column-gap:0;width:100%;display:grid}.tp-results-footer-stats>*{min-width:0;padding-inline:10px;position:relative;overflow:hidden}.tp-results-footer-stats>:first-child{padding-left:0}.tp-results-footer-stats>:last-child{padding-right:0}.tp-results-footer-stats>*+:before{content:"";background:var(--tp-border);width:1px;position:absolute;top:4px;bottom:4px;left:0}.tp-results-footer-stats>:nth-child(3){padding-left:16px}.tp-results-footer-stats>:nth-child(3):before{opacity:.85;left:8px}.tp-results-footer-stats .tp-stat-card .ant-statistic-title,.tp-results-footer-stats .tp-stat-card .ant-statistic-content,.tp-results-footer-stats .tp-stat-card .ant-statistic-content-value{min-width:0;max-width:100%}.tp-results-footer-stats .tp-stat-card,.tp-results-footer-stats .tp-char-stats{grid-template-rows:auto auto auto;row-gap:0;width:100%;min-width:0;display:grid;overflow:hidden}.tp-results-footer-stats .tp-stat-card .ant-statistic{display:contents}.tp-results-footer-stats .tp-stat-card .ant-statistic-title,.tp-results-footer-stats .tp-char-stats__title{letter-spacing:.04em;text-transform:uppercase;color:var(--tp-text-muted);white-space:nowrap;text-overflow:ellipsis;grid-row:1;align-self:start;margin:0 0 6px;padding-bottom:0;font-size:9px;font-weight:500;line-height:12px;overflow:hidden}.tp-results-footer-stats .tp-stat-card .ant-statistic-content,.tp-results-footer-stats .tp-stat-card .ant-statistic-content-value,.tp-results-footer-stats .tp-stat-card .ant-statistic-content-value-int,.tp-results-footer-stats .tp-stat-card .ant-statistic-content-value-decimal,.tp-results-footer-stats .tp-char-stats__values{font-family:var(--tp-font-mono);font-variant-numeric:tabular-nums;color:var(--tp-results-secondary);white-space:nowrap;text-overflow:ellipsis;grid-row:2;align-self:start;margin:0;padding:0;font-size:15px;line-height:20px;overflow:hidden}.tp-results-footer-stats .tp-stat-card--featured .ant-statistic-title,.tp-results-footer-stats .tp-stat-card--featured .ant-statistic-content,.tp-results-footer-stats .tp-stat-card--featured .ant-statistic-content-value,.tp-results-footer-stats .tp-stat-card--featured .ant-statistic-content-value-int,.tp-results-footer-stats .tp-stat-card--featured .ant-statistic-content-value-decimal{color:var(--tp-results-featured);font-weight:500}.tp-results-footer-stats .tp-stat-card--featured .ant-statistic-content,.tp-results-footer-stats .tp-stat-card--featured .ant-statistic-content-value-int,.tp-results-footer-stats .tp-stat-card--featured .ant-statistic-content-value-decimal{font-size:18px;line-height:22px}.tp-results-footer-stats .tp-char-stats__values{flex-wrap:nowrap;align-items:flex-start;font-size:14px;line-height:20px;display:flex}.tp-results-footer-stats .tp-char-stats__sep{margin:0 .12em}.tp-results-footer-stats .tp-char-stats__n--correct{color:var(--tp-results-secondary)}.tp-results-footer-stats .tp-stat-card-sub,.tp-results-footer-stats .tp-char-stats__sub{white-space:nowrap;text-overflow:ellipsis;grid-row:3;align-self:start;margin:1px 0 0;padding:0;font-size:9px;line-height:12px;overflow:hidden}.tp-results-footer-stats .tp-stat-card-sub--empty{visibility:hidden;min-height:12px;margin-top:0}.tp-stat-card{flex-shrink:0;min-width:0}.tp-stat-card .ant-statistic-title{color:var(--tp-text-muted);margin-bottom:0;font-size:16px;font-weight:400;line-height:16px}.tp-stat-card .ant-statistic-content{font-family:var(--tp-font-mono);font-variant-numeric:tabular-nums;color:var(--tp-text-primary);font-size:20px;line-height:28px}.tp-stat-card-sub{margin-top:0;font-size:12px;display:block}.tp-stat-card-sub-label{margin-right:4px}.tp-char-stats__title{color:var(--tp-text-muted);margin-bottom:4px;font-size:16px;font-weight:400;line-height:16px}.tp-char-stats__values{font-family:var(--tp-font-mono);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;font-size:20px;line-height:28px;display:flex}.tp-char-stats__sep{color:var(--tp-text-muted);margin:0 .2em;font-weight:400}.tp-char-stats__n--correct{color:var(--tp-text-primary)}.tp-char-stats__n--incorrect,.tp-char-stats__n--extra{color:var(--tp-error)}.tp-char-stats__n--missed{color:var(--tp-error);opacity:.72;text-decoration:underline;-webkit-text-decoration-color:var(--tp-error);text-decoration-color:var(--tp-error);text-underline-offset:.12em}.tp-results-chart-shell{width:100%}.tp-results-chart{box-sizing:border-box;width:calc(100% + 48px);max-width:calc(100% + 48px);height:var(--tp-results-chart-height);margin-inline:-24px}.tp-results-chart canvas{max-width:100%}.tp-results-chart-key{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:12px;display:grid}.tp-results-chart-legend{flex-wrap:nowrap;align-items:center;gap:0;min-width:0;margin:0;padding:0;list-style:none;display:flex}.tp-results-chart-legend-item{align-items:center;gap:8px;min-width:0;padding-inline:14px;display:inline-flex}.tp-results-chart-legend-item:first-child{padding-left:0}.tp-results-chart-legend-item+.tp-results-chart-legend-item{border-left:1px solid var(--tp-border)}.tp-results-chart-legend-swatch{border-radius:999px;flex-shrink:0;width:18px;height:3px}.tp-results-chart-legend-swatch--dash{background:repeating-linear-gradient(90deg, var(--tp-chart-legend-color) 0 4px, transparent 4px 7px)}.tp-results-chart-legend-label{letter-spacing:.04em;text-transform:uppercase;color:var(--tp-text-muted);white-space:nowrap;font-size:11px;font-weight:500;line-height:1}.tp-results-chart-meta{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.tp-results-chart-meta-value{font-family:var(--tp-font-mono);font-variant-numeric:tabular-nums;color:var(--tp-text-primary);white-space:nowrap;font-size:12px;line-height:1}.tp-results-chart-meta-tag{letter-spacing:.05em;text-transform:uppercase;color:var(--tp-text-muted);background:var(--tp-fill-secondary);border:1px solid var(--tp-border);border-radius:var(--tp-radius-md);white-space:nowrap;padding:3px 8px;font-size:10px;font-weight:500;line-height:1}@media (max-width:720px){.tp-results-footer-stats{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:16px}.tp-results-footer-stats>*+:before{display:none}.tp-results-footer-stats>*{padding-inline:0}.tp-results-footer-stats>:nth-child(3){padding-left:0}.tp-results-chart-key{grid-template-columns:1fr;gap:10px}.tp-results-chart-meta{justify-content:flex-start}}
.tp-form-label{color:var(--tp-text-primary);font-size:14px;font-weight:600;line-height:1.4;display:block}.tp-form-label-required{color:var(--tp-error)}.tp-section-title.ant-typography{color:var(--tp-text-primary);margin-bottom:0;font-size:16px;font-weight:600;line-height:1.35}.tp-section-note.ant-typography{margin-bottom:0;font-size:12px}.tp-settings-section-fields .tp-form-label{color:var(--tp-text-primary);font-size:14px;font-weight:600}.tp-settings-section-fields .tp-form-label+.ant-typography{color:var(--tp-text-muted);font-size:12px;line-height:1.45}
.tp-switch.ant-switch,.tp-switch.ant-switch:hover:not(.ant-switch-disabled){background:var(--tp-color-fill-secondary)}.tp-switch.ant-switch.ant-switch-checked{background:var(--tp-color-primary)}.tp-switch.ant-switch.ant-switch-checked:hover:not(.ant-switch-disabled){background:var(--tp-color-primary-hover)}.tp-switch.ant-switch .ant-switch-handle:before{background-color:var(--tp-color-bg-container)}.tp-switch.ant-switch.ant-switch-checked .ant-switch-handle:before{background-color:var(--tp-color-text-light-solid)}.tp-switch.ant-switch.ant-switch-disabled{opacity:.45}
.tp-progress__header{margin-bottom:6px}.tp-progress__title,.tp-progress__label{color:var(--tp-text-muted);font-size:.8125rem;line-height:1.2}.tp-progress__track{background:var(--tp-color-fill-secondary);border-radius:999px;height:4px;overflow:hidden}.tp-progress__fill{border-radius:inherit;background:var(--tp-text-primary);height:100%;transition:width .2s}
.tp-config-pill.ant-segmented,.tp-config-pill.ant-tag-checkable-group{background:var(--tp-color-bg-container);border:1px solid var(--tp-color-border);border-radius:var(--tp-radius-md);flex-shrink:0;width:max-content;max-width:none;padding:2px;display:inline-flex}.tp-config-pill.ant-segmented .ant-segmented-group{flex-flow:row;align-items:center;display:inline-flex}.tp-config-pill.ant-segmented .ant-segmented-item,.tp-config-pill.ant-segmented .ant-segmented-item-label{white-space:nowrap}.tp-config-pill.ant-segmented .ant-segmented-item:not(.ant-segmented-item-selected){color:var(--tp-color-text-description);background:0 0}.tp-config-pill.ant-segmented .ant-segmented-item-selected{color:var(--tp-color-text);background:var(--tp-color-fill-secondary)}.tp-config-pill.ant-segmented .ant-segmented-thumb{background:var(--tp-color-fill-secondary);box-shadow:none}.tp-config-pill-action.ant-segmented .ant-segmented-thumb{display:none}.tp-config-pill-action.ant-segmented .ant-segmented-item,.tp-config-pill-action.ant-segmented .ant-segmented-item-selected{color:var(--tp-color-text-description);box-shadow:none;background:0 0}.tp-config-pill-action.ant-segmented .ant-segmented-item:hover:not(.ant-segmented-item-disabled),.tp-config-pill-action.ant-segmented .ant-segmented-item-selected:hover:not(.ant-segmented-item-disabled){color:var(--tp-color-text)}.tp-config-pill-action.ant-segmented .ant-segmented-item:hover:not(.ant-segmented-item-disabled):after,.tp-config-pill-action.ant-segmented .ant-segmented-item-selected:hover:not(.ant-segmented-item-disabled):after{opacity:1;background-color:var(--tp-color-fill-secondary)}.tp-config-pill.ant-tag-checkable-group{flex-flow:row;align-items:center;gap:0}.tp-config-pill.ant-tag-checkable-group .ant-tag-checkable{min-height:28px;line-height:28px;font-size:inherit;white-space:nowrap;border-radius:var(--tp-radius-sm);color:var(--tp-color-text-description);cursor:pointer;background:0 0;border:none;margin:0;padding-inline:11px}.tp-config-pill.ant-tag-checkable-group .ant-tag-checkable:hover:not(.ant-tag-checkable-disabled){color:var(--tp-color-text)}.tp-config-pill.ant-tag-checkable-group .ant-tag-checkable-checked{background:var(--tp-color-fill-secondary);color:var(--tp-color-text)}.tp-config-pill.ant-segmented.ant-segmented-disabled .ant-segmented-item,.tp-config-pill.ant-segmented.ant-segmented-disabled .ant-segmented-item-selected,.tp-config-pill.ant-segmented .ant-segmented-item-disabled{color:var(--tp-text-disabled);cursor:not-allowed}.tp-config-pill.ant-segmented.ant-segmented-disabled .ant-segmented-thumb{box-shadow:none;background:0 0}.tp-config-pill.ant-tag-checkable-group.ant-tag-checkable-group-disabled .ant-tag-checkable,.tp-config-pill.ant-tag-checkable-group .ant-tag-checkable-disabled,.tp-config-pill.ant-tag-checkable-group .ant-tag-checkable-disabled.ant-tag-checkable-checked{color:var(--tp-text-disabled);cursor:not-allowed;background-color:#0000}
.tp-shortcut-group-list{margin-top:12px}.tp-shortcut-row-label{flex:1;min-width:0}.tp-shortcut-row-keys{flex-shrink:0}

