.foundations{padding-bottom:24px}.fmap{display:grid;gap:12px;margin:24px 0}.flesson{display:flex;gap:16px;text-align:left;align-items:center;padding:18px;width:100%}.flesson>span:nth-child(2){flex:1}.flesson small{display:block;font-weight:400;line-height:1.5;margin-top:5px}.fnumber{font-size:24px;font-weight:800;min-width:30px}.fcard{background:var(--card,#fff);border:1px solid #dedbd4;border-radius:24px;padding:22px 18px;margin:16px 0}.ftarget{font-size:clamp(30px,8vw,56px);font-weight:750;text-align:center;white-space:pre-wrap;line-height:1.4;overflow-wrap:anywhere}.flisten{font-size:64px;text-align:center;color:#93764b}.fbuild{min-height:60px;white-space:pre-wrap;overflow-wrap:anywhere}.fchoices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.fchoices button{font-size:clamp(20px,5vw,30px);min-height:72px;white-space:pre-wrap}.fstatus{min-height:26px;text-align:center;font-size:14px}.ferror{padding:12px;background:#fff0e4;color:#713609;border-radius:12px}.foundations .keyboard{position:relative;bottom:auto;margin:18px -8px}.foundations .functionrow .key{font-size:14px}.moduleintro{margin-top:24px}.foundations button:focus-visible{outline:3px solid #28776e;outline-offset:3px}

.stroke-demo{text-align:center;margin:12px auto;max-width:220px}.stroke-demo svg{width:100%;max-height:180px;display:block}.stroke-demo path{fill:none;stroke-linecap:round;stroke-linejoin:round}.stroke-grid{stroke:#d9d5ce;stroke-width:.5;stroke-dasharray:2 3}.stroke-ghost{stroke:#e7e2da;stroke-width:6}.stroke-ink{stroke:#494070;stroke-width:6}.stroke-pen{fill:#d15b36;stroke:#fff;stroke-width:1}.stroke-caption{font-size:12px;color:#625a50;display:block;min-height:20px}.stroke-finished .stroke-ink{stroke-dashoffset:0}.stroke-finished .stroke-caption{visibility:hidden}
