:root{--paper-4:#E8E4D2;--ink-4:#B5B19F;--line-dash:#B8B3A0;--ochre:#D6942A;--ochre-tint:rgba(214,148,42,0.10)}.learn-app{--paper:var(--bg);--paper-2:var(--surface2);--paper-3:var(--surface3);--ink:var(--text);--ink-2:var(--muted);--ink-3:var(--dim);--line:var(--border-hi);--line-soft:var(--border);--clay:var(--cyan);--clay-tint:var(--cyan-dim);--sage:var(--purple);--forest:var(--green);--brick:var(--red)}@keyframes sc-kernel-pulse{0%,to{opacity:1}50%{opacity:.4}}.learn-app{display:grid;grid-template-rows:var(--top-h,46px) 1fr var(--stat-h,28px);height:100dvh;overflow:hidden}.learn-body{display:grid;grid-template-columns:var(--rail-l,264px) 1fr var(--rail-r,324px);min-height:0}.learn-body>*+*{border-left:1px solid var(--line)}.nb{background:var(--paper);overflow-y:auto;overflow-x:hidden;min-width:0;padding:28px 56px 80px}.nb .code .kw{color:var(--clay)}.nb .code .cls,.nb .code .fn{color:var(--ochre)}.nb .code .str{color:var(--sage)}.nb .code .num{color:var(--brick)}.nb .code .com{font-style:italic}.nb .code .com,.nb .code .self{color:var(--ink-3)}.nb .code .dec{color:var(--sage)}.tok-keyword{color:var(--clay)}.tok-operator{color:var(--ink-2)}.tok-number{color:var(--brick)}.tok-string,.tok-string2{color:var(--sage)}.tok-comment{color:var(--ink-3);font-style:italic}.tok-variableName{color:var(--ink-2)}.tok-className,.tok-definition,.tok-function,.tok-typeName{color:var(--ochre)}.tok-propertyName{color:var(--ink-2)}.tok-bool,.tok-null{color:var(--clay)}.tok-punctuation,.tok-self{color:var(--ink-3)}.tok-meta{color:var(--sage)}.tok-atom{color:var(--brick)}.cell{position:relative;padding:14px 18px 14px 56px;margin:0 0 14px;border:1px solid transparent;border-radius:6px;background:transparent;transition:background .15s,border-color .15s}.cell:hover,.cell[data-active=true]{background:var(--paper-2)}.cell[data-active=true]{border-color:var(--line-soft);box-shadow:inset 2px 0 0 var(--ochre)}.cell[data-active=true] .gutter{color:var(--ochre)}.cell .gutter{position:absolute;left:14px;top:14px;width:32px;text-align:right;font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-4);letter-spacing:.02em}.cell .cell-actions{position:absolute;right:10px;top:10px;display:flex;gap:6px;opacity:0;transition:opacity .15s}.cell:hover .cell-actions,.cell[data-active=true] .cell-actions{opacity:1}.cell-action-btn{display:grid;place-items:center;width:22px;height:22px;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);border:1px solid var(--line);border-radius:5px;background:var(--paper);cursor:pointer;padding:0;transition:color .15s,border-color .15s,box-shadow .15s}.cell-action-btn:hover{color:var(--ink);border-color:var(--ink-3);box-shadow:var(--shadow-1)}.cell .cell-meta{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap;font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-3);letter-spacing:.04em}.cell .cell-meta .ct{padding:1px 7px;border:1px solid var(--line);border-radius:99px;background:var(--paper);color:var(--ink-3)}.cell .cell-meta .ct.on{color:var(--ochre);border-color:var(--ochre);background:var(--ochre-tint)}.cell .cell-meta .sep,.cell .cell-stale{color:var(--ink-4)}.cell .cell-stale{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.04em;position:absolute;right:14px;bottom:6px}.cell.quote{padding:14px 18px 14px 22px;background:var(--paper-2);border-left:3px solid var(--ink);border-radius:0 6px 6px 0}.cell.quote .gutter{display:none}.cell.quote .qsrc{font-family:JetBrains Mono,monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px;display:flex;align-items:center;gap:8px}.cell.quote .qsrc b{color:var(--ochre);font-weight:500}.cell.quote .qsrc .anchor-link{margin-left:auto;color:var(--ink-3);font-size:9px;cursor:pointer}.cell.quote .qsrc .anchor-link:hover{color:var(--ochre)}.cell.quote .qbody{font-family:"Source Serif 4",Georgia,serif;font-size:15px;line-height:1.55;color:var(--ink);font-style:italic;text-wrap:pretty}.cell.quote .qbody .cite{font-style:normal;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ochre);background:var(--ochre-tint);padding:1px 6px;border-radius:3px;border:1px solid color-mix(in srgb,var(--ochre) 28%,transparent);margin:0 2px;letter-spacing:0}.cell.qq{padding:14px 18px 14px 22px;background:color-mix(in srgb,var(--clay) 5%,transparent);border-left:3px solid var(--clay);border-radius:0 6px 6px 0}.cell.qq .gutter{display:none}.cell.qq .qhead{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--clay)}.cell.qq .qhead .st{margin-left:auto;color:var(--forest)}.cell.qq .qbody{font-size:15.5px;line-height:1.5;color:var(--ink)}.cell.qq .qansw,.cell.qq .qbody{font-family:"Source Serif 4",Georgia,serif}.cell.qq .qansw{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line-dash);font-size:13.5px;line-height:1.55;color:var(--ink-2);text-wrap:pretty}.cell.qq .qansw .xref{color:var(--ochre);font-style:italic}.out.figure{padding:14px;background:var(--paper-2)}.out.figure img,.out.figure svg{display:block;margin:0 auto}.out.figure .cap{margin-top:10px;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.06em;color:var(--ink-3);text-align:center}.out.figure .cap b{color:var(--ochre);font-weight:500;margin-right:4px}.cell-add{display:flex;gap:8px;justify-content:center;margin:22px 0 4px}.cell-add button{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3);padding:6px 14px;border:1px dashed var(--line-dash);border-radius:99px;background:transparent;letter-spacing:.04em;cursor:pointer}.cell-add button:hover{color:var(--ink);border-color:var(--ink-3);background:var(--paper-2)}.out{margin-top:10px;padding:9px 12px 9px 14px;background:var(--paper-3);border:1px solid var(--line-soft);border-left:2px solid var(--line-dash);border-radius:0 4px 4px 0;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-2);line-height:1.6;letter-spacing:.01em}.out .ok{color:var(--forest)}.out .lbl{color:var(--ink-3)}.cell.md{padding-left:18px}.cell.md .gutter{display:none}.cell.md h2{font-weight:500;letter-spacing:-.012em;font-size:22px;line-height:1.2}.cell.md h2,.cell.md p{font-family:"Source Serif 4",Georgia,serif;margin:0 0 10px;color:var(--ink)}.cell.md p{font-size:14.5px;line-height:1.6;text-wrap:pretty;max-width:62ch}.cell.md p em{color:var(--ochre);font-style:italic}.cell.md p code{font-family:JetBrains Mono,monospace;font-size:12.5px;color:var(--ink-2);background:var(--paper-3);padding:1px 5px;border-radius:3px}.cell.eq{padding-left:56px}.cell.code-cell .code{font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.62;color:var(--ink-2);white-space:pre;overflow-x:auto;max-width:100%;padding:2px 0}.jknb-root .text_cell_render{font-family:"Source Serif 4",Georgia,serif;font-size:14.5px;line-height:1.6;color:var(--ink)}.jknb-root .highlight pre{font-size:12px;line-height:1.62;background:transparent;margin:0;padding:2px 0}.jknb-root .highlight pre,.jknb-root .output_area{font-family:JetBrains Mono,monospace;color:var(--ink-2)}.jknb-root .output_area{margin-top:10px;padding:9px 12px 9px 14px;background:var(--paper-3);border:1px solid var(--line-soft);border-left:2px solid var(--line-dash);border-radius:0 4px 4px 0;font-size:11px}.jknb-root .prompt{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-4)}.right{display:flex;flex-direction:column;background:var(--paper-2);min-height:0;overflow:hidden}.right .scroll{flex:1 1;overflow-y:auto;padding:0 14px 8px;min-height:0}.section{padding:14px 0 12px;border-bottom:1px dashed var(--line-dash)}.section:last-of-type{border-bottom:none}.sec-h{display:flex;align-items:center;gap:8px;margin-bottom:10px}.sec-h .nm{font-size:10px;letter-spacing:.14em;text-transform:uppercase}.sec-h .ct,.sec-h .nm{font-family:JetBrains Mono,monospace;color:var(--ink-3)}.sec-h .ct{font-size:9px;padding:1px 5px;border:1px solid var(--line);border-radius:3px;background:var(--paper)}.sec-h .chev{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3)}.out-row{display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px;align-items:center;font-family:"Source Serif 4",Georgia,serif;font-size:13.5px;color:var(--ink-2);padding:4px 0 4px 12px;position:relative;line-height:1.35;cursor:default}.out-row:hover{color:var(--ink)}.out-row:before{content:"";position:absolute;left:0;top:11px;width:5px;height:1px;background:var(--line-dash)}.out-row .pg{width:38px;height:3px;background:var(--paper-4);border-radius:2px;overflow:hidden}.out-row .pg i{display:block;height:100%;background:var(--ink-4)}.out-row[data-active=true]{color:var(--ochre);font-weight:500}.out-row[data-active=true]:before{background:var(--ochre);height:2px;width:6px;top:10px}.out-row[data-active=true] .pg i{background:var(--ochre)}.out-row .est{display:block;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em;margin-top:1px}.cite-row{padding:9px 0;border-bottom:1px dashed var(--line-dash)}.cite-row:last-child{border-bottom:none}.cite-row .ck{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ochre);letter-spacing:0;margin-bottom:3px}.cite-row .ct-body{font-family:"Source Serif 4",Georgia,serif;font-size:13px;line-height:1.35;color:var(--ink)}.cite-row .ct-body i{color:var(--ink-2);font-style:italic}.cite-row .cby{display:flex;gap:8px;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em;margin-top:4px}.cite-row .cby .lab{color:var(--ink-2)}.glos-row{padding:7px 0;border-bottom:1px dashed var(--line-dash)}.glos-row:last-child{border-bottom:none}.glos-row .tm{font-family:"Source Serif 4",Georgia,serif;font-size:13.5px;color:var(--ink);font-weight:500}.glos-row .tm sub{font-size:10.5px;font-weight:400;color:var(--ink-2)}.glos-row .df{display:block;font-family:Inter,sans-serif;font-size:11.5px;color:var(--ink-2);margin-top:3px;line-height:1.45;text-wrap:pretty}.glos-row .uses{display:inline-block;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em}.cmt{padding:10px 0;border-bottom:1px dashed var(--line-dash);display:grid;grid-template-columns:24px 1fr;grid-gap:9px;gap:9px}.cmt:last-child{border-bottom:none}.cmt .av{width:24px;height:24px;border-radius:99px;display:grid;place-items:center;color:var(--on-accent);font-weight:600}.cmt .av,.cmt .cmt-hd{font-family:JetBrains Mono,monospace;font-size:9.5px}.cmt .cmt-hd{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;color:var(--ink-3);letter-spacing:.04em}.cmt .cmt-hd .who{color:var(--ink);font-weight:500;font-family:Inter,sans-serif;font-size:12px;letter-spacing:0}.cmt .cmt-hd .role{color:var(--ochre)}.cmt .cmt-body{font-family:"Source Serif 4",Georgia,serif;font-size:13px;line-height:1.5;color:var(--ink-2);margin-top:3px;text-wrap:pretty}.cmt .cmt-body code{font-size:11.5px;color:var(--ink);background:var(--paper-3);padding:0 4px;border-radius:3px}.cmt .cmt-acts,.cmt .cmt-body code{font-family:JetBrains Mono,monospace}.cmt .cmt-acts{display:flex;gap:10px;margin-top:5px;font-size:9px;color:var(--ink-3);letter-spacing:.04em;cursor:default}.cmt .cmt-acts span:hover{color:var(--ink-2)}.cmt-input{margin-top:10px;display:grid;grid-template-columns:24px 1fr;grid-gap:9px;gap:9px;align-items:center}.cmt-input .av-you{width:24px;height:24px;border-radius:99px;background:var(--paper-3);border:1px dashed var(--line-dash);display:grid;place-items:center;font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--ink-3)}.cmt-input input{width:100%;padding:7px 10px;font-family:Inter,sans-serif;font-size:12px;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:5px}.cmt-input input:focus{outline:none;border-color:var(--ochre)}.var-row{display:grid;grid-template-columns:1fr auto auto;grid-gap:8px;gap:8px;align-items:baseline;padding:3px 0;border-bottom:1px dashed var(--line-dash);font-family:JetBrains Mono,monospace;font-size:11px}.var-row:last-child{border-bottom:none}.var-name{color:var(--ink);font-weight:500}.var-type{font-size:9px;letter-spacing:.04em}.var-repr{font-size:10px;color:var(--ink-3);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learn-app ::-webkit-scrollbar{width:0;height:0;display:none}.learn-app *{scrollbar-width:none}@media (max-width:1200px){.learn-body{grid-template-columns:1fr var(--rail-r,324px)}.learn-body>.left{display:none}.nb{padding:24px 32px 60px}}.tree{flex:1 1;overflow-y:auto;padding:8px 8px 12px;font-family:JetBrains Mono,monospace;font-size:11.5px;line-height:1.95;color:var(--ink-2)}.tree .row{display:grid;grid-template-columns:10px 10px 1fr auto;grid-gap:6px;gap:6px;align-items:center;padding:1px 6px;border-radius:4px;cursor:default;position:relative}.tree .row:hover{background:var(--paper-3)}.tree .row .chev,.tree .row .st{color:var(--ink-3);font-size:9px;text-align:center}.tree .row .st{font-family:JetBrains Mono,monospace}.tree .row .st[data-s=done]{color:var(--forest)}.tree .row .st[data-s=prog]{color:var(--ochre)}.tree .row .st[data-s=star]{color:var(--clay)}.tree .row .st[data-s=q]{color:var(--brick)}.tree .row .nm{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.tree .row[data-folder=true]{grid-template-columns:10px 1fr auto}.tree .row[data-folder=true] .st{display:none}.tree .row[data-folder=true] .nm{color:var(--ink);font-weight:500}.tree .row .meta{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em;max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree .row[data-active=true]{background:var(--ochre-tint)}.tree .row[data-active=true] .nm{color:var(--ochre);font-weight:500}.tree .indent-1{padding-left:14px}.tree .indent-2{padding-left:28px}.tree .indent-3{padding-left:42px}.tree .indent-4{padding-left:56px}.tree .sec{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding:14px 6px 4px;margin-top:8px;border-top:1px dashed var(--line-dash)}.tree .sec:first-child{border-top:none;margin-top:0;padding-top:6px}.status-bar .theme-toggle{padding:1px 6px;gap:5px;font-size:10px}.status-bar .theme-toggle .theme-toggle-glyph{width:14px;height:14px;font-size:9px}.palette{position:fixed;inset:0;display:grid;place-items:start center;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding-top:108px;z-index:50}.palette-box{width:560px;background:var(--paper);border:1px solid var(--ink);border-radius:8px;box-shadow:var(--shadow-3);overflow:hidden}html[data-theme=dark] .palette-box{border-color:var(--border-hi)}.palette-ipt{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}.palette-ipt input{flex:1 1;border:0;background:transparent;outline:none;font-family:Inter,sans-serif;font-size:14px;color:var(--ink)}.palette-kbd{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);padding:2px 5px;border:1px solid var(--line);border-radius:3px;background:var(--paper-2)}.palette-body{max-height:340px;overflow-y:auto}.palette-grp{padding:6px 0}.palette-gh{padding:6px 14px 4px;font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.palette-item{display:grid;grid-template-columns:24px 1fr auto;grid-gap:10px;gap:10px;align-items:center;padding:7px 14px;cursor:default}.palette-item:hover,.palette-item[data-active=true]{background:var(--ochre-tint)}.palette-ic{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);text-align:center}.palette-nm{font-family:Inter,sans-serif;font-size:13px;color:var(--ink)}.palette-meta{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);margin-left:8px}.palette-ft,.palette-sc{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-3);letter-spacing:.04em}.palette-ft{padding:8px 14px;background:var(--paper-3);border-top:1px solid var(--line-soft);display:flex;gap:14px}@media (max-width:900px){.learn-body{grid-template-columns:1fr}.learn-body>.left,.learn-body>.right{display:none}.nb{padding:20px 20px 60px}}@media (max-width:600px){.nb{padding:16px 12px 60px}.cell{padding:10px 12px}.cell .gutter{display:none}.cell.code-cell .code{font-size:11px}}