:root{--bg:#111315;--surface:#181b1e;--surface2:#22262a;--fg:#e6e9ec;--dim:#5b6166;--caret:#7fd1b9;--correct:#e6e9ec;--error:#ff6b6b;--error-bg:#3a1f22;--accent:#7fd1b9;--font-mono:"JetBrains Mono", ui-monospace, monospace;--type-size:26px;--type-lh:1.6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;transition:background .25s,color .25s;overflow:hidden}button{cursor:pointer;font-family:inherit}::selection{background:var(--accent);color:var(--bg)}.app{flex-direction:column;max-width:1100px;height:100%;margin:0 auto;padding:0 24px;display:flex}.topbar{color:var(--dim);flex-wrap:wrap;align-items:center;gap:16px;padding:18px 4px;font-size:14px;display:flex}.topbar .brand{color:var(--accent);letter-spacing:-.5px;font-size:16px;font-weight:700}.topbar .spacer{flex:1}.topbar .seg{background:var(--surface);border-radius:8px;gap:2px;padding:3px;display:flex}.topbar .seg button{color:var(--dim);background:0 0;border:none;border-radius:6px;padding:5px 12px;font-size:13px;transition:all .15s}.topbar .seg button.active{background:var(--surface2);color:var(--fg)}.topbar .seg button:hover{color:var(--fg)}.topbar .picker{background:var(--surface);color:var(--fg);border:none;border-radius:8px;padding:6px 10px;font-family:inherit;font-size:13px}.iconbtn{background:var(--surface);color:var(--dim);border:none;border-radius:8px;place-items:center;width:34px;height:34px;font-size:16px;transition:all .15s;display:grid}.iconbtn:hover{color:var(--fg);background:var(--surface2)}.main{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;min-height:0;display:flex}.live-stats{color:var(--dim);font-variant-numeric:tabular-nums;gap:36px;height:24px;font-size:15px;display:flex}.live-stats b{color:var(--accent);font-weight:600}.typing-wrap{outline:none;width:100%;position:relative}.typing{white-space:pre-wrap;word-break:break-word;font-size:var(--type-size);line-height:var(--type-lh);letter-spacing:0;tab-size:4;font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0;font-kerning:none;max-height:52vh;padding:4px 2px;position:relative;overflow-y:auto}.typing.blurred{filter:blur(4px);opacity:.55}.focus-note{color:var(--fg);pointer-events:none;z-index:3;place-items:center;font-size:15px;display:grid;position:absolute;inset:0}.ch{position:relative}.ch.correct{color:var(--correct)}.ch.incorrect{color:var(--error);background:var(--error-bg);border-radius:2px}.ch.untyped{color:var(--dim)}.ch.auto{color:var(--correct);opacity:.85}.ch.untyped.tok-comment{color:color-mix(in srgb, var(--dim) 85%, var(--accent))}.ch.untyped.tok-keyword{color:color-mix(in srgb, var(--dim) 45%, var(--accent))}.ch.untyped.tok-string{color:color-mix(in srgb, var(--dim) 45%, #7bc47f)}.ch.untyped.tok-number{color:color-mix(in srgb, var(--dim) 45%, #d8a657)}.ch.untyped.tok-function{color:color-mix(in srgb, var(--dim) 45%, #7daef7)}.ch.untyped.tok-class{color:color-mix(in srgb, var(--dim) 45%, #e5c07b)}.ch.untyped.tok-prop{color:color-mix(in srgb, var(--dim) 55%, var(--fg))}.ch.untyped.tok-punct{color:var(--dim)}.caret{background:var(--caret);z-index:2;border-radius:1px;width:2px;position:absolute}.caret.smooth{transition:left 80ms,top 80ms}.caret.block{opacity:.4;border-radius:2px;width:.62em}.caret.underline{top:auto;height:2px!important}.caret.blink{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.title-line{color:var(--dim);height:16px;font-size:13px}.results{flex-direction:column;gap:24px;width:100%;animation:.25s fade;display:flex}@keyframes fade{0%{opacity:0;transform:translateY(6px)}}.results-top{align-items:center;gap:40px;display:flex}.big-stat .label{color:var(--dim);font-size:13px}.big-stat .value{color:var(--accent);font-variant-numeric:tabular-nums;font-size:56px;font-weight:700;line-height:1}.big-stat .sub{color:var(--dim);font-size:13px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:18px 28px;display:grid}.stat-grid .label{color:var(--dim);font-size:12px}.stat-grid .value{color:var(--fg);font-variant-numeric:tabular-nums;font-size:22px}.pb-badge{color:var(--accent);font-size:13px}.results-actions{color:var(--dim);align-items:center;gap:12px;font-size:13px;display:flex}.results-actions button{background:var(--surface);color:var(--fg);border:none;border-radius:8px;padding:8px 16px;font-size:14px;transition:all .15s}.results-actions button:hover{background:var(--surface2)}.results-actions kbd{background:var(--surface2);color:var(--dim);border-radius:4px;padding:1px 6px;font-size:11px}.warmup-prompt{text-align:center;max-width:640px;font-size:22px;line-height:1.5}.warmup-input{background:var(--surface);width:100%;min-height:160px;color:var(--fg);border:1px solid var(--surface2);resize:vertical;tab-size:4;border-radius:12px;outline:none;padding:16px;font-family:inherit;font-size:18px;line-height:1.5}.warmup-input:focus{border-color:var(--accent)}.warmup-reveal{background:var(--surface);border-radius:12px;width:100%;padding:16px}.warmup-reveal pre{color:var(--fg);white-space:pre-wrap;margin:0;font-size:16px;overflow-x:auto}.warmup-verdict.ok{color:var(--accent)}.warmup-verdict.no{color:var(--error)}.overlay{z-index:50;background:#00000080;place-items:start center;padding-top:12vh;animation:.15s fade;display:grid;position:fixed;inset:0}.panel{background:var(--surface);border:1px solid var(--surface2);border-radius:14px;width:min(640px,92vw);max-height:70vh;padding:22px;overflow-y:auto;box-shadow:0 20px 60px #0006}.panel h3{color:var(--dim);text-transform:uppercase;letter-spacing:1px;margin:0 0 6px;font-size:13px}.panel section{margin-bottom:22px}.row{flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0;display:flex}.row>label{color:var(--dim);min-width:90px;font-size:13px}.chip{background:var(--surface2);color:var(--fg);border:1px solid #0000;border-radius:8px;padding:5px 11px;font-size:13px;transition:all .12s}.chip:hover{border-color:var(--accent)}.chip.active{background:var(--accent);color:var(--bg)}.swatch{vertical-align:-2px;border:1px solid #ffffff26;border-radius:4px;width:14px;height:14px;margin-right:7px;display:inline-block}input[type=range]{accent-color:var(--accent)}.hint{color:var(--dim);margin-top:10px;font-size:12px}.cmd-input{background:var(--bg);border:1px solid var(--surface2);width:100%;color:var(--fg);border-radius:10px;outline:none;margin-bottom:12px;padding:12px 14px;font-family:inherit;font-size:16px}.cmd-item{cursor:pointer;border-radius:8px;justify-content:space-between;padding:10px 12px;display:flex}.cmd-item.sel{background:var(--surface2)}.cmd-item .k{color:var(--dim);font-size:12px}
