:root{--bg:#fafafa;--surface:#fff;--text:#111;--muted:#5c5c5c;--line:#e0e0e0;--line-strong:#c8c8c8;--shadow:0 1px 0 #0000000f;--radius:2px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono:ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, monospace;font-family:var(--font);color:var(--text);background-color:var(--bg);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:16px;font-weight:400;line-height:1.6}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}#root{min-height:100vh}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.layout{flex-direction:column;max-width:720px;min-height:100vh;margin:0 auto;padding:0 1.25rem;display:flex}.layout__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 0 1rem;display:flex}.layout__brand{letter-spacing:.02em;align-items:center;gap:.6rem;font-weight:600;display:inline-flex}.layout__brand-mark{background:var(--text);border-radius:1px;width:10px;height:10px}.layout__brand-text{text-transform:uppercase;letter-spacing:.14em;font-size:.95rem}.layout__nav{gap:.25rem;display:flex}.layout__nav-link{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-radius:var(--radius);border:1px solid #0000;padding:.35rem .65rem;font-size:.8125rem;transition:color .15s,border-color .15s,background .15s}.layout__nav-link:hover{color:var(--text)}.layout__nav-link--active{color:var(--text);border-color:var(--line-strong);background:var(--surface);box-shadow:var(--shadow)}.layout__main{flex:1;padding:2rem 0 3rem}.layout__footer{border-top:1px solid var(--line);padding:1.25rem 0 2rem}.layout__footer-note{color:var(--muted);letter-spacing:.02em;margin:0;font-size:.75rem}.page__intro{margin-bottom:2rem}.page__actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.page__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 .35rem;font-size:.6875rem}.page-title{letter-spacing:-.03em;margin:0 0 .5rem;font-size:1.75rem;font-weight:600}.page-lead{max-width:42rem;color:var(--muted);margin:0;font-size:.9375rem}.page-state{color:var(--muted);margin:0}.page-state--error{color:var(--text)}.page-empty{padding:2rem 0}.stack{flex-direction:column;gap:1.25rem;display:flex}.qstream__date{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:1.25rem 0 .35rem;font-size:.75rem}.qstream__item:first-child .qstream__date{margin-top:0}.incremental__hidden{display:none!important}.incremental__more{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:2.25rem;margin-bottom:.25rem;display:flex}.incremental__more-trigger{border-radius:var(--radius);min-width:2.75rem;min-height:2.75rem;color:var(--text);cursor:pointer;opacity:.82;appearance:none;background:0 0;border:none;justify-content:center;align-items:center;padding:.5rem;transition:opacity .2s,transform .2s,color .2s;display:inline-flex}.incremental__more-trigger:hover:not(:disabled){opacity:1;transform:translateY(3px)}.incremental__more-trigger:focus-visible{outline:1px solid var(--line-strong);outline-offset:4px}.incremental__more-trigger:disabled{opacity:.55;cursor:wait;transform:none}.incremental__chevron{border-top:9px solid;border-left:7px solid #0000;border-right:7px solid #0000;width:0;height:0;margin-top:2px;display:block}.incremental__more-caption{letter-spacing:.18em;text-transform:uppercase;color:#5c5c5cd9;font-size:.6875rem}.incremental__more-trigger:disabled+.incremental__more-caption{opacity:.75}.incremental__hint{color:#5c5c5cb8;letter-spacing:.04em;max-width:16rem;font-size:.6875rem;line-height:1.45}.qcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.35rem}.qcard__meta{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.75rem;display:flex}.qcard__date{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.75rem}.qcard__tags-cap{justify-content:flex-end;margin-top:1.1rem;display:flex}.qcard__tags{flex-wrap:wrap;justify-content:flex-end;gap:0;max-width:100%;margin:0;padding:0;list-style:none;display:inline-flex}.qcard__tag{letter-spacing:.06em;color:#5c5c5c9e;font-size:.625rem;font-weight:450;line-height:1.25}.qcard__tag:not(:first-child):before{content:"·";opacity:.35;margin:0 .35rem;display:inline-block}.qcard__title{letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.125rem;font-weight:600}.qcard__prompt{color:var(--text);margin-bottom:1rem}.qcard__prompt p{margin:0 0 .5rem}.qcard__prompt p:last-child{margin-bottom:0}.qcard__actions{gap:.5rem;display:flex}.qcard__toggle{border:1px solid var(--text);border-radius:var(--radius);color:var(--text);letter-spacing:.06em;text-transform:uppercase;background:0 0;padding:.45rem .85rem;font-size:.8125rem;transition:background .15s,color .15s}.qcard__toggle:hover{background:var(--text);color:var(--surface)}.qcard__answer{border-top:1px dashed var(--line-strong);color:var(--text);margin-top:1rem;padding-top:1rem;font-size:.9375rem;line-height:1.75}.md-p{margin:0 0 1rem;line-height:1.78}.md-p:last-child{margin-bottom:0}.md-strong{color:#0a0a0a;letter-spacing:-.01em;font-weight:620}.md-em{color:#333;font-style:italic}.md-h3{letter-spacing:-.01em;color:#111;border-bottom:1px solid var(--line);margin:1.6rem 0 .7rem;padding-bottom:.35rem;font-size:1.05rem;font-weight:620}.md-h3:first-child{margin-top:0}.md-h4{letter-spacing:-.01em;color:#1a1a1a;margin:1.3rem 0 .5rem;font-size:.95rem;font-weight:600}.md-h4:first-child{margin-top:0}.md-ul{margin:.6rem 0 1rem;padding-left:1.35rem;list-style:none}.md-ul .md-li:before{content:"—";width:1.1rem;color:var(--muted);margin-left:-1.1rem;font-size:.75rem;display:inline-block}.md-ol{margin:.6rem 0 1rem;padding-left:1.5rem;list-style:decimal}.md-ol .md-li::marker{color:var(--muted);font-size:.8rem;font-weight:500}.md-li{margin-bottom:.35rem;line-height:1.7}.md-li:last-child{margin-bottom:0}.md-li .md-p{margin:0}.md-inline-code{font-family:var(--mono);color:#c7254e;word-break:break-word;background:#f3f3f3;border:1px solid #e2e2e2;border-radius:3px;margin:0 .1em;padding:.15em .45em;font-size:.85em;display:inline}.md-code-block{font-family:var(--mono);color:#d4d4d4;background:#1e1e1e;border:1px solid #2d2d2d;border-radius:6px;margin:1rem 0;padding:1rem 1.15rem;font-size:.8125rem;line-height:1.6;overflow-x:auto}.md-code-block code{all:unset;white-space:pre;font-family:inherit;font-size:inherit;color:inherit;display:block}.md-ul .md-ul,.md-ol .md-ol,.md-ul .md-ol,.md-ol .md-ul{margin-top:.3rem;margin-bottom:.3rem}.practice-panel__bar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.practice-panel__progress{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.8125rem}.practice-panel__footer{justify-content:flex-end;margin-top:1.25rem;display:flex}.practice-done{border:1px solid var(--line);background:var(--surface);text-align:center;box-shadow:var(--shadow);padding:2rem 1.5rem}.practice-done__title{letter-spacing:.04em;margin:0 0 .35rem;font-size:1rem;font-weight:600}.practice-done__desc{color:var(--muted);margin:0 0 1.25rem;font-size:.9375rem}.btn-solid{border:1px solid var(--text);border-radius:var(--radius);background:var(--text);color:var(--surface);letter-spacing:.08em;text-transform:uppercase;padding:.55rem 1.1rem;font-size:.8125rem}.btn-solid:hover{opacity:.92}.btn-outline{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);letter-spacing:.06em;text-transform:uppercase;padding:.45rem .75rem;font-size:.8125rem}.btn-outline:hover{border-color:var(--text)}.btn-sm{padding:.35rem .55rem;font-size:.6875rem}.btn-text{color:var(--text);text-underline-offset:3px;background:0 0;border:none;margin-top:.75rem;padding:0;font-size:.875rem;text-decoration:underline}.inline-code{font-family:var(--mono);border:1px solid var(--line);border-radius:var(--radius);background:#f3f3f3;padding:.1rem .35rem;font-size:.85em}@media (width<=560px){.layout__header{flex-direction:column;align-items:flex-start}.layout__nav{flex-wrap:wrap;justify-content:flex-start;width:100%}}
