:root{--bg: #fbfaf7;--panel: #ffffff;--ink: #14171a;--muted: #5b6470;--line: #e2e0da;--key: #b4531a;--key-soft: #f6ece4;--radius: 10px;--measure: 68ch}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #14161a;--panel: #1b1e24;--ink: #e9e7e2;--muted: #9aa2ad;--line: #2b3038;--key: #e8873f;--key-soft: #2a1f16}}:root[data-theme=dark]{--bg: #14161a;--panel: #1b1e24;--ink: #e9e7e2;--muted: #9aa2ad;--line: #2b3038;--key: #e8873f;--key-soft: #2a1f16}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}main{max-width:var(--measure);margin:0 auto;padding:0 20px 72px}.top{display:flex;align-items:center;gap:10px;max-width:var(--measure);margin:0 auto;padding:22px 20px 8px}.brand{font-weight:640;letter-spacing:-.01em}.mark{display:inline-flex;align-items:center;gap:4px}i.dit,i.dah{display:inline-block;height:4px;border-radius:2px;background:var(--key)}i.dit{width:4px}i.dah{width:12px}.sig{display:inline-flex;align-items:center;gap:3px;min-width:58px;flex-shrink:0;white-space:nowrap}h1{font-size:clamp(1.75rem,4vw,2.4rem);line-height:1.15;letter-spacing:-.02em;margin:18px 0 10px;text-wrap:balance}h2{font-size:1.25rem;letter-spacing:-.01em;margin:34px 0 8px;text-wrap:balance}h3{font-size:1rem;margin:22px 0 6px}.lede{color:var(--muted);max-width:60ch}.tool{display:grid;gap:14px;margin:26px 0 8px}.pane{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.pane label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}textarea{width:100%;border:0;background:transparent;color:inherit;resize:vertical;font:15px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;word-break:break-word}textarea:focus{outline:none}.pane:focus-within{border-color:var(--key);box-shadow:0 0 0 3px var(--key-soft)}.swap{display:flex;justify-content:center;gap:5px;opacity:.55}.controls{display:grid;gap:14px;margin:18px 0 6px}@media(min-width:760px){.controls{grid-template-columns:auto 1fr 1fr 1fr;align-items:end}.controls .hint{grid-column:1 / -1}}.field label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:4px;text-wrap:balance}input[type=range]{width:100%;accent-color:var(--key)}button.primary{background:var(--key);color:#fff;border:0;border-radius:var(--radius);padding:11px 22px;font-size:1rem;font-weight:600;cursor:pointer;min-width:108px}button.primary:hover{filter:brightness(1.06)}button.primary:focus-visible{outline:3px solid var(--key-soft);outline-offset:2px}.hint{font-size:.85rem;color:var(--muted);margin:0}#unsupported,#unknown{color:var(--key);margin-top:8px}.rules{padding-left:1.1rem;color:var(--muted)}.rules b{color:var(--ink)}.explain p{max-width:62ch}.note{font-size:.85rem;color:var(--muted);margin:2px 0 8px}.chart{list-style:none;padding:0;margin:6px 0 18px;display:grid;gap:2px 14px;grid-template-columns:repeat(auto-fill,minmax(196px,1fr))}.chart li{display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:7px;flex-wrap:nowrap}.chart li:nth-child(odd){background:color-mix(in srgb,var(--panel) 70%,transparent)}.chart b{min-width:2.4ch;font-weight:640}.chart code{font-size:.78rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}footer{border-top:1px solid var(--line);margin-top:40px}footer p{max-width:var(--measure);margin:0 auto;padding:18px 20px 40px;color:var(--muted);font-size:.88rem}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.top .quiet{margin-left:auto;color:var(--muted);text-decoration:none;font-size:.9rem}.top .quiet:hover{color:var(--key)}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.lesson{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin:22px 0 4px}.lesson-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.alphabet{font:640 1.35rem/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;margin:4px 0 0}.progress output{font-size:1.5rem;font-weight:640}.skillbar{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}.skill{position:relative;min-width:26px;text-align:center;padding:3px 0 5px;font:600 .8rem ui-monospace,Menlo,monospace;color:var(--muted);border-bottom:3px solid var(--line);border-radius:3px 3px 0 0}.skill:after{content:"";position:absolute;left:0;bottom:-3px;height:3px;width:var(--fill, 0%);background:var(--key);border-radius:3px}.copy{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:18px 0 0}.copy label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}.copy:focus-within{border-color:var(--key);box-shadow:0 0 0 3px var(--key-soft)}.copy-actions{display:flex;gap:10px;margin-top:10px}.copy-actions button{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:var(--radius);padding:8px 16px;font-size:.92rem;cursor:pointer}.copy-actions button:hover{border-color:var(--key)}.quiet-btn{color:var(--muted)!important}.result{margin-top:18px}.score b{font-size:1.15rem}.marked{display:flex;flex-wrap:wrap;gap:3px;margin:10px 0;font:1rem ui-monospace,Menlo,monospace}.marked span{padding:3px 6px;border-radius:5px}.mark-correct{color:var(--muted)}.mark-wrong{background:var(--key-soft);color:var(--key);font-weight:700}.mark-missed{border:1px dashed var(--key);color:var(--key);opacity:.85}.mark-extra{color:var(--muted);text-decoration:line-through}.cta{background:var(--key-soft);border:1px solid color-mix(in srgb,var(--key) 30%,transparent);border-radius:var(--radius);padding:18px 20px;margin:30px 0 8px}.cta h2{margin-top:0}.cta p{max-width:58ch}.cta-link{color:var(--key);font-weight:640;text-decoration:none}.cta-link:hover{text-decoration:underline}.ext{font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 4px;text-decoration:none;cursor:help}.cite{font-variant-numeric:tabular-nums;white-space:nowrap}
