:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--surface:#fff;--surface-sunken:#f4f4f5;--ink:#1a1a1a;--ink-muted:#595959;--accent:#0b5cab;--accent-ink:#fff;--border:#c2c2c4;--focus:#0b5cab;--danger:#a4262c;--space:1rem;--radius:.375rem;--measure:38rem;--measure-app:78rem;--board-plate:#dedee1;--board-cap:#fafafb;--board-cap-ink:#1a1a1a;--board-cap-next:#0b5cab;--board-cap-next-ink:#fff;--board-edge:#84848a;--finger-pinky:#6a4b9c;--finger-ring:#1f6390;--finger-middle:#0f6a6a;--finger-index:#8a5310;--finger-thumb:#a8322c}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--surface:#121212;--surface-sunken:#1d1d1f;--ink:#f2f2f2;--ink-muted:#a8a8a8;--accent:#7fb4f5;--accent-ink:#10243a;--border:#3f3f43;--focus:#7fb4f5;--danger:#f2a0a4;--board-plate:#17171a;--board-cap:#313138;--board-cap-ink:#f2f2f2;--board-cap-next:#7fb4f5;--board-cap-next-ink:#10243a;--board-edge:#8a8a92;--finger-pinky:#b6a4e8;--finger-ring:#7fb6e8;--finger-middle:#4fc0bd;--finger-index:#e0a752;--finger-thumb:#f0897f}}*{box-sizing:border-box}body{background:var(--surface);color:var(--ink);margin:0;padding:0;font:1rem/1.5 system-ui,-apple-system,Segoe UI,sans-serif}main,.masthead,.colophon{max-width:var(--measure-app);padding-inline:var(--space);padding-block:var(--space);margin-inline:auto}h1{margin-block:0 .25rem;font-size:1.75rem}h2{margin-block:2rem .5rem;font-size:1.25rem}.tagline{color:var(--ink-muted);margin-block:0}.colophon{color:var(--ink-muted);border-top:1px solid var(--border);font-size:.875rem}.field{flex-direction:column;gap:.375rem;display:flex}input,button,select,a{min-height:1.5rem}input[type=file],select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);color:var(--ink);padding:.5rem}select{min-height:2.25rem;font:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.skip-link{position:absolute;inset-inline-start:-100vw}.skip-link:focus{padding:var(--space);display:inline-block;position:static}#layout-error{border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger);background:var(--surface-sunken);padding:.75rem}dl{grid-template-columns:auto 1fr;gap:.375rem 1rem;margin:0;display:grid}dt{color:var(--ink-muted)}dd{margin:0}.board-key[data-finger=pinky],.board-legend [data-finger=pinky]{--finger:var(--finger-pinky)}.board-key[data-finger=ring],.board-legend [data-finger=ring]{--finger:var(--finger-ring)}.board-key[data-finger=middle],.board-legend [data-finger=middle]{--finger:var(--finger-middle)}.board-key[data-finger=index],.board-legend [data-finger=index]{--finger:var(--finger-index)}.board-key[data-finger=thumb],.board-legend [data-finger=thumb]{--finger:var(--finger-thumb)}.board{border-radius:var(--radius);width:100%;max-width:100%;height:auto;margin-block:.5rem;display:block}.board-plate{fill:var(--board-plate)}.board-cap{fill:var(--board-cap);stroke:var(--finger,var(--board-edge));transition:fill .12s ease-out}.board-label{fill:var(--board-cap-ink);font-family:ui-monospace,monospace}.board-nub{fill:none;stroke:var(--board-edge)}.board-halo{fill:none;stroke:var(--board-cap-next)}.board-key-next .board-cap{fill:var(--board-cap-next)}.board-key-next .board-label{fill:var(--board-cap-next-ink)}.board-legend{flex-wrap:wrap;gap:.375rem .5rem;margin-block:.5rem;padding:0;font-size:.875rem;list-style:none;display:flex}.board-legend li{border-radius:var(--radius);color:var(--ink);background:var(--board-plate);align-items:center;gap:.375rem;padding:.125rem .5rem;display:inline-flex}.board-legend-swatch{background:var(--finger,var(--board-edge));border-radius:.25rem;width:.75rem;height:.75rem}.board-key-detail summary{cursor:pointer;min-height:1.5rem;padding-block:.25rem}.board-key-list{columns:15rem;margin-block:.5rem 0;padding:0;font-size:.875rem;list-style:none}.board-key-list li{break-inside:avoid;padding-block:.125rem}.board-key-list-cap{border:1px solid var(--board-edge);min-width:1.5rem;color:var(--board-cap-ink);text-align:center;background:var(--board-cap);border-radius:.25rem;padding-inline:.25rem;font-family:ui-monospace,monospace;display:inline-block}.button{border-radius:var(--radius);min-height:2.25rem;font:inherit;cursor:pointer;border:2px solid #0000;padding:.4rem .9rem}.button-solid{color:var(--accent-ink);border-color:var(--accent);background:var(--accent)}.button-outline{color:var(--accent);border-color:var(--accent);background:var(--surface)}.drill-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.drill-next{margin-block:.5rem;font-weight:600}.sprint-countdown{color:var(--ink);font-variant-numeric:tabular-nums;margin-block:.5rem;font-weight:600;transition:none}.drill-surface{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);padding:.75rem}.drill-surface[data-captured=true]{border-color:var(--accent)}.drill-text{white-space:pre-wrap;overflow-wrap:normal;margin:0;font-family:ui-monospace,monospace;font-size:clamp(1rem,.85rem + 1.2vw,1.375rem);line-height:2}.drill-word{white-space:nowrap}.drill-char{text-underline-offset:.18em;padding-block-end:.1em;text-decoration-thickness:.12em;transition:none}.drill-char[data-mark=pending]{color:var(--ink-muted);text-decoration:none}.drill-char[data-mark=correct]{color:var(--ink);-webkit-text-decoration:underline solid var(--accent);text-decoration:underline solid var(--accent)}.drill-char[data-mark=wrong]{color:var(--danger);-webkit-text-decoration:underline wavy var(--danger);text-decoration:underline wavy var(--danger);font-weight:700}.drill-char[data-cursor=true]{color:var(--accent-ink);background:var(--accent);border-radius:.15em}.drill-hint,.drill-progress{color:var(--ink-muted);margin-block:.5rem;font-size:.875rem}.drill-error{border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger);background:var(--surface-sunken);padding:.75rem}.drill-result{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);margin-block:1rem;padding:.75rem}.drill-result h3{margin-block:0 .5rem;font-size:1.125rem}.drill-result-summary{margin-block:0 .5rem;font-weight:600}.ladder-current{border-inline-start:.25rem solid var(--accent);border-radius:var(--radius);background:var(--surface-sunken);padding:.5rem .75rem}.ladder{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));align-content:start;gap:.5rem;margin-block:.75rem;padding:0;list-style:none;display:grid}.ladder-rung{border:1px solid var(--border);border-inline-start:.25rem solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.25rem;padding:.75rem;display:flex}.ladder-rung :where(p){max-width:none}.ladder-rung>:last-child{margin-block-start:auto}.ladder-rung[data-state=current]{border-color:var(--accent);background:var(--surface-sunken)}.ladder-rung[data-state=locked]{border-inline-start-style:dashed}.ladder-rung-head{flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;margin-block:0 .25rem;display:flex}.ladder-rung-name{font-size:1.0625rem;font-weight:600}.ladder-stars{letter-spacing:.05em;font-size:1.125rem}.ladder-stars[data-stars="0"]{color:var(--ink-muted)}.ladder-stars-words,.ladder-state{color:var(--ink-muted);font-size:.875rem}.ladder-blurb,.ladder-keys,.ladder-state{margin-block:.25rem}.ladder-keys{font-family:ui-monospace,monospace;font-size:.8125rem}.ladder-action{margin-block:.5rem 0}.stats-summary{font-weight:600}.stats-empty{color:var(--ink-muted)}.stats-finger{border:1px solid var(--border);border-inline-start:.25rem solid var(--finger,var(--border));border-radius:var(--radius);margin-block:.75rem;padding:.75rem}.stats-finger[data-finger=pinky]{--finger:var(--finger-pinky)}.stats-finger[data-finger=ring]{--finger:var(--finger-ring)}.stats-finger[data-finger=middle]{--finger:var(--finger-middle)}.stats-finger[data-finger=index]{--finger:var(--finger-index)}.stats-finger[data-finger=thumb]{--finger:var(--finger-thumb)}.stats-finger-name{flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;margin-block:0 .25rem;font-size:1rem;display:flex}.stats-finger-label:first-letter,.stats-row-name:first-letter{text-transform:uppercase}.stats-finger-summary,.stats-row-summary{color:var(--ink-muted);margin-block:.25rem;font-size:.875rem;font-weight:400}.stats-band{text-transform:lowercase;border:1px solid;border-radius:1rem;padding:.0625rem .375rem;font-size:.75rem;font-weight:600}[data-severity=weak]>*>.stats-band,[data-severity=weak]>.stats-band{color:var(--danger)}[data-severity=steady]>*>.stats-band,[data-severity=steady]>.stats-band{color:var(--ink-muted)}.stats-rows{flex-direction:column;gap:.5rem;margin-block:.5rem 0;padding:0;list-style:none;display:flex}.stats-row{border-inline-start:2px solid var(--border);padding-inline-start:.625rem}.stats-row[data-severity=weak]{border-inline-start-color:var(--danger)}.stats-row-head{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin-block:0;display:flex}.stats-row-name{font-weight:600}.stats-bar{border:1px solid var(--border);background:var(--surface);border-radius:1rem;block-size:.5rem;inline-size:4rem;display:inline-block}.stats-bar-fill{background:var(--danger);border-radius:1rem;block-size:100%;display:block}.stats-keys{margin-block:.25rem 0;padding:0;font-size:.875rem;list-style:none}.stats-key{align-items:baseline;gap:.375rem;padding-block:.125rem;display:flex}.stats-key-cap{border:1px solid var(--board-edge);min-inline-size:1.5rem;color:var(--board-cap-ink);text-align:center;background:var(--board-cap);border-radius:.25rem;flex:none;padding-inline:.25rem;font-family:ui-monospace,monospace}.stats-steady summary{cursor:pointer;min-height:1.5rem;padding-block:.25rem}.progress-report{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);margin-block:.5rem;padding:.75rem}.progress-report p{margin-block:0 .5rem;font-weight:600}.progress-report ul{margin-block:0;padding-inline-start:1.25rem;font-size:.875rem}#progress-clear[data-armed=true]{border-style:dashed}#progress-error{border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger);background:var(--surface-sunken);padding:.75rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.board-cap{transition:none}}.workspace{gap:calc(var(--space) * 1.5);align-items:start;display:grid}@media (min-width:62rem){.workspace{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.workspace>section{top:var(--space);position:sticky}}.workspace>section{min-width:0}:where(main section){scroll-margin-top:3.5rem}.setup{gap:calc(var(--space) * 1.5);align-items:start;margin-block-end:calc(var(--space) * 1.5);display:grid}@media (min-width:62rem){.setup{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}.setup>section{min-width:0}.setup h2{margin-block-start:0}#summary-list{gap:.25rem 1rem;font-size:.9375rem}.section-nav{z-index:2;background:var(--surface);border-block-end:1px solid var(--border);position:sticky;top:0}.section-nav ul{max-width:var(--measure-app);padding:.5rem var(--space);flex-wrap:wrap;gap:.25rem 1rem;margin-inline:auto;list-style:none;display:flex}.section-nav a{color:var(--ink);padding:.25rem 0;font-size:.9375rem;display:inline-block}:where(main p,main li,main dd){max-width:var(--measure)}
