.ls{min-width:0;display:block}.ls-layout{align-items:start;gap:1.25rem;display:grid}.ls-main,.ls-panel{min-width:0}@media (width>=64rem){.ls-layout{grid-template-columns:minmax(0,1fr) 19rem;gap:1.5rem}.ls-panel{max-height:calc(100vh - 6rem);position:sticky;top:5rem;overflow-y:auto}}.ls-main{border:1px solid var(--border);border-radius:var(--radius-card);background-color:var(--surface);padding:1.25rem}.ls-head-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.ls-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.6875rem;font-weight:600}.ls-status{border:1px solid var(--border-strong);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-subtle);white-space:nowrap;border-radius:999px;margin:0;padding:.125rem .5rem;font-size:.6875rem;font-weight:600}.ls-status[data-state=active]{border-color:var(--accent);background-color:var(--accent-wash);color:var(--accent)}.ls-status[data-state=done]{border-color:var(--correct);background-color:color-mix(in srgb, var(--correct) 12%, transparent);color:var(--correct)}.ls-status[data-state=skipped]{border-color:var(--caution);background-color:color-mix(in srgb, var(--caution) 12%, transparent);color:var(--caution)}.ls-title{letter-spacing:-.01em;color:var(--ink);margin:.5rem 0 0;font-size:1.375rem;font-weight:600}.ls-instructions{max-width:62ch;color:var(--ink-muted);margin:.375rem 0 0;font-size:.9375rem;line-height:1.6}.ls-focus{flex-wrap:wrap;align-items:baseline;gap:.5rem;margin:.75rem 0 0;display:flex}.ls-focus-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);font-size:.625rem;font-weight:600}.ls-focus-keys{border:1px solid var(--border);background-color:var(--surface-2);font-family:var(--font-mono);color:var(--ink);border-radius:.375rem;padding:.125rem .5rem;font-size:.8125rem}.ls-resumed{border-left:2px solid var(--accent);color:var(--ink-muted);margin:.75rem 0 0;padding-left:.625rem;font-size:.8125rem}.ls-quickstats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.375rem;margin-top:1rem;display:grid}.ls-quickstat{border:1px solid var(--border);background-color:var(--canvas);border-radius:.5rem;padding:.375rem .5rem}.ls-quickstat span{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-subtle);font-size:.5625rem;font-weight:600;display:block}.ls-quickstat strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink);margin-top:.1rem;font-size:1rem;font-weight:600;display:block}@media (width>=64rem){.ls-quickstats{display:none}}.ls-stage{margin-top:1rem}.ls-passage{border:1px solid var(--border-strong);background-color:var(--canvas);border-radius:.625rem;transition:border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.ls-passage:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.ls-scroll{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;max-height:13.5rem;padding:1rem 1.125rem;overflow-y:auto}.ls-text{font-family:var(--font-mono);letter-spacing:.005em;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink-muted);margin:0;font-size:1.3rem;line-height:2.05}.ls-char{border-radius:2px;transition:color .1s,background-color .1s}.ls-char.is-correct{color:var(--ink)}.ls-char.is-incorrect{color:var(--incorrect);background-color:color-mix(in srgb, var(--incorrect) 12%, transparent);text-decoration:underline wavy var(--incorrect);text-underline-offset:3px}.ls-char.is-current{background-color:var(--accent-wash);box-shadow:inset 0 -2px 0 var(--accent);color:var(--ink)}.ls-input{z-index:1;resize:none;color:#0000;caret-color:#0000;cursor:text;background-color:#0000;border:0;width:100%;height:100%;margin:0;padding:0;font-size:16px;position:absolute;inset:0;overflow:hidden}.ls-input::selection{background-color:#0000}.ls-overlay{z-index:3;background-color:color-mix(in srgb, var(--canvas) 72%, transparent);backdrop-filter:blur(3px);place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.ls-overlay-card{border:1px solid var(--border);border-radius:var(--radius-card);background-color:var(--surface);text-align:center;width:min(22rem,100%);padding:1.25rem;box-shadow:0 12px 32px #0000002e}.ls-overlay-title{color:var(--ink);margin:0;font-size:1.125rem;font-weight:600}.ls-overlay-copy{color:var(--ink-muted);margin:.375rem 0 0;font-size:.8125rem;line-height:1.5}.ls-overlay-card .btn{margin-top:.875rem}.ls-under{margin-top:.75rem}.ls-progress-head{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-subtle);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.6875rem;font-weight:600;display:flex}.ls-progress-head span:last-child{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:0}.ls-meter{background-color:var(--surface-3);border-radius:999px;height:.25rem;margin-top:.375rem;overflow:hidden}.ls-meter-fill{border-radius:inherit;background-color:var(--accent);width:0;height:100%;transition:width .12s;display:block}.ls-hint{color:var(--ink-subtle);margin:.5rem 0 0;font-size:.75rem;line-height:1.6}.ls-hint-keys{flex-wrap:wrap;align-items:center;gap:.25rem;margin-left:.25rem;display:inline-flex}.ls-hint kbd{border:1px solid var(--border-strong);background-color:var(--surface-2);font-family:var(--font-mono);color:var(--ink-muted);border-radius:.25rem;padding:0 .25rem;font-size:.6875rem}.ls-result{border:1px solid var(--border);border-left:3px solid var(--correct);background-color:color-mix(in srgb, var(--correct) 7%, var(--surface-2));border-radius:.625rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;padding:.875rem 1rem;display:flex}.ls-result[data-tone=fail]{border-left-color:var(--incorrect);background-color:color-mix(in srgb, var(--incorrect) 7%, var(--surface-2))}.ls-result-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--correct);margin:0;font-size:.625rem;font-weight:600}.ls-result[data-tone=fail] .ls-result-eyebrow{color:var(--incorrect)}.ls-result-title{color:var(--ink);margin:.125rem 0 0;font-size:1rem;font-weight:600}.ls-result-detail{color:var(--ink-muted);margin:.125rem 0 0;font-size:.8125rem;line-height:1.5}.ls-result-actions{flex-wrap:wrap;gap:.5rem;display:flex}.ls-guide{align-items:stretch;gap:.875rem;margin-top:1rem;display:grid}@media (width>=40rem){.ls-guide{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center}}.ls-nextkey{border:1px solid var(--border-strong);background:radial-gradient(circle at top, var(--accent-wash) 0%, var(--surface-2) 70%);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--ink) 4%, transparent);border-radius:.75rem;align-items:center;gap:.875rem;padding:.875rem 1rem;display:flex}.ls-nextkey-cap{background:radial-gradient(circle at 50% 30%, var(--accent) 0%, color-mix(in srgb, var(--accent) 90%, var(--accent-hover)) 100%);min-width:3.25rem;height:3.25rem;color:var(--accent-contrast);font-family:var(--font-mono);box-shadow:0 3px 0 color-mix(in srgb, var(--accent-hover) 80%, transparent), inset 0 1px 0 color-mix(in srgb, var(--accent-contrast) 20%, transparent);border:1px solid color-mix(in srgb, var(--accent) 90%, var(--ink));border-radius:.625rem;place-items:center;padding:0 .625rem;font-size:1.6rem;font-weight:600;display:inline-grid}.ls-nextkey-cap[data-wide=true]{letter-spacing:.04em;font-size:.75rem}.ls-nextkey-copy{min-width:0}.ls-nextkey-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);margin:0;font-size:.625rem;font-weight:600}.ls-nextkey-finger{color:var(--ink);margin:.125rem 0 0;font-size:.98rem;font-weight:600;line-height:1.35}.ls-nextkey-shift{color:var(--accent);margin:.25rem 0 0;font-size:.78rem;line-height:1.5}.ls-hand{border:1px solid var(--border);background:radial-gradient(circle at top, var(--accent-wash) 0%, transparent 60%);border-radius:.75rem;align-content:center;justify-items:center;min-width:0;padding:.5rem .75rem;display:grid}.hg-svg{width:100%;max-width:19rem;height:auto;display:block}.hg-palm{fill:var(--surface-2);stroke:var(--border-strong);stroke-width:1.2px}.hg-finger{fill:var(--surface-3);stroke:var(--border-strong);stroke-width:1.2px;transition:fill .14s,stroke .14s,filter .14s}.hg-finger.is-active{fill:var(--accent);stroke:color-mix(in srgb, var(--accent) 90%, var(--ink));filter:drop-shadow(0 0 .4rem var(--accent-wash))}.hg-finger.is-shift{fill:color-mix(in srgb, var(--accent) 18%, var(--surface-2));stroke:var(--accent);stroke-width:1.8px;filter:drop-shadow(0 0 .25rem var(--accent-wash))}.hg-label{fill:var(--ink-subtle);font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:600}.ls-hand-copy{text-align:center;margin-top:-.125rem}.ls-hand-title{color:var(--ink-muted);margin:0;font-size:.75rem;font-weight:600}.ls-hand-note{color:var(--ink-subtle);margin:.125rem 0 0;font-size:.6875rem}.ls-keyboard{border-top:1px solid var(--border);margin-top:1rem;padding-top:.875rem}.ls-keyboard-head{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.625rem;font-weight:600;display:flex}.ls-keyboard-legend{letter-spacing:.04em;flex-wrap:wrap;align-items:center;gap:.375rem;font-weight:500;display:inline-flex}.ls-legend-dot{background-color:var(--border-strong);border-radius:999px;width:.4375rem;height:.4375rem;margin-left:.375rem}.ls-legend-dot:first-child{margin-left:0}.ls-legend-next{background-color:var(--accent)}.ls-legend-correct{background-color:var(--correct)}.ls-legend-incorrect{background-color:var(--incorrect)}.vk-scroll{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;-webkit-overflow-scrolling:touch;padding:.25rem .25rem .375rem;overflow:auto hidden}.vk{--vk-unit:clamp(1.05rem, 1.8vw, 2.25rem);--vk-gap:clamp(.1rem, .16vw, .26rem);gap:var(--vk-gap);flex-direction:column;width:max-content;min-width:max-content;display:flex}@media (width>=64rem){.vk{--vk-unit:clamp(2rem, 2.6vw, 2.6rem);--vk-gap:clamp(.16rem, .22vw, .28rem)}}@media (width<=63.99rem){.vk{width:max-content;min-width:100%}}.vk-row{gap:var(--vk-gap);padding-left:calc(var(--vk-unit) * var(--vk-offset,0));display:flex}.vk-key{width:calc(var(--vk-unit) * var(--vk-w,1));height:calc(var(--vk-unit) * 1.38);border:1px solid var(--border-strong);background:linear-gradient(180deg, var(--surface-2) 0%, color-mix(in srgb, var(--surface) 70%, var(--surface-2)) 100%);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--ink) 4%, transparent), 0 1px 0 color-mix(in srgb, var(--canvas) 40%, transparent);color:var(--ink-muted);font-family:var(--font-mono);font-size:clamp(.5rem, calc(var(--vk-unit) * .36), .82rem);user-select:none;border-radius:.32rem;flex-direction:column;flex:none;justify-content:center;align-items:center;line-height:1.05;transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s,transform .12s;display:flex;position:relative}.vk-key.is-modifier{background-color:var(--surface);font-family:var(--font-sans)}.vk-key.is-modifier .vk-label{letter-spacing:.01em;font-size:.82em;font-weight:500}.vk-key.is-inactive{opacity:.42}.vk-shifted{opacity:.72;margin-bottom:.08em;font-size:.82em}.vk-home{opacity:.55;background-color:currentColor;border-radius:1px;width:.5rem;height:2px;position:absolute;bottom:.16rem;left:50%;transform:translate(-50%)}.vk-key.is-correct{border-color:color-mix(in srgb, var(--correct) 80%, var(--border-strong));background:linear-gradient(180deg, color-mix(in srgb, var(--correct) 18%, var(--surface-2)) 0%, color-mix(in srgb, var(--correct) 10%, var(--surface)) 100%);color:var(--ink);opacity:1;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--correct) 16%, transparent)}.vk-key.is-incorrect{border-color:color-mix(in srgb, var(--incorrect) 80%, var(--border-strong));background:linear-gradient(180deg, color-mix(in srgb, var(--incorrect) 18%, var(--surface-2)) 0%, color-mix(in srgb, var(--incorrect) 10%, var(--surface)) 100%);color:var(--ink);opacity:1;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--incorrect) 16%, transparent)}.vk-key.is-shift-hint{border-color:color-mix(in srgb, var(--accent) 85%, var(--border-strong));background:linear-gradient(180deg, var(--accent-wash) 0%, color-mix(in srgb, var(--accent) 8%, var(--surface-2)) 100%);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 70%, transparent);opacity:1}.vk-key.is-next{border-color:color-mix(in srgb, var(--accent) 90%, var(--ink));background:radial-gradient(circle at 50% 30%, var(--accent) 0%, color-mix(in srgb, var(--accent) 90%, var(--accent-hover)) 100%);color:var(--accent-contrast);box-shadow:0 0 0 3px var(--accent-wash), inset 0 1px 0 color-mix(in srgb, var(--accent-contrast) 18%, transparent);opacity:1;transform:translateY(-1px)}.vk-key.is-next .vk-home{opacity:.9}.ls-panel{border:1px solid var(--border);border-radius:var(--radius-card);background-color:var(--surface);padding:1rem}.ls-panel-head{border-bottom:1px solid var(--border);padding-bottom:.75rem}.ls-panel-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);margin:0;font-size:.625rem;font-weight:600}.ls-panel-title{color:var(--ink);margin:.125rem 0 0;font-size:.9375rem;font-weight:600}.ls-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:.875rem 0 0;display:grid}.ls-stat{border:1px solid var(--border);background-color:var(--canvas);border-radius:.5rem;padding:.5rem .625rem}.ls-stat dt{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-subtle);font-size:.625rem;font-weight:600}.ls-stat-unit{letter-spacing:0;opacity:.8;font-weight:500}.ls-stat dd{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink);margin:.125rem 0 0;font-size:1.25rem;font-weight:600;line-height:1.3}.ls-speed-note{color:var(--ink-subtle);margin:.5rem 0 0;font-size:.6875rem;line-height:1.5}.ls-target{border-top:1px solid var(--border);margin-top:.875rem;padding-top:.75rem}.ls-target-head{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);margin:0;font-size:.625rem;font-weight:600}.ls-target-copy{color:var(--ink-muted);margin:.25rem 0 0;font-size:.75rem;line-height:1.55}.ls-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.875rem;display:grid}.ls-actions .btn{width:100%}.ls-unlock{margin-top:.875rem}.ls-next{width:100%}.ls-unlock-hint{color:var(--ink-subtle);margin:.375rem 0 0;font-size:.6875rem;line-height:1.5}.ls-unlock-name{color:var(--ink-muted)}.ls-skip{color:var(--ink-subtle);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;margin:.5rem auto 0;padding:.125rem;font-size:.75rem;text-decoration:underline;display:block}.ls-skip:hover{color:var(--ink)}.ls-best{border-top:1px solid var(--border);color:var(--ink-muted);margin:.75rem 0 0;padding-top:.75rem;font-size:.75rem;line-height:1.5}.ls-best strong{color:var(--ink);font-weight:600}.ls-previous{color:var(--ink-subtle);margin:.75rem 0 0;font-size:.75rem}.ls-previous a{color:var(--ink-muted);text-underline-offset:2px;text-decoration:underline}.ls-previous a:hover{color:var(--ink)}.ls-noscript{border:1px dashed var(--caution);background-color:color-mix(in srgb, var(--caution) 7%, var(--surface));color:var(--ink-muted);border-radius:.625rem;margin-top:1rem;padding:.875rem 1rem;font-size:.8125rem;line-height:1.6}.ls-noscript-title{color:var(--ink);margin:0;font-weight:600}.ls-noscript p:last-child{margin:.25rem 0 0}.ls-noscript a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}@media (width<=29.99rem){.ls-main{padding:1rem}.ls-scroll{max-height:12rem;padding:.875rem}.ls-text{font-size:1.125rem;line-height:2}.ls-nextkey{gap:.75rem}.ls-nextkey-cap{min-width:2.75rem;height:2.75rem;font-size:1.25rem}.ls-result-actions .btn{flex:auto}}@media (prefers-reduced-motion:reduce){.ls-scroll{scroll-behavior:auto}}html.ls-fallback{overflow:hidden}.ls-exit{display:none}.ls:is(:fullscreen,[data-focus=true]){overscroll-behavior:contain;background-color:var(--canvas);background-image:var(--canvas-gradient);flex-direction:column;justify-content:safe center;width:100%;height:100%;padding:clamp(3.5rem,6vw,5rem) clamp(1rem,3vw,2.5rem) clamp(1.25rem,3vw,2rem);display:flex;position:relative;overflow-y:auto}.ls[data-focus=true]:not(:fullscreen){z-index:90;position:fixed;inset:0}.ls:is(:fullscreen,[data-focus=true]) .ls-layout{width:min(80rem,100%);margin-inline:auto}.ls:is(:fullscreen,[data-focus=true]) .ls-panel{max-height:none;position:static;overflow:visible}.ls:is(:fullscreen,[data-focus=true]) .ls-hint{display:none}.ls:is(:fullscreen,[data-focus=true]) .ls-exit{z-index:6;border:1px solid var(--border-strong);background-color:var(--surface);color:var(--ink-muted);cursor:pointer;border-radius:999px;align-items:center;gap:.375rem;padding:.4375rem .875rem;font-size:.8125rem;font-weight:600;transition:color .15s,border-color .15s,transform .15s;display:inline-flex;position:fixed;top:clamp(1rem,2.5vw,1.75rem);right:clamp(1rem,2.5vw,1.75rem);box-shadow:0 10px 24px -14px #00000073}.ls:is(:fullscreen,[data-focus=true]) .ls-exit:hover{border-color:var(--accent);color:var(--ink);transform:translateY(-1px)}.ls-exit svg{width:.875rem;height:.875rem}@media (width<=48rem){.ls:is(:fullscreen,[data-focus=true]){padding:3.25rem 1rem 1rem}.ls:is(:fullscreen,[data-focus=true]) .ls-exit{top:.75rem;right:.75rem}}
