html{--focus-bg:#111927;--focus-panel:#192334;--focus-ink:#e8edf4;--focus-muted:#a2b0c3;--focus-line:#2d3b50;--focus-blue:#68aff4;--focus-soft:#253d58;--focus-key:#202e42;--focus-edge:#3b4c64;--focus-prompt:#b7c2d2}html[data-flowkeys-theme=light]{--focus-bg:#f6f8fb;--focus-panel:#fff;--focus-ink:#263448;--focus-muted:#67768a;--focus-line:#e1e7ef;--focus-blue:#227ad0;--focus-soft:#eaf3ff;--focus-key:#fff;--focus-edge:#d2dae5;--focus-prompt:#5c6879}body:has(.focused-text-page){background:var(--focus-bg);margin:0}html main.app-shell.typing-page.focused-text-page{background:var(--focus-bg);max-width:none;min-height:100svh;color:var(--focus-ink);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}html .focused-text-page .topbar.training-page-header{border:0;border-bottom:1px solid var(--focus-line);background:var(--focus-panel);height:60px;min-height:60px;color:var(--focus-ink);box-shadow:none;border-radius:0;flex-wrap:nowrap;align-items:center;gap:16px;margin:0;padding:0 28px;display:flex}html .focused-text-page .topbar .brand{color:var(--focus-ink);flex:none;gap:9px;text-decoration:none;display:flex}html .focused-text-page .topbar .brand-mark{width:31px;min-width:31px;height:31px;box-shadow:none;border:0}html .focused-text-page .topbar .brand-copy strong{letter-spacing:-.6px;font:600 19px/1.2 -apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}html .focused-text-page .topbar .brand-copy small{display:none}html .focused-text-page .topbar .training-page-label{color:var(--focus-muted);text-align:left;flex:1;margin:0 0 0 8px;font-size:14px;font-weight:400}html .focused-text-page .topbar .top-actions,.focus-toolbar{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}html .focused-text-page .topbar .top-actions{margin:0 0 0 auto}html .focused-text-page .topbar :is(.focus-toolbar button,.learn-appearance){min-width:36px;height:36px;min-height:36px;color:var(--focus-muted);box-shadow:none;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:7px 10px;font:400 12px/1.2 -apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;display:inline-flex}html .focused-text-page .topbar .learn-appearance{width:36px!important;min-width:36px!important;height:36px!important;padding:0!important}html .focused-text-page .topbar .focus-toolbar button.focus-settings-trigger{color:#263448;background:#f6cb53;border-color:#e4b73d;padding-inline:12px}html .focused-text-page .topbar .tutor-voice-control :is(small,i){display:none}html .focused-text-page .topbar .tutor-voice-control strong{color:inherit;font-size:12px;font-weight:400}html .focused-text-page .topbar .tutor-voice-control.active{color:var(--focus-blue);background:var(--focus-soft)}html .focused-text-page button:focus-visible{outline-offset:3px;outline:3px solid #66a9ed}#typing-main.typing-page-main{max-width:1112px;margin:auto;padding:18px 24px 16px}#typing-main .typing-tutor[data-practice-mode=text]{--tutor-surface:var(--focus-panel);--tutor-text:var(--focus-prompt);--tutor-muted:var(--focus-muted);--tutor-accent:var(--focus-blue);background:0 0;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif!important}#typing-main .typing-tutor.theme-high-contrast{--tutor-surface:#000;--tutor-text:#fff;--tutor-muted:#fff;--tutor-accent:#ffee58}#typing-main .focus-session-heading{justify-content:space-between;align-items:center;gap:20px;min-height:40px;margin-bottom:12px;display:flex}#typing-main .focus-session-heading h2{letter-spacing:-.25px;color:var(--focus-ink);margin:0;font-size:19px;font-weight:500;line-height:1.4}#typing-main .focus-session-context{max-width:480px;min-height:22px;box-shadow:none;color:var(--focus-muted);text-overflow:ellipsis;white-space:nowrap;text-align:left;background:0 0;border:0;border-radius:3px;padding:0;font-size:12px;font-weight:400;display:block;overflow:hidden}#typing-main .focus-session-context:hover{color:var(--focus-blue)}#typing-main .focus-session-stats{font-variant-numeric:tabular-nums;flex:none;align-items:baseline;gap:24px;display:flex}#typing-main .focus-session-stats>span{align-items:baseline;gap:6px;display:flex}#typing-main .focus-session-stats b{color:var(--focus-ink);font-size:19px;font-weight:500}#typing-main .focus-session-stats small{color:var(--focus-muted);font-size:11px}#typing-main .typing-tutor[data-practice-mode=text] .typing-workspace{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);gap:18px;height:auto;min-height:0;display:grid;overflow:visible}#typing-main .typing-tutor[data-practice-mode=text] .typing-workspace.keyboard-hidden{grid-template-rows:auto}#typing-main .typing-tutor[data-practice-mode=text] .typing-stage{border:1px solid var(--focus-line);background:var(--tutor-surface);height:auto;min-height:0;color:var(--tutor-text);border-radius:12px;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:18px 26px;display:grid;position:relative;box-shadow:0 3px 12px #122c4e03}#typing-main .typing-tutor[data-practice-mode=text] .typing-stage:focus-within{border-color:#8aaed1;outline:none}#typing-main .typing-tutor[data-practice-mode=text] .typing-stage-top{min-height:24px;color:var(--tutor-muted);flex-wrap:nowrap;align-items:center;gap:12px;font-size:12px;font-weight:400;display:flex}#typing-main .typing-stage-top>span{margin-right:auto}#typing-main .typing-stage-top strong{font-size:12px;font-weight:400}#typing-main .typing-stage-top :is(.typing-focus-button,.focus-restart){height:auto;min-height:24px;box-shadow:none;color:var(--tutor-muted);white-space:nowrap;background:0 0;border:0;margin:0;padding:2px 5px;font-size:12px;font-weight:400}#typing-main .typing-stage-top :is(.typing-focus-button,.focus-restart):hover{color:var(--tutor-accent);background:var(--focus-soft)}#typing-main .typing-stage-top .typing-focus-button.is-active{visibility:hidden}#typing-main .typing-stage-top .focus-own-text{min-height:24px;color:var(--focus-blue);text-underline-offset:3px;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:5px;margin:0 0 0 -4px;padding:2px 6px;font-size:12px;font-weight:500;text-decoration:underline}#typing-main .typing-stage-top .focus-own-text:hover{background:var(--focus-soft)}#typing-main .typing-stage-top .focus-own-text:focus-visible{outline-offset:2px;outline:3px solid #66a9ed}#typing-main .typing-stage-top>span+.focus-own-text{margin-right:auto}#typing-main .typing-stage-top>span:has(+.focus-own-text){margin-right:0}@media (max-width:520px){#typing-main .typing-stage-top{min-width:0}#typing-main .typing-tutor[data-practice-mode=text] .typing-stage-top:has(.focus-own-text){flex-wrap:wrap;row-gap:2px}#typing-main .typing-stage-top .focus-own-text{text-align:left;flex:1 0 100%;order:10;min-width:0;margin:0 0 0 -6px;font-size:11px}#typing-main .typing-stage-top>span:has(+.focus-own-text){margin-right:auto}}#typing-main .typing-tutor[data-practice-mode=text] .typing-text-viewport{height:calc(var(--focus-practice-font-size,22px) * 9 + 4px);scrollbar-width:none;min-height:0;max-height:none;padding:0;scroll-padding:12px 0;position:relative;inset:auto;overflow:auto;-webkit-mask-image:none;mask-image:none}#typing-main .typing-tutor[data-practice-mode=text] .keyboard-hidden .typing-text-viewport{height:max(calc(var(--focus-practice-font-size,22px) * 9 + 4px), min(calc(100svh - 270px),650px))}#typing-main .typing-tutor[data-practice-mode=text] .typing-text{font-family:var(--focus-practice-font);letter-spacing:.01em;word-spacing:normal;color:var(--tutor-text);text-align:left;text-align-last:left;text-justify:auto;overflow-wrap:anywhere;margin:0;padding:0 0 1em;font-weight:400;line-height:1.8}#typing-main .typing-tutor[data-practice-mode=text] .typing-text :is(.typing-char,.typing-word,.typing-whitespace){letter-spacing:inherit;word-spacing:normal;font-weight:400}#typing-main .typing-tutor[data-practice-mode=text] .typing-word{white-space:normal}#typing-main .typing-tutor[data-practice-mode=text] .typing-char.typing-current{color:var(--tutor-accent);box-shadow:0 2px 0 var(--tutor-accent);background:0 0;border:0;border-radius:0;outline:none;animation:none}#typing-main .typing-tutor[data-practice-mode=text] .typing-char.typed-correct{color:#38a184;background:0 0}#typing-main .typing-tutor[data-practice-mode=text] .typing-char.typed-wrong{color:#e36a7a;background:#c4475815;text-decoration:underline}html[data-flowkeys-theme=light] #typing-main .typing-tutor .typing-char.typed-correct{color:#228167}html[data-flowkeys-theme=light] #typing-main .typing-tutor .typing-char.typed-wrong{color:#b83e50}#typing-main .typing-stage>[role=progressbar]{background:0 0;border:0;width:auto;height:2px;position:absolute;bottom:0;left:12px;right:12px}#typing-main .typing-stage>[role=progressbar]>*{background:var(--tutor-accent)}#typing-main .typing-tutor[data-practice-mode=text] .floating-typing-keyboard{z-index:auto;place-self:start center;width:100%;max-width:940px;margin:0;animation:none;position:relative;inset:auto;transform:none}#typing-main .typing-tutor .typing-keyboard-panel.keyboard-landscape{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;padding:0;overflow-x:auto}#typing-main .typing-tutor .keyboard-landscape .next-key{min-height:22px;color:var(--focus-muted);justify-content:flex-start;gap:8px;margin:0 0 8px;padding:0;font-size:12px;font-weight:400}#typing-main .typing-tutor .keyboard-landscape .next-key :is(span,svg){color:var(--focus-muted)}#typing-main .typing-tutor .keyboard-landscape .next-key svg{width:14px;height:14px}#typing-main .typing-tutor .keyboard-landscape .next-key strong{min-height:0;color:var(--focus-blue);box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0;font-size:12px;font-weight:500}#typing-main .typing-tutor .keyboard-landscape .typing-keyboard{width:100%;min-width:540px;box-shadow:none;background:0 0;gap:5px;margin:0;padding:0 0 3px}#typing-main .typing-tutor .keyboard-landscape .typing-key-row{gap:5px}#typing-main .typing-tutor .keyboard-landscape .typing-key-row>span{border:1px solid var(--focus-edge);min-width:0;height:36px;min-height:36px;box-shadow:0 2px 0 var(--focus-edge);border-radius:5px;outline:none;margin:0;padding:0 3px;font:400 13px/1 -apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;position:relative;background:var(--focus-key)!important;color:var(--focus-ink)!important}#typing-main .typing-tutor .keyboard-landscape .typing-key-row>span:after{content:"";background:var(--focus-zone);opacity:.68;pointer-events:none;border-radius:2px;height:2px;position:absolute;bottom:2px;left:7px;right:7px}#typing-main .typing-key-row>:is(.finger-0,.finger-7){--focus-zone:#c895b3}#typing-main .typing-key-row>:is(.finger-1,.finger-6){--focus-zone:#d8b267}#typing-main .typing-key-row>:is(.finger-2,.finger-5){--focus-zone:#80b49e}#typing-main .typing-key-row>.finger-3{--focus-zone:#7ba7d0}#typing-main .typing-key-row>.finger-4{--focus-zone:#a596c6}#typing-main .typing-key-row>.finger-8{--focus-zone:#87bfc1}#typing-main .typing-tutor .keyboard-landscape .typing-key-row>.finger-neutral:after{display:none}#typing-main .typing-tutor .keyboard-landscape .typing-key-row>span:is(.next,.physically-pressed){border-color:#176cbf;outline:none;box-shadow:0 2px #125fa9;color:#fff!important;background:#227ad0!important}#typing-main .typing-tutor .keyboard-landscape .typing-key-row>span:is(.next,.physically-pressed):after{display:none}#typing-main .typing-tutor .keyboard-landscape .key-layer-label{font-size:8px;font-weight:400;top:3px;right:4px}#typing-main .typing-tutor .keyboard-landscape .key-main-label{font-weight:400}#typing-main .typing-tutor .keyboard-landscape .wide-key .key-main-label{font-size:10px}#typing-main .typing-tutor .keyboard-landscape .key-home-bump{opacity:.55;width:9px;height:1px;bottom:6px;left:calc(50% - 4.5px)}#typing-main .typing-tutor .keyboard-landscape .keyboard-finger-legend{min-height:22px;color:var(--focus-muted);background:0 0;border:0;border-radius:0;gap:5px 12px;margin:9px 0 0;padding:0;font-size:10px;font-weight:400}#typing-main .typing-tutor .keyboard-landscape .keyboard-finger-legend>span{font-weight:400;color:var(--focus-muted)!important}#typing-main .typing-tutor .keyboard-finger-legend .zone-swatch{opacity:.75;border:0;border-radius:50%;width:6px;height:6px}#typing-main .typing-tutor.theme-high-contrast .keyboard-landscape .typing-key-row>span{border-color:#fff;color:#fff!important;background:#000!important}#typing-main .typing-tutor.theme-high-contrast .keyboard-landscape .typing-key-row>span.next{color:#000!important;background:#ffee58!important}.focus-settings-backdrop{z-index:70;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#10243d25;position:fixed;inset:0}.focus-settings-drawer{z-index:80;border:0;border-left:1px solid var(--focus-line);background:var(--focus-panel);width:390px;max-width:calc(100vw - 24px);height:100dvh;color:var(--focus-ink);flex-direction:column;padding:0;font:400 13px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;display:flex;position:fixed;inset:0 0 0 auto;overflow:hidden;box-shadow:-16px 0 60px #152a4220}.focus-settings-drawer[data-closed],.focus-settings-backdrop[data-closed]{display:none!important}.focus-drawer-heading{border-bottom:1px solid var(--focus-line);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:20px 22px;display:flex}.focus-drawer-heading h2{margin:0;font-size:18px;font-weight:500}.focus-drawer-heading p{color:var(--focus-muted);margin:3px 0 0;font-size:12px}.focus-drawer-close{width:34px;height:34px;color:var(--focus-muted);background:0 0;border:0;border-radius:7px;place-items:center;padding:6px;display:grid}.focus-drawer-content{overscroll-behavior:contain;min-height:0;padding:20px 22px;overflow:auto}.focus-drawer-footer{border-top:1px solid var(--focus-line);flex:none;padding:16px 22px}.focus-drawer-footer button{color:#fff;background:#227ad0;border:1px solid #227ad0;border-radius:8px;width:100%;min-height:42px;padding:10px;font-size:13px;font-weight:500}#text-practice-settings :is(button,input,select,textarea,a):focus-visible{outline-offset:2px;outline:3px solid #66a9ed}#text-practice-settings .typing-controls{width:auto;min-width:0;box-shadow:none;background:0 0;border:0;grid-template-columns:minmax(0,1fr);gap:14px;margin:0;padding:0;display:grid}#text-practice-settings .tutor-control{min-width:0;color:var(--focus-muted);gap:6px;font-size:12px;font-weight:400;display:grid}#text-practice-settings .tutor-control>span{align-items:center;gap:6px;display:flex}#text-practice-settings :is(.tutor-control button,select,textarea,input:not([type=range]):not([type=color])){border:1px solid var(--focus-line);background:var(--focus-bg);width:100%;min-width:0;min-height:40px;color:var(--focus-ink);border-radius:7px;padding:9px 11px;font-size:13px;font-weight:400}#text-practice-settings :is(.tutor-settings,.tutor-settings-slot){width:auto;min-width:0;box-shadow:none;background:0 0;border:0;margin:0;padding:0;position:static}#text-practice-settings .focus-embedded-settings>summary{display:none}#text-practice-settings .settings-content{border:0;border-top:1px solid var(--focus-line);max-width:none;max-height:none;color:var(--focus-ink);box-shadow:none;background:0 0;grid-template-columns:minmax(0,1fr);gap:18px;margin:6px 0 0;padding:18px 0 0;display:grid;position:static;inset:auto;overflow:visible}#text-practice-settings .settings-group{border:0;border-bottom:1px solid var(--focus-line);background:0 0;border-radius:0;gap:8px;min-width:0;margin:0;padding:0 0 16px;display:grid}#text-practice-settings :is(.settings-wide,.settings-group){grid-column:1}#text-practice-settings .settings-group h3{color:var(--focus-muted);margin:0 0 4px;font-size:12px;font-weight:500;line-height:1.5}#text-practice-settings .settings-group p{color:var(--focus-muted);margin:0;font-size:11px}#text-practice-settings .settings-group button:not([role=switch]){border:1px solid var(--focus-line);background:var(--focus-bg);min-height:34px;color:var(--focus-ink);box-shadow:none;border-radius:7px;padding:7px 9px;font-size:12px;font-weight:400}#text-practice-settings .settings-group button:is(.active,[aria-pressed=true]){background:var(--focus-soft);color:var(--focus-blue);border-color:var(--focus-blue)}#text-practice-settings :is(.setting-segments,.board-colour-presets){flex-wrap:wrap;gap:6px;display:flex}#text-practice-settings :is(.setting-segments,.board-colour-presets)>button{flex:90px}#text-practice-settings .board-colour-inputs{flex-wrap:wrap;gap:12px;display:flex}#text-practice-settings :is(.settings-content label,.toggle-row){min-width:0;font-size:12px;font-weight:400}#text-practice-settings input[type=range]{accent-color:#227ad0;width:100%}#text-practice-settings .typing-path-picker{box-shadow:none;background:0 0;border:0;gap:8px;margin:16px 0;padding:0;display:grid}#text-practice-settings .typing-path-options{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}#text-practice-settings .typing-path-picker :is(button,a){border:1px solid var(--focus-line);background:var(--focus-bg);min-height:38px;color:var(--focus-ink);box-shadow:none;border-radius:7px;align-items:center;gap:8px;padding:9px 11px;font-size:12px;font-weight:400;display:flex}#text-practice-settings .typing-path-picker strong{font-weight:400}#text-practice-settings .typing-path-picker small,#text-practice-settings .free-text-button-stats{display:none}#text-practice-settings .typing-path-picker button.active{color:#263448;background:#f6cb53}#text-practice-settings .typing-save-note{color:var(--focus-muted);margin:12px 0;font-size:11px}#text-practice-settings .typing-save-note[data-device-layout-source]{display:none}#text-practice-settings .focus-site-navigation{border-top:1px solid var(--focus-line);flex-wrap:wrap;gap:8px;padding:16px 0;display:flex}#text-practice-settings .focus-site-navigation :is(a,button,summary){border:1px solid var(--focus-line);background:var(--focus-bg);min-height:34px;color:var(--focus-ink);border-radius:7px;align-items:center;gap:5px;padding:7px 9px;font-size:12px;font-weight:400;display:inline-flex}#text-practice-settings .focus-site-navigation .typing-hub-tabs{display:none}#text-practice-settings .focus-history{border-top:1px solid var(--focus-line);padding-top:16px}#text-practice-settings .focus-history summary{cursor:pointer;font-size:13px;font-weight:500}#text-practice-settings .focus-history :is(.typing-metrics,.analytics-summary,.analytics-weak-grid){grid-template-columns:minmax(0,1fr)}@media (min-height:900px){#typing-main .typing-tutor .keyboard-landscape .typing-key-row>span{height:44px;min-height:44px}}@media (max-width:800px){html .focused-text-page .topbar.training-page-header{padding:0 16px}html .focused-text-page .training-page-label{display:none}#typing-main.typing-page-main{padding:18px}#typing-main .focus-session-stats{gap:14px}#typing-main .focus-session-stats>span{text-align:right;display:block}#typing-main .focus-session-stats small{font-size:10px;display:block}#typing-main .focus-session-stats b{font-size:17px}#typing-main .focus-session-context{max-width:320px}}@media (max-width:520px){html .focused-text-page .topbar.training-page-header{gap:6px;padding:0 12px}html .focused-text-page .topbar .brand-copy strong{font-size:17px}html .focused-text-page .topbar .brand-mark{width:27px;min-width:27px;height:27px}html .focused-text-page .topbar .focus-toolbar{gap:2px}html .focused-text-page .topbar .tutor-voice-control>span,html .focused-text-page .topbar .focus-settings-trigger>span{display:none}html .focused-text-page .topbar .focus-toolbar button{width:34px;min-width:34px;padding:6px}#typing-main .focus-session-heading{gap:12px}#typing-main .focus-session-heading h2{font-size:16px}#typing-main .focus-session-context{max-width:170px;font-size:10px}#typing-main .focus-session-stats{gap:8px}#typing-main .focus-session-stats b{font-size:15px}#typing-main .focus-session-stats small{font-size:9px}#typing-main .typing-tutor[data-practice-mode=text] .typing-stage{padding:14px}#typing-main .typing-tutor[data-practice-mode=text] .typing-text-viewport{height:calc(var(--focus-practice-font-size,22px) * 9 + 4px)}#typing-main .typing-tutor .typing-stage-top{flex-wrap:wrap;gap:6px;font-size:10px}#typing-main .focus-restart span{display:none}}@media (prefers-reduced-motion:reduce){.focus-settings-drawer,.focus-settings-backdrop{transition:none!important;animation:none!important}}@media (forced-colors:active){#typing-main .typing-tutor .keyboard-landscape .typing-key-row>span{border-color:canvastext;color:canvastext!important;background:canvas!important}#typing-main .typing-tutor .typing-char.typing-current{outline:2px solid highlight}}html .focused-text-page .topbar.training-page-header{background:var(--focus-panel)!important;color:var(--focus-ink)!important;box-shadow:none!important}html .focused-text-page .topbar :is(.brand,.brand-copy,.brand-copy strong){color:var(--focus-ink)!important}html .focused-text-page .topbar .training-page-label{color:var(--focus-muted)!important;font-weight:400!important}html .focused-text-page .topbar :is(.focus-toolbar button,.learn-appearance){color:var(--focus-muted)!important;box-shadow:none!important;background:0 0!important;border-color:#0000!important}html .focused-text-page .topbar :is(.focus-toolbar button,.learn-appearance):hover{background:var(--focus-soft)!important;color:var(--focus-blue)!important}html .focused-text-page .topbar .focus-toolbar button.focus-settings-trigger{color:#263448!important;background:#f6cb53!important;border-color:#e4b73d!important}html .focused-text-page .topbar .focus-toolbar button.focus-settings-trigger:hover{color:#263448!important;background:#f9d777!important}html .focused-text-page .topbar .focus-toolbar button.tutor-voice-control{color:#fff!important;background:#196fc2!important;border-color:#1462ad!important}html .focused-text-page .topbar .focus-toolbar button.tutor-voice-control:hover{color:#fff!important;background:#125ba4!important}html .focused-text-page .topbar .tutor-voice-control :is(svg,strong){color:#fff!important}html .focused-text-page .topbar .tutor-voice-control .voice-toggle-track{background:#0c477f;border:1px solid #ffffffa6;border-radius:999px;flex:0 0 24px;width:24px;min-width:24px;height:14px;padding:2px;display:inline-flex}html .focused-text-page .topbar .tutor-voice-control .voice-toggle-track b{background:#fff;border-radius:50%;width:8px;height:8px;display:block;transform:none}html .focused-text-page .topbar .tutor-voice-control[aria-checked=true] .voice-toggle-track{background:#f6cb53;border-color:#f6cb53}html .focused-text-page .topbar .tutor-voice-control[aria-checked=true] .voice-toggle-track b{background:#263448;transform:translate(10px)}@media (max-width:520px){html .focused-text-page .topbar .focus-toolbar button.tutor-voice-control{gap:5px;width:auto;min-width:56px;padding-inline:6px}}#typing-main .focus-training-modes{border:1px solid var(--focus-edge);background:var(--focus-panel);border-radius:8px;align-items:center;gap:3px;padding:3px;display:inline-flex}#typing-main .focus-training-modes>:is(a,span){min-height:28px;color:var(--focus-ink);white-space:nowrap;border-radius:5px;justify-content:center;align-items:center;padding:3px 10px;font-size:13px;font-weight:500;line-height:1.3;text-decoration:none;display:inline-flex}#typing-main .focus-training-modes>a:hover{background:var(--focus-soft);color:var(--focus-blue)}#typing-main .focus-training-modes>a:focus-visible{outline-offset:2px;outline:3px solid #66a9ed}#typing-main .focus-training-modes>[aria-current=page]{color:#fff;background:#196fc2}#typing-main .focus-training-modes+h2{margin-top:6px}@media (max-width:520px){#typing-main .focus-training-modes>:is(a,span){padding-inline:7px;font-size:12px}}#text-practice-settings .custom-text-settings{min-width:0;max-width:100%}#text-practice-settings .custom-text-grid{grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;display:grid}#text-practice-settings .custom-text-grid>*{grid-column:auto;min-width:0;max-width:100%}#text-practice-settings .custom-text-grid textarea{resize:vertical;min-height:140px}#text-practice-settings .custom-text-settings h3{color:var(--focus-muted);align-items:center;gap:6px;margin:0 0 10px;font-size:12px;font-weight:500;display:flex}#text-practice-settings .custom-text-list{flex-wrap:wrap;gap:6px;min-width:0;margin-top:10px}#text-practice-settings .custom-text-list button{white-space:normal;overflow-wrap:anywhere;max-width:100%}#text-practice-settings .local-privacy{color:var(--focus-muted);align-items:flex-start;gap:6px;font-size:11px}#text-practice-settings .local-privacy svg{flex-shrink:0}html .focused-text-page .topbar .focus-home-link{height:36px;box-shadow:none;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:7px 10px;font:400 12px/1.2 -apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;text-decoration:none;display:inline-flex;color:var(--focus-muted)!important;background:0 0!important}html .focused-text-page .topbar .focus-home-link:hover{background:var(--focus-soft)!important;color:var(--focus-blue)!important}html .focused-text-page .topbar .focus-home-link:focus-visible{outline-offset:3px;outline:3px solid #66a9ed}html .focused-text-page .topbar .focus-toolbar button.focus-custom-trigger{white-space:nowrap;flex:none;width:auto}html .focused-text-page .topbar .focus-toolbar button.focus-drill-trigger{text-align:left;flex:none;justify-content:space-between;width:148px;border-color:var(--focus-line)!important;background:var(--focus-bg)!important}@media (max-width:1120px){html .focused-text-page .topbar .training-page-label{display:none}}@media (max-width:880px){html .focused-text-page .topbar.training-page-header{grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;height:auto;min-height:60px;padding:10px 16px;display:grid}html .focused-text-page .topbar .brand{grid-area:1/1}html .focused-text-page .topbar .top-actions{display:contents}html .focused-text-page .topbar .learn-appearance{grid-area:1/2}#text-trainer-tools{grid-area:2/1/auto/-1;min-width:0}html .focused-text-page .topbar .focus-toolbar{flex-wrap:wrap;gap:5px}}@media (max-width:520px){html .focused-text-page .topbar.training-page-header{padding:8px 12px}html .focused-text-page .topbar .focus-home-link{width:34px;padding:6px}html .focused-text-page .topbar .focus-home-link span{display:none}html .focused-text-page .topbar .focus-toolbar button.focus-custom-trigger{width:auto;padding-inline:8px}html .focused-text-page .topbar .focus-toolbar button.focus-drill-trigger{width:134px;padding-inline:8px}}html .focused-text-page .topbar :is(.focus-practice-actions,.focus-utility-actions){align-items:center;gap:6px;display:flex}@media (max-width:880px){html .focused-text-page .topbar.training-page-header{grid-template-columns:minmax(0,1fr) auto 36px}html .focused-text-page .topbar #text-trainer-tools,html .focused-text-page .topbar .focus-toolbar{display:contents}html .focused-text-page .topbar .focus-practice-actions{grid-area:2/1/auto/-1}html .focused-text-page .topbar .focus-utility-actions{grid-area:1/2}html .focused-text-page .topbar .learn-appearance{grid-area:1/3;min-height:36px!important}}@media (max-width:520px){html .focused-text-page .topbar.training-page-header{column-gap:6px}html .focused-text-page .topbar .focus-utility-actions{gap:3px}html .focused-text-page .topbar .focus-practice-actions{gap:6px}html .focused-text-page .topbar .focus-home-link{width:auto;padding-inline:8px}html .focused-text-page .topbar .focus-home-link span{display:inline}}@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Regular.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}#text-practice-settings .toggle-list>label,#text-practice-settings .dictation-settings>label:first-of-type{justify-content:space-between;align-items:center;gap:12px;min-height:40px;display:flex}#text-practice-settings [data-slot=switch]{isolation:isolate;box-sizing:border-box;background:#42536a;border:1px solid #8297ae;border-radius:999px;flex:0 0 42px;width:42px;min-width:42px;height:24px;min-height:24px;padding:0;display:inline-block;position:relative;overflow:hidden;transform:none}#text-practice-settings [data-slot=switch]:after{inset:0}#text-practice-settings [data-slot=switch][data-checked]{background:#196fc2;border-color:#196fc2}#text-practice-settings [data-slot=switch] [data-slot=switch-thumb]{box-sizing:border-box;background:#fff;border:1px solid #60738a;border-radius:50%;width:18px;height:18px;margin:0;transition:none;position:absolute;top:2px;left:2px;right:auto;--tw-translate-x:0px!important;--tw-translate-y:0px!important;transform:none!important}#text-practice-settings [data-slot=switch][data-checked] [data-slot=switch-thumb]{left:auto;right:2px}html[data-flowkeys-theme=light] #text-practice-settings [data-slot=switch]:not([data-checked]){background:#d7e3f0;border-color:#6e89a8}html .focused-text-page .topbar .focus-brand-group{flex:none;align-items:center;gap:20px;display:flex}html .focused-text-page .topbar .focus-help-link{border:1px solid var(--focus-edge);background:var(--focus-panel);height:36px;color:var(--focus-ink);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:7px 10px;font:400 12px/1.2 -apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;text-decoration:none;display:inline-flex}html .focused-text-page .topbar .focus-help-link:hover{background:var(--focus-soft);color:var(--focus-blue)}html .focused-text-page .topbar .focus-help-link:focus-visible{outline-offset:3px;outline:3px solid #66a9ed}#typing-main .focus-training-modes{background:var(--focus-soft);border:1px solid #196fc2;border-radius:999px;gap:4px;padding:4px;box-shadow:0 2px 6px #122c4e12}#typing-main .focus-training-modes>:is(a,span){border-radius:999px;padding-inline:13px}#typing-main .focus-training-modes>[aria-current=page]{color:#263448;background:#f6cb53;font-weight:600;box-shadow:0 1px 3px #122c4e20}#typing-main .typing-key-row>:is(.finger-0,.finger-7),#typing-main .zone-swatch:is(.zone-0,.zone-7){--focus-zone:#e9abc1}#typing-main .typing-key-row>:is(.finger-1,.finger-6),#typing-main .zone-swatch:is(.zone-1,.zone-6){--focus-zone:#efd093}#typing-main .typing-key-row>:is(.finger-2,.finger-5),#typing-main .zone-swatch:is(.zone-2,.zone-5){--focus-zone:#a9d6bf}#typing-main .typing-key-row>.finger-3,#typing-main .zone-swatch.zone-3{--focus-zone:#a8cee8}#typing-main .typing-key-row>.finger-4,#typing-main .zone-swatch.zone-4{--focus-zone:#c9b8e7}#typing-main .typing-key-row>.finger-8,#typing-main .zone-swatch.zone-8{--focus-zone:#a6d8df}#typing-main .typing-tutor .keyboard-landscape .typing-key-row>span:not(.finger-neutral):not(.next):not(.physically-pressed){border-color:#7b8ea1;background:var(--focus-zone,var(--focus-key))!important;color:#243247!important}#typing-main .typing-tutor .keyboard-landscape .typing-key-row>span:after{display:none}#typing-main .typing-tutor .keyboard-finger-legend i.zone-swatch{border:1px solid #66788b;border-radius:3px;width:9px;height:9px;background:var(--focus-zone)!important}@media (max-width:880px){html .focused-text-page .topbar .focus-brand-group{grid-area:1/1;gap:10px}}@media (max-width:520px){html .focused-text-page .topbar .focus-brand-group .brand-copy{display:none}html .focused-text-page .topbar .focus-brand-group{gap:6px}html .focused-text-page .topbar .focus-help-link{padding-inline:7px}#typing-main .focus-training-modes>:is(a,span){padding-inline:8px}}@media (forced-colors:active){#text-practice-settings [data-slot=switch]{border-color:buttontext}#text-practice-settings [data-slot=switch][data-checked]{background:highlight}#typing-main .typing-tutor .keyboard-landscape .typing-key-row>span{color:canvastext!important;background:canvas!important}}.typing-progress-disclosure{min-width:0}.typing-progress-disclosure .typing-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.typing-progress-disclosure .typing-metric{background:0 0;border:0;min-width:0;padding:8px}.typing-progress-disclosure .typing-metric>strong{font-size:1.35rem}@media (max-width:600px){.typing-progress-disclosure .typing-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.typing-tutor.course-view .typing-controls{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;display:grid}@media (max-width:960px){.typing-tutor.course-view .typing-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.typing-tutor.course-view .typing-controls{grid-template-columns:minmax(0,1fr)}}.alphabet-course[aria-label]{order:1}.alphabet-course{--ac-blue:color-mix(in srgb, var(--foreground) 42%, #1682d5);--ac-teal:color-mix(in srgb, var(--foreground) 32%, #079b8b);--ac-blue-wash:color-mix(in srgb, var(--ac-blue) 10%, var(--card));--ac-teal-wash:color-mix(in srgb, var(--ac-teal) 10%, var(--card));border:1px solid var(--border);background:var(--card);width:100%;min-width:0;color:var(--foreground);text-align:start;border-radius:1.25rem;margin-block:1rem;padding:clamp(1rem,3vw,1.75rem);font-size:1rem;line-height:1.6}.alphabet-course *,.alphabet-course :before,.alphabet-course :after{box-sizing:border-box}.alphabet-course h2{color:var(--foreground);letter-spacing:-.025em;overflow-wrap:anywhere;margin:0 0 .75rem;font-size:clamp(1.5rem,3.2vw,2rem);font-weight:750;line-height:1.2}.alphabet-course p{margin:0 0 1rem}.alphabet-course small{font-size:.8125rem;line-height:1.5}.alphabet-course svg{flex-shrink:0}.alphabet-course button{border:1px solid var(--border);background:var(--card);min-width:44px;max-width:100%;min-height:44px;color:var(--foreground);font:inherit;cursor:pointer;white-space:normal;overflow-wrap:anywhere;border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.875rem;font-weight:650;line-height:1.45;transition:background-color .15s,border-color .15s;display:inline-flex}.alphabet-course button:hover:not(:disabled){border-color:var(--ac-blue);background:var(--ac-blue-wash)}.alphabet-course button:disabled{opacity:.55;cursor:not-allowed}:is(.alphabet-course button:focus-visible,.alphabet-course summary:focus-visible,.alphabet-course h2:focus-visible){outline:3px solid var(--ring);outline-offset:4px}.alphabet-course .ac-primary{color:#fff;background:#1767b7;border-color:#1767b7;min-height:48px;padding-inline:1.25rem;font-size:1rem}.alphabet-course .ac-primary:hover:not(:disabled){background:#10599f;border-color:#10599f}.alphabet-course .ac-quiet{background:0 0;border-color:#0000}.alphabet-course .ac-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:1.25rem;padding-bottom:.875rem;display:flex}.alphabet-course .ac-layout{color:var(--muted-foreground);overflow-wrap:anywhere;align-items:center;gap:.5rem;font-size:.8125rem;display:inline-flex}.alphabet-course .ac-eyebrow{color:var(--ac-blue);letter-spacing:.085em;text-transform:uppercase;margin-bottom:.625rem;font-size:.75rem;font-weight:750;line-height:1.5}.alphabet-course .ac-intro{border:1px solid var(--border);background:linear-gradient(115deg, var(--ac-blue-wash), var(--ac-teal-wash));border-radius:1rem;padding:clamp(1rem,3vw,1.75rem)}.alphabet-course .ac-intro>p:not(.ac-eyebrow){max-width:65ch;color:var(--muted-foreground)}.alphabet-course .ac-actions{flex-wrap:wrap;align-items:center;gap:.625rem;display:flex}.alphabet-course .ac-course-progress{color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1.125rem;font-size:.875rem;display:flex}.alphabet-course progress{-webkit-appearance:none;appearance:none;background:var(--muted);width:100%;height:.375rem;color:var(--ac-teal);accent-color:var(--ac-teal);border:0;border-radius:1rem;display:block;overflow:hidden}.alphabet-course progress::-webkit-progress-bar{background:var(--muted)}.alphabet-course progress::-webkit-progress-value{background:var(--ac-teal);border-radius:1rem}.alphabet-course progress::-moz-progress-bar{background:var(--ac-teal);border-radius:1rem}.alphabet-course .ac-course-progress progress{width:10rem;max-width:100%}.alphabet-course .ac-chapters{gap:.75rem;margin-top:1.25rem;display:grid}.alphabet-course .ac-chapter{border:1px solid var(--border);background:var(--card);border-radius:.875rem;min-width:0}.alphabet-course .ac-chapter summary{cursor:pointer;border-radius:.875rem;align-items:center;gap:.875rem;min-height:44px;padding:1rem;list-style:none;display:flex}.alphabet-course .ac-chapter summary::-webkit-details-marker{display:none}.alphabet-course .ac-chapter summary:hover{background:var(--ac-blue-wash)}.alphabet-course .ac-chapter[open] summary{background:var(--ac-blue-wash);border-radius:.875rem .875rem 0 0}.alphabet-course .ac-chapter-number{border:1px solid var(--border);width:2.25rem;height:2.25rem;color:var(--ac-blue);background:var(--card);border-radius:.75rem;flex:0 0 2.25rem;place-items:center;font-weight:750;display:grid}.alphabet-course .ac-chapter-copy{overflow-wrap:anywhere;flex:1;min-width:0}.alphabet-course .ac-chapter-copy strong{font-size:1rem;display:block}.alphabet-course .ac-chapter-copy small{color:var(--muted-foreground);margin-top:.125rem;display:block}.alphabet-course .ac-chapter-count{font-variant-numeric:tabular-nums;text-align:end;flex-shrink:0;font-size:.875rem;font-weight:700}.alphabet-course .ac-chapter-count>span{color:var(--muted-foreground);font-size:.6875rem;font-weight:400;display:block}.alphabet-course .ac-disclosure{color:var(--muted-foreground)}.alphabet-course .ac-chapter[open] .ac-disclosure{transform:rotate(90deg)}.alphabet-course .ac-lesson-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.625rem;margin:0;padding:1rem;list-style:none;display:grid}.alphabet-course .ac-lesson-grid li{min-width:0}.alphabet-course .ac-lesson-tile{text-align:start;border-radius:.75rem;flex-direction:column;justify-content:flex-start;align-items:stretch;width:100%;height:100%;min-height:124px;padding:.875rem;display:flex}.alphabet-course .ac-lesson-tile.is-current{border:2px solid var(--ac-blue);background:var(--ac-blue-wash);padding:calc(.875rem - 1px)}.alphabet-course .ac-lesson-tile.is-completed:not(.is-current){background:var(--ac-teal-wash)}.alphabet-course .ac-tile-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.alphabet-course .ac-lesson-number{color:var(--muted-foreground);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:500}.alphabet-course .ac-tile-marker{color:var(--ac-blue);font-size:.875rem;font-weight:750}.alphabet-course .ac-lesson-tile>strong{font-size:.9375rem;line-height:1.4}.alphabet-course .ac-lesson-tile>small{color:var(--muted-foreground);align-items:center;gap:.25rem;margin-top:auto;padding-top:.375rem;font-size:.75rem;font-weight:400;display:flex}.alphabet-course .ac-text-bridge{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;padding:1rem 0 .5rem;display:flex}.alphabet-course .ac-text-bridge strong{font-size:.9375rem;display:block}.alphabet-course .ac-text-bridge small{color:var(--muted-foreground);display:block}.alphabet-course .ac-lesson-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.375rem 1rem;margin-bottom:1rem;display:flex}.alphabet-course .ac-lesson-nav>span{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.8125rem}.alphabet-course .ac-teaching-card,.alphabet-course .ac-review-card{border:1px solid var(--border);background:linear-gradient(130deg, var(--ac-blue-wash), var(--card) 65%);border-radius:1rem;padding:clamp(1rem,3vw,1.75rem)}.alphabet-course .ac-instructions{max-width:68ch;font-size:1.0625rem;line-height:1.75}.alphabet-course .ac-key-guidance{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;margin-block:1.25rem;display:flex}.alphabet-course .ac-keycaps{flex-wrap:wrap;flex:1;justify-content:center;align-items:flex-start;gap:.75rem;min-width:0;display:flex}.alphabet-course .ac-key-guide{flex-direction:column;align-items:center;gap:.5rem;max-width:100%;display:flex}.alphabet-course .ac-key-guide kbd{border:1px solid var(--ac-blue);background:var(--card);min-width:4.5rem;max-width:100%;min-height:4.5rem;color:var(--foreground);font:inherit;overflow-wrap:anywhere;border-bottom-width:5px;border-radius:.875rem;place-items:center;padding:.5rem 1rem;font-size:1.75rem;font-weight:700;display:grid}.alphabet-course .ac-key-guide small{color:var(--muted-foreground)}.alphabet-course .ac-finger-guidance{color:var(--muted-foreground);font-size:.875rem}.alphabet-course .ac-preview{border:1px solid var(--border);background:var(--card);border-radius:.875rem;margin-bottom:1.5rem;padding:1rem}.alphabet-course .ac-preview-label{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.375rem 1rem;margin-bottom:.75rem;font-size:.8125rem;display:flex}.alphabet-course .ac-preview-label>span{color:var(--muted-foreground)}.alphabet-course .ac-pattern-preview{flex-wrap:wrap;align-items:center;gap:.5rem .875rem;display:flex}.alphabet-course .ac-preview-pattern{background:var(--muted);letter-spacing:.08em;overflow-wrap:anywhere;border-radius:.375rem;max-width:100%;padding:.25rem .5rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.25rem}.alphabet-course .ac-space{color:var(--ac-blue)}.alphabet-course .ac-ready-note{color:var(--muted-foreground);flex:14rem;font-size:.8125rem}.alphabet-course .ac-note{color:var(--muted-foreground);margin-top:.875rem;font-size:.8125rem}.alphabet-course .ac-device-note{color:var(--muted-foreground);margin:1.125rem 0 0;font-size:.75rem}.alphabet-course .ac-practice-title{justify-content:space-between;align-items:center;gap:1rem;display:flex}.alphabet-course .ac-practice-title>div:first-child{min-width:0}.alphabet-course .ac-practice-title h2{margin-bottom:.5rem;font-size:1.375rem}.alphabet-course .ac-step-controls{gap:.375rem;display:flex}.alphabet-course .ac-step-controls button{padding:.5rem}.alphabet-course .ac-practice-hint{max-width:70ch;color:var(--muted-foreground);font-size:.875rem}.alphabet-course .ac-drill-progress{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.alphabet-course .ac-drill-progress li{border:1px solid var(--border);color:var(--muted-foreground);border-radius:.75rem;flex:7rem;align-items:center;gap:.625rem;padding:.625rem .75rem;font-size:.8125rem;display:flex}.alphabet-course .ac-drill-progress small{font-size:.6875rem;display:block}.alphabet-course .ac-drill-progress [data-status=current]{border-color:var(--ac-blue);background:var(--ac-blue-wash);color:var(--foreground)}.alphabet-course .ac-drill-progress [data-status=complete]{color:var(--ac-teal)}.alphabet-course .ac-drill-icon{border:1px solid;border-radius:50%;flex:0 0 1.375rem;place-items:center;width:1.375rem;height:1.375rem;font-size:.6875rem;display:grid}.alphabet-course .ac-practice-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.625rem;display:flex}.alphabet-course .ac-practice-footer>span{color:var(--muted-foreground);font-size:.75rem}.alphabet-course .ac-practice-footer .ac-actions{gap:.25rem}.alphabet-course .ac-practice-footer button{padding-inline:.625rem;font-size:.8125rem}.alphabet-course.alphabet-course--practice .ac-toolbar{margin-bottom:.5rem;padding-bottom:.5rem}.alphabet-course.alphabet-course--practice .ac-lesson-nav{margin-bottom:.5rem}.alphabet-course.alphabet-course--practice .ac-device-note{margin-top:.5rem}.alphabet-course .ac-review-card.is-complete{background:linear-gradient(130deg, var(--ac-teal-wash), var(--card) 65%)}.alphabet-course .ac-outcome-icon{border:1px solid var(--border);width:3rem;height:3rem;color:var(--ac-blue);background:var(--card);border-radius:1rem;place-items:center;margin-bottom:1rem;display:grid;position:relative}.alphabet-course .is-complete .ac-outcome-icon{color:var(--ac-teal);border-color:var(--ac-teal)}.alphabet-course .is-celebrating .ac-outcome-icon>svg{animation:.6s ease-out ac-success-settle}.alphabet-course .ac-celebration{pointer-events:none;animation:.7s ease-out ac-starburst-settle;position:absolute;inset:-.375rem}.alphabet-course .ac-celebration>span{position:absolute;inset:0;transform:rotate(0)}.alphabet-course .ac-celebration>span:nth-child(2){transform:rotate(45deg)}.alphabet-course .ac-celebration>span:nth-child(3){transform:rotate(90deg)}.alphabet-course .ac-celebration>span:nth-child(4){transform:rotate(135deg)}.alphabet-course .ac-celebration>span:before,.alphabet-course .ac-celebration>span:after{content:"";background:var(--ac-teal);border-radius:2px;width:2px;height:.25rem;position:absolute;left:calc(50% - 1px)}.alphabet-course .ac-celebration>span:before{top:0}.alphabet-course .ac-celebration>span:after{bottom:0}@keyframes ac-success-settle{0%{transform:scale(.85)}to{transform:scale(1)}}@keyframes ac-starburst-settle{0%{transform:scale(.8)rotate(-12deg)}to{transform:scale(1)rotate(0)}}.alphabet-course .ac-review-outcome>p:last-child{max-width:62ch;color:var(--muted-foreground)}.alphabet-course .ac-review-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1.25rem 0;display:grid}.alphabet-course .ac-review-stats>div{border:1px solid var(--border);background:var(--card);border-radius:.875rem;min-width:0;padding:.875rem}.alphabet-course .ac-review-stats dt{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.8125rem}.alphabet-course .ac-review-stats dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:.25rem 0 0;font-size:clamp(1.25rem,3vw,1.75rem);font-weight:750;line-height:1.4}.alphabet-course .ac-review-stats dd small{color:var(--muted-foreground);font-size:.8125rem;font-weight:400}.alphabet-course .ac-review-feedback{max-width:65ch}.alphabet-course .ac-next-preview{color:var(--muted-foreground);margin:.75rem 0 0;font-size:.8125rem}.alphabet-course .ac-continue-hint{border:1px solid var(--ac-teal);background:var(--ac-teal-wash);color:var(--foreground);border-radius:.75rem;padding:.875rem 1rem;font-weight:650}@media (max-width:560px){.alphabet-course{border-radius:1rem;padding:.875rem}.alphabet-course .ac-toolbar{align-items:flex-start}.alphabet-course .ac-layout{flex-basis:100%}.alphabet-course .ac-intro,.alphabet-course .ac-teaching-card,.alphabet-course .ac-review-card{padding:1rem}.alphabet-course .ac-chapter summary{flex-wrap:wrap;gap:.5rem;padding:.75rem}.alphabet-course .ac-chapter-copy{flex-basis:calc(100% - 3rem)}.alphabet-course .ac-chapter-count{text-align:start;margin-inline-start:2.75rem}.alphabet-course .ac-chapter-count>span{margin-inline-start:.375rem;font-size:.75rem;display:inline}.alphabet-course .ac-disclosure{margin-inline-start:auto}.alphabet-course .ac-lesson-grid{padding:.75rem}.alphabet-course .ac-text-bridge{align-items:flex-start}.alphabet-course .ac-lesson-nav>span,.alphabet-course .ac-keycaps{flex-basis:100%}.alphabet-course .ac-review-stats{gap:.375rem}.alphabet-course .ac-review-stats>div{padding:.625rem .5rem}.alphabet-course .ac-review-stats dt{font-size:.75rem}.alphabet-course .ac-actions>.ac-primary{flex:100%}}@media (prefers-reduced-motion:reduce){.alphabet-course .ac-celebration{display:none}.alphabet-course *,.alphabet-course :before,.alphabet-course :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.alphabet-course{--ls-paper:color-mix(in srgb, #f6d985 14%, var(--card));container-type:inline-size}.alphabet-course .ac-teaching-card{background:var(--ls-paper);grid-template-columns:minmax(0,1fr) minmax(9rem,.4fr);column-gap:2rem;display:grid}.alphabet-course .ac-teaching-card>*{grid-column:1}.alphabet-course .ac-teaching-card .ac-key-guidance{grid-area:1/2/5;align-self:center}.alphabet-course .ac-teaching-card .ac-preview,.alphabet-course .ac-teaching-card .ac-actions,.alphabet-course .ac-teaching-card .ac-note{grid-column:1/-1}.alphabet-course .ac-key-guide kbd{min-width:6rem;min-height:6rem;box-shadow:0 10px 0 color-mix(in srgb, var(--ac-blue) 10%, transparent);font-size:clamp(2rem,5vw,3.5rem)}.alphabet-course .ac-practice-hint{margin-bottom:.6rem}.alphabet-course .ls-voice-feedback{border:1px solid var(--border);background:var(--card);border-radius:.875rem;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-bottom:1rem;padding:1rem;display:flex}.alphabet-course .ls-voice-feedback>div:first-child{flex:20rem;min-width:0}.alphabet-course .ls-voice-feedback strong{font-size:1rem}.alphabet-course .ls-voice-feedback p{color:var(--muted-foreground);margin:.25rem 0 0;font-size:.875rem}.alphabet-course .ls-voice-feedback[data-letter-voice=missing]{border-color:var(--ac-blue)}.alphabet-course .ls-track{border:1px solid var(--border);background:var(--ls-paper);border-radius:1.25rem;min-width:0;margin-block:1rem;overflow:hidden}.alphabet-course .ls-mode-controls{border:0;border-bottom:1px solid var(--border);background:var(--card);flex-wrap:wrap;gap:.25rem;min-inline-size:0;margin:0;padding:.5rem;display:flex}.alphabet-course .ls-mode-controls button{flex:8rem;font-size:.875rem}.alphabet-course .ls-mode-controls [aria-pressed=true]{color:var(--foreground);border-color:var(--ac-blue);background:var(--ac-blue-wash)}.alphabet-course .ls-scene{isolation:isolate;padding:1.25rem;position:relative}.alphabet-course .ls-next-callout{margin-inline:auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:1rem;max-width:30rem;margin-bottom:1.25rem;display:grid}.alphabet-course .ls-next-callout>span{font-size:1.125rem;font-weight:750}.alphabet-course .ls-next-callout small{color:var(--muted-foreground);grid-column:1}.alphabet-course .ls-next-key{font:inherit;border:2px solid var(--ac-blue);text-align:center;background:var(--card);overflow-wrap:anywhere;border-bottom-width:6px;border-radius:1rem;grid-area:1/2/3;min-width:4.5rem;min-height:4.5rem;padding:.3rem 1rem;font-size:clamp(2rem,4vw,3rem);font-weight:750;animation:.18s ease-out ls-key-arrive}.alphabet-course .ls-stones{justify-content:center;align-items:center;gap:.5rem;min-height:6rem;margin:0;padding:0;list-style:none;display:flex}.alphabet-course .ls-stones li{border:1px solid var(--border);border-bottom:4px solid var(--border);background:var(--card);min-width:0;color:var(--foreground);border-radius:.65rem;flex-direction:column;flex:0 3.25rem;align-items:center;padding:.2rem .3rem;transition:transform .18s,background-color .18s;display:flex}.alphabet-course .ls-stones kbd{font:inherit;font-family:ui-monospace,monospace;font-size:1.5rem;font-weight:650}.alphabet-course .ls-stone-number{color:var(--muted-foreground);font-size:.65rem}.alphabet-course .ls-stone-mark{font-size:.8rem}.alphabet-course [data-stone-status=current]{border-color:var(--ac-blue);background:var(--ac-blue-wash);transform:translateY(-5px)}.alphabet-course [data-stone-status=complete]{border-color:var(--ac-teal);background:var(--ac-teal-wash)}.alphabet-course .ls-landscape{z-index:-1;width:100%;height:100%;color:var(--ac-teal);position:absolute;inset:0}.alphabet-course [data-track-mode=trail] .ls-scene{padding-block:1.75rem 2.5rem}.alphabet-course [data-track-mode=trail] .ls-stones li{transform:translateY(var(--stone-rise));box-shadow:0 8px 0 color-mix(in srgb, var(--ac-teal) 15%, transparent);border-radius:50% 50% 35% 35%}.alphabet-course [data-track-mode=trail] [data-stone-status=current]{outline:2px solid var(--ac-blue);outline-offset:4px}.alphabet-course [data-track-mode=lane] .ls-stones{background:repeating-linear-gradient(180deg, transparent 0 28px, var(--border) 29px 30px);border-radius:1rem;padding-block:.75rem}.alphabet-course .ls-scene-note{border-top:1px solid var(--border);background:var(--card);color:var(--muted-foreground);margin:0;padding:.75rem 1rem;font-size:.8125rem}.alphabet-course .ls-earned-stars{text-align:center;margin-block:1.25rem;display:block}.alphabet-course .ls-earned-stars>span{display:block}.alphabet-course .ls-earned-stars>span:first-child{letter-spacing:.25rem;color:var(--muted-foreground);font-size:clamp(2.5rem,6vw,4rem);line-height:1.2}.alphabet-course .ls-earned-stars .is-earned{color:color-mix(in srgb, var(--foreground) 30%, #dba313)}.alphabet-course .ls-earned-stars>span:last-child{color:var(--muted-foreground);margin-top:.5rem;font-size:.875rem}.alphabet-course .ls-course-summary{background:var(--ls-paper);border:1px solid var(--border);border-radius:1rem;align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.alphabet-course .ls-course-summary h3{margin-bottom:.5rem;font-size:1.25rem;font-weight:750}.alphabet-course .ls-course-summary p{margin:.25rem 0}.alphabet-course .ls-medal{border:6px double var(--ac-teal);background:var(--card);height:5rem;color:var(--ac-teal);border-radius:50%;flex:0 0 5rem;place-items:center;font-size:2.25rem;display:grid}@keyframes ls-key-arrive{0%{opacity:.5;transform:translateY(7px)scale(.97)}to{opacity:1;transform:none}}.typing-tutor.course-view[data-feedback-animations=false] .alphabet-course *,.alphabet-course [data-motion=false] *,.typing-tutor.theme-high-contrast .alphabet-course *{transition:none!important;animation:none!important}.typing-tutor.theme-high-contrast .alphabet-course{--ac-blue:currentColor;--ac-teal:currentColor;--ls-paper:var(--card)}@container (width<=38rem){.alphabet-course .ac-teaching-card{display:block}.alphabet-course .ls-next-callout{text-align:center;grid-template-columns:minmax(0,1fr)}.alphabet-course .ls-next-key{grid-area:2/1;justify-self:center;margin:.5rem}.alphabet-course .ls-stones{flex-wrap:wrap;gap:.3rem}.alphabet-course .ls-stones li{flex-basis:2.5rem}.alphabet-course .ls-stones kbd{font-size:1.25rem}.alphabet-course .ls-course-summary{flex-wrap:wrap;gap:.75rem}.alphabet-course .ac-review-stats{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.alphabet-course .ls-track *,.alphabet-course .ls-earned-stars *{transition:none!important;animation:none!important}}#typing-main .typing-tutor .typing-keyboard:has(.ls-hands){padding-bottom:100px;position:relative}.typing-tutor .typing-keyboard:has(.ls-hands){padding-bottom:100px;position:relative}.typing-tutor .ls-hands{z-index:2;pointer-events:none;position:absolute;inset:0}.typing-tutor .ls-hands svg{max-width:none;display:block;overflow:visible}.typing-tutor .ls-hand-silhouette{fill:#bd927c;fill-opacity:.16;stroke:#825e50;stroke-opacity:.55;stroke-width:1.4px;transition:d .18s ease-out}.typing-tutor .ls-finger-nail{fill:#fae0d6;fill-opacity:.22;stroke:#825e50;stroke-opacity:.4;stroke-width:1px}.typing-tutor .ls-knuckle,.typing-tutor .ls-wrist-crease{stroke:#825e50;stroke-opacity:.38;fill:none;stroke-width:1px}.typing-tutor .ls-finger-target{fill:none;stroke:var(--primary);stroke-width:2px;stroke-dasharray:4 3}.typing-tutor .ls-finger-nail.is-active{fill:var(--primary);fill-opacity:.2;stroke:var(--primary);stroke-opacity:.7}.typing-tutor .ls-hand-caption{text-align:center;overflow-wrap:anywhere;color:var(--foreground);margin:.5rem .75rem;font-size:.875rem;line-height:1.5}.typing-tutor .ls-accepted-touch{fill:none;stroke:var(--primary);stroke-width:3px;animation:.24s ease-out both ls-touch-settle}@keyframes ls-touch-settle{0%{stroke-width:5px;opacity:.8}to{stroke-width:1px;opacity:0}}.typing-tutor.theme-high-contrast .ls-hand-silhouette{fill:#0000;stroke:var(--foreground);stroke-opacity:.8}.typing-tutor.theme-high-contrast .ls-knuckle,.typing-tutor.theme-high-contrast .ls-wrist-crease{stroke:var(--foreground)}.typing-tutor.theme-high-contrast .ls-finger-nail{fill:#0000;stroke:var(--foreground)}.typing-tutor[data-feedback-animations=false] .ls-hands *,.typing-tutor .ls-hands[data-motion=false] *,.typing-tutor.theme-high-contrast .ls-hands *{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.typing-tutor .ls-hands *{transition:none!important;animation:none!important}}.typing-tutor .ls-hands-3d{opacity:.72;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 calc(100% - 110px),#0000);mask-image:linear-gradient(#000 calc(100% - 110px),#0000)}#typing-main .typing-tutor .typing-keyboard:has(.ls-hands[data-renderer="3d"]){padding-bottom:130px}.typing-tutor .typing-keyboard:has(.ls-hands[data-renderer="3d"]){padding-bottom:130px}#typing-main .typing-tutor.theme-high-contrast .typing-keyboard:has(.ls-hands[data-renderer="3d"]){padding-bottom:100px}.typing-tutor .ls-hands-3d canvas{width:100%;height:100%;display:block}.typing-tutor .ls-hands svg{position:relative}.typing-tutor .ls-hands[data-renderer="3d"] :is(.ls-hand-silhouette,.ls-finger-nail,.ls-knuckle,.ls-wrist-crease),.typing-tutor.theme-high-contrast .ls-hands-3d{display:none}.typing-tutor.theme-high-contrast .ls-hands[data-renderer="3d"] :is(.ls-hand-silhouette,.ls-finger-nail,.ls-knuckle,.ls-wrist-crease){display:inline}.typing-tutor .keyboard-profile-disclosure{min-width:0}.typing-tutor .keyboard-profile-disclosure>summary{border:1px solid var(--design-border);min-height:54px;color:var(--design-ink);background:var(--design-surface);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-weight:750;list-style:none;display:flex}.typing-tutor .keyboard-profile-disclosure>summary::-webkit-details-marker{display:none}.typing-tutor .keyboard-profile-disclosure>summary>span{flex:1;min-width:0}.typing-tutor .keyboard-profile-disclosure>summary small{text-overflow:ellipsis;white-space:nowrap;color:var(--design-muted);font-size:.72rem;font-weight:500;display:block;overflow:hidden}.typing-tutor .keyboard-profile-disclosure[open] .keyboard-profile-chevron{transform:rotate(180deg)}.typing-tutor .keyboard-profile-disclosure>summary:focus-visible{outline:3px solid var(--design-action);outline-offset:2px}.typing-tutor .keyboard-profile-popover{inset-inline:0;z-index:66;overscroll-behavior:contain;border:1px solid var(--design-border);max-height:min(76vh,760px);color:var(--design-ink);background:var(--design-surface);border-radius:14px;padding:12px;position:absolute;top:calc(100% + 8px);overflow:auto;box-shadow:0 18px 40px #0005}.keyboard-profile-controls{min-width:0;color:inherit;background:0 0;border:1px solid;border-radius:1rem;margin:0;padding:1.25rem}.keyboard-profile-controls legend{padding-inline:.5rem;font-size:1.15rem;font-weight:750}.keyboard-profile-explanation,.keyboard-profile-coverage{max-width:85ch;margin:.4rem 0 1rem;line-height:1.6}.keyboard-profile-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:1rem;display:grid}.keyboard-profile-fields label{gap:.4rem;min-width:0;font-size:.9rem;font-weight:650;display:grid}.keyboard-profile-fields select{width:100%;min-width:0;color:inherit;background:inherit;font:inherit;border:1px solid;border-radius:.5rem;padding:.7rem .6rem}.keyboard-profile-fields option{color:canvastext;background:canvas}.keyboard-profile-summary{overflow-wrap:anywhere;margin:.9rem 0 .4rem;font-size:.85rem;line-height:1.6}.keyboard-profile-toggles{flex-wrap:wrap;gap:1rem 2rem;margin:1.1rem 0;display:flex}.keyboard-profile-toggles label{cursor:pointer;align-items:center;gap:.6rem;display:flex}.keyboard-profile-toggles input{accent-color:#007d92;flex-shrink:0;width:1.2rem;height:1.2rem}.keyboard-profile-controls :focus-visible{outline-offset:3px;outline:3px solid}.keyboard-profile-attribution{line-height:1.6;display:block}.keyboard-profile-attribution a{color:inherit;text-underline-offset:3px;text-decoration:underline}.keyboard-finger-legend{flex-wrap:wrap;gap:.5rem 1rem;margin-top:.8rem;font-size:.75rem;line-height:1.5;display:flex}.keyboard-finger-legend>span{align-items:center;gap:.35rem;display:inline-flex}.zone-swatch{background:#f4d4cb;border:1px solid;border-radius:.2rem;width:.85rem;height:.85rem}.zone-0,.zone-7{background:#d9eedc}.zone-1,.zone-6{background:#ebe1f3}.zone-2,.zone-5{background:#f9e6ba}.zone-3,.zone-4{background:#d8e9f8}.theme-high-contrast .zone-swatch{background:#000;border-color:#fff}html .app-shell .typing-tutor[data-practice-mode=letters] .keyboard-finger-legend i.zone-swatch{--zone-fill:#f4d4cb;background:var(--zone-fill)}html .app-shell .typing-tutor[data-practice-mode=letters] .keyboard-finger-legend i:is(.zone-0,.zone-7){--zone-fill:#d9eedc}html .app-shell .typing-tutor[data-practice-mode=letters] .keyboard-finger-legend i:is(.zone-1,.zone-6){--zone-fill:#ebe1f3}html .app-shell .typing-tutor[data-practice-mode=letters] .keyboard-finger-legend i:is(.zone-2,.zone-5){--zone-fill:#f9e6ba}html .app-shell .typing-tutor[data-practice-mode=letters] .keyboard-finger-legend i:is(.zone-3,.zone-4){--zone-fill:#d8e9f8}html .app-shell .typing-tutor.theme-high-contrast[data-practice-mode=letters] .keyboard-finger-legend i.zone-swatch{background:#000}.keyboard-assembly{align-items:stretch;gap:1.25rem;width:max-content;min-width:100%;display:flex}.typing-keyboard-physical .typing-keyboard{background:#f2f0e8;flex:none;gap:.3rem;width:45rem;min-width:45rem;padding:.65rem}.typing-keyboard-physical .typing-key-row{grid-template-columns:repeat(60,minmax(0,1fr));gap:0;min-width:0;display:grid}.typing-keyboard-physical .typing-key-row>span{--zone-fill:#f6f7f8;--zone-ink:#172b40;min-width:0;height:2.7rem;box-shadow:none;border:1px solid #698093;border-bottom-width:3px;border-radius:.35rem;margin-inline:.15rem;font-size:.72rem;background:var(--zone-fill)!important;color:var(--zone-ink)!important}.typing-keyboard-physical .typing-key-row>span .key-main-label{color:inherit!important}.typing-keyboard-physical .typing-key-row>:is(.finger-0,.finger-7){--zone-fill:#d9eedc}.typing-keyboard-physical .typing-key-row>:is(.finger-1,.finger-6){--zone-fill:#ebe1f3}.typing-keyboard-physical .typing-key-row>:is(.finger-2,.finger-5){--zone-fill:#f9e6ba}.typing-keyboard-physical .typing-key-row>:is(.finger-3,.finger-4){--zone-fill:#d8e9f8}.typing-keyboard-physical .typing-key-row>.finger-8{--zone-fill:#f4d4cb}.typing-keyboard-physical .typing-key-row>span.next{--zone-fill:#163f75;--zone-ink:#fff;outline-offset:1px;outline:2px solid #123f80;animation:none!important}.typing-keyboard-physical .typing-key-row>span.physically-pressed{--zone-fill:#0b5765;--zone-ink:#fff}.keyboard-navigation,.keyboard-numpad{flex:none;grid-auto-rows:2.7rem;gap:.3rem;padding-block:.65rem;display:grid}.keyboard-navigation{grid-template-columns:repeat(3,2.7rem)}.keyboard-navigation [data-code=ArrowUp]{grid-area:4/2}.keyboard-navigation [data-code=ArrowLeft]{grid-area:5/1}.keyboard-navigation [data-code=ArrowDown]{grid-area:5/2}.keyboard-navigation [data-code=ArrowRight]{grid-area:5/3}.keyboard-numpad{grid-template-columns:repeat(4,2.7rem)}.accessory-key{color:#172b40;background:#f6f7f8;border:1px solid #698093;border-bottom-width:3px;border-radius:.35rem;place-items:center;font-size:.72rem;font-weight:750;display:grid}.keyboard-numpad [data-code=NumpadAdd]{grid-area:2/4/span 2}.keyboard-numpad [data-code=NumpadEnter]{grid-area:4/4/span 2}.keyboard-numpad [data-code=Numpad0]{grid-area:5/1/auto/span 2}.keyboard-numpad [data-code=NumpadDecimal]{grid-area:5/3}.typing-keyboard-physical .accessory-key.physically-pressed{color:#fff;background:#0b5765}.theme-high-contrast .typing-keyboard-physical .typing-key-row>span{--zone-fill:#000;--zone-ink:#fff;border-color:#fff}.theme-high-contrast .typing-keyboard-physical .typing-key-row>span.next{--zone-fill:#ff0;--zone-ink:#000;outline-color:#ff0}.theme-high-contrast .typing-keyboard-physical .accessory-key{color:#fff;background:#000;border-color:#fff}@media (prefers-reduced-motion:reduce){.typing-keyboard-physical .typing-key-row>span{transition:none!important;animation:none!important}}@media (forced-colors:active){.typing-keyboard-physical .typing-key-row>span,.typing-keyboard-physical .accessory-key{border-color:canvastext;color:canvastext!important;background:canvas!important}.typing-keyboard-physical .typing-key-row>span.next{outline:3px solid highlight}}.typing-tutor .typing-controls{grid-template-columns:minmax(100px,.7fr) minmax(155px,1.1fr) minmax(180px,1.45fr) minmax(125px,.9fr) minmax(180px,1.35fr);align-items:end;gap:12px;display:grid;position:relative}.typing-tutor[data-practice-mode=letters] .typing-controls{grid-template-columns:minmax(170px,1.2fr) minmax(150px,1fr) minmax(190px,1.35fr) minmax(180px,1.2fr)}.typing-tutor .tutor-settings-slot{align-self:end;min-width:0}.typing-tutor .tutor-settings-slot .tutor-settings{background:0 0;border:0;margin:0;padding:0}.typing-tutor .tutor-settings-slot .tutor-settings>summary{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:54px;padding:10px 12px;font-weight:750;display:flex}.typing-tutor .tutor-settings-slot .settings-content{inset-inline:0;z-index:65;overscroll-behavior:contain;max-width:100%;max-height:min(76vh,760px);margin:0;padding:20px;position:absolute;top:calc(100% + 8px);overflow:auto;box-shadow:0 18px 40px #0005}.typing-tutor .tutor-settings-slot .settings-content label{min-width:0}.typing-tutor .typing-keyboard .typing-key-row>span.next:not(.key-feedback-a):not(.key-feedback-b),.typing-tutor .typing-workspace .typing-text .typing-char.typing-current,.typing-tutor .typing-workspace .typing-text .typing-char.typed-correct{animation:none}.typing-tutor[data-feedback-animations=true] .typing-keyboard .typing-key-row>span:is(.key-feedback-a,.key-feedback-b){--key-hit-color:var(--design-teal,var(--tutor-accent));border-color:var(--key-hit-color);animation-duration:.2s;animation-timing-function:cubic-bezier(.2,.8,.25,1);animation-iteration-count:1}.typing-tutor[data-feedback-animations=true] .typing-keyboard .typing-key-row>span.key-feedback-a{animation-name:typing-key-tap-a}.typing-tutor[data-feedback-animations=true] .typing-keyboard .typing-key-row>span.key-feedback-b{animation-name:typing-key-tap-b}.typing-tutor[data-feedback-animations=true] .typing-keyboard .typing-key-row>span.key-feedback-error{--key-hit-color:#d7a548}@keyframes typing-key-tap-a{0%{transform:translateY(3px)scale(.96)}to{transform:none}}@keyframes typing-key-tap-b{0%{transform:translateY(3px)scale(.96)}to{transform:none}}.typing-tutor .typing-workspace .typing-text .typing-char.typed-correct{position:relative}.typing-tutor[data-feedback-animations=true] .typing-workspace .typing-text .typing-char.typed-correct:before{content:"";inset-inline:12%;pointer-events:none;opacity:0;transform-origin:50%;background:currentColor;border-radius:2px;height:2px;animation:.18s ease-out typing-letter-reward;position:absolute;bottom:0}@keyframes typing-letter-reward{0%{opacity:.6;transform:scaleX(.4)}to{opacity:0;transform:scaleX(1)}}.typing-tutor[data-feedback-animations=true] .typing-stage.finished .typing-stage-top>span,.typing-tutor[data-feedback-animations=true] .alphabet-course .is-celebrating .ac-outcome-icon>svg,.typing-tutor[data-feedback-animations=true] .appreciation{animation:.32s cubic-bezier(.2,.8,.25,1) typing-success-settle}@keyframes typing-success-settle{0%{opacity:.65;transform:translateY(3px)scale(.985)}to{opacity:1;transform:none}}.typing-tutor .tutor-confetti i{background:var(--design-teal,var(--tutor-accent));opacity:0;border-radius:50%;width:4px;height:4px;animation:.56s ease-out typing-success-particle}.typing-tutor .tutor-confetti i:nth-child(n+9){display:none}@keyframes typing-success-particle{0%{opacity:.65;transform:translate(-50%, -50%) translateX(calc((var(--i) - 3.5) * 7px)) scale(.8)}to{opacity:0;transform:translate(-50%, -50%) translateX(calc((var(--i) - 3.5) * 12px)) translateY(-24px) scale(.5)}}.typing-tutor[data-feedback-animations=false] :is(.typing-char,.next,.physically-pressed,.floating-typing-keyboard,.typing-keyboard-panel,.key-feedback-a,.key-feedback-b,.tutor-confetti *,.appreciation,.ac-celebration,.ac-outcome-icon>svg,.typing-stage-top>span),.typing-tutor[data-feedback-animations=false] .typed-correct:before{transition:none!important;animation:none!important;transform:none!important}.typing-tutor[data-feedback-animations=false] :is(.tutor-confetti,.ac-celebration){display:none}@media (max-width:1060px){.typing-tutor .typing-controls,.typing-tutor[data-practice-mode=letters] .typing-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.typing-tutor .typing-controls #setting-keyboard{grid-column:1/-1}}@media (max-width:540px){.typing-tutor .typing-controls,.typing-tutor[data-practice-mode=letters] .typing-controls{grid-template-columns:minmax(0,1fr)}.typing-tutor .tutor-settings-slot .settings-content{max-height:72vh;padding:14px}.typing-tutor .tutor-settings-slot .settings-grid{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.typing-tutor :is(.typing-char,.next,.physically-pressed,.floating-typing-keyboard,.typing-keyboard-panel,.key-feedback-a,.key-feedback-b,.tutor-confetti *,.appreciation,.ac-celebration,.ac-outcome-icon>svg,.typing-stage-top>span),.typing-tutor .typed-correct:before{transition:none!important;animation:none!important;transform:none!important}.typing-tutor :is(.tutor-confetti,.ac-celebration){display:none}}html .app-shell .typing-tutor[data-practice-mode=text] .typing-capture-integrated{opacity:0;pointer-events:none;z-index:2;border:0;width:1px;height:1px;padding:0;font-size:16px;position:absolute;top:0;left:0}html .app-shell .typing-tutor[data-practice-mode=text] .typing-stage:focus-within{outline:3px solid var(--tutor-text);outline-offset:-3px}html .app-shell .typing-tutor[data-practice-mode=text] .typing-workspace{grid-template-rows:minmax(240px,1fr) auto;grid-template-columns:minmax(0,1fr);gap:10px;height:clamp(520px,62svh,600px);min-height:520px;display:grid;overflow:visible}html .app-shell .typing-tutor[data-practice-mode=text] .typing-stage{grid-template-rows:auto minmax(0,1fr);gap:12px;height:100%;min-height:0;padding:16px 20px;display:grid}html .app-shell .typing-tutor[data-practice-mode=text] .typing-stage-top{z-index:3;flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;position:relative}html .app-shell .typing-tutor[data-practice-mode=text] .typing-text-viewport{scrollbar-width:none;overflow-anchor:none;scroll-behavior:auto;height:100%;min-height:0;padding:0;scroll-padding-block:12px;position:relative;inset:auto;overflow-y:auto;-webkit-mask-image:none;mask-image:none}html .app-shell .typing-tutor[data-practice-mode=text] .typing-text-viewport::-webkit-scrollbar{display:none}html .app-shell .typing-tutor[data-practice-mode=text] .typing-text{text-align:justify;text-align-last:left;text-justify:inter-word;overflow-wrap:break-word;padding-block:6px 10px}html .app-shell .typing-tutor[data-practice-mode=text] .floating-typing-keyboard{pointer-events:auto;place-self:end center;width:100%;max-width:680px;margin:0;animation:none;position:relative;inset:auto}html .app-shell .typing-tutor[data-practice-mode=text] .typing-keyboard-panel{overscroll-behavior-x:contain;border-radius:12px;padding:7px;overflow-x:auto}html .app-shell .typing-tutor[data-practice-mode=text] .keyboard-finger-disclosure>summary{cursor:pointer;align-items:center;min-height:32px;padding-inline:5px;font-size:12px;display:flex}html .app-shell .typing-tutor[data-practice-mode=text] .keyboard-finger-disclosure>summary:focus-visible{outline:3px solid var(--tutor-accent)}html .app-shell .typing-tutor[data-practice-mode=text] .next-key{min-height:30px;margin-bottom:7px;font-size:12px}html .app-shell .typing-tutor[data-practice-mode=text] .next-key strong{padding:4px 7px;font-size:12px}html .app-shell .typing-tutor[data-practice-mode=text] .typing-keyboard{gap:4px;min-width:540px;padding:4px}html .app-shell .typing-tutor[data-practice-mode=text] .typing-key-row{gap:4px;min-width:0}html .app-shell .typing-tutor[data-practice-mode=text] .typing-key-row>span{border-bottom-width:3px;height:30px;font-size:12px}html .app-shell .typing-tutor[data-practice-mode=text] .typing-text .typing-current{box-shadow:inset 0 -2px var(--tutor-accent);animation:none}html .app-shell .typing-tutor[data-practice-mode=text] .typing-text .typing-char{transition:none}html .app-shell .typing-tutor[data-practice-mode=text] .typing-key-row>span.physically-pressed{border-bottom-width:1px}html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-custom):not(.theme-high-contrast) .typing-keyboard-panel{background:var(--at-panel);background:color-mix(in srgb, var(--at-panel) 72%, transparent);color:var(--at-ink);border-color:var(--at-border);-webkit-backdrop-filter:blur(8px)saturate(1.1);backdrop-filter:blur(8px)saturate(1.1);box-shadow:0 8px 24px #0000001f,inset 0 1px #fff3}html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-custom):not(.theme-high-contrast) .typing-keyboard{background:0 0;box-shadow:inset 0 1px 4px #0000001a}html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-custom):not(.theme-high-contrast) .typing-key-row>span{color:var(--at-ink);border-color:var(--at-border);box-shadow:0 3px 4px #0000002e,inset 0 1px #ffffff2e}html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-custom):not(.theme-high-contrast) .typing-key-row>span.next{color:#043873;background:var(--at-yellow);border-color:#8a6500}html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-custom):not(.theme-high-contrast) .next-key{color:var(--at-muted)}html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-custom):not(.theme-high-contrast) .next-key strong{color:var(--at-ink);background:var(--at-soft);border-color:var(--at-border)}html .app-shell .typing-tutor.theme-high-contrast[data-practice-mode=text] .typing-keyboard-panel,html .app-shell .typing-tutor.theme-custom[data-practice-mode=text] .typing-keyboard-panel{background:var(--tutor-surface);color:var(--tutor-text);border-color:var(--tutor-border);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}html .app-shell .typing-tutor:is(.theme-custom,.theme-high-contrast) .typing-stage-top,html .app-shell .typing-tutor:is(.theme-custom,.theme-high-contrast) .typing-stage-top :is(span,strong),html .app-shell .typing-tutor:is(.theme-custom,.theme-high-contrast) .text-window-label{color:var(--tutor-text);opacity:1}html .app-shell .typing-tutor:is(.theme-custom,.theme-high-contrast) .next-key,html .app-shell .typing-tutor:is(.theme-custom,.theme-high-contrast) .next-key :is(span,strong,b,svg){color:var(--tutor-text)}html .app-shell .typing-tutor:is(.theme-custom,.theme-high-contrast) .typing-key-row>span{background:var(--tutor-surface);color:var(--tutor-text);border-color:var(--tutor-border)}html .app-shell .typing-tutor.theme-custom .typing-key-row>span.next{background:var(--tutor-surface);color:var(--tutor-text);border-color:var(--tutor-accent);outline:2px solid var(--tutor-accent);outline-offset:1px}html .app-shell .typing-tutor.theme-high-contrast .typing-key-row>span.next{background:var(--tutor-accent);color:#000;border-color:var(--tutor-accent)}html .app-shell .typing-tutor.theme-custom .typing-key-row>span .key-main-label{color:var(--tutor-text)}html .app-shell .typing-tutor.theme-high-contrast .typing-key-row>span.next .key-main-label{color:#000}html .app-shell .typing-tutor[data-practice-mode=text] .typing-workspace{grid-template-rows:clamp(380px,60svh,700px) auto;height:auto;min-height:0}html .app-shell .typing-tutor[data-practice-mode=text] .typing-workspace.keyboard-hidden{grid-template-rows:clamp(380px,72svh,820px)}html .app-shell .typing-tutor[data-practice-mode=text] .typing-stage,html .app-shell .typing-tutor[data-practice-mode=text] .typing-text-viewport{min-width:0;max-width:100%}html .app-shell .typing-tutor[data-practice-mode=text] .typing-text-viewport{overscroll-behavior:contain;overflow-x:auto}html .app-shell .typing-tutor[data-practice-mode=text] .typing-path-picker{justify-content:center;padding:8px}html .app-shell .typing-tutor[data-practice-mode=text] .typing-path-options{flex:auto;width:auto}html .app-shell .typing-tutor[data-practice-mode=text] .typing-path-options button{min-height:48px}@media (max-width:760px){html .app-shell .typing-tutor[data-practice-mode=text] .typing-workspace{grid-template-rows:clamp(380px,62svh,620px) auto}html .app-shell .typing-tutor[data-practice-mode=text] .typing-stage{padding:12px}html .app-shell .typing-tutor[data-practice-mode=text] .typing-stage-top{flex-direction:row}}@media (max-width:540px){html .app-shell .typing-tutor[data-practice-mode=text] .typing-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px}html .app-shell .typing-tutor[data-practice-mode=text] #setting-keyboard{grid-column:1/-1}html .app-shell .typing-tutor[data-practice-mode=text] .tutor-control [data-slot=select-trigger]{min-height:44px}html .app-shell .typing-tutor[data-practice-mode=text] .tutor-settings-slot .tutor-settings>summary,html .app-shell .typing-tutor[data-practice-mode=text] .dictation-quick-toggle{min-height:50px}html .app-shell .typing-tutor[data-practice-mode=text] .dictation-quick-toggle{grid-column:1/-1}}.settings-save-row{z-index:2;background:var(--tutor-panel,var(--background));flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;padding:12px 0 0;display:flex;position:sticky;bottom:0}.settings-save-row>span{font-size:12px}.settings-save-close{color:#fff;background:#173b58;border-radius:9px;min-height:44px;padding:10px 18px;font-weight:750}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel{--kb-frame:#0b1423;--kb-ink:#e7edf8;--kb-border:#43516a;--kb-target:#9cff57;--kb-target-ink:#07130a;--kb-hit:#9cff57;--kb-hit-ink:#102010;--kb-modifier:#25385c;--kb-modifier-ink:#c5dcff;--kb-modifier-border:#719bd5;--kb-number:#4a3c21;--kb-number-ink:#ffebaf;--kb-number-border:#bca157;--kb-letter:#203f38;--kb-letter-ink:#c5f3df;--kb-letter-border:#64aa8d;--kb-navigation:#423128;--kb-navigation-ink:#ffe0cd;--kb-navigation-border:#c19778;background:var(--kb-frame);color:var(--kb-ink);border-color:var(--kb-border)}html[data-flowkeys-theme=light] .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel{--kb-frame:#f3f7fb;--kb-ink:#19334d;--kb-border:#a9bad0;--kb-target:#1d50a5;--kb-target-ink:#fff;--kb-hit:#1d50a5;--kb-hit-ink:#fff;--kb-modifier:#e2edff;--kb-modifier-ink:#183d74;--kb-modifier-border:#93afd3;--kb-number:#fff3cf;--kb-number-ink:#674e10;--kb-number-border:#c9b26e;--kb-letter:#e1f2e9;--kb-letter-ink:#245840;--kb-letter-border:#94b9a5;--kb-navigation:#fcebdd;--kb-navigation-ink:#72472a;--kb-navigation-border:#cba787}html[data-flowkeys-theme=light] .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast):not(.theme-custom) .typing-keyboard-panel{--kb-frame:#dce7f5;border-color:#71869f}html .app-shell .typing-tutor .typing-keyboard-panel:focus-visible{outline:3px solid var(--tutor-text);outline-offset:2px}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard{background:0 0}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span{color:var(--kb-ink);border-color:var(--kb-border)}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span .key-main-label{color:inherit}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span.key-group-modifier:not(.next):not(.physically-pressed):not(.key-feedback-a):not(.key-feedback-b){background:var(--kb-modifier);color:var(--kb-modifier-ink);border-color:var(--kb-modifier-border)}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span.key-group-number:not(.next):not(.physically-pressed):not(.key-feedback-a):not(.key-feedback-b){background:var(--kb-number);color:var(--kb-number-ink);border-color:var(--kb-number-border)}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span.key-group-letter:not(.next):not(.physically-pressed):not(.key-feedback-a):not(.key-feedback-b){background:var(--kb-letter);color:var(--kb-letter-ink);border-color:var(--kb-letter-border)}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span.key-group-navigation:not(.next):not(.physically-pressed):not(.key-feedback-a):not(.key-feedback-b){background:var(--kb-navigation);color:var(--kb-navigation-ink);border-color:var(--kb-navigation-border)}html .app-shell .typing-tutor[data-practice-mode=text][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span.key-group-function:not(.next):not(.physically-pressed):not(.key-feedback-a):not(.key-feedback-b){color:#efd4ff;background:#463051;border-color:#b086c6}html[data-flowkeys-theme=light] .app-shell .typing-tutor[data-practice-mode=text][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span.key-group-function:not(.next):not(.physically-pressed):not(.key-feedback-a):not(.key-feedback-b){color:#563572;background:#eee6f8;border-color:#b5a0ce}html .app-shell .typing-tutor[data-practice-mode=text] .floating-typing-keyboard{width:83%;max-width:100%}html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-custom):not(.theme-high-contrast) .typing-keyboard-panel.shortcut-structure{background:var(--kb-frame);border-color:var(--kb-border);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}html .app-shell .typing-tutor[data-practice-mode=text] .shortcut-structure .typing-keyboard{min-width:680px;box-shadow:none;gap:5px;padding:3px}html .app-shell .typing-tutor[data-practice-mode=text] .shortcut-structure .typing-key-row{gap:4px}html .app-shell .typing-tutor[data-practice-mode=text] .shortcut-structure .typing-key-row>span{height:36px;font-size:11px}html .app-shell .typing-tutor[data-practice-mode=text] .shortcut-structure .typing-key-row:first-child>span:first-child{margin-right:7px}html .app-shell .typing-tutor[data-practice-mode=text] .shortcut-structure .typing-key-row:last-child>span.space-key{flex:4}@media (max-width:760px){html .app-shell .typing-tutor[data-practice-mode=text] .floating-typing-keyboard{width:100%}}html .app-shell .typing-tutor .typing-keyboard-panel .finger-0{--finger-surface:#293f69}html .app-shell .typing-tutor .typing-keyboard-panel .finger-1{--finger-surface:#164c55}html .app-shell .typing-tutor .typing-keyboard-panel .finger-2{--finger-surface:#315435}html .app-shell .typing-tutor .typing-keyboard-panel .finger-3{--finger-surface:#55501d}html .app-shell .typing-tutor .typing-keyboard-panel .finger-4{--finger-surface:#633e24}html .app-shell .typing-tutor .typing-keyboard-panel .finger-5{--finger-surface:#613347}html .app-shell .typing-tutor .typing-keyboard-panel .finger-6{--finger-surface:#4e3866}html .app-shell .typing-tutor .typing-keyboard-panel .finger-7{--finger-surface:#245765}html .app-shell .typing-tutor .typing-keyboard-panel .finger-8{--finger-surface:#414854}html[data-flowkeys-theme=light] .app-shell .typing-tutor .typing-keyboard-panel .finger-0{--finger-surface:#dce7ff}html[data-flowkeys-theme=light] .app-shell .typing-tutor .typing-keyboard-panel .finger-1{--finger-surface:#d2eef0}html[data-flowkeys-theme=light] .app-shell .typing-tutor .typing-keyboard-panel .finger-2{--finger-surface:#deedce}html[data-flowkeys-theme=light] .app-shell .typing-tutor .typing-keyboard-panel .finger-3{--finger-surface:#f4ecc1}html[data-flowkeys-theme=light] .app-shell .typing-tutor .typing-keyboard-panel .finger-4{--finger-surface:#f9dfc7}html[data-flowkeys-theme=light] .app-shell .typing-tutor .typing-keyboard-panel .finger-5{--finger-surface:#f6dce8}html[data-flowkeys-theme=light] .app-shell .typing-tutor .typing-keyboard-panel .finger-6{--finger-surface:#e9ddfa}html[data-flowkeys-theme=light] .app-shell .typing-tutor .typing-keyboard-panel .finger-7{--finger-surface:#ccecf6}html[data-flowkeys-theme=light] .app-shell .typing-tutor .typing-keyboard-panel .finger-8{--finger-surface:#e4e7ed}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span[class*=finger-]:not(.finger-neutral):not(.next):not(.physically-pressed):not(.key-feedback-a):not(.key-feedback-b){background:var(--finger-surface);color:var(--kb-ink);border-color:var(--kb-border)}html .app-shell .typing-tutor .keyboard-finger-legend{flex-wrap:wrap;gap:.3rem .65rem;margin-top:.45rem;font-size:.68rem;display:flex}html .app-shell .typing-tutor .keyboard-finger-legend>span{color:var(--kb-ink,var(--tutor-text));align-items:center;gap:.25rem;display:inline-flex}html .app-shell .typing-tutor .keyboard-finger-legend i{background:var(--finger-surface);border:1px solid;border-radius:.15rem;width:.65rem;height:.65rem}html .app-shell .typing-tutor.theme-high-contrast .keyboard-finger-legend>span{color:#fff}html .app-shell .typing-tutor.theme-high-contrast .keyboard-finger-legend i{background:#000}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span.next{background:var(--kb-target);color:var(--kb-target-ink);border-color:var(--kb-border);outline-color:var(--kb-target)}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span:is(.physically-pressed,.key-feedback-a,.key-feedback-b){background:var(--kb-hit);color:var(--kb-hit-ink);border-color:var(--kb-hit);filter:none}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .typing-keyboard .typing-key-row>span.key-feedback-error{color:#3d2600;background:#ffcf73;border-color:#8a6500}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .next-key,html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .next-key :is(span,svg){color:var(--kb-ink)}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .next-key strong{background:var(--kb-target);color:var(--kb-target-ink);border-color:var(--kb-border)}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast) .typing-keyboard-panel .next-key strong b{color:inherit}html .app-shell .typing-tutor.theme-high-contrast[data-practice-mode][data-feedback-animations] .typing-keyboard-panel .typing-keyboard .typing-key-row>span{color:#fff;background:#000;border-color:#fff}html .app-shell .typing-tutor.theme-high-contrast[data-practice-mode][data-feedback-animations] .typing-keyboard-panel .typing-keyboard .typing-key-row>span:is(.next,.physically-pressed,.key-feedback-a,.key-feedback-b){color:#000;background:#ffef00;border-color:#fff}html .app-shell .typing-tutor.theme-high-contrast[data-practice-mode][data-feedback-animations] .typing-keyboard-panel .typing-keyboard .typing-key-row>span .key-main-label{color:inherit}html .app-shell .typing-tutor .typing-char.typed-wrong{color:#f77;text-decoration:underline;text-decoration-thickness:2px}html[data-flowkeys-theme=light] .app-shell .typing-tutor .typing-char.typed-wrong{color:#a31515}html .app-shell .typing-tutor.theme-high-contrast .typing-char.typed-wrong{color:#f99}html .app-shell .typing-tutor .keyboard-landscape{--landscape-frame:#1e293b;background:var(--landscape-frame);border-radius:18px;padding:14px 18px}html .app-shell .typing-tutor .keyboard-landscape .keyboard-assembly{gap:14px}html .app-shell .typing-tutor .keyboard-landscape .typing-keyboard{width:min(930px,100%);min-width:720px;box-shadow:none;background:0 0;gap:7px;padding:8px 0}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row{gap:0}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>span{border-bottom-width:4px;border-color:var(--zone-edge,#334155);height:46px;box-shadow:none;--zone-fill:#334155;--zone-ink:#fff;border-radius:8px;margin-inline:3px;font-size:14px;font-weight:700;transition:filter 60ms;position:relative;background:var(--zone-fill)!important;color:var(--zone-ink)!important}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>:is(.finger-0,.finger-7){--zone-fill:linear-gradient(#e11d48,#be123c);--zone-edge:#881337}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>.finger-3{--zone-fill:linear-gradient(#0284c7,#0369a1);--zone-edge:#075985}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>.finger-4{--zone-fill:linear-gradient(#8b5cf6,#6d28d9);--zone-edge:#4c1d95}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>.finger-neutral{--zone-fill:#334155;--zone-ink:#fff}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>span.next{outline:2px solid var(--kb-target,#fff);outline-offset:1px}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>span.physically-pressed{filter:brightness(1.2);box-shadow:inset 0 0 0 2px}html .app-shell .typing-tutor .keyboard-landscape .key-main-label{color:inherit!important}html .app-shell .typing-tutor .keyboard-landscape .key-layer-label{color:inherit;opacity:1;font-size:10px;position:absolute;top:3px;right:5px}html .app-shell .typing-tutor .keyboard-landscape .key-home-bump{background:currentColor;border-radius:2px;width:12px;height:2px;position:absolute;bottom:4px;left:calc(50% - 6px)}html .app-shell .typing-tutor .keyboard-landscape .keyboard-finger-legend{justify-content:center}@media (max-width:760px){html .app-shell .typing-tutor .keyboard-landscape{padding:10px}}@media (prefers-reduced-motion:reduce){html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>span{transition:none}}@media (forced-colors:active){html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>span{border-color:canvastext;color:canvastext!important;background:canvas!important}}html .app-shell .typing-tutor[data-practice-mode=text] .typing-workspace{--keyboard-overlap:170px;grid-template-rows:minmax(320px,1fr) auto;gap:0;height:clamp(560px,76svh,780px);min-height:560px}html .app-shell .typing-tutor[data-practice-mode=text] .typing-workspace.keyboard-hidden{--keyboard-overlap:0px;grid-template-rows:minmax(320px,1fr)}html .app-shell .typing-tutor[data-practice-mode=text] .floating-typing-keyboard{margin-top:calc(-1 * var(--keyboard-overlap));z-index:6}html .app-shell .typing-tutor[data-practice-mode=text] .typing-text-viewport{padding-bottom:calc(var(--keyboard-overlap) + 16px);scroll-padding-bottom:calc(var(--keyboard-overlap) + 16px)}html .app-shell .typing-tutor[data-practice-mode][data-feedback-animations]:not(.theme-high-contrast):not(.theme-custom) .typing-keyboard-panel.keyboard-landscape{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:1px solid #0000}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>span{--zone-fill:#d7e0e8;--zone-ink:#182432;--zone-edge:#9caebc;border-bottom-width:2px;transition:background-color .12s,box-shadow .12s}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>:is(.finger-0,.finger-7){--zone-fill:#e9bdc8;--zone-ink:#38212b;--zone-edge:#c895a5}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>:is(.finger-1,.finger-6){--zone-fill:#ead2a8;--zone-ink:#332818;--zone-edge:#c4ac84}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>:is(.finger-2,.finger-5){--zone-fill:#bbd9cd;--zone-ink:#1b3229;--zone-edge:#91b5a6}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>.finger-3{--zone-fill:#b9d1e3;--zone-ink:#1c3040;--zone-edge:#91aec4}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>.finger-4{--zone-fill:#cfc4e4;--zone-ink:#30253f;--zone-edge:#ac9bc8}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>.finger-8{--zone-fill:#b9d9dd;--zone-ink:#20363a;--zone-edge:#91b5bb}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>span.next{--zone-fill:#fff0a6;--zone-ink:#272000;--zone-edge:#aa8520;outline:2px solid #d8ae3e;box-shadow:0 0 12px #ffe17880}html .app-shell .typing-tutor.theme-high-contrast .keyboard-landscape .typing-key-row>span{--zone-fill:#000;--zone-ink:#fff;--zone-edge:#fff}@media (prefers-reduced-motion:reduce){html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>span{transition:none}}@media (forced-colors:active){html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>span.next{outline-color:highlight;color:highlighttext!important;background:highlight!important}}html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-high-contrast) .floating-typing-keyboard,html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-high-contrast) .keyboard-landscape,html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-high-contrast) .keyboard-landscape :is(.keyboard-assembly,.typing-keyboard,.keyboard-navigation,.keyboard-numpad){box-shadow:none!important;-webkit-backdrop-filter:none!important;background:0 0!important;border-color:#0000!important}html .app-shell .typing-tutor[data-practice-mode=text]:not(.theme-high-contrast) .keyboard-landscape :is(.next-key,.keyboard-finger-legend>span,.keyboard-layer-banner){color:var(--tutor-text)}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>:is(.finger-0,.finger-7){--zone-fill:#dfa3b4}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>:is(.finger-1,.finger-6){--zone-fill:#e4c18b}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>:is(.finger-2,.finger-5){--zone-fill:#9dcbb8}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>.finger-3{--zone-fill:#9cbfda}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>.finger-4{--zone-fill:#bcaad9}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>.finger-8{--zone-fill:#9bcbd1}html .app-shell .typing-tutor .keyboard-landscape .key-alternate-label{color:inherit;font-size:10px;position:absolute;bottom:5px;right:5px}html .app-shell .typing-tutor .keyboard-landscape :is(.key-main-label,.key-layer-label,.key-alternate-label){text-transform:none}html .app-shell .typing-tutor:not(.theme-custom):not(.theme-high-contrast) .keyboard-landscape :is(.keyboard-finger-legend>span,.next-key,.keyboard-layer-banner){color:#edf3fa}html[data-flowkeys-theme=light] .app-shell .typing-tutor:not(.theme-custom):not(.theme-high-contrast) .keyboard-landscape :is(.keyboard-finger-legend>span,.next-key,.keyboard-layer-banner){color:#203346}html .app-shell .typing-tutor .keyboard-landscape .keyboard-finger-legend{font-size:.8rem;line-height:1.55}html .app-shell .typing-tutor .keyboard-landscape .zone-swatch:is(.zone-0,.zone-7){background:#dfa3b4!important}html .app-shell .typing-tutor .keyboard-landscape .zone-swatch:is(.zone-1,.zone-6){background:#e4c18b!important}html .app-shell .typing-tutor .keyboard-landscape .zone-swatch:is(.zone-2,.zone-5){background:#9dcbb8!important}html .app-shell .typing-tutor .keyboard-landscape .zone-swatch.zone-3{background:#9cbfda!important}html .app-shell .typing-tutor .keyboard-landscape .zone-swatch.zone-4{background:#bcaad9!important}html .app-shell .typing-tutor .keyboard-landscape .zone-swatch.zone-8{background:#9bcbd1!important}html .app-shell .typing-tutor.theme-high-contrast .keyboard-landscape .typing-key-row>span{--zone-fill:#000;--zone-ink:#fff}html .app-shell .typing-tutor .keyboard-landscape .typing-key-row>span.next{--zone-fill:#fff0a6;--zone-ink:#272000}html .app-shell .typing-tutor.theme-high-contrast .keyboard-landscape .typing-key-row>span.next{--zone-fill:#ffef00;--zone-ink:#000}html .app-shell .typing-tutor.theme-dark .keyboard-landscape .keyboard-finger-legend>span{color:#edf3fa!important}html .app-shell .typing-tutor.theme-light .keyboard-landscape .keyboard-finger-legend>span{color:#203346!important}@media (forced-colors:active){html .app-shell .typing-tutor .keyboard-landscape .keyboard-finger-legend>span{color:canvastext!important}}.target-keys-panel{--tk-panel:#192334;--tk-line:#8aaed173;--tk-ink:#e6edf6;--tk-muted:#b4c1d3;--tk-secure:#2e8a5f;--tk-practise:#a8862f;--tk-target:#f6cb53;--tk-upcoming:#8796ab;--tk-up:#6fd3a0;--tk-down:#f29a9a;--tk-track:#2b3a52;border:1px solid var(--tk-line);background:var(--tk-panel);color:var(--tk-ink);border-radius:12px;gap:12px;margin:0 0 14px;padding:14px 18px;font-size:14px;line-height:1.4;display:grid}html[data-flowkeys-theme=light] .target-keys-panel{--tk-panel:#fff;--tk-line:#9fb4cf;--tk-ink:#1d2a3d;--tk-muted:#44546b;--tk-secure:#1f7a4f;--tk-practise:#94680a;--tk-target:#b98200;--tk-upcoming:#5b6b80;--tk-up:#1b6e46;--tk-down:#b42828;--tk-track:#e3eaf3}.target-keys-panel h2,.target-keys-panel h3{color:var(--tk-ink);letter-spacing:0;margin:0;font-size:14px;font-weight:600}.target-keys-panel dl,.target-keys-panel p{margin:0}.tk-path-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;margin-bottom:8px;display:flex}.tk-count{color:var(--tk-muted);font-variant-numeric:tabular-nums;margin-left:6px;font-weight:500}.tk-legend{color:var(--tk-muted);flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.tk-legend li{align-items:center;gap:6px;display:inline-flex}.tk-swatch{border-radius:3px;width:11px;height:11px}.tk-swatch.is-secure{background:var(--tk-secure)}.tk-swatch.is-practising{background:var(--tk-practise)}.tk-swatch.is-target{background:var(--tk-practise);outline:2px solid var(--tk-target);outline-offset:1px}.tk-swatch.is-upcoming{border:1px dashed var(--tk-upcoming)}.tk-keys{flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none;display:flex}.tk-key{border-radius:6px;place-items:center;width:30px;height:32px;font:600 14px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:grid}.tk-key.is-secure{background:var(--tk-secure);color:#fff}.tk-key.is-practising{background:color-mix(in srgb, var(--tk-secure) calc(var(--tk-confidence) * 1%), var(--tk-practise));color:#fff}.tk-key.is-target{background:var(--tk-practise);color:#fff;outline:3px solid var(--tk-target);outline-offset:2px}.tk-key.is-upcoming{border:1px dashed var(--tk-upcoming);color:var(--tk-upcoming);font-weight:500}.tk-cards{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:12px;display:grid}.tk-card{border:1px solid var(--tk-line);border-radius:10px;min-width:0;padding:12px 14px}.tk-focus{align-items:flex-start;gap:14px;display:flex}.tk-focus-key{background:var(--tk-practise);color:#fff;outline:3px solid var(--tk-target);outline-offset:2px;border-radius:8px;flex:none;place-items:center;width:48px;height:50px;font:600 24px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:grid}.tk-focus-body{flex:1;gap:8px;min-width:0;display:grid}.tk-place{color:var(--tk-muted);font-weight:400}.tk-facts{flex-wrap:wrap;gap:4px 20px;display:flex}.tk-facts>div{align-items:baseline;gap:6px;display:flex}.tk-facts dt{color:var(--tk-muted);font-size:13px}.tk-facts dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.tk-facts dd.is-up,.tk-change.is-up{color:var(--tk-up)}.tk-facts dd.is-down,.tk-change.is-down{color:var(--tk-down)}.tk-change{color:var(--tk-muted);margin-left:4px;font-size:12px;font-weight:500}.tk-unlock{gap:6px;display:grid}.tk-meter{background:var(--tk-track);border-radius:5px;height:8px;overflow:hidden}.tk-meter span{background:var(--tk-target);border-radius:5px;height:100%;transition:width .3s;display:block}.tk-unlock p,.tk-empty{color:var(--tk-muted);font-size:13px}.tk-unlock strong{color:var(--tk-ink);font-weight:600}.tk-summary{align-content:start;gap:8px;display:grid}.tk-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:2px;display:flex}.tk-speed{color:var(--tk-muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.tk-speed select,.tk-hear{border:1px solid var(--tk-line);min-height:30px;color:var(--tk-ink);font:inherit;background:0 0;border-radius:7px;padding:3px 8px;font-size:13px}.tk-speed select option{color:#1d2a3d;background:#fff}.tk-hear{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.tk-hear:hover{border-color:var(--tk-target)}.tk-speed select:focus-visible{outline-offset:2px;outline:3px solid #66a9ed}.tk-hear:focus-visible{outline-offset:2px;outline:3px solid #66a9ed}.typing-tutor .focus-restart.target-next{border:1px solid var(--tk-target,#f6cb53);border-radius:7px;padding:3px 10px}.typing-keyboard [data-key].key-not-yet{opacity:.32;filter:saturate(.25)}@media (max-width:760px){.tk-cards{grid-template-columns:1fr}}@media (max-width:520px){.target-keys-panel{padding:12px}.tk-key{width:26px;height:28px;font-size:13px}.tk-focus-key{width:40px;height:42px;font-size:20px}.tk-legend{font-size:11px}}@media (prefers-reduced-motion:reduce){.tk-meter span{transition:none}}@media (max-width:620px){#typing-main .focus-session-heading{flex-wrap:wrap;row-gap:8px}}.quest-panel{--qp-panel:#192334;--qp-line:#8aaed173;--qp-ink:#e6edf6;--qp-muted:#b4c1d3;--qp-accent:#6cc4f5;--qp-boss:#d98bf0;--qp-star:#f6cb53;--qp-good:#2e8a5f;--qp-warn:#b08a1e;--qp-weak:#c0504d;--qp-track:#2b3a52;--qp-cleared:#6fd3a0;border:1px solid var(--qp-line);background:var(--qp-panel);color:var(--qp-ink);border-radius:12px;gap:12px;margin:0 0 14px;padding:14px 18px;font-size:14px;line-height:1.4;display:grid}html[data-flowkeys-theme=light] .quest-panel{--qp-panel:#fff;--qp-line:#9fb4cf;--qp-ink:#1d2a3d;--qp-muted:#44546b;--qp-accent:#1764a8;--qp-boss:#8a2fa8;--qp-star:#a26f00;--qp-good:#1f7a4f;--qp-warn:#94680a;--qp-weak:#b42828;--qp-track:#e3eaf3;--qp-cleared:#1b6e46}.quest-panel h2,.quest-panel h3{color:var(--qp-ink);letter-spacing:0;margin:0;font-size:14px;font-weight:600}.quest-panel h2{align-items:center;gap:8px;display:inline-flex}.quest-panel dl,.quest-panel p{margin:0}.qp-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.qp-controls{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.qp-select{color:var(--qp-muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.qp-select select,.qp-button{border:1px solid var(--qp-line);min-height:32px;color:var(--qp-ink);font:inherit;background:0 0;border-radius:7px;padding:3px 10px;font-size:13px}.qp-select select{max-width:260px}.qp-select select option,.qp-select select optgroup{color:#1d2a3d;background:#fff}.qp-button{cursor:pointer}.qp-button:hover:not(:disabled){border-color:var(--qp-accent)}.qp-button:disabled{opacity:.55;cursor:not-allowed}.qp-select select:focus-visible{outline-offset:2px;outline:3px solid #66a9ed}.qp-button:focus-visible{outline-offset:2px;outline:3px solid #66a9ed}.qp-node:focus-visible{outline-offset:2px;outline:3px solid #66a9ed}.qp-level{color:var(--qp-muted);font-variant-numeric:tabular-nums;font-size:13px}.qp-level b{color:var(--qp-ink);font-weight:600}.qp-map{grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.qp-node{border:1px dashed var(--qp-line);width:100%;min-height:42px;color:var(--qp-muted);cursor:pointer;background:0 0;border-radius:8px;place-items:center;gap:0;padding:2px 0;font:600 14px/1.1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:grid}.qp-node small{min-height:12px;color:var(--qp-star);letter-spacing:-1px;font-size:10px}.qp-node.is-gate,.qp-node.is-boss{border-style:solid;border-color:var(--qp-boss);color:var(--qp-boss);font-size:19px}.qp-node.is-cleared{border-style:solid;border-color:var(--qp-good);color:var(--qp-ink);background:color-mix(in srgb, var(--qp-good) 22%, transparent)}.qp-node.is-current{outline:3px solid var(--qp-accent);outline-offset:1px;color:var(--qp-ink)}.qp-cards{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px;display:grid}.qp-card{border:1px solid var(--qp-line);border-radius:10px;align-content:start;gap:8px;min-width:0;padding:12px 14px;display:grid}.qp-facts{flex-wrap:wrap;gap:4px 20px;display:flex}.qp-facts>div{align-items:baseline;gap:6px;display:flex}.qp-facts dt{color:var(--qp-muted);font-size:13px}.qp-facts dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.qp-keys{flex-wrap:wrap;gap:5px;display:inline-flex}.qp-keys kbd{border:1px solid var(--qp-accent);min-width:26px;height:26px;color:var(--qp-ink);border-radius:6px;place-items:center;padding:0 6px;font:600 13px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:inline-grid}.qp-weak kbd{border-color:var(--qp-weak);background:color-mix(in srgb, var(--qp-weak) 25%, transparent)}.qp-stars{color:var(--qp-muted);letter-spacing:1px;display:inline-flex}.qp-stars .is-on{color:var(--qp-star)}.qp-shield{color:var(--qp-muted);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-size:13px;display:grid}.qp-shield-value{font-variant-numeric:tabular-nums;text-align:right;min-width:3.5em}.qp-meter{background:var(--qp-track);border-radius:6px;height:10px;overflow:hidden}.qp-meter span{background:linear-gradient(90deg, var(--qp-weak), var(--qp-boss));border-radius:6px;height:100%;transition:width .2s;display:block}.qp-result{font-weight:600}.qp-result.is-cleared{color:var(--qp-cleared)}.qp-help{color:var(--qp-muted);font-size:12.5px}.qp-legend{color:var(--qp-muted);gap:3px;margin:0;padding:0;font-size:12.5px;list-style:none;display:grid}.qp-legend li{align-items:center;gap:7px;display:flex}.qp-swatch{border:2px solid;border-radius:3px;width:11px;height:11px}.qp-swatch.is-good{border-color:var(--qp-good)}.qp-swatch.is-warn{border-color:var(--qp-warn)}.qp-swatch.is-weak{border-color:var(--qp-weak);background:color-mix(in srgb, var(--qp-weak) 40%, transparent)}.qp-drill{justify-self:start}.typing-tutor .focus-restart.quest-next{border:1px solid var(--qp-accent,#6cc4f5);border-radius:7px;padding:3px 10px}.typing-keyboard [data-key].key-heat-good{box-shadow:inset 0 0 0 2px #2e8a5f}.typing-keyboard [data-key].key-heat-warn{box-shadow:inset 0 0 0 2px #c79a22}.typing-keyboard [data-key].key-heat-weak{box-shadow:inset 0 0 0 3px #d9534f}@media (max-width:760px){.qp-cards{grid-template-columns:1fr}.qp-help,.qp-legend{display:none}.qp-node{min-height:34px;font-size:12px}.qp-node.is-gate,.qp-node.is-boss{font-size:15px}.qp-node small{min-height:0;font-size:8px}}@media (max-width:520px){.quest-panel{gap:8px;padding:10px}.qp-map{gap:3px}.qp-card{gap:6px;padding:9px 10px}.qp-select select{max-width:200px}}@media (prefers-reduced-motion:reduce){.qp-meter span{transition:none}}
