:root{--bg:#0d0f15;--surface:#161a23;--surface-raised:#1e2432;--ink:#edeaf6;--ink-dim:#9aa3b4;--line:#a0aac824;--good:#5cb85c;--warn:#ffa94d;--danger:#f0565c;--veil:#0d0f15d6;--shadow-card:0 10px 30px #00000059;--on-accent:#0d0f15;--accent:#a78bfa;--accent-2:#67e8f9;--accent-soft:#a78bfa29;--glow:#a78bfa59;--glow-far:#67e8f91a;--lt-bg:#f6f4ef;--lt-surface:#fff;--lt-surface-raised:#efece5;--lt-ink:#232730;--lt-ink-dim:#616874;--lt-line:#3c3c5a29;--lt-good:#3d8b3d;--lt-warn:#a3601d;--lt-danger:#c73a3f;--lt-veil:#f6f4efdb;--lt-shadow-card:0 8px 24px #2828461f;--lt-on-accent:#fff;--lt-accent:#6d28d9;--lt-accent-2:#0e7490;--lt-accent-soft:#6d28d91a;--lt-glow:#6d28d938;--lt-glow-far:#0e749014;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--radius-control:10px;--radius-card:14px;--radius-pill:999px;--column:680px;--passage-size:clamp(1.25rem, 4vw, 1.6rem);--passage-leading:1.9;--stage-height:25rem}[data-scheme=ember]{--accent:#fbbf24;--accent-2:#fb923c;--accent-soft:#fbbf2424;--glow:#fbbf244d;--glow-far:#fb923c1a;--lt-accent:#b45309;--lt-accent-2:#c2410c;--lt-accent-soft:#b453091a;--lt-glow:#b4530933;--lt-glow-far:#c2410c14}[data-scheme=aurora]{--accent:#2dd4bf;--accent-2:#a3e635;--accent-soft:#2dd4bf24;--glow:#2dd4bf4d;--glow-far:#a3e6351a;--lt-accent:#0f766e;--lt-accent-2:#4d7c0f;--lt-accent-soft:#0f766e1a;--lt-glow:#0f766e33;--lt-glow-far:#4d7c0f14}[data-theme=light]{--bg:var(--lt-bg);--surface:var(--lt-surface);--surface-raised:var(--lt-surface-raised);--ink:var(--lt-ink);--ink-dim:var(--lt-ink-dim);--line:var(--lt-line);--accent:var(--lt-accent);--accent-2:var(--lt-accent-2);--accent-soft:var(--lt-accent-soft);--glow:var(--lt-glow);--glow-far:var(--lt-glow-far);--good:var(--lt-good);--warn:var(--lt-warn);--danger:var(--lt-danger);--veil:var(--lt-veil);--shadow-card:var(--lt-shadow-card);--on-accent:var(--lt-on-accent)}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:var(--lt-bg);--surface:var(--lt-surface);--surface-raised:var(--lt-surface-raised);--ink:var(--lt-ink);--ink-dim:var(--lt-ink-dim);--line:var(--lt-line);--accent:var(--lt-accent);--accent-2:var(--lt-accent-2);--accent-soft:var(--lt-accent-soft);--glow:var(--lt-glow);--glow-far:var(--lt-glow-far);--good:var(--lt-good);--warn:var(--lt-warn);--danger:var(--lt-danger);--veil:var(--lt-veil);--shadow-card:var(--lt-shadow-card);--on-accent:var(--lt-on-accent)}}@media (height<=720px){:root{--stage-height:23rem}}*{box-sizing:border-box}body{background:radial-gradient(ellipse 70% 45% at 50% -8%, var(--glow-far), transparent 60%), radial-gradient(ellipse 55% 40% at 85% 108%, var(--glow-far), transparent 65%), var(--bg);min-height:100dvh;color:var(--ink);background-attachment:fixed;margin:0;font-family:ui-rounded,system-ui,-apple-system,Segoe UI,sans-serif;font-size:100%;line-height:1.5}#app{min-height:calc(var(--stage-height) + 25rem);display:block}.kl-skeleton-stage{min-height:var(--stage-height);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);opacity:.6;margin-top:17.375rem}.kl-app{max-width:var(--column);padding:var(--sp-4) var(--sp-4) var(--sp-8);padding-top:calc(var(--sp-4) + env(safe-area-inset-top));padding-right:calc(var(--sp-4) + env(safe-area-inset-right));padding-bottom:calc(var(--sp-8) + env(safe-area-inset-bottom));padding-left:calc(var(--sp-4) + env(safe-area-inset-left));gap:var(--sp-4);-webkit-user-select:none;user-select:none;flex-direction:column;margin:0 auto;display:flex}.kl-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.is-hidden{visibility:hidden}.kl-header{justify-content:space-between;align-items:center;min-height:2.25rem;display:flex}.kl-wordmark{letter-spacing:.22em;background:linear-gradient(100deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.05rem;font-weight:800}.kl-header-actions{align-items:center;gap:var(--sp-2);display:flex}.kl-banner{text-align:center;color:var(--warn);border:1px solid var(--line);border-radius:var(--radius-control);padding:var(--sp-2) var(--sp-3);background:var(--surface);margin:0;font-size:.8125rem}.kl-banner.is-hidden{display:none}.kl-icon-button{width:2.75rem;height:2.75rem;color:var(--ink-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;font-size:1.05rem;line-height:1;display:inline-flex;position:relative}.kl-icon-button:hover{color:var(--ink);border-color:var(--line);background:var(--surface)}.kl-icon-button.is-off{opacity:.55}.kl-icon-button.is-off:after{content:"";transform-origin:50%;border-top:1.5px solid;position:absolute;inset:.65rem .9rem;transform:rotate(-45deg)}.kl-nav{justify-content:center;gap:var(--sp-2);min-height:3.25rem;padding:var(--sp-1);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);margin:0 auto;display:flex}.kl-nav-button{appearance:none;color:var(--ink-dim);font:inherit;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-pill);cursor:pointer;background:0 0;border:1px solid #0000;min-width:2.75rem;min-height:2.75rem;font-size:.875rem;font-weight:600}.kl-nav-button:hover:not(:disabled){background:var(--surface-raised);color:var(--ink)}.kl-nav-button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--ink);box-shadow:0 0 12px var(--glow)}.kl-nav-button.is-disabled{cursor:default;opacity:.5}@media (width<=380px){.kl-nav-button{padding:var(--sp-2) 7px;font-size:.8125rem}.kl-nav{gap:var(--sp-1)}}.kl-config{justify-content:center;gap:var(--sp-4);flex-wrap:wrap;min-height:2.75rem;display:flex}.kl-pills{gap:var(--sp-2);display:flex}.kl-pill{appearance:none;border:1px solid var(--line);color:var(--ink-dim);font:inherit;padding:var(--sp-2) var(--sp-3);white-space:nowrap;border-radius:var(--radius-pill);cursor:pointer;background:0 0;min-width:2.75rem;min-height:2.75rem;font-size:.875rem}.kl-pill:hover:not(:disabled){background:var(--surface-raised);color:var(--ink)}.kl-pill[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}.kl-hud{justify-content:center;gap:var(--sp-8);min-height:4.25rem;padding:var(--sp-3) var(--sp-6);border:1px solid var(--line);border-radius:var(--radius-card);background:linear-gradient(180deg, var(--surface-raised), var(--surface));box-shadow:var(--shadow-card);display:flex}.kl-hud-cell{align-items:center;gap:var(--sp-1);flex-direction:column;display:flex}.kl-hud-value{font-variant-numeric:tabular-nums;color:var(--ink);text-align:center;min-width:4.5ch;font-size:1.9rem;font-weight:700;line-height:1.1}.kl-hud-cell--net .kl-hud-value{color:var(--accent);min-width:3.5ch}.kl-hud-cell--acc .kl-hud-value{min-width:6ch}.kl-hud-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-size:.6875rem;font-weight:600}@media (width<=400px){.kl-pill{padding:var(--sp-2) var(--sp-2);font-size:.8125rem}.kl-hud{gap:var(--sp-2);padding:var(--sp-3) var(--sp-2)}.kl-hud-value{font-size:1.5rem}.kl-hud-label{letter-spacing:.06em;font-size:.625rem}}.kl-touchnote{text-align:center;color:var(--ink-dim);min-height:1.25rem;margin:0;font-size:.8125rem}.kl-stage{min-height:var(--stage-height);justify-content:center;align-items:center;gap:var(--sp-4);flex-direction:column;display:flex;position:relative}.kl-surface{width:100%;padding:var(--sp-6);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);position:relative}.kl-passage{font-size:var(--passage-size);line-height:var(--passage-leading);height:calc(var(--passage-leading) * 3em);border-radius:var(--radius-control);overflow:hidden}.kl-surface:has(.kl-input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.kl-passage-flow{will-change:transform;transition:transform .15s ease-out}.kl-word{white-space:pre;display:inline-block}.kl-char{color:var(--ink-dim);position:relative}.kl-char.is-correct{color:var(--ink)}.kl-char.is-error{color:var(--danger);text-underline-offset:.18em;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration:underline;text-decoration-thickness:2px}.kl-char.is-caret:before{content:"";background:var(--accent);width:2px;animation:1.1s steps(2,jump-none) infinite kl-blink;position:absolute;top:.12em;bottom:.12em;left:-1px}@keyframes kl-blink{50%{opacity:.15}}.kl-input{color:#0000;caret-color:#0000;z-index:2;background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;font-size:1rem;position:absolute;inset:0}.kl-prompt{color:var(--ink-dim);margin:0;font-size:.875rem}.kl-veil{z-index:3;background:var(--veil);border-radius:var(--radius-card);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.kl-veil[hidden]{display:none}.kl-veil-text{color:var(--ink);margin:0;font-size:.9375rem}.kl-result{z-index:3;justify-content:center;align-items:center;gap:var(--sp-3);padding:var(--sp-2);scrollbar-width:thin;scrollbar-color:var(--line) transparent;background:radial-gradient(ellipse 60% 45% at 50% 30%, var(--glow-far), transparent 70%), var(--bg);opacity:0;flex-direction:column;transition:opacity .2s ease-out,transform .2s ease-out;display:flex;position:absolute;inset:0;overflow-y:auto;transform:translateY(12px)}.kl-result::-webkit-scrollbar{width:8px}.kl-result::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:var(--line)}.kl-result::-webkit-scrollbar-track{background:0 0}.kl-result[hidden]{display:none}.kl-result.is-shown{opacity:1;transform:none}.kl-result-net{flex-direction:column;align-items:center;margin:0;display:flex}.kl-result-net-value{font-variant-numeric:tabular-nums;background:linear-gradient(115deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(3.25rem,13vw,4.5rem);font-weight:800;line-height:1}@media (width<=700px){.kl-result-net-value{font-size:clamp(3rem,12vw,3.75rem)}}.kl-result-net-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-size:.8125rem;font-weight:600}.kl-stats{gap:var(--sp-2);grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));width:100%;display:grid}.kl-stat{padding:var(--sp-2);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);flex-direction:column;align-items:center;display:flex}.kl-stat-value{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}.kl-stat-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim);text-align:center;font-size:.6875rem}.kl-result-newbest{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.8125rem;font-weight:700}.kl-result-newbest[hidden]{display:none}.kl-result-actions,.kl-actions{justify-content:center;gap:var(--sp-3);min-height:2.75rem;display:flex}.kl-button{appearance:none;border:1px solid var(--line);background:var(--surface-raised);color:var(--ink);font:inherit;padding:var(--sp-2) var(--sp-6);border-radius:var(--radius-control);cursor:pointer;min-height:2.75rem;font-size:.9375rem;font-weight:600;transition:transform .12s ease-out,box-shadow .12s ease-out,filter .12s ease-out}.kl-button:hover:not(:disabled){filter:brightness(1.08)}.kl-button:disabled{color:var(--ink-dim);cursor:default}.kl-button--primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--on-accent);box-shadow:0 2px 14px var(--glow);border-color:#0000;font-weight:700}.kl-button--primary:hover:not(:disabled){box-shadow:0 4px 20px var(--glow);filter:brightness(1.06);transform:translateY(-1px)}.kl-button--primary:active:not(:disabled){transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.kl-dialog-layer{z-index:4;background:var(--veil);place-items:center;display:grid;position:absolute;inset:0}.kl-dialog-layer[hidden]{display:none}.kl-dialog{max-width:22rem;padding:var(--sp-6);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:var(--sp-4);flex-direction:column;display:flex}.kl-dialog-message{text-align:center;margin:0}.kl-dialog-actions{justify-content:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.kl-help-sheet{width:min(26rem, calc(100vw - 2 * var(--sp-4)));max-height:min(34rem, calc(100vh - 2 * var(--sp-4)));text-align:left;overflow-y:auto}.kl-help-para{color:var(--ink-dim);margin:0;font-size:.875rem;line-height:1.55}.kl-help-scoring{color:var(--ink);font-variant-numeric:tabular-nums;padding:var(--sp-3);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--radius-control);background:var(--surface-raised)}.kl-help-practice{align-self:flex-start}.kl-settings-layer{z-index:10;position:fixed}.kl-settings{width:min(22rem, calc(100vw - 2 * var(--sp-4)))}.kl-settings-title{letter-spacing:.08em;text-transform:uppercase;text-align:center;color:var(--ink);margin:0;font-size:1rem;font-weight:700}.kl-settings-row{justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:2.5rem;display:flex}.kl-settings-row[hidden]{display:none}.kl-settings-row.is-mastered-off{opacity:.55}.kl-settings-label{color:var(--ink);font-size:.9375rem}.kl-settings-controls{gap:var(--sp-1);flex-wrap:wrap;justify-content:flex-end;display:flex}.kl-settings-toggle{min-width:3.5rem}.kl-scheme-pill:before{content:"";vertical-align:0;border-radius:50%;width:.55rem;height:.55rem;margin-right:.4rem;display:inline-block}.kl-scheme-pill[data-scheme=dusk]:before{background:#a78bfa}.kl-scheme-pill[data-scheme=ember]:before{background:#fbbf24}.kl-scheme-pill[data-scheme=aurora]:before{background:#2dd4bf}[data-theme=light] .kl-scheme-pill[data-scheme=dusk]:before{background:#6d28d9}[data-theme=light] .kl-scheme-pill[data-scheme=ember]:before{background:#b45309}[data-theme=light] .kl-scheme-pill[data-scheme=aurora]:before{background:#0f766e}.kl-screen[hidden],.kl-road[hidden]{display:none}.kl-screen,.kl-road{gap:var(--sp-4);flex-direction:column;display:flex}.kl-road-placement{align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);border:1px solid var(--accent);border-radius:var(--radius-card);background:radial-gradient(ellipse 80% 100% at 50% 0%, var(--accent-soft), transparent 80%), var(--surface);box-shadow:0 0 24px var(--glow-far), var(--shadow-card);flex-direction:column;display:flex}.kl-road-placement[hidden]{display:none}.kl-road-placement-text{text-align:center;margin:0;font-size:1rem;font-weight:600}.kl-road-groups{gap:var(--sp-6);flex-direction:column;display:flex}.kl-road-group{gap:var(--sp-2);padding-left:var(--sp-4);flex-direction:column;display:flex;position:relative}.kl-road-group:before{content:"";background:linear-gradient(180deg, var(--accent), var(--accent-2));opacity:.35;border-radius:2px;width:3px;position:absolute;top:1.75rem;bottom:.25rem;left:2px}.kl-road-group-title{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin:0;font-size:.8125rem;font-weight:700}.kl-rung{align-items:center;gap:var(--sp-4);min-height:3.5rem;padding:var(--sp-2) var(--sp-4);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);display:flex}.kl-rung-target{font-variant-numeric:tabular-nums;text-align:right;min-width:3ch;color:var(--ink);font-size:1.625rem;font-weight:700}.kl-lights-dots{align-items:center;gap:.35rem;display:inline-flex}.kl-light{border:1.5px solid var(--ink-dim);border-radius:50%;width:.55rem;height:.55rem}.kl-light.is-lit{border-color:var(--accent);background:var(--accent);box-shadow:0 0 8px var(--glow)}.kl-light.is-justlit{animation:.4s ease-out kl-light-in}@keyframes kl-light-in{0%{opacity:.4;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.kl-button--quiet{min-height:2rem;color:var(--ink-dim);background:0 0;border-color:#0000;padding:.2rem .5rem;font-size:.78rem}.kl-button--quiet:hover{border-color:var(--line);background:var(--surface-raised);color:var(--ink)}.kl-rung-detail{justify-content:flex-end;align-items:center;gap:var(--sp-3);flex-wrap:wrap;flex:1;display:flex}.kl-rung-note{color:var(--ink-dim);font-size:.875rem}.kl-rung.is-passed{border-color:var(--accent)}.kl-rung.is-passed .kl-rung-target{color:var(--accent)}.kl-rung.is-passed .kl-rung-target:after{content:" ✓";font-size:.875em}.kl-rung.is-current{border-color:var(--accent);background:linear-gradient(100deg, var(--accent-soft), transparent 55%), var(--surface-raised);box-shadow:0 0 20px var(--glow-far), var(--shadow-card);border-width:2px}.kl-rung.is-locked{opacity:.55}.kl-rung-cta{min-height:2.5rem;padding:var(--sp-2) var(--sp-4);font-size:.875rem}.kl-rung.is-justpassed{animation:.4s ease-out kl-rung-fill}@keyframes kl-rung-fill{0%{background:var(--accent-soft)}to{background:var(--surface)}}.kl-road-weakspots{text-align:center;min-height:1.5rem;color:var(--ink-dim);margin:0;font-size:.875rem}.kl-weakspot-link{font:inherit;color:inherit;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.25em;background:0 0;border:0;border-radius:.25rem;padding:.125rem .25rem}.kl-weakspot-link:hover{color:var(--ink)}.kl-result-verdict{text-align:center;color:var(--danger);margin:0;font-size:1.0625rem;font-weight:700}.kl-result-verdict.is-pass{color:var(--accent);text-shadow:0 0 18px var(--glow)}.kl-result-verdict[hidden],.kl-result-nudge[hidden]{display:none}.kl-result-nudge{text-align:center;color:var(--ink-dim);margin:0;font-size:.8125rem}.kl-result-report[hidden]{display:none}.kl-result-report{text-align:center;color:var(--ink-dim);text-wrap:balance;margin:0;font-size:.8125rem;line-height:1.5}.kl-result-sparkline{justify-content:center;min-height:2rem;display:flex}.kl-sparkline{width:7.5rem;height:2rem}.kl-stats-sheet{width:min(26rem, calc(100vw - 2 * var(--sp-4)));max-height:min(34rem, calc(100vh - 2 * var(--sp-4)));overflow-y:auto}.kl-stats-section-title{margin:var(--sp-2) 0 0;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-size:.8125rem;font-weight:700}.kl-stats-chart-host{justify-content:center;align-items:center;min-height:7.5rem;display:flex}.kl-chart{align-items:center;gap:var(--sp-2);flex-direction:column;width:100%;margin:0;display:flex}.kl-chart-svg{width:100%;height:6rem}.kl-chart-caption,.kl-chart-empty{text-align:center;color:var(--ink-dim);margin:0;font-size:.8125rem}.kl-pb-list,.kl-weakspot-table{gap:var(--sp-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.kl-pb-row{align-items:center;gap:var(--sp-2);min-height:2rem;padding:var(--sp-1) var(--sp-2);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);font-size:.8125rem;display:flex}.kl-pb-name{color:var(--ink);flex:1}.kl-pb-value{font-variant-numeric:tabular-nums;color:var(--ink-dim);white-space:nowrap}.kl-badge{border:1px solid var(--line);border-radius:var(--radius-pill);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim);padding:.0625rem .5rem;font-size:.6875rem;font-weight:600}.kl-pb-empty,.kl-weakspot-empty{min-height:1.5rem;padding:var(--sp-1) var(--sp-2);color:var(--ink-dim);font-size:.8125rem}.kl-weakspot-row{padding:var(--sp-1) var(--sp-2);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);font-variant-numeric:tabular-nums;color:var(--ink);font-size:.8125rem}@media (prefers-reduced-motion:reduce){.kl-light.is-justlit{animation:none}.kl-passage-flow{transition:none}.kl-char.is-caret:before{animation:none}.kl-result{transition:opacity 50ms linear;transform:none}.kl-rung.is-justpassed{animation:none}.kl-button{transition:none}.kl-button--primary:hover:not(:disabled){transform:none}}.kl-content{max-width:var(--column);padding:var(--sp-8) var(--sp-4) calc(var(--sp-8) * 2);padding-right:calc(var(--sp-4) + env(safe-area-inset-right));padding-left:calc(var(--sp-4) + env(safe-area-inset-left));color:var(--ink-dim);border-top:1px solid var(--line);margin:0 auto;line-height:1.7}.kl-content h2{margin:var(--sp-8) 0 var(--sp-3);color:var(--ink);font-size:1.125rem}.kl-content h2:first-child{margin-top:0}.kl-content h3{margin:var(--sp-6) 0 var(--sp-2);color:var(--ink);font-size:1rem}.kl-content p{margin:0 0 var(--sp-4)}.kl-content a{color:var(--accent);text-underline-offset:3px}.kl-faq-item{padding-bottom:var(--sp-2)}.kl-more ul{padding-left:var(--sp-6);margin:0}.kl-more li{margin-bottom:var(--sp-2)}
