.lesson-body{--run-fg:var(--ok);--shadow:none;--toc-w:272px;--dg-line:#8a7a86;--dg-text:#2a1b3d;--dg-border:#e0cfc2;--dg-bg:#fbf6f1;--dg-surface:#ffffff;--dg-surface2:#f5ece3;--dg-soft:#fdeae2;--dg-x1:#171404;--dg-x2:#0b0905;--dg-x3:#a4987d}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .lesson-body{--dg-line:#9c8aa0;--dg-text:#f6ece6;--dg-border:#46355a;--dg-bg:#241833;--dg-surface:#2e2140;--dg-surface2:#3a2b4d;--dg-soft:#3a2030;--dg-x1:#e0d7af;--dg-x2:#eae3d4;--dg-x3:#71654b}}html[data-theme=dark] .lesson-body{--dg-line:#9c8aa0;--dg-text:#f6ece6;--dg-border:#46355a;--dg-bg:#241833;--dg-surface:#2e2140;--dg-surface2:#3a2b4d;--dg-soft:#3a2030;--dg-x1:#e0d7af;--dg-x2:#eae3d4;--dg-x3:#71654b}.lesson-body *{box-sizing:border-box}.lesson-body{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){.lesson-body{scroll-behavior:auto}}.lesson-body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1.03rem;line-height:1.85;-webkit-text-size-adjust:100%}.lesson-body h1,.lesson-body h2,.lesson-body h3,.lesson-body h4{font-family:var(--font-display);line-height:1.45;font-weight:600;text-wrap:balance;margin-block:1.8em .5em}.lesson-body h2{font-size:1.55rem}.lesson-body h3{font-size:1.2rem}.lesson-body h4{font-size:1.05rem;color:var(--brand-ink)}.lesson-body p{margin-block:.85em}.lesson-body a{color:var(--brand-ink);text-underline-offset:.22em}.lesson-body ::selection{background:var(--brand-soft);color:var(--ink)}.lesson-body :focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}.lesson-body strong{font-weight:600}.lesson-body ol,.lesson-body ul{-webkit-padding-start:1.4em;padding-inline-start:1.4em}.lesson-body li{margin-block:.35em}.lesson-body code,.lesson-body kbd,.lesson-body pre{font-family:var(--font-mono)}.lesson-body code{display:inline;direction:ltr;unicode-bidi:-webkit-isolate;unicode-bidi:isolate;background:var(--surface-2);color:var(--ink);padding:.08rem .28rem;border-radius:5px;font-size:.87em;overflow-wrap:break-word}.lesson-body pre{direction:ltr;text-align:left}.lesson-body .table-wrap code{white-space:pre-wrap}.lesson-body .code-wrap{position:relative;margin-block:1.3rem}.lesson-body pre.code-block{margin:0;background:var(--code-bg);color:var(--code-fg);padding:1.2rem 1.3rem;border-radius:var(--r);overflow-x:auto;font-size:.86rem;line-height:1.8}.lesson-body .code-wrap pre.code-block{padding-top:3rem}@media (pointer:coarse){.lesson-body .code-wrap pre.code-block{padding-top:3.7rem}}.lesson-body pre.code-block::-webkit-scrollbar{height:8px}.lesson-body pre.code-block::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:8px}.lesson-body pre.code-block .cm{color:var(--ink-2)}.lesson-body .copy-btn{position:absolute;top:.6rem;inset-inline-end:.6rem;min-height:32px;padding:0 .75rem;border-radius:8px;border:1px solid #4a3a5c;background:#2e2140;color:#f6ece6;font:500 .75rem var(--font-body);cursor:pointer;opacity:.9;transition:background-color var(--dur-fast) var(--ease)}.lesson-body .copy-btn:hover{background:#3a2b4d}.lesson-body .copy-btn.done{background:var(--tip);color:#06201f;border-color:var(--tip)}@media (pointer:coarse){.lesson-body #tocSearch,.lesson-body .copy-btn,.lesson-body .toc-search input{min-height:44px}}.lesson-body .card pre.code-block{white-space:pre-wrap;word-break:break-word;font-size:.8rem;padding:.9rem 1rem}.lesson-body .layout{max-width:1280px;margin:0 auto;padding-block:1.5rem 5rem;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}@media (min-width:1025px){.lesson-body .layout{-webkit-padding-start:calc(var(--toc-w) + 3rem);padding-inline-start:calc(var(--toc-w) + 3rem);-webkit-padding-end:2rem;padding-inline-end:2rem}}.lesson-body main{max-width:880px;margin-inline:auto;min-width:0}.lesson-body .card p,.lesson-body .primer p,.lesson-body .r-desc,.lesson-body .r-title,.lesson-body main .callout,.lesson-body main h2,.lesson-body main h3,.lesson-body main h4,.lesson-body main li,.lesson-body main p,.lesson-body main summary{unicode-bidi:plaintext;text-align:start}.lesson-body .progress{position:fixed;z-index:60;inset:0 0 auto 0;height:2px;pointer-events:none}.lesson-body .progress i{display:block;height:100%;background:var(--brand);transform:scaleX(0);transform-origin:100% 50%}.lesson-body #toc{position:fixed;z-index:40;inset-block:0;inset-inline-start:0;width:var(--toc-w);overflow-y:auto;background:var(--surface);-webkit-border-end:1px solid var(--line);border-inline-end:1px solid var(--line);padding:calc(1.2rem + env(safe-area-inset-top, 0px)) 1rem calc(2rem + env(safe-area-inset-bottom, 0px))}.lesson-body .toc-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.8rem}.lesson-body .toc-title{font-family:var(--font-display);font-size:.95rem;font-weight:600}.lesson-body .toc-btns{display:flex;gap:.4rem;align-items:center}.lesson-body .lang-btn,.lesson-body .theme-btn,.lesson-body .toc-toggle-btn{min-height:44px;min-width:44px;padding:0 .85rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:500 .82rem var(--font-body);cursor:pointer;transition:background-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.lesson-body .lang-btn{color:var(--brand);font-weight:600}.lesson-body .lang-btn:active,.lesson-body .theme-btn:active,.lesson-body .toc-toggle-btn:active{transform:scale(.97)}.lesson-body .toc-toggle-btn{display:none}.lesson-body .toc-search{position:relative;margin-bottom:.7rem}.lesson-body .toc-search input{width:100%;min-height:40px;padding:0 .8rem;border-radius:10px;border:1px solid var(--line-strong);background:var(--tint);color:var(--ink);font:400 .86rem var(--font-body)}.lesson-body .toc-search input::placeholder{color:var(--ink-2)}.lesson-body .toc-links{display:flex;flex-direction:column;gap:2px}.lesson-body #toc a{display:flex;align-items:center;gap:.55rem;padding:.45rem .55rem;border-radius:10px;color:var(--ink-2);text-decoration:none;font-size:.88rem;line-height:1.4;min-height:40px;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.lesson-body #toc a .toc-num{flex:none;min-width:1.6rem;height:1.6rem;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:var(--surface-2);font:500 .74rem var(--font-mono);color:var(--ink-2)}.lesson-body #toc a .toc-label{flex:1 1 auto;min-width:0;unicode-bidi:-webkit-isolate;unicode-bidi:isolate;text-align:start;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lesson-body #toc a .toc-done{flex:none;font-size:.78rem;color:var(--ok);opacity:0}.lesson-body #toc a.is-done .toc-done{opacity:1}.lesson-body #toc a[aria-current=page]{background:var(--brand-soft);color:var(--ink);font-weight:500}.lesson-body #toc a[aria-current=page] .toc-num{background:var(--brand);color:var(--on-brand);font-weight:600}@media (hover:hover) and (pointer:fine){.lesson-body #toc a:hover{background:var(--surface-2);color:var(--ink)}}@media (pointer:coarse){.lesson-body #toc a{min-height:44px}}.lesson-body .toc-foot{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--ink-2);display:flex;align-items:center;gap:.5rem}.lesson-body .toc-foot .bar{flex:1 1 auto;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.lesson-body .toc-foot .bar i{display:block;height:100%;background:var(--ok);width:0;transition:width var(--dur-base) var(--ease)}.lesson-body .sheet{display:block;position:relative;background:var(--surface);border-radius:10px;padding:clamp(1.25rem,4.5vw,3.2rem);margin-bottom:1.6rem;outline:none;border:1px solid var(--line)}@media (prefers-reduced-motion:no-preference){.lesson-body .sheet.turn{animation:sheetIn var(--dur-slow) var(--ease) both}}@keyframes sheetIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.lesson-body .sheet>:first-child,.lesson-body .sheet>section:first-child>:first-child{margin-top:0}.lesson-body .sheet .part-divider{margin:0 0 1.4rem;padding:0 0 1.4rem;border-bottom-width:1px;border-left-width:0;border-bottom:1px solid var(--line);border-right-width:0;border-top-width:0;background:none}.lesson-body .part-divider h2,.lesson-body .sheet .part-divider h1{margin:0;font-size:clamp(1.55rem,3.8vw,2.1rem);font-weight:700;line-height:1.5}.lesson-body .sheet .hero{margin:0 0 1.8rem;padding:0 0 1.8rem;border-bottom:1px solid var(--line)}.lesson-body .sheet .hero h1{margin:0 0 .7rem;font-size:clamp(1.8rem,4.6vw,2.5rem);font-weight:700;line-height:1.3}.lesson-body .hero p.lead{color:var(--ink-2);font-size:1.08rem;max-width:62ch}.lesson-body .hero .meta{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem}.lesson-body .part-divider .kicker{display:inline-flex;align-items:center;min-height:28px;padding:0 .8rem;margin-bottom:.8rem;border-radius:999px;background:var(--brand-soft);font:600 .8rem var(--font-body)}.lesson-body .part-num{display:none}.lesson-body .badge{display:inline-flex;align-items:center;gap:.35rem;min-height:32px;padding:0 .85rem;border-radius:999px;background:var(--brand-soft);color:var(--brand);font:500 .82rem var(--font-body)}.lesson-body .badge.alt{background:var(--surface-2);color:var(--ink-2)}.lesson-body .badge .ic{font-size:.95em;line-height:1}.lesson-body .primer{display:grid;grid-gap:.9rem;gap:.9rem;margin:0 0 2rem;padding:1.2rem 1.4rem;border-radius:var(--r-lg);background:var(--tint);border:1px solid var(--line)}.lesson-body .primer-row{display:grid;grid-template-columns:7.6rem 1fr;grid-gap:1rem;gap:1rem;align-items:baseline}.lesson-body .primer-row p{margin:0;max-width:none}.lesson-body .primer-k{font:600 .84rem var(--font-body);color:var(--brand)}.lesson-body .primer-row.alt .primer-k{color:var(--tip)}.lesson-body .primer-row.warn .primer-k{color:var(--warn)}@media (max-width:560px){.lesson-body .primer{padding:1rem 1.1rem}.lesson-body .primer-row{grid-template-columns:1fr;gap:0}}.lesson-body .card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));grid-gap:1rem;gap:1rem;margin:1.5rem 0}.lesson-body .card{background:var(--tint);border:1px solid var(--line);border-radius:var(--r);padding:1.25rem 1.4rem;min-width:0}.lesson-body .card h3{margin:0 0 .4rem;font-size:1.05rem}.lesson-body .card p{margin:.4em 0 0}.lesson-body .card .sym{font-size:1.3rem;-webkit-margin-end:.4rem;margin-inline-end:.4rem}.lesson-body .table-wrap{margin:1.5rem 0;border-radius:var(--r);background:var(--tint);border:1px solid var(--line)}.lesson-body table{width:100%;border-collapse:collapse}.lesson-body td,.lesson-body th{padding:.75rem 1.1rem;text-align:start;border-bottom:1px solid var(--line);font-size:.94rem;line-height:1.7;vertical-align:top}.lesson-body th{background:var(--surface-2);color:var(--ink);font-weight:600;white-space:nowrap}.lesson-body tbody tr:last-child td{border-bottom:0}@media (hover:hover) and (pointer:fine){.lesson-body tbody tr:hover{background:var(--brand-soft)}}.lesson-body .callout{margin:1.5rem 0;padding:1rem 1.3rem;border-radius:var(--r)}.lesson-body .callout strong{display:block;margin-bottom:.25rem;font:600 .98rem var(--font-display)}.lesson-body .callout.tip{background:var(--tip-soft);border:1px solid color-mix(in srgb,var(--tip) 30%,transparent)}.lesson-body .callout.tip strong{color:var(--tip)}.lesson-body .callout.mistake{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.lesson-body .callout.mistake strong{color:var(--warn)}.lesson-body details{border-radius:var(--r);background:var(--tint);border:1px solid var(--line);margin:.7rem 0}.lesson-body summary{cursor:pointer;list-style:none;display:block;position:relative;font-weight:500;min-height:44px;padding-block:.9rem;-webkit-padding-start:1.2rem;padding-inline-start:1.2rem;-webkit-padding-end:3.1rem;padding-inline-end:3.1rem;border-radius:var(--r)}.lesson-body summary::-webkit-details-marker{display:none}.lesson-body summary:after{content:"+";position:absolute;inset-inline-end:1.15rem;top:.72rem;font:500 1.25rem var(--font-mono);color:var(--brand);transition:transform var(--dur-base) var(--ease)}.lesson-body details[open] summary:after{transform:rotate(45deg)}.lesson-body details[open] summary{border-bottom:1px solid var(--line);border-end-start-radius:0;border-end-end-radius:0}.lesson-body details>div,.lesson-body details>p{margin:0;padding:.9rem 1.2rem 1.1rem;max-width:none}@media (hover:hover) and (pointer:fine){.lesson-body summary:hover{background:var(--surface-2)}}.lesson-body .flashcard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));grid-gap:1rem;gap:1rem;margin:1.5rem 0}.lesson-body .flashcard{perspective:1000px;min-height:210px;cursor:pointer}.lesson-body .flashcard .flip-inner{position:relative;width:100%;height:100%;min-height:210px;transition:transform var(--dur-slow) var(--ease);transform-style:preserve-3d}.lesson-body .flashcard.flipped .flip-inner{transform:rotateY(180deg)}.lesson-body .flip-back,.lesson-body .flip-front{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--r);padding:1rem 1rem 1.7rem;display:flex;align-items:center;justify-content:center;text-align:center;overflow-y:auto;border:1px solid var(--line)}.lesson-body .flip-front{background:var(--tint);font-weight:600;font-size:.97rem;line-height:1.6}.lesson-body .flip-back{background:var(--brand-soft);transform:rotateY(180deg);font-size:.88rem;line-height:1.7}.lesson-body .fc-text{max-width:100%;margin-block:auto;unicode-bidi:plaintext}.lesson-body .flashcard .hint{position:absolute;bottom:7px;inset-inline:0;text-align:center;font-size:.7rem;font-weight:400;color:var(--ink-2)}.lesson-body .diagram{margin:1.4rem 0 0;padding:1.1rem;border-radius:var(--r-lg);background:var(--tint);border:1px solid var(--line);overflow-x:auto}.lesson-body .diagram svg{display:block;margin-inline:auto;max-width:100%;height:auto;overflow:hidden}.lesson-body .diagram.is-wide svg{max-width:none}.lesson-body .diagram .dg-d,.lesson-body .diagram .dg-l{display:block}.lesson-body .diagram .dg-d{display:none}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .lesson-body .diagram .dg-l{display:none}html:not([data-theme=light]) .lesson-body .diagram .dg-d{display:block}}html[data-theme=dark] .lesson-body .diagram .dg-l{display:none}html[data-theme=dark] .lesson-body .diagram .dg-d{display:block}.lesson-body .part-divider .big-picture{max-width:none;margin-bottom:0;position:relative;padding:.85rem 1rem;border-radius:var(--r-md,12px);background:var(--tint);border:1px solid var(--line)}.lesson-body .part-divider .bp-tag{display:inline-block;font-size:.7rem;font-weight:600;padding:.12rem .5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem;border-radius:999px;background:var(--accent-soft,#e8ebfb);color:var(--accent,#3347c4);vertical-align:.08em}.lesson-body section.takeaways{margin-top:1.6rem}.lesson-body section.takeaways h2{margin-bottom:.7rem}.lesson-body ul.scan{list-style:none;margin:0;padding:0;display:grid;grid-gap:.55rem;gap:.55rem}.lesson-body ul.scan li{position:relative;padding-block:.7rem;padding-inline:2.1rem .9rem;border-radius:var(--r-md,12px);background:var(--tint);border:1px solid var(--line);font-size:.95rem;line-height:1.75}.lesson-body ul.scan li:before{content:"";position:absolute;inset-inline-start:.85rem;top:1.18rem;width:.5rem;height:.5rem;border-radius:8px;background:var(--accent,#3347c4)}.lesson-body ul.scan li b{display:block;color:var(--ink);font-weight:650;margin-bottom:.1rem}.lesson-body ul.scan li span{color:var(--ink-2)}.lesson-body .bigpic{margin:1.3rem 0 1.6rem;padding:1rem 1.15rem 1.1rem;border-radius:var(--r,14px);background:var(--surface-2,#eef1f7);border:1px solid var(--line);-webkit-border-start:4px solid var(--accent);border-inline-start:4px solid var(--accent)}.lesson-body .bigpic h2{font-size:1.02rem;margin:0 0 .3rem}.lesson-body .bigpic>p{margin:0 0 .6rem;font-size:.92rem;color:var(--ink-2)}.lesson-body .bigpic .bp-points{margin:0;-webkit-padding-start:1.3rem;padding-inline-start:1.3rem;display:grid;grid-gap:.3rem;gap:.3rem;grid-template-columns:repeat(auto-fit,minmax(255px,1fr))}.lesson-body .bigpic .bp-points li{font-size:.94rem;line-height:1.6}.lesson-body .bigpic .bp-points a{text-decoration:none;border-bottom:1px dotted var(--line)}.lesson-body .bigpic .bp-points a:hover{border-bottom-style:solid;color:var(--accent)}.lesson-body .dg-key{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;margin-top:.9rem;padding-top:.8rem;border-top:1px solid var(--line)}.lesson-body .dg-key .k{font-size:.72rem;line-height:1.5;padding:.16rem .55rem;border-radius:999px;border:1.5px solid;white-space:nowrap}.lesson-body .dg-key .k-in{background:#fdeae2;border-color:#e2603f;color:#6e2a17}.lesson-body .dg-key .k-dec{background:#f8ead8;border-color:#b07a3a;color:#4f3410}.lesson-body .dg-key .k-ok{background:#e8f0e6;border-color:#456f50;color:#23402b}.lesson-body .dg-key .k-err{background:#f7e6ea;border-color:#a05470;color:#4f2236}.lesson-body .dg-key .k-key{background:#f0eaf6;border-color:#6a4f8f;color:#33224d}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .lesson-body .dg-key .k-in{background:#3a2030;border-color:#f07a58;color:#fbd5c8}html:not([data-theme=light]) .lesson-body .dg-key .k-dec{background:#3a2b1e;border-color:#d6a565;color:#f3dcc0}html:not([data-theme=light]) .lesson-body .dg-key .k-ok{background:#1f3324;border-color:#7fb08a;color:#cfe6cf}html:not([data-theme=light]) .lesson-body .dg-key .k-err{background:#3a1d2b;border-color:#e6a6b4;color:#f3d0da}html:not([data-theme=light]) .lesson-body .dg-key .k-key{background:#2e2140;border-color:#b59ad6;color:#e5dcf3}}html[data-theme=dark] .lesson-body .dg-key .k-in{background:#3a2030;border-color:#f07a58;color:#fbd5c8}html[data-theme=dark] .lesson-body .dg-key .k-dec{background:#3a2b1e;border-color:#d6a565;color:#f3dcc0}html[data-theme=dark] .lesson-body .dg-key .k-ok{background:#1f3324;border-color:#7fb08a;color:#cfe6cf}html[data-theme=dark] .lesson-body .dg-key .k-err{background:#3a1d2b;border-color:#e6a6b4;color:#f3d0da}html[data-theme=dark] .lesson-body .dg-key .k-key{background:#2e2140;border-color:#b59ad6;color:#e5dcf3}.lesson-body .diagram-caption{text-align:center!important;color:var(--ink-2);font-size:.85rem;margin:.7rem auto 1.5rem;max-width:62ch}.lesson-body .anatomy-box{display:inline-block;border-radius:var(--r);overflow:hidden;min-width:220px;background:var(--tint);border:1px solid var(--line)}.lesson-body .anatomy-box .a-row{padding:.6rem 1rem;border-bottom:1px solid var(--line);text-align:center}.lesson-body .anatomy-box .a-row:last-child{border-bottom:0}.lesson-body .anatomy-box .a-title{background:var(--brand-soft);font-weight:600}.lesson-body .flex-center{display:flex;justify-content:center;flex-wrap:wrap;gap:1.5rem;align-items:flex-start}.lesson-body .xref{color:var(--brand);font-weight:600;text-decoration:none;border-bottom:1px dashed var(--brand)}.lesson-body .sheet-nav{grid-template-columns:1fr auto 1fr;grid-gap:.8rem;gap:.8rem;align-items:stretch;margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--line)}.lesson-body .sheet-nav a{display:flex;flex-direction:column;justify-content:center;gap:.1rem;min-height:56px;padding:.6rem 1rem;border-radius:var(--r);background:var(--surface);transition:background-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.lesson-body .sheet-nav small{color:var(--ink-2);font-size:.76rem}.lesson-body .sheet-nav span{font:600 .95rem var(--font-display);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;unicode-bidi:plaintext}.lesson-body .sheet-nav .nav-next{text-align:end;align-items:flex-end;background:var(--brand);border-color:var(--brand)}.lesson-body .sheet-nav .nav-next,.lesson-body .sheet-nav .nav-next small{color:var(--on-brand)}.lesson-body .sheet-nav .nav-prev{align-items:flex-start}.lesson-body .sheet-nav .nav-home{grid-column:2;align-items:center;justify-content:center}.lesson-body .sheet-nav .nav-prev:only-of-type{grid-column:1}@media (hover:hover) and (pointer:fine){.lesson-body .sheet-nav a:hover{background:var(--brand-soft)}.lesson-body .sheet-nav .nav-next:hover{background:var(--brand);filter:brightness(1.08)}}@media (max-width:640px){.lesson-body .sheet-nav{grid-template-columns:1fr 1fr}.lesson-body .sheet-nav .nav-home{grid-column:1/-1;grid-row:1;flex-direction:row;min-height:44px}.lesson-body .sheet-nav .nav-prev{grid-column:1;grid-row:2}.lesson-body .sheet-nav .nav-next{grid-column:2;grid-row:2}}.lesson-body .topics-wrap h2{margin:0 0 .8rem;font-size:1.3rem}.lesson-body .topics-wrap:not(:has(>:not(h2))){display:none}.lesson-body .topics{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--tint)}.lesson-body .topic{display:flex;align-items:center;gap:.9rem;min-height:64px;padding:.75rem 1rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);transition:background-color var(--dur-fast) var(--ease)}.lesson-body .topic:last-child{border-bottom:0}.lesson-body .topic .t-num{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:2.2rem;height:2.2rem;border-radius:8px;background:var(--brand-soft);color:var(--brand);font:600 .9rem var(--font-mono)}.lesson-body .topic.is-done .t-num{background:var(--ok-soft);color:var(--ok)}.lesson-body .topic .t-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.1rem;unicode-bidi:plaintext}.lesson-body .topic .t-body b{font:600 1rem var(--font-display);line-height:1.5}.lesson-body .topic .t-body span{color:var(--ink-2);font-size:.86rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lesson-body .topic .t-meta{flex:none;font-size:.74rem;color:var(--ink-2);font-family:var(--font-mono)}@media (hover:hover) and (pointer:fine){.lesson-body .topic:hover{background:var(--brand-soft)}}@media (max-width:560px){.lesson-body .topic{padding:.7rem .8rem;gap:.7rem}.lesson-body .topic .t-meta{display:none}}.extra-questions .mcq,.lesson-body .mcq{margin:1.5rem 0;padding:1.1rem 1.3rem;border-radius:var(--r);background:var(--tint);border:1px solid var(--line)}.extra-questions .mcq>.mcq-q,.lesson-body .mcq>.mcq-q{font-weight:600;margin:0 0 .85rem;max-width:none}.extra-questions .mcq-opts,.lesson-body .mcq-opts{display:grid;grid-gap:.5rem;gap:.5rem}.extra-questions .mcq-opt,.lesson-body .mcq-opt{display:block;width:100%;text-align:start;min-height:44px;padding:.65rem 1rem;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:400 .95rem/1.7 var(--font-body);cursor:pointer;unicode-bidi:plaintext;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.extra-questions .mcq-opt:disabled,.lesson-body .mcq-opt:disabled{cursor:default}.extra-questions .mcq-opt.is-right,.lesson-body .mcq-opt.is-right{border-color:var(--ok);background:var(--ok-soft);color:var(--ink);font-weight:600}.extra-questions .mcq-opt.is-wrong,.lesson-body .mcq-opt.is-wrong{border-color:var(--warn);background:var(--warn-soft);color:var(--ink);text-decoration:line-through;opacity:.75}@media (hover:hover) and (pointer:fine){.extra-questions .mcq-opt:not(:disabled):hover,.lesson-body .mcq-opt:not(:disabled):hover{background:var(--brand-soft);border-color:var(--brand)}}.extra-questions .mcq-why,.lesson-body .mcq-why{display:none;margin-top:.9rem;padding:.75rem 1rem;border-radius:10px;background:var(--ok-soft);border:1px solid color-mix(in srgb,var(--ok) 30%,transparent);font-size:.92rem;line-height:1.8}.extra-questions .mcq-why p,.lesson-body .mcq-why p{margin:0;max-width:none}.lesson-body .stepper{margin:1.5rem 0;border-radius:var(--r);background:var(--tint);border:1px solid var(--line);overflow:hidden}.lesson-body .stepper>.st-title{margin:0;padding:.9rem 1.2rem;border-bottom:1px solid var(--line);font:600 .98rem var(--font-display);background:var(--surface-2)}.lesson-body .step{padding:1.1rem 1.2rem}.lesson-body .step>:first-child{margin-top:0}.lesson-body .step>:last-child{margin-bottom:0}.lesson-body .step p{max-width:none}.lesson-body .stepper-ctl{display:flex;align-items:center;gap:.7rem;padding:.7rem 1.2rem;border-top:1px solid var(--line);background:var(--surface-2)}.lesson-body .st-btn{min-height:40px;padding:0 1rem;border-radius:9px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:500 .85rem var(--font-body);cursor:pointer}.lesson-body .st-btn:disabled{opacity:.45;cursor:default}.lesson-body .st-primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.lesson-body .st-count{font:500 .78rem var(--font-mono);color:var(--ink-2);-webkit-margin-start:auto;margin-inline-start:auto}.lesson-body .st-dots{display:flex;gap:5px;align-items:center}.lesson-body .st-dots i{width:7px;height:7px;border-radius:8px;background:var(--line-strong);opacity:.5}.lesson-body .st-dots i.past{background:var(--brand);opacity:.55}.lesson-body .st-dots i.on{background:var(--brand);opacity:1;transform:scale(1.35)}.lesson-body .reslib{margin:1.3rem 0 2rem}.lesson-body .res-filters{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:1rem}.lesson-body .res-chip{min-height:36px;padding:0 .85rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font:500 .8rem var(--font-body);cursor:pointer}.lesson-body .res-chip.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.lesson-body .res-sep{width:1px;height:22px;background:var(--line);margin-inline:.3rem}.lesson-body .res-tally{font-size:.78rem;color:var(--ink-2);-webkit-margin-start:auto;margin-inline-start:auto;font-family:var(--font-mono)}.lesson-body .res-group{margin-bottom:1.4rem}.lesson-body .res-group>h3{margin:0 0 .6rem;font-size:1rem}.lesson-body .resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,285px),1fr));grid-gap:.7rem;gap:.7rem}.lesson-body .resource-card{display:block;padding:.85rem 1.05rem;background:var(--tint);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);min-width:0;transition:transform var(--dur-base) var(--ease),border-color var(--dur-base) var(--ease)}.lesson-body .resource-card .r-desc,.lesson-body .resource-card .r-title{display:block}.lesson-body .resource-card .r-top{display:flex;align-items:center;gap:.4rem;margin-bottom:.25rem;flex-wrap:wrap}.lesson-body .resource-card .r-kind{font:500 .68rem var(--font-body);padding:.1rem .5rem;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}.lesson-body .resource-card[data-type=doc] .r-kind{background:var(--brand-soft);color:var(--brand)}.lesson-body .resource-card[data-type=video] .r-kind{background:var(--warn-soft);color:var(--warn)}.lesson-body .resource-card[data-type=tool] .r-kind{background:var(--tip-soft);color:var(--tip)}.lesson-body .resource-card[data-type=article] .r-kind{background:var(--note-soft);color:var(--note)}.lesson-body .resource-card .r-title{font-weight:600;color:var(--brand);overflow-wrap:anywhere;line-height:1.6}.lesson-body .resource-card .r-desc{font-size:.86rem;color:var(--ink-2);margin-top:.2rem;line-height:1.65}.lesson-body .resource-card .r-foot{margin-top:.4rem;font:400 .72rem var(--font-mono);color:var(--ink-2);display:flex;gap:.55rem;flex-wrap:wrap}@media (hover:hover) and (pointer:fine){.lesson-body .resource-card:hover{transform:translateY(-2px);border-color:var(--brand)}}.lesson-body #sources ol,.lesson-body .srclist ol{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem;counter-reset:srcnum}.lesson-body #sources li,.lesson-body .srclist li{counter-increment:srcnum;position:relative;background:var(--tint);border:1px solid var(--line);border-radius:var(--r);padding:.7rem 1rem;-webkit-padding-start:3rem;padding-inline-start:3rem;line-height:1.7;unicode-bidi:plaintext;overflow-wrap:anywhere}.lesson-body #sources li:before,.lesson-body .srclist li:before{content:counter(srcnum);position:absolute;inset-inline-start:.8rem;top:.75rem;min-width:1.6rem;height:1.5rem;padding:0 .3rem;border-radius:6px;background:var(--surface-2);color:var(--ink-2);font:500 .72rem var(--font-mono);display:inline-flex;align-items:center;justify-content:center}.lesson-body .loading{display:grid;grid-gap:1rem;gap:1rem;padding:1rem 0}.lesson-body .loading i{display:block;height:1rem;border-radius:6px;background:var(--surface-2)}.lesson-body .loading i:first-child{width:45%;height:2rem}.lesson-body .loading i:nth-child(2){width:85%}.lesson-body .loading i:nth-child(3){width:70%}.lesson-body .load-err{padding:1.2rem;border-radius:var(--r);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.lesson-body .load-err button{margin-top:.6rem;min-height:40px;padding:0 1rem;border-radius:8px;border:1px solid var(--warn);background:transparent;color:var(--warn);font:500 .85rem var(--font-body);cursor:pointer}@media (max-width:1024px){.lesson-body #toc{position:static;width:auto;margin-bottom:1rem;border:1px solid var(--line);border-radius:var(--r-lg);padding:.8rem}.lesson-body .toc-toggle-btn{display:inline-flex;align-items:center;justify-content:center;padding:0;width:44px;-webkit-margin-end:.4rem;margin-inline-end:.4rem}.lesson-body .toc-header{margin-bottom:0}.lesson-body .toc-foot,.lesson-body .toc-links,.lesson-body .toc-search{display:none}.lesson-body .toc-search.open{display:block;margin-top:.8rem}.lesson-body .toc-links.open{display:flex;max-height:58vh;overflow-y:auto;margin-top:.5rem}.lesson-body .toc-foot.open{display:flex}.lesson-body main{max-width:none}}@media (max-width:640px){.lesson-body h2{font-size:1.4rem}.lesson-body .sheet{border-radius:8px;padding:1.1rem 1rem 1.4rem}}@media (prefers-reduced-motion:reduce){.lesson-body *,.lesson-body :after,.lesson-body :before{transition-duration:.001ms!important;animation-duration:.001ms!important}}@media (max-width:640px){.lesson-body .bigpic p,.lesson-body .diagram-caption,.lesson-body .sheet td,.lesson-body .sheet th{font-size:1rem}}.lesson-body #toc a .toc-num.toc-ic{background:transparent;font-size:1.15rem}.lesson-body{--run-fg:var(--on-brand)}.lesson-body .cw-btn.cw-go{background:var(--accent);color:var(--run-fg);border-color:var(--accent)}.lesson-body .cw-btn.cw-go:disabled{opacity:.6;cursor:progress}.lesson-body .cw-btn.is-ghost{border-color:rgba(127,138,160,.55)}.lesson-body .code-wrap textarea.cw-edit{display:block;width:100%;box-sizing:border-box;resize:vertical;margin:0;background:var(--surface);color:var(--ink);border:0;-webkit-border-start:4px solid var(--accent);border-inline-start:4px solid var(--accent);border-radius:0;padding:10px 14px;font:.9rem/1.7 var(--font-mono);-moz-tab-size:4;tab-size:4;direction:ltr;text-align:left}.lesson-body .code-wrap textarea.cw-edit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lesson-body .cw-run{margin-top:12px;background:#0c111b;color:#e6eaf2;border-radius:6px;overflow:hidden;direction:ltr;text-align:left}.lesson-body .cw-run[hidden]{display:none}.lesson-body .cw-run-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 12px;background:rgba(255,255,255,.08);color:#c4ccdd;font:600 .74rem var(--font-body);direction:inherit}.lesson-body .cw-run-head b{color:#fff;font-weight:600}.lesson-body .cw-run-head .cw-run-tag{flex:1 1}.lesson-body .cw-explain-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.35);border-radius:3px;background:none;color:#fff;font:600 .72rem var(--font-body);padding:3px 9px;cursor:pointer}.lesson-body .cw-explain-btn:hover{background:rgba(255,255,255,.12)}.lesson-body .cw-explain-btn:disabled{opacity:.6;cursor:progress}.lesson-body .cw-explain-btn[hidden]{display:none}.lesson-body .cw-explain{margin-top:12px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.15);color:#e6eaf2;font:.9rem/1.75 var(--font-body);text-align:start;white-space:normal}.lesson-body .cw-explain b{display:block;margin-bottom:4px;color:#fff;font-size:.78rem}.lesson-body .cw-explain p{margin:0 0 6px;color:inherit;font:inherit}.lesson-body .cw-explain ul{margin:0 0 6px;-webkit-padding-start:1.2em;padding-inline-start:1.2em}.lesson-body .cw-explain li{color:inherit;font:inherit}.lesson-body .cw-explain code{background:rgba(255,255,255,.12);color:#fff;padding:0 4px;border-radius:3px;font:.85em var(--font-mono)}.lesson-body .cw-explain pre{margin:6px 0;padding:8px;background:rgba(0,0,0,.35);border-radius:4px}.lesson-body .cw-run-body{padding:10px 12px;max-height:440px;overflow:auto;font:.86rem/1.65 var(--font-mono)}.lesson-body .cw-run-body pre{margin:0;padding:0;background:none;color:inherit;font:inherit;white-space:pre-wrap;word-break:break-word}.lesson-body .cw-run-body.is-err{color:#ffb0ba}.lesson-body .cw-run-body .table-wrap{margin:0 0 10px}.lesson-body .cw-run-body table{border-collapse:collapse;font:inherit;width:auto;min-width:0;background:none}.lesson-body .cw-run-body td,.lesson-body .cw-run-body th{padding:4px 12px;border:1px solid rgba(255,255,255,.16);color:#e6eaf2;background:none;text-align:left}.lesson-body .cw-run-body th{background:rgba(255,255,255,.08);font-weight:600}.lesson-body .cw-uml{margin:12px 0 0;padding:10px 0 0;border-top:1px solid rgba(255,255,255,.16)}.lesson-body .cw-uml-t{font:600 .78rem var(--font-body);color:#aab3c6;margin-bottom:8px}.lesson-body .cw-uml-h{overflow-x:auto}.lesson-body .cw-uml-svg{max-width:100%;height:auto;display:block;margin-inline:auto}.lesson-body .cw-uml figcaption{margin-top:6px;font:.76rem var(--font-body);color:#aab3c6;text-align:center}.lesson-body .cw-none{margin:0 0 6px;color:#aab3c6;font:.8rem var(--font-body)}.lesson-body .cw-tcap{margin:8px 0 4px;color:#c9d1e6;font:600 .8rem var(--font-body)}.lesson-body .cw-tcap:first-child{margin-top:0}.lesson-body .code-wrap.is-run.is-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-column-gap:14px;column-gap:14px;align-items:start}.lesson-body .code-wrap.is-run.is-split>pre,.lesson-body .code-wrap.is-run.is-split>textarea{grid-row:1}.lesson-body .code-wrap.is-run.is-split>.cw-bar{grid-column:1;grid-row:2}.lesson-body .code-wrap.is-run.is-split>.cw-run{grid-row:1/span 2;margin-top:0;align-self:stretch}.lesson-body .card pre.code-block,.lesson-body .code-wrap pre.code-block{white-space:pre;word-break:normal;overflow-x:auto}.lesson-body .code-wrap textarea.cw-edit{white-space:pre;overflow:auto}.lesson-body .card-grid:has(pre.code-block){grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));align-items:start}.lesson-body .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lesson-body .toc-sem{margin:14px 12px 4px;font:600 .74rem var(--font-body);color:var(--ink-2);letter-spacing:0}.lesson-body .topics-wrap+.topics-wrap{margin-top:44px}.lesson-body .site-foot .duck{width:112px;height:112px;margin-bottom:18px;box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 30%,transparent),0 0 0 7px var(--surface),0 12px 40px -12px rgba(226,96,63,.45)}.lesson-body{--accent:var(--brand);--accent-soft:var(--brand-soft)}@media (min-width:1100px){.lesson-body .layout{max-width:1600px}.lesson-body main{max-width:1120px}.lesson-body{--foot-w:1120px}}@media (min-width:1500px){.lesson-body main{max-width:1240px}.lesson-body{--foot-w:1240px}}.lesson-body{--on-accent:var(--on-brand)}.lesson-body .sheet-nav{direction:inherit;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-gap:.6rem;gap:.6rem;align-items:center;margin-top:2rem;padding-top:0;border-top:0}.lesson-body .sheet-nav a{display:inline-flex;flex-direction:row;align-items:center;gap:.45rem;width:auto;max-width:100%;min-height:0;height:2.35rem;padding:0 1rem;border-radius:8px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);text-decoration:none;min-width:0;box-shadow:none;font-size:.86rem;line-height:1;transition:background-color .15s ease,border-color .15s ease,filter .15s ease}.lesson-body .sheet-nav a:hover{transform:none;border-color:var(--accent);background:var(--accent-soft)}.lesson-body .sheet-nav a:active{transform:scale(.98)}.lesson-body .sheet-nav small{flex:none;display:block;font-size:.86rem;font-weight:700;letter-spacing:0;color:inherit;line-height:1}.lesson-body .sheet-nav small:before{content:none!important}.lesson-body .sheet-nav a.nav-next span,.lesson-body .sheet-nav a.nav-prev span{display:none}.lesson-body .sheet-nav a.nav-next,.lesson-body .sheet-nav a.nav-prev{width:7.5rem;justify-content:center;padding:0 .5rem}.lesson-body .sheet-nav span{flex:0 1 auto;min-width:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.8rem;font-weight:500;line-height:1.2;color:var(--ink-2);unicode-bidi:-webkit-isolate;unicode-bidi:isolate;text-align:start;-webkit-line-clamp:unset}.lesson-body .sheet-nav a.nav-home,.lesson-body .sheet-nav a.nav-next,.lesson-body .sheet-nav a.nav-prev{flex-direction:row;align-items:center;justify-content:center;text-align:start;min-height:0}.lesson-body .sheet-nav a{border:1px solid var(--ink-2)}.lesson-body .sheet-nav .nav-prev{grid-column:1;justify-self:start}.lesson-body .sheet-nav .nav-next{grid-column:3;justify-self:end;background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.lesson-body .sheet-nav a.nav-next{border-color:var(--accent)}.lesson-body .sheet-nav .nav-next span{color:var(--on-accent);opacity:.9}.lesson-body .sheet-nav .nav-next:hover{background:var(--accent);filter:brightness(1.1)}.lesson-body .sheet-nav a.nav-home{grid-column:2;justify-self:center;height:auto;padding:.35rem .8rem;border-radius:999px;border-color:transparent;justify-content:center}.lesson-body .sheet-nav .nav-home span{font-size:.82rem;font-weight:600;color:var(--ink-2)}.lesson-body .sheet-nav .nav-home:hover{background:var(--surface-2);border-color:var(--line-strong)}@media (max-width:640px){.lesson-body .sheet-nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:.5rem}.lesson-body .sheet-nav a.nav-home{grid-column:1/-1;grid-row:1}.lesson-body .sheet-nav a.nav-prev{grid-column:1;grid-row:2}.lesson-body .sheet-nav a.nav-next{grid-column:2;grid-row:2}.lesson-body .sheet-nav a.nav-next,.lesson-body .sheet-nav a.nav-prev{width:100%;height:2.75rem}.lesson-body .sheet-nav a.nav-home span{display:block}}.lesson-body .diagram svg,.lesson-body .diagram svg text{direction:ltr}.lesson-body .bigpic .bp-points{list-style:none;padding:0;counter-reset:bp;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.lesson-body .bigpic .bp-points li{counter-increment:bp;display:flex;align-items:center;gap:.65rem;padding:.55rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.lesson-body .bigpic .bp-points li:before{content:counter(bp);flex:none;width:1.6rem;height:1.6rem;border-radius:50%;display:grid;place-items:center;font:700 .78rem var(--font-mono);background:var(--brand);color:var(--on-brand)}.lesson-body .bigpic .bp-points a{border-bottom:0}@media (min-width:1025px){.lesson-body .sheet{min-height:calc(100vh - 3rem)}}.lesson-body .sheet{isolation:isolate}.lesson-body .sheet:before{content:"";position:absolute;inset:0 0 auto 0;height:360px;z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse 65% 60% at 50% 0,rgba(226,96,63,.16),transparent 70%)}.lesson-body .hub-head h1{font-family:Noto Naskh Arabic,ui-serif,Georgia,serif;font-weight:700;line-height:1.6}.lesson-body ::selection{background:rgba(226,96,63,.3)}.lesson-body .sheet h2,.lesson-body .sheet h3{font-weight:600}.lesson-body .site-foot{margin:40px auto 0;max-width:var(--foot-w,880px);padding:56px 20px 40px;border-top:1px solid color-mix(in srgb,var(--ink) 30%,transparent);background:transparent;color:var(--ink-2);text-align:center}.lesson-body .site-foot .foot-links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:28px}.lesson-body .site-foot .foot-links a{color:var(--ink);text-decoration:none;font:600 .86rem var(--font-body);letter-spacing:.04em;min-height:44px;min-width:120px;justify-content:center;padding:0 22px;border:1px solid color-mix(in srgb,var(--ink) 30%,transparent);border-radius:999px;display:inline-flex;align-items:center;transition:border-color .15s,color .15s}.lesson-body .site-foot .foot-links a:hover{color:var(--accent);border-color:var(--accent)}.lesson-body .site-foot .foot-mail{margin:0 0 18px}.lesson-body .site-foot .foot-mail code{background:var(--surface);color:var(--ink);padding:5px 10px;border-radius:3px;font-size:.85rem}.lesson-body .site-foot .foot-note{margin:0 auto 14px;font-size:1rem;line-height:1.9;color:var(--ink);opacity:.82;text-align:center;text-align-last:center;max-width:62ch}.lesson-body .site-foot .foot-line{display:block;text-align:center;text-align-last:center;text-wrap:balance;unicode-bidi:plaintext;margin-bottom:.35rem}.lesson-body .site-foot .foot-copy{margin:0;font-size:.78rem;color:var(--ink-2)}.lesson-body .sheet .site-foot p,.lesson-body .site-foot nav,.lesson-body .site-foot p{text-align:center}.lesson-body .site-foot a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (pointer:coarse){.lesson-body .site-foot .foot-links a{min-height:44px}}.lesson-body .code-wrap{background:var(--surface-2);border-radius:3px;padding:14px 16px 16px}.lesson-body .code-wrap pre.code-block{background:var(--surface);color:var(--ink);-webkit-border-start:4px solid var(--brand);border-inline-start:4px solid var(--brand);border-radius:0;padding:10px 14px;font-size:.9rem;line-height:1.7}.lesson-body .cw-bar{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}.lesson-body .cw-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:3px;padding:7px 16px;font:600 .82rem var(--font-body);cursor:pointer;background:var(--brand);color:var(--on-brand);min-height:38px}.lesson-body .cw-btn.is-ghost{background:none;border-color:var(--line-strong);color:var(--ink)}.lesson-body .cw-btn:focus-visible{outline:2px solid var(--focus,var(--brand));outline-offset:2px}.lesson-body .cw-title{font:600 .95rem var(--font-display);color:var(--ink);-webkit-margin-end:auto;margin-inline-end:auto}.lesson-body .cw-out{margin-top:12px;-webkit-border-start:4px solid var(--ok);border-inline-start:4px solid var(--ok);background:var(--surface);padding:10px 14px;font:.82rem/1.7 var(--font-mono);color:var(--ink);white-space:pre-wrap}.lesson-body .cw-out b{display:block;font:600 .7rem var(--font-body);letter-spacing:.06em;color:var(--ok);margin-bottom:6px}@media (pointer:coarse){.lesson-body .cw-btn{min-height:44px}}.lesson-body .hub-head{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:8px}.lesson-body .hub-mark{width:72px;height:72px;border-radius:3px;flex:none}.lesson-body .hub-head h1{margin:.35rem 0 .5rem;font:700 clamp(1.7rem,4.4vw,2.5rem)/1.35 var(--font-display)}.lesson-body .hub-lede{margin:0;color:var(--ink-2);max-width:62ch}.lesson-body .topics{list-style:none;margin:0;padding:0}.lesson-body .topics>li{display:block}.lesson-body .hub-foot{margin-top:56px;padding-top:24px;border-top:1px solid var(--line)}.lesson-body .hub-foot h2{font:700 1.2rem var(--font-display);margin:0 0 .4rem}.lesson-body .hub-foot p{margin:0 0 14px;color:var(--ink-2)}.lesson-body .hub-links{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-style:normal}.lesson-body .hub-links a{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border:1px solid var(--line-strong);border-radius:3px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.88rem}.lesson-body .hub-links a:hover{border-color:var(--brand);color:var(--brand)}.lesson-body .hub-mail code{font-size:.85rem}@media (pointer:coarse){.lesson-body .hub-links a{min-height:44px}}.lesson-body pre{max-width:100%;overflow-x:auto}.lesson-body table{max-width:100%}.lesson-body .table-wrap{max-width:100%;overflow-x:auto}.lesson-body img,.lesson-body svg{max-width:100%;height:auto}.extra-questions .mcq.is-answered .mcq-why,.lesson-body .mcq.is-answered .mcq-why{display:block}.extra-questions .mcq-opt:focus-visible,.lesson-body .flashcard:focus-visible,.lesson-body .mcq-opt:focus-visible,.lesson-body summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.lesson-body .flashcard{border-radius:var(--r)}.lesson-body h2.part-title{font-size:1.4rem;font-weight:700;margin-block:2.2rem .5rem}.lesson-body .part-divider .kicker{font-size:.76rem;font-weight:700;color:var(--brand)}@media (prefers-reduced-motion:reduce){.lesson-body .flashcard .flip-inner{transition-duration:.01ms}}.lesson-body .cw-run-body .table-wrap{overflow-x:auto;border:0;background:none}.lesson-body .cw-run-body td,.lesson-body .cw-run-body th{white-space:nowrap}.lesson-body .cw-run-body a{color:#9db4ff}.lesson-body .cw-run-tag{font-weight:500;opacity:.85}.lesson-body .cw-run-body .cw-none{unicode-bidi:plaintext;text-align:start;line-height:1.8;margin-top:10px;max-width:none}.lesson-body .cw-run-body .table-wrap+.cw-none,.lesson-body .cw-run-body pre+.cw-none{padding-top:8px;border-top:1px solid rgba(255,255,255,.12)}.lesson-body pre.code-block{background:var(--night);color:#f6ece6;border:0;border-radius:16px}.lesson-body pre.code-block .cm{color:#9a88a6}.lesson-body .code-wrap{display:flex;flex-direction:column;padding:0;border-radius:16px;background:var(--night);color:#f6ece6;overflow:hidden;box-shadow:0 24px 50px -24px rgba(42,27,61,.55)}.lesson-body .code-wrap pre.code-block,.lesson-body .code-wrap textarea.cw-edit{order:1;background:none;color:#f6ece6;border:0;border-radius:0;padding:14px 20px;font-size:.9rem;line-height:1.75}.lesson-body .code-wrap textarea.cw-edit{-webkit-border-start:0;border-inline-start:0;box-shadow:inset 3px 0 0 var(--brand)}.lesson-body .code-wrap .cw-bar{order:0;margin:0;padding:10px 12px;gap:8px;border-bottom:1px solid rgba(246,236,230,.1)}.lesson-body .code-wrap .cw-btn{min-height:34px;padding:0 14px;border-radius:10px;font-size:.84rem}.lesson-body .code-wrap .cw-btn.cw-go{background:var(--sun);border-color:var(--sun);color:#2a1b3d}.lesson-body .code-wrap .cw-btn.is-ghost,.lesson-body .code-wrap .cw-btn:not(.cw-go){background:none;border-color:rgba(246,236,230,.18);color:#e8dcd6}.lesson-body .code-wrap .cw-btn:not(.cw-go):hover,.lesson-body .cw-lang{background:rgba(246,236,230,.08)}.lesson-body .cw-lang{-webkit-margin-start:auto;margin-inline-start:auto;padding:2px 10px;border-radius:999px;color:#c8b7c4;font:500 .74rem var(--font-mono)}.lesson-body .code-wrap .cw-run{order:2;margin:0;border-radius:0;border-top:1px solid rgba(246,236,230,.1);background:rgba(0,0,0,.18);color:#f6ece6}.lesson-body .code-wrap .cw-run-head{background:none;color:#c8b7c4}.lesson-body .code-wrap .cw-out{order:2;margin:0;border:0;border-top:1px solid rgba(246,236,230,.1);background:rgba(0,0,0,.18);color:#f6ece6}.lesson-body .code-wrap .cw-out b{color:#9cc5a2}.lesson-body .code-wrap.is-run.is-split>.cw-bar{grid-column:1/-1;grid-row:1}.lesson-body .code-wrap.is-run.is-split>pre,.lesson-body .code-wrap.is-run.is-split>textarea{grid-column:1;grid-row:2}.lesson-body .code-wrap.is-run.is-split>.cw-run{grid-column:2;grid-row:2;border-top:0;-webkit-border-start:1px solid rgba(246,236,230,.1);border-inline-start:1px solid rgba(246,236,230,.1)}.lesson-body .code-wrap.is-run.is-split{column-gap:0}.lesson-body .callout.mistake,.lesson-body .callout.note,.lesson-body .callout.tip{position:relative;padding:14px 18px;-webkit-padding-start:64px;padding-inline-start:64px;border:0;border-radius:14px;line-height:1.85}.lesson-body .callout.note{background:var(--note-soft)}.lesson-body .callout.note strong{color:var(--note)}.lesson-body .callout.mistake:before,.lesson-body .callout.note:before,.lesson-body .callout.tip:before{content:"";position:absolute;top:14px;inset-inline-start:18px;width:32px;height:32px;border-radius:10px}.lesson-body .callout.mistake:after,.lesson-body .callout.note:after,.lesson-body .callout.tip:after{content:"";position:absolute;top:21px;inset-inline-start:25px;width:18px;height:18px;background:#fff;-webkit-mask:var(--callout-icon) center /contain no-repeat;mask:var(--callout-icon) center /contain no-repeat}.lesson-body .callout.tip:before{background:var(--tip)}.lesson-body .callout.mistake:before{background:var(--warn)}.lesson-body .callout.note:before{background:var(--note)}.lesson-body .callout.tip{--callout-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 0 0-3.6 10.8c.7.6 1.1 1.3 1.1 2.2h5c0-.9.4-1.6 1.1-2.2A6 6 0 0 0 12 3z'/%3E%3C/svg%3E")}.lesson-body .callout.mistake{--callout-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4l9 16H3zM12 10v4M12 17.5v.01'/%3E%3C/svg%3E")}.lesson-body .callout.note{--callout-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6M12 7.5v.01'/%3E%3C/svg%3E")}:root[data-theme=dark] .lesson-body .callout:after{background:var(--bg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .lesson-body .callout:after{background:var(--bg)}}.lesson-body h3.concept{display:flex;align-items:flex-start;gap:.75rem;margin-block:2.6em .7em;padding-top:1.4em;border-top:1px dashed var(--line);font-size:1.3rem;line-height:1.5}.lesson-body .c-num{flex:none;display:inline-grid;place-items:center;width:2.1rem;height:2.1rem;margin-top:.05em;border-radius:50%;background:var(--brand);color:var(--on-brand);font:700 .95rem/1 var(--font-mono);box-shadow:0 0 0 5px var(--brand-soft)}.lesson-body h4.sub-concept{margin-block:1.8em .5em;-webkit-padding-start:.85rem;padding-inline-start:.85rem;-webkit-border-start:3px solid var(--brand-line);border-inline-start:3px solid var(--brand-line);font-size:1.06rem;color:var(--ink)}.lesson-body .primer-k .c-num{width:1.45rem;height:1.45rem;-webkit-margin-end:.45rem;margin-inline-end:.45rem;font-size:.72rem;box-shadow:none;vertical-align:-.2em}.lesson-body .primer-row,.lesson-body h2,.lesson-body h3.concept{scroll-margin-top:calc(var(--header-h) + 20px)}.lesson-body .bigpic .bp-points a{color:var(--ink)}.lesson-body .bigpic .bp-points li:hover{border-color:var(--brand-line)}.lesson-body section>h2:not(.part-title):before{content:"";display:block;width:2.4rem;height:4px;margin-bottom:.55rem;border-radius:4px;background:var(--brand)}.lesson-body .bigpic>h2:before{display:none!important}.lesson-body section>ol:not(.bp-points),.lesson-body section>p,.lesson-body section>ul{max-width:72ch}.lesson-body .part-divider .diagram+p{margin-top:0;max-width:none;padding:.7rem 1rem;border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r-lg) var(--r-lg);background:var(--surface);font-size:.95rem;color:var(--ink-2)}.lesson-body .part-divider .diagram:has(+p){border-end-start-radius:0;border-end-end-radius:0}.lesson-body .part-divider .diagram+p strong{color:var(--ink)}.lesson-body .diagram foreignObject div,.lesson-body .diagram foreignObject p,.lesson-body .diagram foreignObject span{unicode-bidi:plaintext}.lesson-body .diagram svg[aria-roledescription]{font-family:var(--font-body)}@media (prefers-reduced-motion:no-preference){.lesson-body .diagram .flowchart-link.edge-pattern-solid{stroke-dasharray:9 6!important}.lesson-body .diagram .flowchart-link,.lesson-body .diagram .messageLine1{animation:dg-flow 1.4s linear infinite}@supports (animation-timeline:view()){.lesson-body .diagram svg[aria-roledescription] .actor,.lesson-body .diagram svg[aria-roledescription] .node,.lesson-body .diagram svg[aria-roledescription] g[id^=classId],.lesson-body .diagram svg[aria-roledescription] g[id^=entity]{animation:dg-rise linear both;animation-timeline:view();animation-range:entry 5% entry 45%}}}@keyframes dg-flow{to{stroke-dashoffset:-30}}@keyframes dg-rise{0%{opacity:0}to{opacity:1}}.lesson-body{--nl7:#a05470;--nl6:#8a5cb0;--nl5:#5b6fc2;--nl4:#2f7fa0;--nl3:#2f8571;--nl2:#5a8236;--nl1:#a86b16;--nl-on:#ffffff}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .lesson-body{--nl7:#e39ab4;--nl6:#c7a2ec;--nl5:#a3b3f5;--nl4:#7cc6e3;--nl3:#7fd3bd;--nl2:#a9d47e;--nl1:#f2bf6b;--nl-on:#1b1226}}html[data-theme=dark] .lesson-body{--nl7:#e39ab4;--nl6:#c7a2ec;--nl5:#a3b3f5;--nl4:#7cc6e3;--nl3:#7fd3bd;--nl2:#a9d47e;--nl1:#f2bf6b;--nl-on:#1b1226}.lesson-body .nw{margin:1.4rem 0;padding:1.1rem;border-radius:var(--r-lg);background:var(--tint);border:1px solid var(--line);display:grid;grid-gap:.9rem;gap:.9rem;min-width:0}.lesson-body .nw-title{margin:0;font-family:var(--font-display);font-weight:600;font-size:1.05rem}.lesson-body .nw-lede{margin:0;color:var(--ink-2);font-size:.92rem}.lesson-body .nw button{font:500 .9rem/1.5 var(--font-body);min-height:40px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);padding:.35rem .9rem;cursor:pointer;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.lesson-body .nw button:active{transform:scale(.97)}.lesson-body .nw button:disabled{opacity:.45;cursor:default}@media (hover:hover) and (pointer:fine){.lesson-body .nw button:not(:disabled):hover{border-color:var(--brand)}}@media (pointer:coarse){.lesson-body .nw button{min-height:44px}}.lesson-body .nw-tabs{grid-template-columns:minmax(0,1fr)}@media (min-width:760px){.lesson-body .nw-tabs{grid-template-columns:minmax(0,260px) minmax(0,1fr);align-items:start}.lesson-body .nw-tabs>.nw-lede,.lesson-body .nw-tabs>.nw-title{grid-column:1/-1}}.lesson-body .nw-tablist{display:grid;grid-gap:.35rem;gap:.35rem}.lesson-body .nw .nw-tab{display:grid;grid-template-columns:2.1rem 1fr;align-items:center;grid-gap:.6rem;gap:.6rem;text-align:start;padding:.35rem .6rem}.lesson-body .nw-tab .n{display:grid;place-items:center;height:1.8rem;border-radius:7px;background:var(--c,var(--brand));color:var(--nl-on);font:600 .85rem var(--font-mono)}.lesson-body .nw-tab small{display:block;color:var(--ink-2);font-size:.78rem;font-family:var(--font-mono)}.lesson-body .nw .nw-tab[aria-selected=true]{border-color:var(--c,var(--brand));border-inline-start-width:5px;font-weight:600}.lesson-body .nw-panel{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--c,var(--brand));border-radius:var(--r);padding:.9rem 1.1rem;min-width:0}.lesson-body .nw-panel h4{margin:0 0 .3rem;color:var(--ink)}.lesson-body .nw-panel p{margin:.35rem 0}.lesson-body .nw-kv{display:grid;grid-template-columns:auto 1fr;grid-gap:.3rem .9rem;gap:.3rem .9rem;margin:.5rem 0 0;font-size:.92rem}.lesson-body .nw-kv dt{color:var(--ink-2)}.lesson-body .nw-kv dd{margin:0}.lesson-body .nw:not([data-ready]) .nw-panel+.nw-panel{margin-top:.5rem}.lesson-body .nw-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.lesson-body .nw-count{font:500 .85rem var(--font-mono);color:var(--ink-2);direction:ltr;unicode-bidi:-webkit-isolate;unicode-bidi:isolate;min-width:3.5em;text-align:center}.lesson-body .nw:not([data-ready]) .nw-controls{display:none}.lesson-body .nw-jumps{display:flex;flex-wrap:wrap;gap:.4rem}.lesson-body .nw .nw-jump{border-radius:999px;min-height:36px;padding:.2rem .8rem;font-size:.85rem}.lesson-body .nw .nw-jump[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand);font-weight:600}.lesson-body .nw:not([data-ready]) .nw-jumps{display:none}.lesson-body .nw-steps .nw-panel{border-top-width:1px;font-size:.95rem}.lesson-body .nw-steps .nw-panel strong{color:var(--brand-ink)}.lesson-body .nw-stage{overflow-x:auto}.lesson-body .nw-stage svg{display:block;margin-inline:auto;max-width:100%;height:auto;direction:ltr}.lesson-body .nw-frame{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;direction:ltr;min-height:3rem}.lesson-body .nw-blk{display:flex;flex-direction:column;justify-content:center;border-radius:8px;padding:.35rem .7rem;background:var(--c);color:var(--nl-on);font:600 .8rem/1.4 var(--font-mono);white-space:nowrap;transition:opacity var(--dur-base) var(--ease),transform var(--dur-base) var(--ease)}.lesson-body .nw-blk small{font-weight:400;opacity:.9;font-size:.72rem}.lesson-body .nw[data-ready] .nw-blk.is-future{display:none}.lesson-body .nw[data-ready] .nw-blk.is-on{animation:nw-pop var(--dur-slow,.32s) var(--ease)}.lesson-body .nw-wire{font:.78rem/1.6 var(--font-mono);direction:ltr;color:var(--nl1);word-break:break-all;text-align:center;margin:0}.lesson-body .nw[data-ready] .nw-wire.is-future,.lesson-body .nw[data-ready] .nw-wire.is-past{display:none}@keyframes nw-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}.lesson-body .nw svg .msg{transition:opacity var(--dur-base) var(--ease)}.lesson-body .nw[data-ready]:not([data-at="0"]) svg .msg:not(.is-on){opacity:.14}.lesson-body .nw[data-ready].nw-build svg .msg.is-future{opacity:0}.lesson-body .nw[data-ready].nw-build svg .msg.is-past{opacity:.55}.lesson-body .nw-in{display:flex;flex-wrap:wrap;gap:1rem;align-items:end}.lesson-body .nw-field{display:grid;grid-gap:.25rem;gap:.25rem;font-size:.88rem;color:var(--ink-2)}.lesson-body .nw-field input[type=text]{font:500 1rem var(--font-mono);direction:ltr;text-align:left;min-height:44px;padding:.4rem .7rem;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);width:13em;max-width:100%}.lesson-body .nw-field input[type=range]{width:min(280px,70vw);accent-color:var(--brand);min-height:32px}.lesson-body .nw-pfx-out{font:600 1rem var(--font-mono);color:var(--ink);direction:ltr;unicode-bidi:-webkit-isolate;unicode-bidi:isolate}.lesson-body .nw-bits{display:grid;grid-template-columns:repeat(32,minmax(0,1fr));grid-gap:2px;gap:2px;direction:ltr}.lesson-body .nw-bits span{height:1.6rem;display:grid;place-items:center;border-radius:4px;font:600 .68rem var(--font-mono);color:var(--nl-on);transition:background-color var(--dur-fast) var(--ease)}.lesson-body .nw-bits span.net{background:var(--nl3)}.lesson-body .nw-bits span.host{background:var(--nl1)}.lesson-body .nw-bits span:nth-child(8n):not(:last-child){margin-right:5px}.lesson-body .nw-legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:var(--ink-2);margin:0}.lesson-body .nw-legend i{display:inline-block;width:.8rem;height:.8rem;border-radius:3px;-webkit-margin-end:.35rem;margin-inline-end:.35rem;vertical-align:middle}.lesson-body .nw-res{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(11rem,100%),1fr));grid-gap:.5rem;gap:.5rem;margin:0}.lesson-body .nw-res div{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.45rem .75rem}.lesson-body .nw-res dt{font-size:.8rem;color:var(--ink-2)}.lesson-body .nw-res dd{margin:0;font:600 .95rem var(--font-mono);direction:ltr;text-align:start;unicode-bidi:-webkit-isolate;unicode-bidi:isolate;overflow-wrap:anywhere}.lesson-body .nw-err{color:var(--warn);font-size:.9rem;margin:0}.lesson-body .nw.is-invalid .nw-bits,.lesson-body .nw.is-invalid .nw-res{opacity:.35}@media (max-width:520px){.lesson-body .nw-bits span{height:1.3rem;font-size:.55rem;border-radius:2px}.lesson-body .nw-bits span:nth-child(8n):not(:last-child){margin-right:3px}}@media (prefers-reduced-motion:reduce){.lesson-body .nw svg .msg,.lesson-body .nw-bits span,.lesson-body .nw-blk{transition:none;animation:none!important}}.lesson-body{--cy-atk:#b5402f;--cy-atk-soft:#fbe6e1;--cy-def:#1f7a72;--cy-def-soft:#ddf1ee}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .lesson-body{--cy-atk:#f08a76;--cy-atk-soft:#3a2026;--cy-def:#6fd0c2;--cy-def-soft:#16302e}}html[data-theme=dark] .lesson-body{--cy-atk:#f08a76;--cy-atk-soft:#3a2026;--cy-def:#6fd0c2;--cy-def-soft:#16302e}.lesson-body .cy-note{font-size:.85rem;margin-top:.6rem}.lesson-body .nw-panel.cy-duel{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr));grid-gap:.6rem;gap:.6rem}.lesson-body .cy-duel>div{border-radius:10px;padding:.6rem .8rem;-webkit-border-start:4px solid var(--cy-c);border-inline-start:4px solid var(--cy-c)}.lesson-body .cy-duel h4{font-size:.92rem;margin:0 0 .25rem}.lesson-body .cy-duel p{margin:0}.lesson-body .cy-atk{--cy-c:var(--cy-atk);background:var(--cy-atk-soft)}.lesson-body .cy-atk h4{color:var(--cy-atk)}.lesson-body .cy-def{--cy-c:var(--cy-def);background:var(--cy-def-soft)}.lesson-body .cy-def h4{color:var(--cy-def)}.lesson-body .cy-tactics{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.82rem;color:var(--ink-2)}.lesson-body .cy-tactics code{font-size:.78rem}.lesson-body .cy-mail{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);overflow:hidden;font-size:.95rem}.lesson-body .cy-mail-head{padding:.7rem 1rem;border-bottom:1px solid var(--line);background:var(--tint)}.lesson-body .cy-mail-body p,.lesson-body .cy-mail-head p{margin:.3rem 0}.lesson-body .cy-mail-head span:first-child{color:var(--ink-2)}.lesson-body .cy-mail-body{padding:.7rem 1rem}.lesson-body .nw .cy-flag{display:inline;min-height:0;padding:.05rem .25rem;margin:0;border:0;border-radius:4px;background:transparent;color:inherit;font:inherit;text-align:inherit;-webkit-text-decoration:underline dotted var(--line-strong);text-decoration:underline dotted var(--line-strong);text-underline-offset:4px;cursor:pointer}@media (hover:hover) and (pointer:fine){.lesson-body .nw .cy-flag:not(.is-found):hover{background:var(--tint);-webkit-text-decoration-color:var(--cy-atk);text-decoration-color:var(--cy-atk)}}.lesson-body .nw .cy-flag:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.lesson-body .nw .cy-flag.is-found{background:var(--cy-atk-soft);box-shadow:inset 0 0 0 1.5px var(--cy-atk);text-decoration:none}.lesson-body .cy-fake-btn{display:inline-block;padding:.35rem 1rem;border-radius:8px;background:var(--brand);color:var(--on-brand);font-weight:600}.lesson-body .cy-attach{display:inline-block;font-size:.9rem;unicode-bidi:-webkit-isolate;unicode-bidi:isolate}.lesson-body .cy-progress{height:8px;border-radius:999px;background:var(--line);overflow:hidden}.lesson-body .cy-progress i{display:block;height:100%;background:var(--cy-def);transform:scaleX(var(--v,1));transform-origin:left;transition:transform var(--dur-base) var(--ease)}.lesson-body[dir=rtl] .cy-progress i,[dir=rtl] .lesson-body .cy-progress i{transform-origin:right}.lesson-body .nw:not([data-ready]) .cy-count,.lesson-body .nw:not([data-ready]) .cy-progress{display:none}.lesson-body .cy-count{margin:0;font-weight:600}.lesson-body .cy-findings{margin:0;-webkit-padding-start:1.4rem;padding-inline-start:1.4rem;display:grid;grid-gap:.45rem;gap:.45rem}.lesson-body .cy-findings li{font-size:.92rem}.lesson-body .nw[data-ready] .cy-findings li{animation:nw-pop var(--dur-base,.22s) var(--ease)}.lesson-body .cy-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(16rem,100%),1fr));grid-gap:.9rem;gap:.9rem}.lesson-body .cy-col{display:grid;grid-gap:.6rem;gap:.6rem;align-content:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.8rem 1rem}.lesson-body .cy-sub{margin:0;font-weight:600}.lesson-body .cy-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));grid-gap:.3rem .8rem;gap:.3rem .8rem;font-size:.9rem}.lesson-body .cy-checks label,.lesson-body .cy-rates label{display:flex;align-items:center;gap:.45rem;min-height:36px;cursor:pointer}.lesson-body .cy-checks input,.lesson-body .cy-rates input{width:1.1rem;height:1.1rem;accent-color:var(--brand);flex:none}.lesson-body .cy-rates{margin:0;border:1px solid var(--line);border-radius:var(--r);padding:.5rem 1rem .7rem;display:grid;grid-gap:.1rem;gap:.1rem;font-size:.9rem}.lesson-body .cy-rates legend{padding:0 .35rem;color:var(--ink-2);font-size:.85rem}.lesson-body .cy-res{display:grid;grid-gap:.35rem;gap:.35rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.8rem 1rem;font-size:.9rem}.lesson-body .cy-res-title{color:var(--ink-2)}.lesson-body .cy-res b{font:600 1.35rem var(--font-mono)}.lesson-body .cy-meter{display:block;height:10px;border-radius:999px;background:var(--line);overflow:hidden}.lesson-body .cy-meter i{display:block;height:100%;background:var(--m,var(--brand));transform:scaleX(var(--v,0));transform-origin:left;transition:transform var(--dur-base) var(--ease),background-color var(--dur-base) var(--ease)}.lesson-body[dir=rtl] .cy-meter i,[dir=rtl] .lesson-body .cy-meter i{transform-origin:right}.lesson-body .cy-time{unicode-bidi:-webkit-isolate;unicode-bidi:isolate}.lesson-body .cy-res.is-empty>:not(.cy-res-title){visibility:hidden}.lesson-body .cy-res.is-empty .cy-res-title{color:var(--cy-atk)}.lesson-body .cy-hash .nw-field input[type=text]{width:100%;direction:auto;text-align:start;font-family:var(--font-body)}.lesson-body .cy-hex{margin:0;padding:.6rem .8rem;border-radius:10px;background:var(--surface);border:1px solid var(--line);font:500 .9rem/1.6 var(--font-mono);direction:ltr;text-align:left;overflow-wrap:anywhere;letter-spacing:.02em}.lesson-body .cy-hex .d{color:var(--cy-atk);font-weight:700}.lesson-body .cy-hash .cy-count{font-weight:500;font-size:.92rem}@media (prefers-reduced-motion:reduce){.lesson-body .cy-meter i,.lesson-body .cy-progress i,.lesson-body .nw[data-ready] .cy-findings li{transition:none;animation:none}}.lesson-body .nw-play-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:.8rem;gap:.8rem}@media (min-width:900px){.lesson-body .nw-play-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}}.lesson-body .nw-play-pane{display:grid;grid-template-rows:auto 1fr;grid-gap:.35rem;gap:.35rem;min-width:0}.lesson-body .nw-play-k{font-size:.82rem;color:var(--ink-2)}.lesson-body .nw-play-src{width:100%;min-height:10rem;resize:vertical;margin:0;padding:.9rem 1rem;border-radius:var(--r);border:1px solid var(--line-strong);background:var(--code-bg);color:var(--code-fg);font:.84rem/1.7 var(--font-mono);max-height:28rem;direction:ltr;text-align:left;-moz-tab-size:2;tab-size:2;white-space:pre;overflow:auto}.lesson-body .nw-play-src:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.lesson-body .nw-play-out{display:block;width:100%;min-height:8rem;resize:vertical;overflow:auto;border-radius:var(--r);border:1px solid var(--line-strong)}