.steno-keyboard{display:block;width:100%;height:auto;margin:0 auto 28px}.steno-finger-region rect{fill:var(--color-surface-subtle);fill-opacity:.42;stroke:var(--color-border);stroke-width:1}.steno-finger-region text{fill:var(--color-text-muted);font:650 10px system-ui,sans-serif;text-anchor:middle;dominant-baseline:central}.steno-home-position{fill:var(--color-surface);stroke:var(--color-accent);stroke-width:2;pointer-events:none}.steno-key rect{fill:var(--color-key-background);stroke:var(--color-key-border);stroke-width:1.5}.steno-key text{fill:var(--color-text);font:600 20px system-ui,sans-serif;text-anchor:middle;dominant-baseline:central}.steno-key .steno-qwerty-label{fill:var(--color-text-muted);font-size:9px;font-weight:700;text-anchor:start;dominant-baseline:hanging}.steno-key--highlighted rect{fill:var(--color-key-active-background);stroke:var(--color-key-active-border);stroke-width:2.5}.steno-key--highlighted text{fill:var(--color-key-active-text)}.steno-key--highlighted .steno-qwerty-label{fill:var(--color-key-active-text);opacity:.75}.steno-key--inactive{opacity:var(--key-inactive-opacity)}.steno-key--inactive rect{fill:var(--color-key-inactive-background);stroke:var(--color-key-inactive-border)}.steno-key--error rect{fill:var(--color-danger-surface);stroke:var(--color-danger-border);stroke-width:2}.steno-key--error text{fill:var(--color-danger)}.steno-key--success rect{fill:var(--color-success-surface);stroke:var(--color-success-border);stroke-width:2}.steno-key--success text{fill:var(--color-success-strong)}.steno-stroke-feedback{pointer-events:none;animation:steno-feedback-fade ease-out both}@keyframes steno-feedback-fade{0%,25%{opacity:1}to{opacity:0}}:root{color-scheme:light;font-family:system-ui,sans-serif;color:var(--color-text);background:var(--color-page);--color-page: #f2f4f7;--color-surface: #ffffff;--color-surface-subtle: #e8edf3;--color-border: #aab5c2;--color-border-strong: #687789;--color-text: #1f2a37;--color-text-muted: #596777;--color-accent: #315fcf;--color-accent-strong: #21479f;--color-on-accent: #ffffff;--color-success: #24734d;--color-success-strong: #155537;--color-on-success: #ffffff;--color-success-surface: #edf8f1;--color-success-border: #79aa8e;--color-danger: #9b302b;--color-danger-surface: #f3dfdc;--color-danger-border: #b67a72;--color-key-background: #ffffff;--color-key-border: #637386;--color-key-inactive-background: #cdd5df;--color-key-inactive-border: #7f8da0;--key-inactive-opacity: .72;--color-key-active-background: var(--color-accent);--color-key-active-border: var(--color-accent-strong);--color-key-active-text: var(--color-on-accent);--color-progress-track: #d5dce5;--color-progress-fill: var(--color-accent);--color-focus-ring: #7695ec;--shadow-card-hover: 0 6px 16px #2636531f;--shadow-overlay: 0 2px 10px #202a351f}[data-theme=dark]{color-scheme:dark;--color-page: #121821;--color-surface: #1c2530;--color-surface-subtle: #273240;--color-border: #506074;--color-border-strong: #8391a2;--color-text: #edf2f7;--color-text-muted: #aeb9c7;--color-accent: #7fa2ff;--color-accent-strong: #a9c0ff;--color-on-accent: #111a28;--color-success: #68c391;--color-success-strong: #91d7af;--color-on-success: #0d2418;--color-success-surface: #193428;--color-success-border: #4c9870;--color-danger: #f09a91;--color-danger-surface: #422724;--color-danger-border: #a95f58;--color-key-background: #303c4a;--color-key-border: #8795a7;--color-key-inactive-background: #3a4655;--color-key-inactive-border: #69788a;--key-inactive-opacity: .78;--color-key-active-background: var(--color-accent);--color-key-active-border: var(--color-accent-strong);--color-key-active-text: var(--color-on-accent);--color-progress-track: #354253;--color-progress-fill: var(--color-accent);--color-focus-ring: #9bb5ff;--shadow-card-hover: 0 6px 18px #0000004d;--shadow-overlay: 0 2px 10px #00000059}*{box-sizing:border-box}html{min-height:100%;background:var(--color-page)}body{min-height:100vh;margin:0;background:var(--color-page);transition:background-color .16s ease,color .16s ease}.theme-toggle{position:fixed;z-index:20;top:12px;right:16px;display:inline-flex;align-items:center;gap:7px;padding:5px 7px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-surface);color:var(--color-text-muted);font:inherit;font-size:12px;font-weight:550;box-shadow:var(--shadow-overlay);cursor:pointer}.theme-toggle>span:first-child{width:14px;color:var(--color-accent);font-size:14px;line-height:1;text-align:center}.theme-toggle-track{position:relative;width:28px;height:17px;border-radius:5px;background:var(--color-progress-track);transition:background-color .14s ease}.theme-toggle-thumb{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:3px;background:var(--color-surface);box-shadow:0 1px 3px #1f2a3740;transition:transform .14s ease}.theme-toggle[aria-checked=true] .theme-toggle-track{background:var(--color-accent)}.theme-toggle[aria-checked=true] .theme-toggle-thumb{transform:translate(11px)}.page-layout{width:100%;max-width:1040px;margin:48px auto;padding:24px}.page-layout.page-layout--compact-top{margin-top:0;padding-top:8px}h1{margin-top:0}p{line-height:1.5}.home-page{display:grid;gap:34px}.home-heading{max-width:620px}.home-heading h1{margin-bottom:10px;font-size:clamp(34px,7vw,52px);line-height:1.08;letter-spacing:-.035em}.home-heading>p:last-child{max-width:520px;margin:0;color:var(--color-text-muted);font-size:18px}.home-eyebrow{margin:0 0 10px;color:var(--color-accent);font-size:14px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.home-actions{display:grid;gap:12px}.home-action{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;padding:20px 22px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.home-action:hover,.home-action:focus-visible{border-color:var(--color-accent);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.home-action>span:first-child{display:grid;gap:4px}.home-action strong{font-size:19px}.home-action small{color:var(--color-text-muted);font-size:14px}.home-action>span:last-child{color:var(--color-accent);font-size:24px}.analytics-section{display:grid;gap:7px;padding-top:2px}.analytics-section h2{color:var(--color-text);font-size:16px}.analytics-section>p{max-width:700px;margin:0;color:var(--color-text-muted);font-size:14px}.analytics-actions{display:flex;align-items:center;gap:8px;margin-top:5px}.analytics-toggle{display:inline-flex;align-items:center;gap:9px;padding:3px 0;border:0;background:transparent;color:var(--color-text);font:inherit;font-size:14px;font-weight:550;cursor:pointer}.analytics-toggle[aria-checked=true] .practice-toggle-track{background:var(--color-accent)}.analytics-toggle[aria-checked=true] .practice-toggle-thumb{transform:translate(14px)}.analytics-divider{color:var(--color-text-muted)}.privacy-link{padding:3px 0;border:0;background:transparent;color:var(--color-accent);font:inherit;font-size:14px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.privacy-heading{margin-bottom:22px}.privacy-heading h1{margin-bottom:7px}.privacy-heading p{margin:0;color:var(--color-text-muted)}.privacy-content{display:grid;gap:22px;max-width:760px}.privacy-content section{display:grid;gap:7px}.privacy-content h2{color:var(--color-text);font-size:18px}.privacy-content p{margin:0;color:var(--color-text-muted)}.setup-heading{margin-bottom:26px}.setup-heading h1{margin-bottom:7px}.setup-heading p{margin:0;color:var(--color-text-muted)}.setup-steps{display:grid;gap:12px;margin:0;padding:0;list-style:none}.setup-steps>li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:14px;padding:20px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface)}.setup-step-number{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:var(--color-surface-subtle);color:var(--color-text);font-size:13px;font-weight:750}.setup-steps h2{margin:4px 0 6px;color:var(--color-text);font-size:18px}.setup-steps p{margin:0;color:var(--color-text-muted)}.setup-link{display:inline-block;margin-top:13px;text-decoration:none}.setup-illustration{margin:18px 0 0;padding:12px;overflow:hidden;border-radius:8px;background:var(--color-surface-subtle)}.setup-illustration img{display:block;width:100%;height:auto}.challenge-heading{margin-bottom:24px}.challenge-heading h1{margin-bottom:6px}.challenge-heading p{margin:0;color:var(--color-text-muted)}.challenge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.challenge-grid-spacer{min-width:0}.challenge-card{min-width:0;min-height:174px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;grid-template-areas:"title" "keyboard" "best";gap:8px;padding:14px 15px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.challenge-card--complete{border-color:var(--color-success-border)}.challenge-card:hover,.challenge-card:focus-visible{border-color:var(--color-accent);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.challenge-card--complete:hover,.challenge-card--complete:focus-visible{border-color:var(--color-success)}.challenge-card-heading{grid-area:title;display:flex;min-width:0;align-items:center;justify-content:space-between;gap:10px;margin-bottom:3px}.challenge-card-heading>strong{font-size:17px;white-space:nowrap}.challenge-status-icon{display:grid;place-items:center;width:18px;height:18px;flex:0 0 18px;border:1.5px solid var(--color-border);border-radius:50%;color:var(--color-on-success);font-size:11px;font-weight:800;line-height:1}.challenge-status-icon--complete{border-color:var(--color-success);background:var(--color-success)}.challenge-keyboard{grid-area:keyboard;align-self:center;justify-self:center;display:block;width:100%;max-width:190px}.challenge-keyboard .steno-keyboard{margin:0}.challenge-keyboard .steno-key rect{stroke-width:3}.challenge-best{grid-area:best;align-self:end;display:grid;gap:1px}.challenge-best small{color:var(--color-text-muted);font-size:9px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.challenge-best-accuracy{color:var(--color-text);font-size:18px;line-height:1.15}.challenge-best-accuracy span{font-size:11px;font-weight:600}.challenge-best-speed{color:var(--color-text-muted);font-size:10px}.back-button{margin-bottom:18px;padding:6px 0;border:0;background:transparent;color:var(--color-accent);font:inherit;font-weight:600;cursor:pointer}.primary-button,.secondary-button{padding:10px 18px;border-radius:6px;font:inherit;font-weight:600;cursor:pointer}.primary-button{border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.secondary-button{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text)}.prompt-area{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:240px;box-sizing:border-box;margin:28px 0 10px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px}.prompt-area--complete{grid-template-columns:1fr;align-content:center;justify-items:center;gap:10px;padding:16px;text-align:center}.run-complete-title{color:var(--color-text);font-size:clamp(24px,4vw,30px)}.run-results{display:flex;justify-content:center;gap:34px}.run-results>span{display:grid;gap:2px;min-width:86px}.run-results strong{color:var(--color-text);font-size:22px}.run-results small{color:var(--color-text-muted);font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:.03em}.run-best-message{min-height:20px;margin:0;color:var(--color-text-muted);font-size:13px}.run-best-message--new{width:fit-content;padding:2px 9px;border-radius:999px;background:var(--color-success-surface);color:var(--color-success);font-weight:700}.run-assisted-message{max-width:390px;margin:0;color:var(--color-text-muted);font-size:12px}.challenge-complete-actions{display:flex;justify-content:center;gap:10px}.challenge-complete-actions button{min-width:156px;min-height:40px;padding:9px 16px;border-radius:7px}h2{font-size:16px;margin:0;color:var(--color-text-muted)}.prompt-transcript{grid-template-columns:1fr;grid-template-rows:auto 1fr;overflow:hidden}.prompt-transcript-headings,.prompt-stream-row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,3fr) minmax(0,5fr);text-align:center}.prompt-transcript-headings{border-bottom:1px solid var(--color-border)}.prompt-transcript-headings h2{padding:13px 6px;font-size:clamp(10px,1.8vw,16px);line-height:1.2;white-space:nowrap}.prompt-transcript-headings h2+h2,.prompt-stream-cell+.prompt-stream-cell{border-left:1px solid var(--color-border)}.prompt-stream{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));min-height:0;overflow:hidden}.prompt-stream--advancing{animation:prompt-stream-advance .3s cubic-bezier(.2,.75,.3,1) both}.prompt-stream-row{min-height:0;color:var(--color-text-muted);font-size:15px;font-weight:650}.prompt-stream-cell{display:grid;min-width:0;place-items:center}.prompt-stream-row--current{color:var(--color-text);background:var(--color-surface-subtle);box-shadow:inset 0 1px var(--color-border),inset 0 -1px var(--color-border)}.prompt-history-entry{display:inline-block}.prompt-history-entry--entering{position:relative;z-index:1;animation:prompt-to-history .3s cubic-bezier(.2,.75,.3,1) both}.prompt-stream--advancing .prompt{animation:next-prompt-promote .3s cubic-bezier(.2,.75,.3,1) both}.prompt{font-size:38px;line-height:1}@keyframes prompt-stream-advance{0%,18%{transform:translateY(20%)}to{transform:translateY(0)}}@keyframes prompt-to-history{0%,18%{color:var(--color-success);opacity:1;transform:scale(2.5)}to{color:var(--color-text-muted);opacity:.68;transform:scale(1)}}@keyframes next-prompt-promote{0%,18%{opacity:.55;transform:scale(.42)}to{opacity:1;transform:scale(1)}}.run-progress{margin-top:18px}.run-progress-title{margin:0 0 8px;color:var(--color-text);font-size:15px;font-weight:750}.run-progress-copy{display:flex;justify-content:space-between;gap:16px;margin-bottom:7px;color:var(--color-text-muted)}.run-progress-track{height:10px;overflow:hidden;border-radius:999px;background:var(--color-progress-track)}.run-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:var(--color-progress-fill);transition:width .22s ease-out}.practice-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px;width:100%;margin:0 auto 10px}.practice-toggle{display:inline-flex;align-items:center;width:auto;gap:9px;padding:5px 9px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-surface);color:var(--color-text);font:inherit;font-size:13px;font-weight:500;text-align:left;cursor:pointer}.practice-toggle-track{position:relative;width:34px;height:20px;border-radius:6px;background:var(--color-progress-track);transition:background .14s ease}.practice-toggle-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:4px;background:var(--color-surface);box-shadow:0 1px 3px #1f2a3740;transition:transform .14s ease}.practice-toggle[aria-checked=true] .practice-toggle-track{background:var(--color-accent)}.practice-toggle[aria-checked=true] .practice-toggle-thumb{transform:translate(14px)}.page-layout.practice-screen{position:relative;min-height:100vh;min-height:100dvh;margin:0 auto;padding:8px 24px}.practice-screen .back-button{margin-bottom:8px}.practice-screen .run-progress{margin-top:0}.practice-stage .steno-keyboard{margin-bottom:8px}.practice-stage-frame{display:flex;justify-content:center;width:100%}.practice-stage{width:100%;transform-origin:top center}.stroke-input{position:absolute;width:1px;height:1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);opacity:0}.practice-screen--unfocused{cursor:pointer}.practice-screen--unfocused .practice-content{filter:blur(1px);opacity:.55}.focus-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.focus-overlay span{padding:12px 20px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);font-weight:600;box-shadow:var(--shadow-overlay)}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:3px}@media(max-width:800px){.challenge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-grid-spacer{display:none}}@media(max-width:520px){.challenge-grid{grid-template-columns:1fr}}@media(max-width:480px){.theme-toggle{top:8px;right:10px}.theme-toggle>span:nth-child(2){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.page-layout{margin:16px auto;padding:16px}.page-layout.practice-screen{margin:0 auto;padding:8px 12px}.home-action{padding:17px}.setup-steps>li{grid-template-columns:26px minmax(0,1fr);padding:16px}.setup-step-number{width:26px;height:26px}.prompt-area{height:240px}.challenge-complete-actions{flex-direction:column}}@media(prefers-reduced-motion:reduce){.prompt-stream--advancing,.prompt-history-entry--entering,.prompt-stream--advancing .prompt{animation:none}}
