.crumbs{font:500 11px/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--label);flex-wrap:wrap;gap:6px 10px;margin:0;padding:0;list-style:none;display:flex}.crumbs a{color:var(--dim);text-decoration:none}.crumbs a:hover{color:var(--accent)}.crumbs li+li:before{content:"/";color:var(--faint);margin-right:10px}.ac-head{flex-direction:column;gap:28px;padding-block:clamp(64px,7vw,112px) clamp(48px,5vw,80px);display:flex}.ac-head .row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px 96px;display:flex}.ac-head h1{max-width:13ch}.ac-list{border-top:1px solid var(--line-2);margin:0;padding:0;list-style:none}.ac-list>li{border-bottom:1px solid var(--line)}.ac-item{color:var(--paper);grid-template-columns:72px minmax(0,1fr) auto;align-items:baseline;gap:8px 32px;padding:30px 0;text-decoration:none;display:grid}.ac-item .n{font:400 13px/1 var(--f-mono);letter-spacing:.08em;color:var(--muted)}.ac-item .tt{flex-direction:column;gap:10px;display:flex}.ac-item .tt strong{font:400 clamp(32px, 3.6vw, 56px)/1 var(--f-display);transition:color .4s}.ac-item .tt span{max-width:60ch;font:300 16px/1.6 var(--f-body);color:var(--muted)}.ac-item .go{font:400 12px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);white-space:nowrap}.ac-item:hover .tt strong,.ac-item:hover .go{color:var(--accent)}@media (width<=720px){.ac-item{grid-template-columns:44px minmax(0,1fr)}.ac-item .go{grid-column:2}}.ac-facts{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:0 32px;margin:0;display:grid}.ac-facts div{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:18px 0;display:flex}.ac-facts dt{font:400 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--label)}.ac-facts dd{font:400 21px/1.25 var(--f-display);margin:0}.ch-progress{flex-direction:column;gap:10px;max-width:420px;display:flex}.ch-progress .bar{background:var(--line);height:2px}.ch-progress .bar span{background:var(--accent);width:0;height:100%;transition:width .6s var(--ease);display:block}.ch-layout{padding-bottom:var(--section);grid-template-columns:250px minmax(0,1fr);align-items:start;gap:72px;display:grid}.ch-rail{border-top:1px solid var(--line-2);flex-direction:column;display:flex;position:sticky;top:104px}.ch-rail a{border-bottom:1px solid var(--line-3);color:var(--dim);grid-template-columns:34px minmax(0,1fr);gap:2px 8px;padding:13px 0;text-decoration:none;display:grid}.ch-rail a .n{font:400 11px/1.8 var(--f-mono);color:var(--faint)}.ch-rail a .t{font:400 14px/1.35 var(--f-body)}.ch-rail a .m{font:400 10px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);grid-column:2}.ch-rail a:hover,.ch-rail a.active{color:var(--paper)}.ch-rail a.active .n{color:var(--accent)}.ch-rail a.done .m:after{content:" · done";color:var(--accent)}.ch-main{flex-direction:column;gap:clamp(96px,10vw,140px);min-width:0;display:flex}@media (width<=960px){.ch-layout{grid-template-columns:minmax(0,1fr);gap:48px}.ch-rail{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));column-gap:24px;display:grid;position:static}}.lesson{flex-direction:column;gap:36px;min-width:0;scroll-margin-top:96px;display:flex}.lesson-head{border-top:1px solid var(--line-2);flex-direction:column;gap:18px;padding-top:22px;display:flex}.lesson-head .label{justify-content:space-between;gap:16px;display:flex}.lesson-head h2{font:400 clamp(40px, 4.6vw, 68px)/1 var(--f-display);letter-spacing:-.01em;margin:0}.text{max-width:68ch;font:300 17px/1.75 var(--f-body);color:var(--soft);flex-direction:column;gap:18px;display:flex}.text p{margin:0}.text strong{color:var(--paper);font-weight:500}.text h3{font:400 30px/1.1 var(--f-display);color:var(--paper);margin:18px 0 0}.text ul,.text ol{flex-direction:column;gap:8px;margin:0;padding-left:1.2em;display:flex}code,.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:.88em}code{color:var(--paper);background:var(--ink-3);padding:2px 6px}.short{background:var(--ink-2);border:1px solid var(--line);border-left:2px solid var(--accent);flex-direction:column;gap:10px;max-width:72ch;padding:24px 28px;display:flex}.short p{font:400 clamp(22px, 2vw, 28px)/1.3 var(--f-display);color:var(--paper);margin:0}.note{border:1px solid var(--line);flex-direction:column;gap:8px;max-width:72ch;padding:20px 24px;display:flex}.note p{font:300 15px/1.65 var(--f-body);color:var(--body);margin:0}.tbl{border-top:1px solid var(--line-2);overflow-x:auto}.tbl table{border-collapse:collapse;width:100%;min-width:560px;font:300 15px/1.55 var(--f-body);color:var(--body)}.tbl th{text-align:left;font:500 10px/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--label);border-bottom:1px solid var(--line);padding:14px 18px 14px 0}.tbl td{border-bottom:1px solid var(--line);vertical-align:top;padding:16px 18px 16px 0}.tbl td:first-child{color:var(--paper);font-weight:400}.steps{counter-reset:s;border-top:1px solid var(--line-2);max-width:900px;margin:0;padding:0;list-style:none}.steps>li{counter-increment:s;border-bottom:1px solid var(--line);grid-template-columns:64px minmax(0,1fr);gap:6px 20px;padding:24px 0;display:grid}.steps>li:before{content:counter(s, decimal-leading-zero);font:400 36px/1 var(--f-display);color:var(--accent);grid-row:span 2}.steps h4{font:500 17px/1.35 var(--f-body);color:var(--paper);margin:0}.steps p{font:300 16px/1.7 var(--f-body);color:var(--body);max-width:66ch;margin:0}.lab{background:var(--ink-2);border:1px solid var(--line);flex-direction:column;gap:22px;min-width:0;padding:clamp(22px,3vw,36px);display:flex}.lab-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.lab-head h3{font:400 30px/1.05 var(--f-display);margin:0}.lab .hint{font:300 15px/1.6 var(--f-body);color:var(--muted);max-width:70ch;margin:0}.lab button,.chip{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper);border:1px solid var(--line-2);cursor:pointer;background:0 0;min-height:40px;padding:0 16px;transition:background .3s,color .3s,border-color .3s}.lab button:hover{border-color:var(--paper)}.lab button[aria-pressed=true]{background:var(--paper);color:var(--ink);border-color:var(--paper)}.lab button.solid{background:var(--accent);color:var(--ink);border-color:var(--accent)}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.check{border-top:1px solid var(--line);flex-direction:column;display:flex}.check label{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:22px minmax(0,1fr);gap:16px;padding:16px 0;display:grid}.check input{width:17px;height:17px;accent-color:var(--accent);margin-top:4px}.check b{font:400 16px/1.4 var(--f-body);color:var(--paper);display:block}.check small{font:300 14px/1.55 var(--f-body);color:var(--muted);margin-top:3px;display:block}.edl{white-space:pre;background:var(--ink);border:1px solid var(--line);font:400 12.5px/2 var(--f-mono);color:var(--body);margin:0;padding:18px 20px;overflow-x:auto}.edl .ln{width:max-content;min-width:100%;display:block}.edl .ln.sel{background:#cfa15f1f}.edl .cm{color:var(--faint)}.edl .f{cursor:pointer;border-bottom:1px dotted var(--faint)}.edl .f:hover,.edl .f.on{color:var(--accent);border-bottom-color:var(--accent)}.explain{border:1px solid var(--line);flex-direction:column;gap:8px;min-height:140px;padding:20px 22px;display:flex}.explain .k{font:500 10px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.explain h4{font:400 26px/1.1 var(--f-display);margin:0}.explain p{font:300 15px/1.6 var(--f-body);color:var(--body);margin:0}.explain .calc{font:400 12px/1.6 var(--f-mono);color:var(--dim)}.cmap{overflow-x:auto}.cmap svg{width:100%;min-width:640px;height:auto;display:block}.event{border:1px solid var(--accent);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.event div{flex-direction:column;gap:4px;padding:14px 18px;display:flex}.event strong{font:400 15px/1.3 var(--f-mono);color:var(--paper)}.files{flex-direction:column;gap:8px;display:flex}.lab .file{text-align:left;text-transform:none;letter-spacing:.02em;min-height:56px;font:400 13px/1.4 var(--f-mono);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1.4fr) minmax(0,.8fr);align-items:center;gap:4px 16px;padding:12px 18px;display:grid}.lab .file.right{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.lab .file.wrong{border-color:var(--faint);box-shadow:inset 3px 0 0 var(--faint);opacity:.7}.fb{border:1px solid var(--line);font:300 15px/1.6 var(--f-body);color:var(--body);margin:0;padding:16px 20px}.fb.ok{border-color:var(--accent);color:var(--paper)}@media (width<=640px){.lab .file{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.flam canvas{background:var(--ink);border:1px solid var(--line);width:100%;height:150px;display:block}.videos{border-top:1px solid var(--line-2);flex-direction:column;display:flex}.video{border-bottom:1px solid var(--line);color:var(--paper);grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:6px 22px;padding:18px 0;text-decoration:none;display:grid}.video .play{border:1px solid var(--line-2);border-radius:50%;place-items:center;width:44px;height:44px;transition:background .4s,border-color .4s;display:grid}.video .play svg{margin-left:3px}.video .tt{flex-direction:column;gap:4px;min-width:0;display:flex}.video .tt strong{font:400 22px/1.2 var(--f-display);transition:color .4s}.video .tt span{font:300 14px/1.5 var(--f-body);color:var(--muted)}.video .meta{font:400 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--label);white-space:nowrap;flex-direction:column;align-items:flex-end;gap:6px;display:flex}.video .meta .off,.video:hover .tt strong{color:var(--accent)}.video:hover .play{background:var(--accent);border-color:var(--accent);color:var(--ink)}@media (width<=640px){.video{grid-template-columns:52px minmax(0,1fr)}.video .meta{flex-direction:row;grid-column:2;align-items:flex-start;gap:12px}}.res{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:0 32px;display:grid}.res a{border-top:1px solid var(--line);color:var(--paper);flex-direction:column;gap:6px;padding:18px 0;text-decoration:none;display:flex}.res a span:first-child{font:400 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--label)}.res a span:last-child{font:400 20px/1.25 var(--f-display)}.res a:hover span:last-child{color:var(--accent)}.quiz{flex-direction:column;gap:30px;display:flex}.q{flex-direction:column;gap:12px;display:flex}.q .qq{font:400 22px/1.3 var(--f-display);color:var(--paper);margin:0}.q .opts{flex-direction:column;gap:6px;display:flex}.lab .q .opts button{text-align:left;text-transform:none;letter-spacing:0;font:300 15px/1.45 var(--f-body);padding:12px 16px}.lab .q .opts button.right{border-color:var(--accent);color:var(--accent)}.lab .q .opts button.wrong{color:var(--muted);border-color:var(--line)}.q .why{font:300 14px/1.6 var(--f-body);color:var(--muted);margin:0}.terms{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:0 40px;margin:0;display:grid}.terms div{border-top:1px solid var(--line);padding:16px 0}.terms dt{font:500 11px/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.terms dd{font:300 15px/1.6 var(--f-body);color:var(--body);margin:0}.lesson-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:22px;display:flex}.done-btn[aria-pressed=true]{background:var(--paper);color:var(--ink);border-color:var(--paper)}.slate-out{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:stretch;gap:20px;display:grid}@media (width<=760px){.slate-out{grid-template-columns:minmax(0,1fr)}}.board{background:var(--paper);color:var(--ink);flex-direction:column;min-width:0;display:flex}.board .sticks{background:repeating-linear-gradient(-45deg, var(--ink) 0 16px, var(--paper) 16px 32px);border-bottom:3px solid var(--ink);height:26px}.board .sticks.open{transform-origin:0 100%;transform:rotate(-6deg)}.board .cells{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.board .cells div{border-bottom:1px solid #0b0b0a40;border-right:1px solid #0b0b0a40;flex-direction:column;gap:4px;min-width:0;padding:10px 12px 12px;display:flex}.board .cells div:last-child{border-right:0}.board .cells span{font:500 9px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#5a564f}.board .cells strong{font:400 clamp(30px, 4vw, 46px)/1 var(--f-display);overflow-wrap:anywhere}.board .meta{font:500 10px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#5a564f;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;padding:10px 12px;display:flex}.board.flip .cells,.board.flip .meta{transform:rotate(180deg)}.board .mos{border:1px solid;border-radius:50%;margin-left:auto;padding:1px 8px}.call{border:1px solid var(--line);flex-direction:column;gap:12px;padding:20px 22px;display:flex}.call q{font:italic 400 clamp(26px, 2.6vw, 36px)/1.15 var(--f-display);color:var(--paper);quotes:"“" "”"}.call p{font:300 15px/1.6 var(--f-body);color:var(--body);margin:0}.field-row{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.field-row label{font:500 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--label);flex-direction:column;gap:6px;display:flex}.field-row input,.field-row select{background:var(--ink);min-width:90px;min-height:40px;color:var(--paper);border:1px solid var(--line-2);font:400 15px/1 var(--f-mono);border-radius:0;padding:0 12px}.field-row input:focus,.field-row select:focus{border-color:var(--accent);outline:none}.inspect{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width<=860px){.inspect{grid-template-columns:minmax(0,1fr)}}.inspect .rows{border-top:1px solid var(--line);flex-direction:column;display:flex}.lab .inspect .rows button{text-align:left;border:0;border-bottom:1px solid var(--line);text-transform:none;letter-spacing:0;min-height:0;font:400 12.5px/1.4 var(--f-mono);color:var(--dim);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px;padding:11px 12px;display:grid}.lab .inspect .rows button span:last-child{color:var(--paper);overflow-wrap:anywhere}.lab .inspect .rows button:hover,.lab .inspect .rows button[aria-pressed=true]{color:var(--accent);background:#cfa15f1a}.inspect .grp{font:500 10px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--line);padding:14px 12px 6px}.inspect .explain{position:sticky;top:104px}.diagram{overflow-x:auto}.diagram svg{width:100%;min-width:620px;height:auto;display:block}.oset{border:1px solid var(--line);flex-direction:column;gap:14px;padding:18px 20px;display:flex}.oset .vals{flex-wrap:wrap;gap:6px;display:flex}.oset .vals span{border:1px solid var(--line);font:400 13px/1 var(--f-mono);font-variant-numeric:tabular-nums;color:var(--paper);padding:6px 10px}.oset .fb{margin:0}.keytrainer{text-align:center;border:1px dashed var(--line-2);cursor:pointer;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;display:flex}.keytrainer:focus{border:1px solid var(--accent);outline:none}.keytrainer strong{font:400 clamp(26px, 3vw, 38px)/1.15 var(--f-display)}.keytrainer .kfb{font:400 13px/1.4 var(--f-mono);color:var(--muted);min-height:1.4em}kbd{font:500 .85em var(--f-mono);border:1px solid var(--line-2);color:var(--paper);border-bottom-width:2px;padding:1px 7px}.ac-item.soon{cursor:default}.ac-item.soon .tt strong{color:var(--faint);font-style:italic}.ac-item.soon:hover .tt strong,.ac-item.soon .go{color:var(--faint)}
