:root{--font-display:"Plus Jakarta Sans", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-label:"Sometype Mono", "JetBrains Mono", ui-monospace, monospace;--font-code:"JetBrains Mono", ui-monospace, Consolas, monospace;--font-ar:"IBM Plex Sans Arabic", "Inter", system-ui, sans-serif;--display-weight:800;--display-track:-.04em;--label-font:var(--font-label);--label-transform:uppercase;--label-track:.08em;--label-size:11px;--bg:#fff;--band:#f8f9fa;--surface:#fff;--surface-2:#f8f9fa;--panel:#fff;--panel-border:#e8e8e8;--heading:#090c1d;--text:#2a2a2a;--text-2:#646464;--text-3:#838383;--line:#e8e8e8;--line-2:#d4d4d4;--link:#0077d6;--brand:#6647f0;--brand-soft:#6647f01a;--badge-bg:#6647f01a;--badge-fg:#6647f0;--label:#838383;--cta-bg:#202020;--cta-fg:#fff;--ok:#00a86b;--ok-soft:#6ee7b766;--ok-ink:#05603f;--prog:#0091ff;--prog-ink:#fff;--track-bg:#eee;--hover:#0000000a;--active:#0000000f;--code-bg:#f8f9fa;--inline-code:#c7254e;--hero-bg:#fff;--hero-glow:none;--hero-border:#e8e8e8;--card-bg:#fff;--card-hover-border:#b3b3b3;--shadow-pop:#122ba50a 0 1px 1px -.5px, #122ba50a 0 3px 3px -1.5px, #122ba50f 0 12px 24px -6px;--sidebar-bg:#fff;--sidebar-border:#e8e8e8;--continue-bg:#fff;--continue-ring:conic-gradient(from 90deg, #7d5be7 19%, #bc3fda 28%, #fa24ce 37%, #fb49a5 45%, #fc6d7b 52%, #fd8461 55%, #fd9a46 58%, #f687c6 65%, #a3a0e0 80%, #4fb9fa 95%, #0091ff 100%);--num-bg:#f8f9fa;--num-fg:#090c1d;--dot-bg:#202020;--dot-fg:#fff;--r-card:12px;--r-lg:20px;--r-btn:9999px;--r-badge:9999px;--r-input:9px;--r-img:12px;--r-num:9999px;--btn-font:700 14px var(--font-display);--c-info:0, 145, 255;--c-tip:22, 170, 145;--c-success:0, 160, 107;--c-warning:214, 130, 0;--c-example:102, 71, 240;--c-quote:131, 131, 131;--c-question:214, 130, 0;--c-danger:225, 45, 70;--side-w:248px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--font-display:"Inter", system-ui, sans-serif;--display-weight:600;--display-track:-.012em;--label-font:var(--font-body);--label-transform:none;--label-track:0;--label-size:13px;--bg:#000;--band:#19191c;--surface:#19191c;--surface-2:#26262a;--panel:#19191c;--panel-border:transparent;--heading:#fff;--text:#d2d2d4;--text-2:#bababb;--text-3:#8c8c8f;--line:#2a2a2d;--line-2:#474749;--link:#18a3fa;--brand:#8473ff;--brand-soft:#6b57ff38;--badge-bg:#6b57ff;--badge-fg:#fff;--label:#f31199;--cta-bg:#fff;--cta-fg:#19191c;--ok:#4dbb5f;--ok-soft:#4dbb5f33;--ok-ink:#8fdc9b;--prog:#6b57ff;--prog-ink:#fff;--track-bg:#2a2a2d;--hover:#ffffff0d;--active:#7b61ff33;--code-bg:#19191c;--inline-code:#e8a87c;--hero-bg:#000;--hero-border:transparent;--hero-glow:radial-gradient(70% 120% at 62% 0%, #0047fd6b 0, #0047fd29 35%, #0000 75%), linear-gradient(130deg, #5a1fd059 0%, #2e106a00 55%);--card-bg:#5a1fd01a;--card-hover-border:#7b61ff;--shadow-pop:none;--sidebar-bg:#19191c;--sidebar-border:transparent;--continue-bg:linear-gradient(130deg, #5a1fd080 10%, #2e106a00 70%), #19191c;--continue-ring:linear-gradient(#5a1fd0, #5a1fd0);--num-bg:#6b57ff40;--num-fg:#fff;--dot-bg:#6b57ff;--dot-fg:#fff;--r-card:24px;--r-lg:24px;--r-btn:26px;--r-badge:4px;--r-input:12px;--r-img:16px;--r-num:14px;--btn-font:500 14px var(--font-body);--c-info:24, 163, 250;--c-tip:8, 222, 170;--c-success:77, 187, 95;--c-warning:243, 192, 51;--c-example:132, 115, 255;--c-quote:163, 163, 164;--c-question:243, 192, 51;--c-danger:244, 92, 74;color-scheme:dark}}:root[data-theme=dark]{--font-display:"Inter", system-ui, sans-serif;--display-weight:600;--display-track:-.012em;--label-font:var(--font-body);--label-transform:none;--label-track:0;--label-size:13px;--bg:#000;--band:#19191c;--surface:#19191c;--surface-2:#26262a;--panel:#19191c;--panel-border:transparent;--heading:#fff;--text:#d2d2d4;--text-2:#bababb;--text-3:#8c8c8f;--line:#2a2a2d;--line-2:#474749;--link:#18a3fa;--brand:#8473ff;--brand-soft:#6b57ff38;--badge-bg:#6b57ff;--badge-fg:#fff;--label:#f31199;--cta-bg:#fff;--cta-fg:#19191c;--ok:#4dbb5f;--ok-soft:#4dbb5f33;--ok-ink:#8fdc9b;--prog:#6b57ff;--prog-ink:#fff;--track-bg:#2a2a2d;--hover:#ffffff0d;--active:#7b61ff33;--code-bg:#19191c;--inline-code:#e8a87c;--hero-bg:#000;--hero-border:transparent;--hero-glow:radial-gradient(70% 120% at 62% 0%, #0047fd6b 0, #0047fd29 35%, #0000 75%), linear-gradient(130deg, #5a1fd059 0%, #2e106a00 55%);--card-bg:#5a1fd01a;--card-hover-border:#7b61ff;--shadow-pop:none;--sidebar-bg:#19191c;--sidebar-border:transparent;--continue-bg:linear-gradient(130deg, #5a1fd080 10%, #2e106a00 70%), #19191c;--continue-ring:linear-gradient(#5a1fd0, #5a1fd0);--num-bg:#6b57ff40;--num-fg:#fff;--dot-bg:#6b57ff;--dot-fg:#fff;--r-card:24px;--r-lg:24px;--r-btn:26px;--r-badge:4px;--r-input:12px;--r-img:16px;--r-num:14px;--btn-font:500 14px var(--font-body);--c-info:24, 163, 250;--c-tip:8, 222, 170;--c-success:77, 187, 95;--c-warning:243, 192, 51;--c-example:132, 115, 255;--c-quote:163, 163, 164;--c-question:243, 192, 51;--c-danger:244, 92, 74;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}html,body{height:100%}body{background:var(--bg);color:var(--text);font:15px/1.55 var(--font-body);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}button,input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:6px}::selection{background:var(--brand-soft)}h1,h2,h3,h4{color:var(--heading);text-wrap:balance}.icon{flex:none}html[data-lang=en] .t[lang=ar],html[data-lang=ar] .t[lang=en]{display:none}html[data-lang=ar] .t[lang=ar]{font-family:var(--font-ar);letter-spacing:0;text-transform:none}html[data-lang=ar] .chrome{direction:rtl}.ltr{text-align:match-parent;direction:ltr;unicode-bidi:isolate}.label{font:500 var(--label-size)/1.3 var(--label-font);letter-spacing:var(--label-track);text-transform:var(--label-transform);color:var(--label);display:inline-block}.display{font:var(--display-weight) clamp(34px, 4.6vw, 56px)/1.08 var(--font-display);letter-spacing:var(--display-track);margin:10px 0 14px}.h2{font:var(--display-weight) 26px/1.2 var(--font-display);letter-spacing:calc(var(--display-track) * .6);flex-wrap:wrap;align-items:baseline;gap:10px;margin:0 0 18px;display:flex}.h2 .count{font:500 14px var(--font-body);color:var(--text-3);letter-spacing:0}.lead{color:var(--text-2);max-width:64ch;margin:0;font-size:17px;line-height:1.65}.muted{color:var(--text-2)}.small{font-size:13px}.btn{border-radius:var(--r-btn);border:1px solid var(--line-2);height:42px;color:var(--heading);font:var(--btn-font);cursor:pointer;white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 22px;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.btn:hover{background:var(--hover)}.btn.primary{background:var(--cta-bg);color:var(--cta-fg);border-color:var(--cta-bg)}.btn.primary:hover{opacity:.88}.btn.sm{height:34px;padding:0 16px;font-size:13px}.btn[disabled]{opacity:.5;cursor:default}.badge{border-radius:var(--r-badge);background:var(--badge-bg);height:22px;color:var(--badge-fg);font:600 12px var(--font-body);white-space:nowrap;align-items:center;gap:5px;padding:0 9px;display:inline-flex}.status{height:24px;font:600 12px var(--font-body);background:var(--track-bg);color:var(--text-2);white-space:nowrap;border-radius:9999px;align-items:center;gap:5px;padding:0 11px;display:inline-flex}.status.progress{background:var(--prog);color:var(--prog-ink)}.status.done{background:var(--ok-soft);color:var(--ok-ink)}.chip{border:1px solid var(--line);height:36px;color:var(--text);font:600 13.5px var(--font-body);cursor:pointer;background:0 0;border-radius:9999px;align-items:center;gap:6px;padding:0 16px;display:inline-flex}.chip:hover{background:var(--hover)}.chip[aria-pressed=true]{border-color:var(--heading);color:var(--heading)}:root[data-theme=dark] .chip[aria-pressed=true]{border-color:#7b61ff}.chips{flex-wrap:wrap;gap:8px;margin-bottom:22px;display:flex}.progress{background:var(--track-bg);border-radius:99px;flex:1;height:6px;overflow:hidden}.progress>i{height:100%;width:var(--p,0%);background:var(--ok);border-radius:inherit;transition:width .45s cubic-bezier(.33,1,.68,1);display:block}.bar{align-items:center;gap:10px;min-width:140px;display:flex}.bar small{color:var(--text-2);font:600 12px var(--font-body);font-variant-numeric:tabular-nums;text-align:end;min-width:34px}.app{grid-template-columns:var(--side-w) minmax(0, 1fr);height:100%;display:grid}html.side-closed .app{grid-template-columns:0 minmax(0,1fr)}html.side-closed .sidebar{visibility:hidden}.sidebar{background:var(--sidebar-bg);border-inline-end:1px solid var(--sidebar-border);z-index:30;flex-direction:column;display:flex;overflow:hidden}.brand{height:64px;font:800 15px/1.2 var(--font-display);letter-spacing:-.02em;color:var(--heading);align-items:center;gap:10px;padding:0 20px;display:flex}.brand-mark{color:#fff;background:linear-gradient(83deg,#40ddff -5%,#7612fa 51%,#fa18e3 125%);border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font:800 12px Plus Jakarta Sans,sans-serif;display:grid}.side-scroll{scrollbar-width:thin;flex:1;padding:6px 12px 16px;overflow-y:auto}.nav-label{margin:22px 12px 8px;display:block}.nav-item{border-radius:var(--r-btn);height:40px;color:var(--text-2);font:600 14px var(--font-body);cursor:pointer;text-align:start;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:0 14px;display:flex}:root[data-theme=dark] .nav-item{border-radius:12px;font-weight:500}.nav-item:hover{background:var(--hover);color:var(--heading)}.nav-item[aria-current=page]{background:var(--active);color:var(--heading)}.side-course{color:var(--text-2);border-radius:14px;gap:7px;padding:10px 14px;font-size:13px;display:grid}.side-course:hover{background:var(--hover);color:var(--heading)}.side-course[aria-current=page]{background:var(--active);color:var(--heading)}.side-course span{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.side-course .progress{height:4px}.side-bottom{border-top:1px solid var(--line);padding:10px 12px 14px}.preview-note{background:var(--brand-soft);color:var(--text);border-radius:12px;margin:16px 4px 0;padding:10px 12px;font-size:12px;line-height:1.5}.main{height:100%;position:relative;overflow-y:auto}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--hero-border);align-items:center;gap:10px;height:64px;padding:0 24px;display:flex;position:sticky;top:0}.search-trigger{border-radius:var(--r-btn);border:1px solid var(--line);background:var(--surface-2);max-width:460px;height:42px;color:var(--text-3);cursor:text;flex:1;align-items:center;gap:10px;padding:0 16px;font-size:14px;display:flex}.search-trigger kbd{font:500 11px var(--font-code);color:var(--text-3);border:1px solid var(--line-2);border-radius:6px;margin-inline-start:auto;padding:1px 6px}.top-tools{align-items:center;gap:6px;margin-inline-start:auto;display:flex}.icon-btn{width:40px;height:40px;color:var(--text-2);cursor:pointer;font:700 14px var(--font-body);background:0 0;border:0;border-radius:9999px;place-items:center;display:grid}.icon-btn:hover{background:var(--hover);color:var(--heading)}.streak{background:var(--surface-2);height:36px;color:var(--heading);font:700 13px var(--font-body);border-radius:9999px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.streak .icon{color:#ff7a1a}.avatar{background:var(--brand);color:#fff;width:34px;height:34px;font:700 13px var(--font-body);border-radius:50%;flex:none;place-items:center;display:grid}#open-side{display:none}html.side-closed #open-side{display:grid}.backdrop,.theme-ico-light{display:none}:root[data-theme=dark] .theme-ico-light{display:inline-flex}:root[data-theme=dark] .theme-ico-dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-ico-light{display:inline-flex}:root:not([data-theme=light]) .theme-ico-dark{display:none}}.wrap{max-width:1200px;margin:0 auto;padding:0 40px}.hero{background:var(--hero-bg);background-image:var(--hero-glow);border-bottom:1px solid var(--hero-border)}.hero .wrap{padding-top:48px;padding-bottom:44px}.crumbs{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:18px;font-size:13px;display:flex}.crumbs a:hover{color:var(--heading)}.hero-stats{color:var(--text-2);flex-wrap:wrap;gap:10px 28px;margin-top:22px;font-size:14px;display:flex}.hero-stats span{align-items:center;gap:8px;display:inline-flex}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:26px;display:flex}.section{padding-block:44px 8px}.section.last{padding-bottom:96px}.two-col{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:32px;display:grid}.stack{gap:16px;display:grid}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.card{border-radius:var(--r-card);border:1px solid var(--line);background:var(--card-bg);flex-direction:column;gap:12px;min-width:0;padding:24px;transition:border-color .15s,box-shadow .2s;display:flex}a.card:hover{border-color:var(--card-hover-border);box-shadow:var(--shadow-pop)}.card h3{font:var(--display-weight) 19px/1.3 var(--font-display);letter-spacing:calc(var(--display-track) * .4);margin:0}.card .desc{color:var(--text-2);margin:0;font-size:14px;line-height:1.55}.card .meta{color:var(--text-3);flex-wrap:wrap;gap:6px 16px;margin-top:auto;font-size:13px;display:flex}.card .meta span{align-items:center;gap:6px;display:inline-flex}.card.soon{opacity:.6;background:0 0;border-style:dashed}.card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.aside-card{border:1px solid var(--panel-border);border-radius:var(--r-card);background:var(--panel);gap:12px;padding:20px;display:grid}.aside-card h4{font:700 15px var(--font-display);margin:0}.aside-card .row{color:var(--text-2);align-items:center;gap:10px;min-width:0;font-size:14px;display:flex}.aside-card .row span{overflow-wrap:anywhere;min-width:0}.aside-card a.row:hover{color:var(--link)}.chapters{gap:14px;display:grid}.chapter{border:1px solid var(--panel-border);border-radius:var(--r-card);background:var(--panel);grid-template-columns:52px minmax(0,1fr);gap:4px 18px;padding:24px;display:grid}.chapter-num{border-radius:var(--r-num);background:var(--num-bg);width:52px;height:52px;color:var(--num-fg);font:var(--display-weight) 18px var(--font-display);place-items:center;display:grid}.chapter.is-done .chapter-num{background:var(--ok-soft);color:var(--ok-ink)}.chapter h3{font:var(--display-weight) 20px/1.3 var(--font-display);letter-spacing:calc(var(--display-track) * .4);margin:4px 0 6px}.chapter h3 a:hover{color:var(--link)}.chapter .row{flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:12px;display:flex}.chapter .row .bar{flex:1;max-width:260px}.chapter details{grid-column:2;margin-top:12px}.chapter summary{cursor:pointer;color:var(--link);align-items:center;gap:6px;font-size:14px;font-weight:600;list-style:none;display:inline-flex}.chapter summary::-webkit-details-marker{display:none}.chapter details[open] summary .icon{transform:rotate(180deg)}.chapter ol{counter-reset:lec;margin:12px 0 0;padding:0;list-style:none;display:grid}.chapter ol li{counter-increment:lec;border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:9px 0;font-size:14px;display:flex}.chapter ol li:last-child{border-bottom:0}.chapter ol li:before{content:counter(lec);background:var(--surface-2);width:24px;height:24px;color:var(--text-3);font:600 11px var(--font-body);border-radius:9999px;flex:none;place-items:center;display:grid}.timeline{gap:16px;display:grid;position:relative}.timeline:before{content:"";border-inline-start:2px dashed var(--line-2);position:absolute;inset-block:30px;inset-inline-start:25px}.tl-item{grid-template-columns:52px minmax(0,1fr);align-items:start;gap:18px;display:grid;position:relative}.tl-dot{border-radius:var(--r-num);background:var(--dot-bg);width:52px;height:52px;color:var(--dot-fg);font:var(--display-weight) 18px var(--font-display);z-index:1;place-items:center;margin-top:12px;display:grid}.tl-item.soon .tl-dot{background:var(--surface-2);color:var(--text-3)}.lesson-bar{z-index:15;background:color-mix(in srgb, var(--bg) 94%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:64px}.lesson-bar .inner{align-items:center;gap:12px;height:52px;padding:0 24px;display:flex}.lesson-bar .where{min-width:0;color:var(--text-2);white-space:nowrap;align-items:center;gap:8px;font-size:13.5px;display:flex;overflow:hidden}.lesson-bar .where b{color:var(--heading);text-overflow:ellipsis;font-weight:600;overflow:hidden}.lesson-bar .bar{width:200px;min-width:0;margin-inline-start:auto}.reader{grid-template-columns:minmax(0,1fr) 300px;gap:0 32px;max-width:1240px;margin:0 auto;padding:0 32px;display:grid}html:not(.outline-open) .reader{grid-template-columns:minmax(0,1fr) 0}html:not(.outline-open) .course-outline{display:none}.reader-main{min-width:0;padding:40px 0 120px}.note-head,.markdown,.note-foot,.comments{max-width:740px;margin-inline:auto}.note-head .display{font-size:clamp(30px,3.6vw,44px)}.note-props{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.note-props .status{height:30px;padding:0 13px;font-size:12.5px}.note-props a.status:hover{color:var(--heading)}.tags{flex-wrap:wrap;gap:6px 12px;margin-top:16px;display:flex}.tag{font:500 12.5px var(--font-code);color:var(--brand)}details.lectures{border:1px solid var(--line);border-radius:var(--r-card);margin-top:18px;padding:14px 18px}details.lectures summary{cursor:pointer;color:var(--heading);align-items:center;gap:8px;font-weight:600;list-style:none;display:flex}details.lectures summary::-webkit-details-marker{display:none}details.lectures ol{color:var(--text-2);margin:10px 0 0;padding-inline-start:22px;line-height:1.8}.course-outline{scrollbar-width:thin;align-self:start;max-height:calc(100vh - 116px);padding:28px 0 40px;font-size:13.5px;position:sticky;top:116px;overflow-y:auto}.course-outline .label{margin:0 10px 12px}.course-outline ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.co-week{color:var(--text-2);border-radius:12px;align-items:center;gap:10px;padding:9px 10px;font-weight:600;display:flex}.co-week:hover{background:var(--hover);color:var(--heading)}.co-week[aria-current=page]{color:var(--heading);background:var(--active)}.co-week .n{border-radius:var(--r-num);background:var(--surface-2);width:26px;height:26px;font:700 11px var(--font-body);color:var(--text-2);flex:none;place-items:center;display:grid}.co-week.done .n{background:var(--ok-soft);color:var(--ok-ink)}.co-sections{border-inline-start:2px solid var(--line);margin:4px 0 10px 22px!important;padding-inline-start:10px!important}.co-sections a{color:var(--text-3);border-radius:8px;gap:8px;padding:5px 10px;line-height:1.4;display:flex}.co-sections a:hover{color:var(--heading);background:var(--hover)}.co-sections a.active{color:var(--heading);font-weight:600}.co-sections a .done-dot{color:var(--ok);visibility:hidden;margin-inline-start:auto}.co-sections a.is-done .done-dot{visibility:visible}.markdown{color:var(--text);padding-top:18px;font-size:17px;line-height:1.75}.markdown>*{margin-top:0;margin-bottom:1em}.markdown h2,.markdown h3,.markdown h4{font-family:var(--font-display);color:var(--heading);line-height:1.3}.markdown h2{font-size:1.6em;font-weight:var(--display-weight);letter-spacing:calc(var(--display-track) * .6);border-top:1px solid var(--line);align-items:center;gap:12px;margin:2.2em 0 .7em;padding-top:1.2em;display:flex}.markdown h3{margin:1.8em 0 .6em;font-size:1.26em;font-weight:700}.markdown h4{margin:1.5em 0 .5em;font-size:1.06em;font-weight:700}.markdown p{margin:0 0 1em}.markdown ul,.markdown ol{margin:0 0 1em;padding-inline-start:1.5em}.markdown li{margin:.3em 0}.markdown li>p{margin:.25em 0}.markdown li::marker{color:var(--text-3)}.markdown strong{color:var(--heading);font-weight:650}.markdown a{color:var(--link)}.markdown a:hover{text-underline-offset:3px;text-decoration:underline}.markdown a.wikilink{color:var(--brand)}.markdown .wikilink.pending{color:var(--text-3);cursor:help;font-style:normal;text-decoration:underline dotted}.markdown mark{color:inherit;background:#ffd00059;border-radius:3px;padding:0 2px}.markdown hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}.markdown blockquote{border-inline-start:3px solid var(--line-2);color:var(--text-2);margin:0 0 1em;padding-inline-start:1em}.markdown code{font:.85em/1.5 var(--font-code);color:var(--inline-code);background:var(--code-bg);border-radius:6px;padding:.15em .4em}.markdown pre{font:13.5px/1.7 var(--font-code);border:1px solid var(--line);border-radius:var(--r-card);margin:0 0 1.2em;padding:18px 20px;position:relative;overflow-x:auto;background:var(--code-bg)!important}.markdown pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.markdown pre.shiki span{color:var(--shiki-light)}:root[data-theme=dark] .markdown pre.shiki span{color:var(--shiki-dark)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .markdown pre.shiki span{color:var(--shiki-dark)}}.copy-btn{top:10px;opacity:0;background:var(--surface);border:1px solid var(--line);width:32px;height:32px;transition:opacity .15s;position:absolute;inset-inline-end:10px}.markdown pre:hover .copy-btn,.copy-btn:focus-visible{opacity:1}.markdown .figure{text-align:center;margin:1.6em 0 .5em}.markdown .figure img{width:min(100%, var(--w,100%));border-radius:var(--r-img);border:1px solid var(--line);cursor:zoom-in;background:#fff}:root[data-theme=dark] .markdown .figure img{filter:brightness(.92);border-color:#0000}.markdown .figure+p>em:only-child{text-align:center;color:var(--text-3);font-size:.86em;display:block}.markdown .table-wrap{border:1px solid var(--line);border-radius:var(--r-card);margin:0 0 1.2em;overflow-x:auto}.markdown table{border-collapse:collapse;width:100%;font-size:.9em}.markdown th,.markdown td{border-bottom:1px solid var(--line);text-align:start;vertical-align:top;padding:10px 14px}.markdown th{background:var(--surface-2);color:var(--heading);font-weight:700}.markdown tr:last-child td{border-bottom:0}.markdown .katex-display{margin:.8em 0 1.2em;padding:.3em 0;overflow:auto hidden}.markdown .katex{color:var(--heading);font-size:1.06em}.markdown pre.mermaid{text-align:center;font-family:var(--font-body);border:0;background:0 0!important}.markdown pre.mermaid:not([data-processed]){color:var(--text-3);text-align:start;white-space:pre-wrap;font-size:12px}.callout{--cc:var(--c-info);border-radius:var(--r-card);background:rgba(var(--cc), .07);border:1px solid rgba(var(--cc), .22);margin:1.4em 0;padding:16px 20px}.callout-title{color:rgb(var(--cc));font:700 15px/1.45 var(--font-display);align-items:flex-start;gap:8px;margin:0;display:flex}:root[data-theme=dark] .callout-title{font-weight:600}.callout-icon{flex:none;align-items:center;height:1.45em;display:flex}.callout-label{min-width:0;color:rgb(var(--cc));flex:1;font-style:normal}details.callout .callout-label{color:var(--heading)}details.callout>summary{cursor:pointer;list-style:none}details.callout>summary::-webkit-details-marker{display:none}.callout-fold{height:1.45em;color:var(--text-3);align-items:center;transition:transform .2s;display:flex;transform:rotate(-90deg)}details.callout[open] .callout-fold{transform:none}.callout-body{padding-top:8px;font-size:.96em}.callout-body>*{margin:0 0 .7em}.callout-body>:last-child{margin-bottom:0}.callout-body:empty{display:none}.callout[data-callout=note],.callout[data-callout=info],.callout[data-callout=todo]{--cc:var(--c-info)}.callout[data-callout=abstract],.callout[data-callout=tip]{--cc:var(--c-tip)}.callout[data-callout=success]{--cc:var(--c-success)}.callout[data-callout=warning]{--cc:var(--c-warning)}.callout[data-callout=question]{--cc:var(--c-question)}.callout[data-callout=failure],.callout[data-callout=danger],.callout[data-callout=bug]{--cc:var(--c-danger)}.callout[data-callout=example]{--cc:var(--c-example)}.callout[data-callout=quote]{--cc:var(--c-quote)}.sec-done{border:1px solid var(--line-2);height:30px;color:var(--text-2);font:600 12px var(--font-body);letter-spacing:0;cursor:pointer;background:0 0;border-radius:9999px;flex:none;align-items:center;gap:6px;margin-inline-start:auto;padding:0 12px;display:inline-flex}.sec-done:hover{color:var(--heading)}.sec-done[aria-pressed=true]{background:var(--ok-soft);color:var(--ok-ink);border-color:#0000}.note-foot{grid-template-columns:1fr 1fr;gap:12px;margin-top:64px;display:grid}.note-foot a{border:1px solid var(--line);border-radius:var(--r-card);gap:4px;padding:18px 20px;display:grid}.note-foot a:hover{border-color:var(--card-hover-border)}.note-foot small{color:var(--text-3);font-weight:600}.note-foot b{color:var(--heading);font-weight:650}.note-foot .next{text-align:end;grid-column:2}.comments{margin-top:64px}.comment{border-bottom:1px solid var(--line);grid-template-columns:34px minmax(0,1fr);gap:12px;padding:16px 0;display:grid}.comment .who{color:var(--heading);font-weight:700}.comment .when{color:var(--text-3);margin-inline-start:8px;font-size:12px;font-weight:400}.comment p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;line-height:1.6}.comment .del{color:var(--text-3);cursor:pointer;background:0 0;border:0;margin-top:6px;padding:0;font-size:12px}.comment-box{align-items:flex-start;gap:10px;margin-top:16px;display:flex}.comment-box textarea{resize:vertical;flex:1;height:46px;min-height:46px}input[type=text],input[type=email],input[type=password],textarea,select{background:var(--surface);width:100%;color:var(--heading);border:1px solid var(--line-2);border-radius:var(--r-input);outline:none;padding:11px 14px;font-size:15px}input:focus,textarea:focus,select:focus{border-color:var(--link);box-shadow:0 0 0 3px #0091ff26}label.field{color:var(--heading);gap:8px;font-size:14px;font-weight:600;display:grid}.form{gap:16px;display:grid}.error{color:#e12d46;font-size:13.5px}.success{color:var(--ok);font-size:13.5px}.auth{background:var(--hero-bg);background-image:var(--hero-glow);place-items:center;min-height:calc(100vh - 64px);padding:40px 20px 80px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:min(420px,100%);padding:36px 32px}.auth-card h1{font:var(--display-weight) 28px/1.2 var(--font-display);letter-spacing:calc(var(--display-track) * .7);margin:0 0 8px}.auth-card .btn{width:100%}.or{color:var(--text-3);align-items:center;gap:12px;font-size:12px;display:flex}.or:before,.or:after{content:"";border-top:1px solid var(--line);flex:1}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;display:grid}.stat{border-radius:var(--r-card);border:1px solid var(--panel-border);background:var(--panel);padding:22px 24px}.stat b{font:var(--display-weight) 38px/1.1 var(--font-display);letter-spacing:var(--display-track);color:var(--heading);font-variant-numeric:tabular-nums;display:block}.stat span{color:var(--text-2);font-size:14px}.continue{border-radius:var(--r-lg);background:var(--continue-bg);align-items:center;gap:18px;padding:22px 24px;display:flex;position:relative}.continue:before{content:"";border-radius:inherit;background:var(--continue-ring);-webkit-mask-composite:xor;pointer-events:none;padding:1.5px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.continue .txt{flex:1;gap:4px;min-width:0;display:grid}.continue .txt b{font:var(--display-weight) 20px/1.3 var(--font-display);color:var(--heading);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.continue-icon{background:var(--brand-soft);width:54px;height:54px;color:var(--brand);border-radius:16px;flex:none;place-items:center;display:grid}.db{border:1px solid var(--panel-border);border-radius:var(--r-card);background:var(--panel);overflow-x:auto}.db table{border-collapse:collapse;width:100%;min-width:620px}.db th{text-align:start;font:600 12px var(--font-body);color:var(--text-3);border-bottom:1px solid var(--line);white-space:nowrap;padding:12px 16px}.db td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 16px}.db tr:last-child td{border-bottom:0}.db tr.row:hover td{background:var(--hover)}.db .num{font-variant-numeric:tabular-nums;white-space:nowrap}.heat-box{border-radius:var(--r-card);border:1px solid var(--panel-border);background:var(--panel);padding:20px;overflow-x:auto}.heat{grid-template-rows:repeat(7,13px);grid-auto-flow:column;gap:4px;width:max-content;display:grid}.heat i{background:var(--track-bg);border-radius:4px;width:13px;height:13px}.bars{border-radius:var(--r-card);border:1px solid var(--panel-border);background:var(--panel);align-items:flex-end;gap:4px;height:130px;padding:18px;display:flex}.bars i{background:var(--brand);border-radius:4px 4px 0 0;flex:1;min-height:2px}.modal-back{z-index:60;background:#090c1d73;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;width:min(680px,100%);max-height:70vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000040}.modal .q{border-bottom:1px solid var(--line);color:var(--text-3);align-items:center;gap:12px;padding:16px 20px;display:flex}.modal .q input{box-shadow:none;background:0 0;border:0;padding:4px 0;font-size:18px}.modal .results{padding:8px;overflow-y:auto}.modal .res{border-radius:12px;padding:12px 14px;display:block}.modal .res:hover,.modal .res.sel{background:var(--hover)}.modal .res b{color:var(--heading);align-items:center;gap:8px;font-weight:600;display:flex}.modal .res p{color:var(--text-2);margin:4px 0 0 24px;font-size:13.5px;line-height:1.5}.modal .res mark{color:inherit;background:#ffd00059;border-radius:3px}.modal .hint{color:var(--text-3);padding:18px;font-size:14px}.zoom{z-index:70;cursor:zoom-out;background:#000000d9;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.zoom img{background:#fff;border-radius:12px;max-height:92vh}@media (width<=1180px){.reader{padding:0 24px;grid-template-columns:minmax(0,1fr) 0!important}.course-outline{top:116px;background:var(--bg);border-inline-start:1px solid var(--line);z-index:25;width:300px;max-height:calc(100vh - 116px);padding:20px 12px;position:fixed;inset-inline-end:0;box-shadow:-12px 0 32px #0000001f}.two-col{grid-template-columns:minmax(0,1fr)}}@media (width<=860px){.app,html.side-closed .app{grid-template-columns:minmax(0,1fr)}.sidebar{width:min(290px,85vw);transition:transform .25s cubic-bezier(.33,1,.68,1);position:fixed;inset-block:0;inset-inline-start:0;transform:translate(-102%);box-shadow:0 0 40px #00000040;visibility:visible!important}html[data-lang=ar] .sidebar{transform:translate(102%)}html.side-mobile-open .sidebar{transform:none}html.side-mobile-open .backdrop{z-index:29;background:#0006;display:block;position:fixed;inset:0}#open-side{display:grid}.topbar{gap:6px;padding:0 12px}.search-trigger{flex:none;justify-content:center;width:42px;padding:0}.search-trigger>:not(.icon){display:none}.wrap{padding:0 20px}.hero .wrap{padding-top:28px;padding-bottom:30px}.reader{padding:0 20px}.reader-main{padding-top:24px}.lesson-bar .inner{padding:0 12px}.lesson-bar .bar{width:100px;min-width:0}.markdown{font-size:16.5px}.chapter{grid-template-columns:40px minmax(0,1fr);padding:18px}.chapter-num,.tl-dot{width:40px;height:40px;font-size:15px}.tl-item{grid-template-columns:40px minmax(0,1fr)}.timeline:before{inset-inline-start:19px}.stat b{font-size:30px}.note-foot{grid-template-columns:1fr}.note-foot .next{grid-column:1}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.continue>*,.continue .txt,.continue div{min-width:0}.tabs{background:var(--surface-2);border-radius:9999px;flex:none;gap:4px;padding:3px;display:flex}:root[data-theme=dark] .tabs{border-radius:12px}.tabs button{border-radius:inherit;height:32px;color:var(--text-2);font:600 13px var(--font-body);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.tabs button[aria-selected=true]{background:var(--cta-bg);color:var(--cta-fg)}.tabs button .n{opacity:.7;font-weight:500}html.tab-slides .tab-notes,html:not(.tab-slides) .tab-slides{display:none!important}html.tab-slides .course-outline{display:none}html.tab-slides .reader{grid-template-columns:minmax(0,1fr) 0!important}.viewer{gap:14px;max-width:1100px;margin:0 auto;display:grid}.viewer-stage{border-radius:var(--r-card);aspect-ratio:16/9;border:1px solid var(--line);background:#0d0d0f;position:relative;overflow:hidden}.viewer-stage img{object-fit:contain;width:100%;height:100%;display:block}.viewer-stage:fullscreen{border:0;border-radius:0}.viewer-nav{color:#fff;cursor:pointer;opacity:0;background:#00000073;border:0;border-radius:9999px;place-items:center;width:46px;height:46px;transition:opacity .2s;display:grid;position:absolute;top:50%;translate:0 -50%}.viewer-stage:hover .viewer-nav,.viewer-nav:focus-visible{opacity:1}.viewer-nav.prev{inset-inline-start:14px}.viewer-nav.next{inset-inline-end:14px}@media (hover:none){.viewer-nav{opacity:1}}.viewer-bar{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.viewer-count{font:600 14px var(--font-body);color:var(--text-2);font-variant-numeric:tabular-nums}.viewer-count b{color:var(--heading)}.viewer-strip{scrollbar-width:thin;gap:10px;padding:4px 2px 10px;display:flex;overflow-x:auto}.viewer-strip button{background:var(--surface-2);cursor:pointer;border:2px solid #0000;border-radius:10px;flex:none;width:128px;padding:0;position:relative;overflow:hidden}.viewer-strip button img{width:100%;height:auto;display:block}.viewer-strip button span{font:600 10px var(--font-body);color:#fff;background:#0000008c;border-radius:4px;padding:0 5px;position:absolute;inset-block-end:4px;inset-inline-end:6px}.viewer-strip button.on{border-color:var(--link)}.thumb{aspect-ratio:16/9;border:1px solid var(--line);background:var(--surface-2);border-radius:10px;flex:none;width:168px;display:block;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.chapter.has-thumb{grid-template-columns:52px minmax(0,1fr) 168px}.chapter.has-thumb details{grid-column:2/4}.deck-card .thumb{width:100%}html:not(.signed-in) [data-auth]{display:none!important}.read-line{inset-inline-start:0;height:2px;width:var(--read,0%);background:linear-gradient(83deg,#40ddff,#7612fa,#fa18e3);position:absolute;bottom:-1px}:root[data-theme=dark] .read-line{background:#7b61ff}@media (width<=860px){.chapter.has-thumb{grid-template-columns:40px minmax(0,1fr)}.chapter.has-thumb .thumb{display:none}.tabs button{padding:0 10px}.lesson-bar .where{display:none}.viewer-strip button{width:96px}}.markdown pre.mermaid.mermaid-failed{color:var(--text-2);text-align:start;border:1px solid var(--line)}.parts-list{max-width:740px;margin:36px auto 0}.parts-list ol{border:1px solid var(--panel-border);border-radius:var(--r-card);background:var(--panel);margin:0;padding:0;list-style:none;overflow:hidden}.parts-list li+li{border-top:1px solid var(--line)}.parts-list a{align-items:center;gap:14px;padding:14px 18px;display:flex}.parts-list a:hover{background:var(--hover)}.parts-list .n{border-radius:var(--r-num);background:var(--surface-2);width:30px;height:30px;font:700 12px var(--font-body);color:var(--text-2);flex:none;place-items:center;display:grid}.parts-list .tt{min-width:0;color:var(--heading);flex:1;font-weight:600}.parts-list .m{color:var(--text-3);white-space:nowrap;font-size:13px}.parts-list .ok{color:var(--ok);visibility:hidden}.parts-list a.is-done .ok{visibility:visible}.parts-list a.is-done .n{background:var(--ok-soft);color:var(--ok-ink)}.complete-row{justify-content:center;max-width:740px;margin:48px auto 0;display:flex}.complete-row .btn{height:48px;padding:0 28px;font-size:15px}.quiz{border:1px solid var(--panel-border);border-radius:var(--r-lg);background:var(--panel);gap:14px;margin:8px 0 32px;padding:24px;display:grid}.quiz h3{font:var(--display-weight) 22px/1.3 var(--font-display);margin:6px 0}.quiz-score{letter-spacing:var(--display-track);font-size:40px!important}.quiz-top{align-items:center;gap:14px;display:flex}.quiz-top .progress{max-width:260px}.quiz-q{font:600 19px/1.5 var(--font-body);color:var(--heading)}.quiz-a{border-radius:var(--r-card);background:var(--ok-soft);color:var(--text);padding:14px 16px}.quiz-a>:last-child{margin-bottom:0}.quiz-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}article[data-quiz] .quiz~details.callout{scroll-margin-top:140px}article.quiz-running>details.callout[data-callout=question]{display:none}.markdown .figure .fig-caption{max-width:640px;color:var(--text-3);margin:10px auto 0;font-size:.86em;line-height:1.55;display:block}
