*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font:400 14px/1.5 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}a{color:inherit}button{font:inherit;color:inherit}[hidden]{display:none!important}.em{--font-display: "Outfit", "Inter", system-ui, sans-serif;--font-read: "Lexend", "Inter", system-ui, sans-serif;--words-size: clamp(1.15rem, 4.6vw, 1.55rem);--words-lh: 1.6;display:flex;flex-direction:column;gap:12px;min-height:100%;padding:14px clamp(12px,3vw,20px) 12px;background:var(--bg)}.em-head{display:flex;align-items:center;gap:10px}.em-brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--text);font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:-.02em}.em-brand b{font-weight:800;color:var(--accent)}.em-mark{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--surface-2);border:1px solid var(--line-strong)}.em-mark svg{width:14px;height:14px;color:var(--accent)}.em-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.em-spacer{flex:1}.em-seg{display:inline-flex;padding:3px;border-radius:99px;background:var(--surface);border:1px solid var(--line)}.em-seg button{padding:3px 11px;border:0;border-radius:99px;background:none;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}.em-seg button[aria-pressed=true]{background:var(--surface-3);color:var(--text)}.em-seg button:focus-visible,.em-btn:focus-visible,.em-power:focus-visible,.em-brand:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.em-timer{min-width:2.4ch;text-align:right;font-family:var(--font-display);font-size:22px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--muted)}.em[data-phase=typing] .em-timer{color:var(--accent)}.em[data-phase=typing] .em-seg{opacity:.4;pointer-events:none}.em-stage{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;min-height:0}.em-words{position:relative;overflow:hidden;cursor:text;height:calc(var(--words-size) * var(--words-lh) * 3);font-family:var(--font-read);font-size:var(--words-size);line-height:var(--words-lh);color:var(--faint)}.em-track{position:relative;transition:transform .16s cubic-bezier(.22,.61,.36,1);overflow-wrap:normal;word-break:keep-all}.em-w{display:inline-block;white-space:nowrap}.em-l.is-ok{color:var(--text)}.em-l.is-bad{color:var(--err)}.em-l.is-extra{color:var(--err);opacity:.7}.em-w.is-wrong{text-decoration:underline wavy color-mix(in srgb,var(--err) 70%,transparent);text-underline-offset:6px;text-decoration-thickness:1px}.em-caret{position:absolute;left:0;top:0;width:2px;height:calc(var(--words-size) * 1.15);margin-top:calc(var(--words-size) * (var(--words-lh) - 1.15) / 2);border-radius:2px;background:var(--caret);transition:transform 90ms linear;opacity:0}.em.is-focused .em-caret{opacity:1;animation:em-blink 1s steps(1) infinite}.em[data-phase=typing] .em-caret{animation:none}@keyframes em-blink{50%{opacity:0}}.em-input{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;border:0;padding:0;font-size:16px}.em-hint{position:absolute;inset:0;display:grid;place-items:center;font-size:13px;font-weight:600;color:var(--text-2);pointer-events:none;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);transition:opacity .16s}.em-hint span{padding:7px 14px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line-strong)}.em.is-focused .em-hint,.em[data-phase=typing] .em-hint{opacity:0}.em-result{flex:1;display:flex;flex-direction:column;justify-content:center;gap:12px;animation:em-in .26s cubic-bezier(.16,1,.3,1)}@keyframes em-in{0%{opacity:0;transform:translateY(6px)}}.em-tiles{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:8px}.em-tile{position:relative;overflow:hidden;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}.em-tile:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--accent),var(--accent-2));opacity:.7}.em-tile-label{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.em-tile b{display:block;font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.em-tile b small{margin-left:3px;font-family:Inter,system-ui,sans-serif;font-size:11px;font-weight:600;letter-spacing:0;color:var(--muted)}.em-tile--main b{font-size:38px;font-weight:800;letter-spacing:-.035em;line-height:1.05}.em-actions{display:flex;flex-wrap:wrap;gap:8px}.em-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:11px;border:1px solid var(--line-strong);background:var(--surface-2);font-size:13px;font-weight:600;text-decoration:none;cursor:pointer}.em-btn:hover{background:var(--surface-3)}.em-btn--primary{flex:1;background:var(--accent);border-color:transparent;color:var(--accent-ink)}.em-btn--primary:hover{background:var(--accent);filter:brightness(1.08)}.em-note{margin:0;font-size:11px;color:var(--faint)}.em-foot{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--faint)}.em-foot kbd{padding:1px 6px;border-radius:5px;border:1px solid var(--line-strong);border-bottom-width:2px;background:var(--surface-2);font:600 10px/1.4 Inter,system-ui,sans-serif;color:var(--muted)}.em-power{margin-left:auto;color:var(--muted);text-decoration:none;font-weight:600}.em-power b{color:var(--text);font-weight:700}.em-power:hover{color:var(--text)}.em-offline{padding:8px 12px;border-radius:11px;font-size:12px;color:var(--text-2);background:var(--surface);border:1px dashed var(--line-strong)}@media (max-width: 460px){.em-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.em-tile{padding:8px 10px}.em-tile b{font-size:19px}.em-tile--main{grid-column:1 / -1}.em-tile--main b{font-size:32px}.em-btn{padding:8px 12px;font-size:12.5px}.em-note,.em-label,.em-foot-keys{display:none}}@media (max-height: 260px){.em-note,.em-foot-keys{display:none}.em{gap:8px;padding-top:10px}}@media (prefers-reduced-motion: reduce){.em-track,.em-caret,.em-result{transition:none;animation:none}}@media (max-width: 340px){.em-brand>span:last-child{display:none}.em-seg button{padding:3px 9px}}.em--page{max-width:760px;min-height:0;margin:8vh auto 0;padding:20px 24px 16px;border-radius:22px;border:1px solid var(--line);background:var(--surface)}.em--page .em-stage{min-height:200px}.em--page .em-tile{background:var(--surface-2)}
