@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-latin-400-normal.B40WzpMT.woff2)format("woff2"),url(/_astro/geist-latin-400-normal.akEymXtG.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-latin-500-normal.CTWBw9NS.woff2)format("woff2"),url(/_astro/geist-latin-500-normal.BDXIbFrL.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/geist-latin-600-normal.CSETrqM2.woff2)format("woff2"),url(/_astro/geist-latin-600-normal.DsPlZH-9.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-ext-400-normal.fXTG6kC5.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-cyrillic-400-normal.BEIGL1Tu.woff2)format("woff2"),url(/_astro/jetbrains-mono-cyrillic-400-normal.ugxPyKxw.woff)format("woff")}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/unbounded-latin-600-normal.oRSANpZr.woff2)format("woff2"),url(/_astro/unbounded-latin-600-normal.BPdB_PEv.woff)format("woff")}@font-face{font-family:Noto Sans Hebrew;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/noto-sans-hebrew-hebrew-400-normal.Bp0xVS9x.woff2)format("woff2"),url(/_astro/noto-sans-hebrew-hebrew-400-normal.BEvsRI_S.woff)format("woff")}:root,[data-theme=orbit]{--bg:#0b0d13;--bg-2:#11141d;--panel:#151925;--line:#222838;--sub:#586176;--sub-2:#8891a6;--text:#e9edf6;--accent:#5cf2c4;--accent-ink:#062a20;--glow:#5cf2c429;--error:#ff5d7d;--error-dim:#8a3448;--gold:#ffd166;color-scheme:dark}[data-theme=paper]{--bg:#f3f1eb;--bg-2:#ebe8df;--panel:#fbfaf6;--line:#dcd8cc;--sub:#a29f95;--sub-2:#6d6a62;--text:#1c1d21;--accent:#2f5bff;--accent-ink:#fff;--glow:#2f5bff1f;--error:#d6304f;--error-dim:#e7a3b0;--gold:#b7791f;color-scheme:light}[data-theme=neon]{--bg:#0d0716;--bg-2:#140b22;--panel:#1a0f2c;--line:#2c1d46;--sub:#6b5a8c;--sub-2:#a08fc4;--text:#f4ecff;--accent:#ff4fd8;--accent-ink:#2a0322;--glow:#ff4fd82e;--error:#ffb84f;--error-dim:#7a5626;--gold:#7df9ff;color-scheme:dark}[data-theme=dune]{--bg:#1b1712;--bg-2:#221d16;--panel:#29231b;--line:#3a3226;--sub:#7d6f5b;--sub-2:#ad9f88;--text:#f2e6d2;--accent:#f0a04b;--accent-ink:#2b1703;--glow:#f0a04b29;--error:#ff6b5b;--error-dim:#7c3a31;--gold:#ffd166;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);flex-direction:column;min-height:100vh;margin:0;font:400 16px/1.6 Geist,system-ui,-apple-system,Segoe UI,sans-serif;transition:background-color .25s,color .25s;display:flex}main{flex:1}a{color:inherit}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.wrap{width:min(1180px,100% - 32px);margin-inline:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip:focus{clip:auto;background:var(--accent);width:auto;height:auto;color:var(--accent-ink);z-index:50;border-radius:8px;padding:8px 14px;position:fixed;inset:8px auto auto 8px}kbd{background:var(--bg-2);border:1px solid var(--line);color:var(--sub-2);border-bottom-width:2px;border-radius:5px;padding:2px 6px;font:500 .78em/1 JetBrains Mono,monospace}.site-header{padding:22px 0 6px}.site-header .wrap{align-items:center;gap:28px;display:flex}.logo{letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:10px;font:600 19px/1 Unbounded,Geist,sans-serif;text-decoration:none;display:inline-flex}.logo .mark{background:linear-gradient(145deg, var(--accent), color-mix(in srgb, var(--accent) 55%, var(--bg)));width:30px;height:30px;color:var(--accent-ink);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent), 0 6px 24px var(--glow);border-radius:8px;place-items:center;font:700 14px/1 JetBrains Mono,monospace;display:grid}.logo .dot{color:var(--accent)}.nav{align-items:center;gap:4px;margin-inline-start:auto;display:flex}.nav a,.nav button{color:var(--sub-2);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:9px 12px;font:500 14px/1 Geist,sans-serif;text-decoration:none;display:inline-flex}.nav a:hover,.nav button:hover{color:var(--text);background:var(--bg-2)}.nav a[aria-current=page]{color:var(--accent)}.nav svg{width:16px;height:16px}.theme-dots{gap:3px;display:inline-flex}.theme-dots i{border-radius:50%;width:8px;height:8px;display:block}.site-footer{border-top:1px solid var(--line);color:var(--sub);margin-top:80px;padding:28px 0 40px;font-size:14px}.site-footer .wrap{flex-wrap:wrap;align-items:center;gap:12px 26px;display:flex}.site-footer a{color:var(--sub-2);text-decoration:none}.site-footer a:hover{color:var(--accent)}.site-footer .spacer{flex:1}@media (width<=760px){.site-header .wrap{flex-wrap:wrap;gap:10px}.nav{scrollbar-width:none;width:100%;margin-inline-start:0;overflow-x:auto}.nav a,.nav button{white-space:nowrap;padding:8px 7px;font-size:13px}.nav [data-theme-name]{display:none}}.typer{--font-size:28px;--line-h:1.6;padding:34px 0 10px;position:relative}.config{background:var(--bg-2);border-radius:12px;flex-wrap:wrap;justify-content:center;gap:6px;width:fit-content;max-width:100%;margin:0 auto 44px;padding:6px 10px;font:500 13px/1 Geist,sans-serif;transition:opacity .25s;display:flex}.config .group{align-items:center;gap:2px;display:flex}.config .sep{background:var(--line);border-radius:3px;width:3px;margin:4px 6px}.config button,.config select{font:inherit;color:var(--sub);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:8px 9px}.config select{appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23888' stroke-width='1.5'/%3E%3C/svg%3E") right 6px center no-repeat;padding-inline-end:22px}.config select option{background:var(--panel);color:var(--text)}.config button:hover,.config select:hover{color:var(--text)}.config button[aria-pressed=true]{color:var(--accent)}.typer.running .config,.typer.running .page-head,.typer.running~*{opacity:0;pointer-events:none}.test{max-width:1040px;margin:0 auto;position:relative}.live{height:40px;color:var(--accent);align-items:baseline;gap:18px;padding-inline:4px;font:500 26px/1 JetBrains Mono,monospace;display:flex}.live [data-live-wpm]{color:var(--sub);opacity:0;font-size:18px;transition:opacity .2s}.typer.running .live [data-live-wpm]{opacity:1}.typer:not(.running) .live [data-counter]{opacity:.55}.words-wrap{height:calc(var(--font-size) * var(--line-h) * 3);font:400 var(--font-size) / var(--line-h) "JetBrains Mono", "Noto Sans Hebrew", ui-monospace, monospace;cursor:text;user-select:none;position:relative;overflow:hidden}.words-wrap[dir=rtl]{--font-size:30px;font-family:Noto Sans Hebrew,JetBrains Mono,sans-serif}.words{flex-wrap:wrap;align-content:flex-start;transition:filter .2s;display:flex}.word{height:calc(var(--font-size) * var(--line-h));color:var(--sub);border-bottom:2px solid #0000;margin:0 .3em;display:flex}.word .l{transition:color 80ms}.word .ok{color:var(--text)}.word .bad{color:var(--error)}.word .extra{color:var(--error-dim)}.word.error{border-bottom-color:color-mix(in srgb, var(--error) 70%, transparent)}.caret{background:var(--accent);width:2.5px;box-shadow:0 0 12px var(--accent);z-index:2;pointer-events:none;border-radius:2px;transition:transform 90ms ease-out;animation:1.1s ease-in-out infinite blink;position:absolute;top:0;left:0}.typer.typing .caret{animation:none}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.blur-msg{color:var(--text);opacity:0;pointer-events:none;z-index:3;place-items:center;font:500 16px/1.4 Geist,sans-serif;transition:opacity .2s;display:grid;position:absolute;inset:0}.blur-msg>span{align-items:center;gap:8px;display:inline-flex}.typer.blurred .words{filter:blur(5px);opacity:.55}.typer.blurred .blur-msg{opacity:1}.typer.blurred .caret{opacity:0;animation:none}.hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;font-size:16px;position:absolute;top:0;left:0}.under{flex-direction:column;align-items:center;gap:14px;margin-top:26px;display:flex}.icon-btn{width:52px;height:52px;color:var(--sub);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;transition:color .15s,background .15s;display:grid}.icon-btn:hover,.icon-btn:focus-visible{color:var(--text);background:var(--bg-2)}.icon-btn svg{width:22px;height:22px}.hint{color:var(--sub);margin:0;font-size:13px}.capslock{background:var(--accent);color:var(--accent-ink);z-index:4;border-radius:8px;padding:8px 12px;font:600 13px/1 Geist,sans-serif;position:absolute;top:-6px;left:50%;translate:-50%}.result{max-width:1040px;margin:0 auto;animation:.35s ease-out rise}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.result-top{grid-template-columns:190px 1fr;align-items:center;gap:24px;display:grid}.big .label{color:var(--sub);margin-bottom:4px;font:500 15px/1 Geist,sans-serif}.big .value{color:var(--accent);letter-spacing:-.03em;font:500 64px/1 JetBrains Mono,monospace}.big+.big{margin-top:20px}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .axis text{fill:var(--sub);font:11px JetBrains Mono,monospace}.chart .g{stroke:var(--line);stroke-width:1px}.chart .wpm{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.chart .wpm-area{fill:var(--glow)}.chart .raw{fill:none;stroke:var(--sub);stroke-width:1.5px;stroke-dasharray:4 4}.chart .e path{stroke:var(--error);stroke-width:2px;stroke-linecap:round}.result-stats{border-top:1px solid var(--line);flex-wrap:wrap;gap:18px 40px;margin-top:26px;padding-top:22px;display:flex}.stat .label{color:var(--sub);font-size:13px}.stat .value{color:var(--text);font:500 24px/1.2 JetBrains Mono,monospace}.stat .value.small{padding-top:5px;font-size:16px}.stat .ok{color:var(--accent)}.stat .bad{color:var(--error)}.pb-note{color:var(--sub-2);margin:18px 0 0;font-size:14px}.pb-note.is-pb{color:var(--gold)}.pb-note.is-pb:before{content:"★ "}.result-actions{justify-content:center;gap:8px;margin-top:26px;display:flex}.result-extra:empty{display:none}@media (width<=760px){.typer{--font-size:22px;padding-top:18px}.words-wrap[dir=rtl]{--font-size:24px}.config{margin-bottom:24px}.result-top{grid-template-columns:1fr}.big{margin-inline-end:34px;display:inline-block}.big+.big{margin-top:0}.big .value{font-size:48px}.result-stats{gap:14px 26px}}.btn{border:1px solid var(--line);background:var(--bg-2);color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font:600 14px/1 Geist,sans-serif;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--sub)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 8px 30px var(--glow)}.btn.primary:hover{filter:brightness(1.06)}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font:500 12px/1 JetBrains Mono,monospace}.page-head{max-width:760px;padding:56px 0 30px}.page-head h1,.display{letter-spacing:-.035em;margin:14px 0 16px;font:600 clamp(32px,5vw,54px)/1.08 Unbounded,Geist,sans-serif}.page-head p{color:var(--sub-2);margin:0;font-size:18px}.section-title{letter-spacing:-.02em;margin:0 0 18px;font:600 22px/1.2 Unbounded,Geist,sans-serif}.prose{max-width:760px;color:var(--sub-2)}.prose h2{color:var(--text);letter-spacing:-.02em;margin:46px 0 12px;font:600 22px/1.25 Unbounded,Geist,sans-serif}.prose h3{color:var(--text);margin:28px 0 6px;font-size:17px}.prose strong{color:var(--text);font-weight:600}.prose a{color:var(--accent)}.prose code{background:var(--bg-2);color:var(--text);border-radius:5px;padding:2px 6px;font:.9em JetBrains Mono,monospace}.below{margin-top:90px}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:10px;padding:22px;text-decoration:none;transition:border-color .2s,transform .2s;display:flex;position:relative;overflow:hidden}.card:after{content:"";background:radial-gradient(circle, var(--glow), transparent 70%);opacity:0;pointer-events:none;border-radius:50%;width:220px;height:220px;transition:opacity .25s;position:absolute;inset:auto -40% -60% auto}a.card:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--line));transform:translateY(-2px)}a.card:hover:after{opacity:1}.card h3{letter-spacing:-.02em;margin:0;font:600 18px/1.25 Unbounded,Geist,sans-serif}.card p{color:var(--sub-2);margin:0;font-size:14.5px}.card .meta{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:6px;display:flex}.chip{background:var(--bg-2);color:var(--sub-2);border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:500 11.5px/1 JetBrains Mono,monospace}.chip.accent{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.chip.beginner{color:#5cf2c4}.chip.intermediate{color:#ffd166}.chip.advanced{color:#ff7d95}[data-theme=paper] .chip.beginner{color:#138a63}[data-theme=paper] .chip.intermediate{color:#9a6a00}[data-theme=paper] .chip.advanced{color:#c02646}.board{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}.board-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:16px 18px;display:flex}.board-head h2,.board-head h3{letter-spacing:-.01em;margin:0;font:600 16px/1.2 Unbounded,Geist,sans-serif}.tabs{background:var(--bg-2);border-radius:9px;margin-inline-start:auto;padding:3px;display:inline-flex}.tabs button{color:var(--sub-2);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:7px 10px;font:500 12.5px/1 Geist,sans-serif}.tabs button[aria-selected=true]{background:var(--panel);color:var(--accent);box-shadow:0 1px 0 var(--line)}.board table{border-collapse:collapse;width:100%;font-size:14px}.board th{text-align:start;color:var(--sub);text-transform:uppercase;letter-spacing:.08em;padding:12px 18px 8px;font:500 11.5px/1 JetBrains Mono,monospace}.board td{border-top:1px solid color-mix(in srgb, var(--line) 60%, transparent);padding:9px 18px}.board td.n,.board th.n{text-align:end;white-space:nowrap;font-family:JetBrains Mono,monospace}.board td.rank{width:48px;color:var(--sub);font-family:JetBrains Mono,monospace}.board tr:first-child td.rank{color:var(--gold)}.board tr.me td{background:var(--glow)}.board td.wpm{color:var(--accent);font-weight:600}.board .empty{color:var(--sub);text-align:center;padding:28px 18px;font-size:14px}.board .name{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.flag{margin-inline-end:6px}.submit-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:22px;display:flex}.field{border:1px solid var(--line);background:var(--bg-2);color:var(--text);border-radius:10px;min-width:220px;padding:12px 14px;font:500 15px/1 Geist,sans-serif}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow);outline:none}.form-note{text-align:center;width:100%;color:var(--sub);margin:4px 0 0;font-size:13px}.form-note.ok{color:var(--accent)}.form-note.bad{color:var(--error)}.focus-mode .site-header,.focus-mode .site-footer{opacity:0;pointer-events:none;transition:opacity .3s}.site-header,.site-footer{transition:opacity .3s}.for-touch{display:none}@media (hover:none) and (pointer:coarse){.hint,.for-keys{display:none}.for-touch{display:inline}}.prose .display{color:var(--text)}.site-footer .footer-grid{grid-template-columns:1.3fr 1fr 1fr 1fr;align-items:start;gap:32px;display:grid}.footer-brand p{max-width:300px;margin:12px 0 0;line-height:1.55}.footer-brand .copy{color:var(--sub);font-size:13px}.footer-h{color:var(--text);letter-spacing:.02em;margin:4px 0 10px;font:600 13px/1 Geist,sans-serif}.site-footer ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}@media (width<=860px){.site-footer .footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}.tool-title{text-align:center;letter-spacing:-.02em;margin:22px 0 0;font:600 clamp(20px,2.4vw,26px)/1.2 Unbounded,Geist,sans-serif}.tool-sub{text-align:center;color:var(--sub-2);max-width:640px;margin:8px auto 0;font-size:15px}.typer.running~*,.focus-mode .tool-title,.focus-mode .tool-sub,.focus-mode .crumbs{opacity:0;transition:opacity .3s}.crumbs{color:var(--sub);flex-wrap:wrap;gap:6px;padding-top:26px;font-size:13px;display:flex}.crumbs a{color:var(--sub-2);text-decoration:none}.crumbs a:hover{color:var(--accent)}.faq details{border-bottom:1px solid var(--line);padding:14px 0}.faq summary{cursor:pointer;color:var(--text);justify-content:space-between;gap:16px;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--accent);font:500 20px/1 JetBrains Mono,monospace}.faq details[open] summary:after{content:"–"}.faq details p{margin:10px 0 0}.cta-card{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));background:radial-gradient(120% 160% at 100% 0%, var(--glow), transparent 60%), var(--panel);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin:36px 0;padding:22px 24px;display:flex}.cta-card p{color:var(--text);margin:0;font-weight:500}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;margin:18px 0;font-size:15px}.data-table th,.data-table td{text-align:start;border-bottom:1px solid var(--line);padding:10px 12px}.data-table th{color:var(--text);background:var(--bg-2);font-weight:600}.data-table td:first-child{color:var(--text);white-space:nowrap;font-family:JetBrains Mono,monospace}.lang-links{flex-wrap:wrap;gap:8px;display:flex}.lang-links a{text-decoration:none}.lang-links a:hover{color:var(--accent)}.article-head{max-width:780px;padding:10px 0 8px}.article-head h1{letter-spacing:-.035em;margin:14px 0;font:600 clamp(30px,4.4vw,48px)/1.1 Unbounded,Geist,sans-serif}.article-head .lead{color:var(--sub-2);margin:0;font-size:19px}.updated{color:var(--sub);margin-top:14px;font-size:13px}
