#drill{position:relative;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:2.4rem 1.5rem 2rem;margin:2rem 0 1.25rem;text-align:center;overflow:hidden}#bar{position:absolute;inset:0 0 auto;height:3px;background:var(--line)}#barfill{height:100%;width:0;background:var(--accent);transition:width .35s cubic-bezier(.4,0,.2,1)}#stage{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-weight:600}#stage .g{color:var(--accent);text-transform:none;letter-spacing:0;font-size:1rem}#stage kbd{text-transform:none;letter-spacing:0}#note{color:var(--dim);font-size:.95rem;margin:.5rem auto 0;max-width:32rem;min-height:2.8rem}#prog{color:var(--dim);opacity:.7;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;margin-top:1rem}#hero{display:inline-flex;align-items:center;gap:.65rem;margin-top:.35rem}#target{font-size:3.6rem;line-height:1.15;cursor:pointer}#say{appearance:none;flex:none;width:2.15rem;height:2.15rem;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--accent);cursor:pointer;display:grid;place-items:center;padding:0;transition:transform .12s,background .15s,border-color .15s,color .15s}#say svg{width:.82rem;height:.82rem}#say:hover{border-color:var(--accent);background:var(--accent);color:#fff}#say:active{transform:scale(.88)}#say.playing{animation:saypulse .45s ease}@keyframes saypulse{50%{transform:scale(1.18)}}#word{height:1.7rem;font-size:.95rem;color:var(--dim);margin-top:.55rem}#word b{color:var(--fg);font-weight:600;font-size:1.05rem}#word .chip{display:inline-block;font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);background:var(--kbd-bg);border:1px solid var(--line);border-radius:999px;padding:.12rem .5rem;margin-left:.45rem;vertical-align:.1em}#typedwrap{display:inline-flex;align-items:center;min-width:11rem;margin-top:1.25rem;padding:.35rem 1.1rem;border:2px solid var(--line);border-radius:12px;transition:border-color .2s,background .2s}#typed{font-size:2.1rem;line-height:2.8rem;min-height:2.8rem;font-family:Charis SIL,Doulos SIL,Times New Roman,serif}.caret{display:inline-block;width:2px;height:1.9rem;background:var(--accent);margin-left:2px;animation:blink 1.1s step-end infinite}@keyframes blink{50%{opacity:0}}#typedwrap.good{border-color:#1a7f37;background:color-mix(in srgb,#1a7f37 9%,transparent)}#typedwrap.bad{border-color:#c43a3a;background:color-mix(in srgb,#c43a3a 12%,transparent)}#typedwrap.bad #typed{color:#c43a3a}#typedwrap.bad .caret,#typedwrap.good .caret{opacity:0}#hint{height:2.4rem;margin-top:1.1rem;display:flex;align-items:center;justify-content:center;gap:.25rem}#hint kbd{font-size:.95rem;opacity:.35;transition:opacity .15s,border-color .15s,color .15s}#hint kbd.hit{opacity:1;border-color:var(--accent);color:var(--accent)}#hint button{background:none;border:1px solid var(--line);border-radius:999px;color:var(--dim);padding:.3rem .9rem;cursor:pointer;font-size:.82rem;transition:color .15s,border-color .15s}#hint button:hover{color:var(--accent);border-color:var(--accent)}#streak{color:var(--accent);height:1.5rem;font-size:.85rem;font-weight:600;margin-top:.4rem}.notice{color:var(--dim);font-size:.88rem;text-align:center;max-width:34rem;margin:0 auto}#kbd{max-width:34rem;margin:1.5rem auto .5rem}#controls{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin:1.5rem 0 -.75rem;flex-wrap:wrap}#lessonnav{display:flex;align-items:center;gap:.4rem}#lessonnav button{appearance:none;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer;font-size:.7rem;line-height:1;display:grid;place-items:center;transition:color .15s,border-color .15s}#prevlesson,#nextlesson{width:1.9rem;height:1.9rem}#lessonnav button:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}#lessonnav button:disabled{opacity:.35;cursor:default}#indextoggle{font-size:.74rem;letter-spacing:.02em;color:var(--dim);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.3rem .85rem;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:color .15s,border-color .15s}#indextoggle:hover,#indextoggle[aria-expanded=true]{color:var(--accent);border-color:var(--accent)}.lessonlist{list-style:none;margin:1.25rem 0 0;padding:.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.25rem;background:var(--card);border:1px solid var(--line);border-radius:14px;max-height:22rem;overflow-y:auto}.lessonitem{display:flex;align-items:baseline;gap:.55rem;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:8px;cursor:pointer;padding:.45rem .6rem;color:var(--dim);font-size:.86rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:color .12s,background .12s,border-color .12s}.lessonitem:hover{color:var(--fg);border-color:var(--line);background:var(--bg)}.lessonitem .n{font:.72rem ui-monospace,Menlo,monospace;opacity:.6;min-width:1.4rem}.lessonitem .t{flex:1}.lessonitem .s{color:var(--accent);font-size:1rem}.lessonitem.visited{color:var(--fg)}.lessonitem.current{color:var(--accent);border-color:var(--accent);background:var(--bg);font-weight:600}#ear{display:inline-flex;align-items:center;gap:.45rem;font-size:.74rem;letter-spacing:.02em;color:var(--dim);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.3rem .8rem;cursor:pointer;transition:color .15s,border-color .15s}#ear .dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--line);transition:background .15s,box-shadow .15s}#ear[aria-pressed=true]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}#ear[aria-pressed=true] .dot{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}#target.masked{filter:blur(15px);opacity:.5;cursor:default;transition:filter .35s ease,opacity .35s ease}@media(prefers-reduced-motion:reduce){*,:before,:after{animation:none!important;transition:none!important}}#finish{text-align:center;padding:2.25rem 1rem}#finish .big{font-size:2.4rem;margin-bottom:.8rem}#finish p{color:var(--dim);max-width:26rem;margin:0 auto 1.4rem}#finish .acts{display:flex;gap:.9rem;justify-content:center;align-items:center;flex-wrap:wrap}#finish .acts a{color:var(--accent);font-size:.9rem}#prose{margin:.3rem auto 0;max-width:34rem;font-size:.85rem;color:var(--dim)}#prose summary{cursor:pointer;text-align:center}#prose p{text-align:left;margin:.45rem 0 0;line-height:1.55}.lessonlist .part{grid-column:1 / -1;font-size:.68rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--dim);padding:.6rem .4rem .15rem}.lessonitem .s.rev{font-family:inherit;font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}#partintro{text-align:center;padding:1.6rem .5rem 1.2rem}#partintro .eyebrow{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}#partintro h2{margin:.35rem 0 .4rem;font-size:1.6rem}#partintro .lore{color:var(--dim);font-size:.92rem;max-width:32rem;margin:0 auto .5rem}.scards{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin:1.1rem auto;max-width:30rem}.scard{appearance:none;display:grid;gap:.15rem;place-items:center;min-width:4.4rem;padding:.6rem .7rem .5rem;cursor:pointer;background:var(--bg);border:1px solid var(--line);border-radius:12px;transition:border-color .15s,transform .12s,box-shadow .15s}.scard:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 3px 10px color-mix(in srgb,var(--accent) 14%,transparent)}.scard .g{font-size:1.7rem;color:var(--fg)}.scard .k{font:.68rem ui-monospace,Menlo,monospace;color:var(--dim)}#begin{appearance:none;margin-top:.4rem;padding:.55rem 1.4rem;cursor:pointer;border:1px solid var(--accent);border-radius:999px;background:var(--accent);color:#fff;font-size:.9rem;font-weight:600;transition:transform .12s,box-shadow .15s}#begin:hover{transform:translateY(-1px);box-shadow:0 3px 12px color-mix(in srgb,var(--accent) 30%,transparent)}#prog .unlock{display:inline-block;background:var(--accent);color:#fff;border-radius:999px;padding:.1rem .55rem;margin-right:.3rem;font-weight:700;letter-spacing:.08em}.owned{margin:1.25rem 0 0;padding:.7rem .8rem;background:var(--card);border:1px solid var(--line);border-radius:14px;display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.owned .olabel{flex-basis:100%;font-size:.66rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--dim);margin-bottom:.15rem}.ochip{appearance:none;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:8px;padding:.25rem .55rem;cursor:pointer;font-size:1.05rem;transition:border-color .15s,color .15s}.ochip:hover{border-color:var(--accent);color:var(--accent)}
