:root{color-scheme:dark;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--bg: #191416;--paper: #21191c;--subtle: #2c2025;--text: #eee5e8;--muted: #b3a2aa;--line: #49343d;--line2: #33242b;--accent: #e2a0b3;--accent-solid: #7b263d;--accent-soft: #39202a;--on-accent: #fff6f8;--def: #bdcabc;--def-soft: #25332a;--warn: #d8bb8f;--warn-soft: #352b20;--error: #e3a59e;--error-soft: #3b2425;--correct: #bdcabc;--success: #4ade80;--success-soft: #173524;--code: #140f11;--border-strong: #8d6e7c;--syntax-comment: #b29da6;--syntax-string: #c6cba9}:root[data-theme=light]{color-scheme:light;--bg: #faf7f7;--paper: #fff;--subtle: #f1eaed;--text: #30242a;--muted: #78626c;--line: #dacbd1;--line2: #ebe1e5;--accent: #7b263d;--accent-soft: #f2e3e9;--def: #49664e;--def-soft: #edf3ed;--warn: #86602a;--warn-soft: #faf2e5;--error: #9b3a31;--error-soft: #f8e8e5;--correct: #49664e;--success: #15803d;--success-soft: #e7f8ed;--code: #f3edf0;--border-strong: #a48a95;--syntax-comment: #796470;--syntax-string: #526236}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.75 var(--sans);padding-inline:env(safe-area-inset-left,0px) env(safe-area-inset-right,0px)}a{color:var(--accent);text-underline-offset:4px}button,input,select,textarea{font:inherit}button{cursor:pointer}button,input,select{border-radius:3px}button:disabled{opacity:.45;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--accent);color:var(--bg)}h1,h2,h3{text-wrap:balance}pre,code,kbd{font-family:var(--mono)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:16px;z-index:100;padding:12px 18px;color:var(--text);background:var(--paper);border:1px solid var(--accent)}.skip-link:focus{top:12px}.catalog-shell{min-height:100vh}.catalog-width{width:min(1180px,calc(100% - 80px));margin-inline:auto}.catalog-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:100px;border-bottom:1px solid var(--line)}.algo-brand{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;font:750 17px var(--mono);letter-spacing:-.05em}.algo-symbol{position:relative;display:grid;place-items:center;width:44px;height:44px;font:700 34px var(--sans);color:var(--on-accent);background:var(--accent-solid);border-radius:11px 11px 3px}.algo-symbol>span{position:absolute;right:5px;top:2px;font-size:16px}.brand-slash{color:var(--accent);margin-inline:9px}.algo-brand small{font:11px var(--mono);letter-spacing:0;color:var(--muted)}.catalog-header nav{display:flex;align-items:center;gap:29px}.catalog-header nav>a{display:inline-flex;align-items:center;gap:7px;min-height:44px;font:12px var(--mono);color:var(--muted);text-decoration:none}.catalog-header nav>a:hover{color:var(--accent)}.theme-toggle,.print-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:8px 12px;border:1px solid var(--line);color:var(--muted);background:transparent;font:12px var(--mono);white-space:nowrap}.theme-toggle:hover,.print-button:hover{color:var(--text);background:var(--subtle);border-color:var(--accent)}.catalog-header .theme-toggle{border-radius:24px}.catalog-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:45px;padding:48px 0}.hero-terminal{min-width:0;scroll-margin-top:25px}.hero-terminal .terminal-transcript{height:260px}.hero-copy{min-width:0}.kicker{display:flex;align-items:center;gap:10px;font:10px/1.8 var(--mono);letter-spacing:.07em;color:var(--muted);margin:0 0 24px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}.catalog-hero h1{font:720 clamp(36px,3.8vw,54px) / 1.07 var(--sans);letter-spacing:-.055em;margin:0 0 26px}.catalog-hero h1>span{color:var(--accent)}.catalog-lead{max-width:550px;font:17px/1.85 var(--sans);color:var(--muted);margin:0 0 30px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px}.primary-link{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-height:50px;padding:13px 21px;color:var(--on-accent);background:var(--accent-solid);border:1px solid var(--accent-solid);border-radius:8px;text-decoration:none;font:550 13px var(--mono)}.primary-link>span{font-size:22px}.primary-link:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.text-link{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font:11px/1.8 var(--mono);text-decoration:none}.text-link:hover{color:var(--accent);text-decoration:underline}.solution-path{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;list-style:none;padding:21px 0;margin:0;border-block:1px solid var(--line)}.solution-path li{display:flex;align-items:center;gap:10px;font:11px/1.6 var(--mono)}.solution-path li>span:first-child{font-size:10px;color:var(--accent)}.path-arrow{color:var(--muted);margin-left:auto}.solution-path li:last-child .path-arrow{visibility:hidden}.catalog-course{padding:64px 0 36px;scroll-margin-top:25px}.course-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px}.catalog-shell h2{margin:0;font:620 clamp(27px,3vw,39px) / 1.15 var(--sans);letter-spacing:-.045em}.catalog-shell h2>span{color:var(--muted)}.course-heading .kicker,.section-heading .kicker{margin-bottom:14px}.lecture-search{display:grid;gap:9px;color:var(--muted);font:10px var(--mono);width:300px;flex-shrink:0}.lecture-search>span{display:flex;justify-content:space-between;align-items:center}kbd{border:1px solid var(--line);border-radius:3px;padding:2px 5px}.lecture-search input{width:100%;min-width:0;min-height:46px;padding:10px 14px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--text);font:11px var(--mono)}.lecture-search input::placeholder{color:var(--muted)}.lecture-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.lecture-list li{margin:0}.lecture-card{display:grid;grid-template-columns:53px minmax(0,1fr) 30px;gap:20px;padding:25px 8px;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none;transition:background .18s,padding-inline .18s}.lecture-card:hover{background:var(--subtle);padding-inline:17px}.lecture-card:focus-visible{outline-offset:-2px}.lecture-number{font:12px/1.6 var(--mono);color:var(--muted);padding-top:3px}.lecture-number:before{content:"["}.lecture-number:after{content:"]"}.lecture-copy{min-width:0}.lecture-label{font:9px/1.5 var(--mono);color:var(--muted)}.lecture-card h3{color:inherit;font:500 18px/1.4 var(--mono);letter-spacing:-.04em;margin:6px 0 8px}.lecture-card p{color:var(--muted);font:12px/1.75 var(--sans);margin:0;max-width:740px}.lecture-arrow{color:var(--muted);font:21px var(--mono);align-self:center;justify-self:end;transition:transform .18s,color .18s}.lecture-card:hover .lecture-arrow{color:var(--accent);transform:translate(2px,-2px)}.search-status{min-height:24px;font:11px/1.8 var(--mono);color:var(--muted);margin:15px 0 0}.complexity-probe{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,1.7fr);gap:20px 30px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:27px}.probe-input{min-width:0;align-self:start}.probe-input label{display:flex;justify-content:space-between;font:11px/1.8 var(--mono);color:var(--muted);margin-bottom:13px}.probe-input label>span{color:var(--accent)}.probe-input input{width:100%;min-width:0;border:0;border-bottom:1px solid var(--border-strong);background:transparent;border-radius:0;color:var(--text);font:500 30px/1.4 var(--mono);padding:7px 0}.probe-presets{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.probe-presets button{min-height:36px;padding:6px 9px;background:transparent;border:1px solid var(--line);color:var(--muted);font:10px var(--mono);border-radius:5px}.probe-presets button[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.probe-results{min-width:0}.probe-row{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:4px 10px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line2);font:11px/1.7 var(--mono)}.probe-row:first-child{padding-top:0}.probe-row code{color:var(--accent);font-size:13px}.probe-row>span{color:var(--muted);font:12px/1.7 var(--sans)}.probe-row strong{font-weight:500}.probe-row .probe-verdict{grid-column:3;text-align:right;color:var(--def);font:9px/1.7 var(--mono)}.probe-row.over-budget .probe-verdict,.probe-row.over-budget strong{color:var(--error)}.probe-note{grid-column:1/-1;color:var(--muted);font:11px/1.85 var(--sans);margin:0;border-top:1px solid var(--line);padding-top:17px}.probe-error{color:var(--error);font:13px/1.8 var(--sans)}.terminal-window{min-width:0;overflow:hidden;background:#130e10;color:#eadbe1;border:1px solid var(--line);border-radius:10px;font:12px/1.85 var(--mono)}.terminal-chrome{display:flex;align-items:center;gap:18px;min-height:48px;padding:8px 17px;border-bottom:1px solid #3e2932;font:9px var(--mono);color:#b79aa6}.terminal-session{display:flex;align-items:center;gap:8px;color:#e2a0b3}.terminal-session i{display:inline-block;width:6px;height:6px;background:#a9bea0;border-radius:50%}.terminal-chrome>button{margin-left:auto;background:transparent;border:0;color:#b79aa6;font:9px var(--mono);min-height:32px;padding:4px 0}.terminal-transcript{height:300px;overflow:auto;padding:20px;scrollbar-width:thin;scrollbar-color:#65424f transparent;white-space:pre-wrap;overflow-wrap:anywhere;overscroll-behavior:contain}.terminal-command{color:#e2a0b3}.terminal-window form{display:flex;align-items:center;gap:12px;border-top:1px solid #3e2932;padding:0 19px;background:#1c1318}.terminal-window label{color:#e2a0b3}.terminal-window input{min-width:0;width:100%;min-height:49px;background:transparent;border:0;border-radius:0;color:#eadbe1;font:12px var(--mono);padding:10px 0;caret-color:#e2a0b3}.terminal-window input:focus,.terminal-window input:focus-visible{outline:none;box-shadow:none}.terminal-window input::placeholder{color:#a48995}.terminal-window form button{min-width:44px;min-height:44px;border:0;background:transparent;color:#e2a0b3}.terminal-shortcuts{display:flex;gap:3px 12px;flex-wrap:wrap;padding:7px 16px;border-top:1px solid #3e2932}.terminal-shortcuts button{color:#b79aa6;border:0;background:transparent;font:9px var(--mono);padding:7px 0;min-height:32px}.terminal-shortcuts button:hover{color:#e2a0b3}.catalog-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:25px;padding:30px 0 35px;border-top:1px solid var(--line)}.footer-brand{font:650 13px var(--mono);color:var(--text);text-decoration:none}.catalog-footer p{margin:0;font:12px/1.8 var(--sans)}.catalog-footer p>span{color:var(--muted)}.catalog-footer nav{display:flex;flex-direction:column;gap:6px}.catalog-footer nav a{font:10px/1.8 var(--mono);color:var(--muted);text-decoration:none}.catalog-footer a:hover{color:var(--accent)}@media(max-width:1000px){.catalog-width{width:calc(100% - 48px)}.catalog-hero{gap:25px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.catalog-hero h1{font-size:38px}.catalog-hero .kicker{font-size:8px}.solution-path{gap:14px}.solution-path li{font-size:10px;gap:7px}.complexity-probe{grid-template-columns:minmax(140px,.7fr) minmax(0,1.5fr);gap:22px;padding:23px}.probe-row{grid-template-columns:75px minmax(0,1fr)}.probe-row strong{grid-column:2}.probe-row .probe-verdict{grid-column:2;text-align:left}}@media(max-width:700px){.catalog-width{width:calc(100% - 36px)}.catalog-header{min-height:83px;gap:12px}.algo-brand{gap:8px;font-size:14px}.algo-symbol{width:35px;height:35px;font-size:28px;border-radius:8px 8px 2px}.algo-brand small,.brand-slash{display:none}.catalog-header nav{gap:15px}.catalog-header nav>a{font-size:10px}.catalog-header .theme-toggle{min-width:44px;width:44px;padding-inline:0}.catalog-header .theme-toggle span,.catalog-header nav>a>span{display:none}.catalog-hero{grid-template-columns:minmax(0,1fr);gap:30px;padding:28px 0 31px}.catalog-hero h1{font-size:clamp(38px,8.8vw,58px)}.catalog-hero .kicker{font-size:8px;letter-spacing:.015em}.catalog-lead{font-size:16px}.hero-actions{gap:8px 20px}.solution-path{grid-template-columns:1fr 1fr;gap:15px 17px;padding-block:20px}.solution-path li{font-size:10px}.path-arrow{display:none}.catalog-course{padding:40px 0 28px}.course-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:23px;margin-bottom:23px}.catalog-shell h2{font-size:30px}.lecture-search{width:100%;font-size:11px}.lecture-search input{font-size:16px}.lecture-card{grid-template-columns:33px minmax(0,1fr) 16px;padding:22px 0;gap:10px}.lecture-card:hover{padding-inline:5px}.lecture-number{font-size:10px;padding-top:1px}.lecture-label{font-size:8px}.lecture-card h3{font-size:16px;overflow-wrap:anywhere}.lecture-card p{font-size:14px;line-height:1.8}.lecture-arrow{font-size:19px}.search-status{font-size:11px}.complexity-probe{grid-template-columns:1fr;padding:20px;gap:26px}.probe-input input{font-size:32px}.probe-input label{font-size:12px}.probe-presets button{min-height:44px;font-size:11px;padding-inline:12px}.probe-row{grid-template-columns:72px minmax(0,1fr);padding-block:13px}.probe-row strong{font-size:13px}.probe-row .probe-verdict{font-size:10px}.probe-note{font-size:12px}.terminal-chrome{padding-inline:13px;gap:10px}.terminal-chrome>span:nth-child(2){display:none}.terminal-transcript{height:300px;padding:16px;font-size:12px}.terminal-window input{font-size:16px}.terminal-window form{padding-inline:14px;gap:8px}.terminal-shortcuts button{min-height:44px;font-size:10px}.catalog-footer{align-items:start;gap:20px}.catalog-footer p{width:100%;order:3;font-size:13px}}.card{border:1px solid var(--line);background:var(--paper);padding:17px 18px;margin:14px 0;min-width:0}.split>.card{margin:0}.card-header{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:13px}.card-heading{font-weight:680;font-size:14px;line-height:1.38}.card-sub{font-size:12px;color:var(--muted)}.def{border:1px solid var(--line);border-left:3px solid var(--def);background:var(--paper);padding:12px 15px;margin:12px 0;font-size:14px}.def .term{color:var(--def);font-weight:700}.important{border-left:3px solid var(--warn);background:var(--warn-soft);padding:12px 15px;margin:15px 0;font-size:13.5px}.important.error{border-color:var(--error);background:var(--error-soft)}.important.correct{border-color:var(--correct);background:var(--def-soft)}.important b{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.additional{margin:14px 0;border:1px solid var(--line);background:var(--paper)}.additional summary{cursor:pointer;display:flex;gap:10px;align-items:center;padding:11px 15px;color:var(--accent);font-weight:650;font-size:13px;list-style:none}.additional summary::-webkit-details-marker{display:none}.additional summary:before{content:"+";font:700 18px ui-monospace,monospace}.additional[open] summary:before{content:"−"}.additional .additional-body{padding:1px 16px 13px;border-top:1px solid var(--line);font-size:13px}.katexish,.formula{font-family:Cambria,"STIX Two Math",Times New Roman,serif;font-size:19px;line-height:1.65}.formula{padding:10px 12px;background:var(--code);border-left:2px solid var(--accent);margin:12px 0;overflow-x:auto;white-space:nowrap}.formula.center{text-align:center}.mono,code,pre,.stat-value,.data-cell,.numeric{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}code{font-size:.93em;background:var(--code);padding:1px 4px}pre{font-size:12.4px;line-height:1.7;overflow:auto;max-height:440px;background:var(--code);border:1px solid var(--line2);padding:13px;margin:0;-moz-tab-size:2;tab-size:2}pre code{padding:0;background:none;font-size:inherit}.kw{color:#8b5aaf}.num{color:#a06d32}.fn{color:#266e8e}.comment{color:var(--muted)}[data-theme=dark] .kw{color:#c2a2ea}[data-theme=dark] .num{color:#e4b570}[data-theme=dark] .fn{color:#9fcfe4}.btn{background:var(--paper);border:1px solid var(--border-strong);padding:7px 11px;border-radius:0;color:var(--text);font-weight:600;font-size:12px;line-height:1.35}.btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn.primary:hover:not(:disabled){filter:brightness(.95)}.btn:disabled{opacity:.35;cursor:default}.btn.tiny{font-size:11px;padding:5px 8px}.controls{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:12px 0}.controls.end{justify-content:flex-end}.control-group{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.control-label{font-size:12px;color:var(--muted)}input[type=number],input[type=text],select{background:var(--paper);color:var(--text);border:1px solid var(--border-strong);padding:7px 8px;min-width:0;border-radius:0;font-size:12.5px}input[type=range]{accent-color:var(--accent);max-width:100%}.text-input{width:100%}.stat-row{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.stat{border:1px solid var(--line);min-width:94px;padding:8px 11px;flex:1}.stat-label{font-size:10.5px;line-height:1.35;color:var(--muted)}.stat-value{font-weight:750;font-size:19px;line-height:1.45}.small{font-size:12px;color:var(--muted)}.micro{font-size:11px;color:var(--muted)}.diagram{border:1px solid var(--line2);background:var(--bg);padding:14px;margin:9px 0;overflow:auto}.diagram-label{font-size:11px;color:var(--muted);margin-bottom:7px}.array{display:flex;gap:3px;max-width:100%;overflow-x:auto;padding:4px 1px 9px}.array-node{min-width:43px;position:relative;text-align:center;flex:0 0 auto}.array-box{border:1px solid var(--border-strong);background:var(--paper);padding:10px 5px;font-family:ui-monospace,monospace;font-weight:750;min-height:43px;line-height:22px}.array-node.active .array-box{border:2px solid var(--accent);padding:9px 4px;background:var(--accent-soft)}.array-node.done .array-box{background:var(--def-soft);border-color:var(--def)}.array-node.warn .array-box{background:var(--warn-soft);border-color:var(--warn)}.array-node.pointer .array-box{border-bottom:3px solid var(--accent);padding-bottom:8px}.array-idx{font:10px ui-monospace,monospace;color:var(--muted);margin-top:4px}.arrowtext{font-size:11px;line-height:1.2;color:var(--accent);margin-bottom:4px;height:13px}.separator{height:1px;background:var(--line2);margin:14px 0}.op-step{background:var(--accent-soft);border-left:2px solid var(--accent);padding:11px 12px;font-size:12.5px;min-height:51px}.pill{display:inline-block;border:1px solid var(--line);padding:2px 7px;font-size:10px;color:var(--muted);margin-right:5px}.diagram-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}.flowbox{border:1px solid var(--border-strong);background:var(--paper);padding:8px 12px;text-align:center;font-size:12px;min-width:84px}.flow-arrow{color:var(--accent);font-size:20px;font-weight:500}.flowbox.highlight{background:var(--accent-soft);border-color:var(--accent)}.bar-chart{width:100%;height:auto;display:block;max-height:230px}.bar-chart text,.line-chart text{fill:var(--muted);font-size:10px;font-family:ui-monospace,monospace}.bar-chart .bar{fill:var(--accent)}.bar-chart .bar-muted{fill:var(--border-strong)}.bar-chart .gridline,.line-chart .gridline{stroke:var(--line);stroke-width:1}.line-chart{width:100%;height:auto;display:block;max-height:270px}.mini-table{border-collapse:collapse;width:100%;font-size:12px}.mini-table th,.mini-table td{border:1px solid var(--line);padding:8px 9px;text-align:left;vertical-align:middle}.mini-table th{background:var(--code);font-weight:650}.mini-table td.emphasis{background:var(--accent-soft);font-weight:700}.mini-table-wrap{overflow:auto;max-width:100%}.matrix{border-collapse:collapse;margin:12px 0;font:650 13px ui-monospace,monospace}.matrix td,.matrix th{border:1px solid var(--line);text-align:center;min-width:46px;padding:8px 10px}.matrix th{font-size:11px;color:var(--muted);background:var(--code)}.matrix td.hi{background:var(--accent-soft);outline:1px solid var(--accent);outline-offset:-1px}.matrix td.dim{opacity:.42}.coeff-input{width:54px!important;padding:6px!important;text-align:center}.input-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:8px 0}.input-row label{font-size:12px;color:var(--muted)}.steps-rail{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0}.step-dot{height:5px;min-width:17px;flex:1;background:var(--line)}.step-dot.past{background:var(--accent)}.step-dot.now{background:var(--def)}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--muted);margin-top:7px}.legend span:before{content:"";display:inline-block;width:9px;height:9px;margin-right:5px;background:var(--accent)}.legend .secondary:before{background:var(--error)}.legend .neutral:before{background:var(--border-strong)}.legend .success:before{background:var(--def)}.level-row{display:grid;grid-template-columns:94px minmax(0,1fr) 74px;gap:12px;align-items:center;margin:8px 0;font-size:11px}.level-track{height:19px;background:var(--code);border:1px solid var(--line2);position:relative}.level-fill{height:100%;background:var(--accent);min-width:2px}.tree-blocks{display:flex;gap:2px;height:24px;margin:5px 0}.tree-block{border:1px solid var(--accent);background:var(--accent-soft);min-width:0;display:flex;align-items:center;justify-content:center;font:10px ui-monospace,monospace;white-space:nowrap;overflow:hidden}.tree-label{font-size:10px;color:var(--muted);margin-top:7px}.tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--accent);color:var(--accent);background:var(--paper);font:700 10px ui-monospace,monospace;cursor:help;margin:0 3px;padding:0;width:17px;height:17px;vertical-align:text-bottom}.tooltip-portal{position:fixed;z-index:99999;width:min(315px,calc(100vw - 24px));border:1px solid var(--accent);padding:12px 14px;background:var(--paper);color:var(--text);box-shadow:0 5px 18px #00000024;font-size:12.3px;line-height:1.52}.tooltip-title{font-weight:700;margin-bottom:3px}.glossary-search{max-width:480px;width:100%;padding:10px!important;font-size:14px!important}.glossary-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin-top:16px}.glossary-term{border-top:1px solid var(--line);padding:12px 2px;font-size:12.7px}.glossary-term b{display:block;font-size:13.5px;color:var(--def)}.glossary-en{font-size:11px;font-weight:400;color:var(--muted)}.foot{border-top:2px solid var(--text);padding-top:20px;margin-top:54px;color:var(--muted);font-size:12px}.foot p{margin:0 0 8px}.mobile-nav{display:none}.kbd{font:11px ui-monospace,monospace;border:1px solid var(--line);padding:1px 4px;background:var(--code)}.lecture-shell{font-family:var(--mono)}.lecture-layout{display:grid;grid-template-columns:260px minmax(0,1fr);width:min(1450px,100%);margin-inline:auto;min-height:100vh}.lecture-aside{position:sticky;top:0;height:100dvh;overflow-y:auto;border-right:1px solid var(--line);padding:30px 20px 24px;display:flex;flex-direction:column}.lecture-brand{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none}.brand-symbol{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--accent-solid);color:var(--on-accent);font:600 25px var(--mono);letter-spacing:-.13em;padding-right:4px}.brand-symbol span{opacity:.65}.lecture-brand strong{display:block;font:600 13px/1.6 var(--mono)}.lecture-brand small{display:block;color:var(--muted);font:9px/1.7 var(--mono);margin-top:3px}.back-link{display:block;color:var(--muted);font:10px/1.8 var(--mono);margin:20px 0 28px;text-decoration:none}.aside-label{font:9px/1.6 var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 12px}.toc{display:grid;gap:3px}.toc a{display:flex;gap:11px;border-left:2px solid transparent;padding:9px 7px;color:var(--muted);font:11px/1.5 var(--mono);text-decoration:none}.toc a>span{color:var(--border-strong);font-size:9px;padding-top:2px}.toc a:hover,.toc a.active{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.toc a.active>span{color:var(--accent)}.aside-bottom{margin-top:auto;padding-top:28px}.aside-bottom>div:first-child{display:flex;align-items:center;justify-content:space-between;font:9px/1.7 var(--mono);color:var(--muted);margin-bottom:10px}.aside-bottom strong{font-weight:500;color:var(--accent)}.progress-track{height:3px;background:var(--line)}.progress-track>div{height:100%;background:var(--accent)}.sticky-progress{position:fixed;top:0;left:0;height:2px;z-index:80;background:var(--accent)}.main-column{min-width:0}.lecture-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);margin:0 clamp(24px,4vw,58px)}.crumb{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font:10px/1.7 var(--mono);color:var(--muted)}.crumb a{text-decoration:none;color:var(--muted)}.crumb strong{font-weight:400;color:var(--text)}.top-actions{display:flex;gap:8px}.lecture-main{padding:0 clamp(24px,4vw,58px) 36px;min-width:0}.lecture-hero{padding:44px 0 33px;border-bottom:1px solid var(--line)}.lecture-hero .kicker{color:var(--accent);margin-bottom:19px}.lecture-hero h1{font:550 clamp(30px,3.8vw,49px) / 1.22 var(--mono);letter-spacing:-.055em;margin:0 0 20px}.lecture-hero .lead{font:16px/1.9 var(--sans);color:var(--muted);max-width:none;margin:0}.lecture-main article{font:16px/1.85 var(--mono);overflow-wrap:break-word}.chapter{padding-top:43px;scroll-margin-top:25px}.chapter-head{display:flex;align-items:baseline;gap:15px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:22px}.chapter-index{color:var(--accent);font:12px var(--mono)}.chapter h2{font:500 clamp(21px,2.2vw,28px) / 1.4 var(--mono);letter-spacing:-.04em;margin:0}.chapter h3{font:550 18px/1.55 var(--mono);letter-spacing:-.025em;margin:28px 0 12px}.chapter p{margin:0 0 17px}.chapter li{margin-bottom:8px}.chapter code:not(pre code){font-size:.9em;color:var(--accent)}.chapter .split{display:block;margin:0}.chapter .prose{max-width:none}.chapter .card{background:transparent;border:1px solid var(--line);border-radius:3px;padding:21px;margin:24px 0}.chapter .card-header{padding-bottom:12px;border-bottom:1px solid var(--line2);margin-bottom:18px;flex-wrap:wrap}.chapter .card-heading{font:550 14px/1.6 var(--mono)}.chapter .card-sub{font:11px/1.7 var(--mono)}.chapter .def{background:transparent;border:0;padding:0;font:inherit;margin:19px 0}.chapter .term{color:inherit;border:1px solid var(--line);padding:2px 5px;font-weight:500}.chapter .important{background:transparent;border:0;padding:0;margin:22px 0;font:inherit}.chapter .important>b{text-transform:none;letter-spacing:0;display:block;font-size:14px;color:var(--accent);margin-bottom:6px}.chapter .important.error{background:var(--error-soft);border-left:2px solid var(--error);padding:15px 18px}.chapter .important.error>b{color:var(--error)}.chapter .additional{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;padding:0;margin:23px 0}.chapter .additional summary{min-height:46px;padding:12px 3px;font:13px/1.7 var(--mono);color:var(--accent)}.chapter .additional-body{font:14px/1.9 var(--mono);padding:8px 3px 17px}.chapter .small{font:12px/1.8 var(--mono)}.chapter .formula{background:var(--subtle);border:0;padding:17px;margin:20px 0;font-family:var(--mono);overflow-x:auto;max-width:100%}.chapter .op-step{font:13px/1.8 var(--mono);padding:13px}.chapter .stat-value{font-family:var(--mono);color:var(--accent)}.chapter .mini-table{font:13px/1.8 var(--mono)}.chapter .mini-table th,.chapter .mini-table td{border:0;border-bottom:1px solid var(--line);padding:12px 15px 12px 0}.chapter .mini-table th{background:transparent;color:var(--text);font-weight:500}.chapter .mini-table-wrap{margin:20px 0}.chapter .controls{gap:10px}.chapter .btn{min-height:44px;padding:9px 13px;font:12px/1.7 var(--mono);background:transparent;color:var(--text);border:1px solid var(--line)}.chapter .btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.chapter .btn.primary{background:var(--accent-solid);color:var(--on-accent);border-color:var(--accent-solid)}.chapter .controls select,.chapter input:not([type=range]){max-width:100%;min-height:44px;font-size:14px;background:var(--paper);color:var(--text);border:1px solid var(--line)}.chapter input[type=range]{accent-color:var(--accent-solid);min-height:32px;max-width:100%}.chapter .control-label{font:12px/1.8 var(--mono)}.chapter .diagram{background:var(--code);border:1px solid var(--line2);padding:16px;overflow:auto}.chapter .flowbox{font-size:13px}.chapter .section-explanation{border-top:1px solid var(--line2);padding-top:2px;margin-top:28px}.chapter .glossary-term{font:13px/1.8 var(--mono);padding:15px 0}.chapter .glossary-term b{color:var(--text);font-weight:500}.chapter .tooltip-trigger{width:26px;height:26px;background:transparent;font-size:11px}.tooltip-portal{background:var(--paper);color:var(--text);border:1px solid var(--accent);width:min(315px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;font:13px/1.8 var(--sans);padding:14px 17px;z-index:100}.tooltip-title{color:var(--accent);font-weight:600;margin-bottom:5px}.code-block{margin:24px 0;border:1px solid var(--line);border-radius:3px;background:var(--code);overflow:hidden;min-width:0}.code-block figcaption{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:7px 15px;font:11px/1.7 var(--mono);color:var(--muted)}.code-block figcaption button{flex-shrink:0;min-height:36px;border:0;padding:6px 0 6px 10px;background:transparent;color:var(--accent);font:10px/1.7 var(--mono)}.code-block pre{margin:0;padding:20px;overflow:auto;max-width:100%;color:var(--text);font:12px/1.9 var(--mono);-moz-tab-size:4;tab-size:4;white-space:pre}.code-block .code-note{border-top:1px solid var(--line);padding:12px 16px;margin:0;color:var(--muted);font:12px/1.8 var(--mono)}.token.comment{color:var(--syntax-comment)}.token.keyword,.token.boolean,.token.operator{color:var(--accent)}.token.string,.token.char{color:var(--syntax-string)}.token.number,.token.function{color:var(--warn)}.token.punctuation{color:var(--muted)}.language-examples{margin-top:30px}.language-examples>p{font-size:14px}.language-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.language-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;min-height:44px;padding:10px 17px;color:var(--muted);font:12px var(--mono);border-radius:0}.language-tabs button span{margin-left:9px;font-size:10px;opacity:.7}.language-tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-soft)}.language-examples .code-block{margin:0;border-top:0;border-radius:0 0 3px 3px}.expected-output{border-bottom:1px solid var(--line);padding:16px 0}.expected-output>span{color:var(--muted);font:10px var(--mono)}.expected-output pre{font:12px/1.8 var(--mono);margin:7px 0 0;overflow:auto}.lecture-recap{border-top:1px solid var(--line);margin-top:40px;padding-top:30px;font:14px/1.9 var(--mono)}.lecture-recap h2{font:500 23px/1.5 var(--mono);letter-spacing:-.04em}.lecture-recap ol{padding-left:23px}.lecture-recap li{margin-bottom:12px}.adjacent-lectures{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px;border-top:1px solid var(--line);padding-top:25px}.adjacent-lectures a{min-width:0;text-decoration:none}.adjacent-lectures a:last-child{text-align:right}.adjacent-lectures small{display:block;color:var(--muted);font:10px/1.7 var(--mono);margin-bottom:7px}.adjacent-lectures strong{font:500 13px/1.7 var(--mono)}.lecture-foot{border-top:1px solid var(--line);margin-top:32px;padding-top:22px;color:var(--muted);font:10px/1.9 var(--mono)}.mobile-toc{display:none}@media(max-width:1100px){.lecture-layout{grid-template-columns:225px minmax(0,1fr)}.lecture-aside{padding-inline:15px}.lecture-topbar{margin-inline:28px}.lecture-main{padding-inline:28px}.lecture-main article{font-size:14px}}@media(max-width:800px){.lecture-layout{display:block}.lecture-aside{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:16px 20px 0;overflow:visible;display:block}.lecture-brand{width:fit-content}.lecture-brand strong{font-size:14px}.lecture-brand small{font-size:10px}.brand-symbol{width:39px;height:39px}.back-link{position:absolute;top:18px;right:20px;font-size:10px;margin:0;max-width:120px;text-align:right}.desktop-toc,.aside-bottom{display:none}.mobile-toc{display:block;margin-top:14px;border-top:1px solid var(--line)}.mobile-toc summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;color:var(--accent);font:12px var(--mono);cursor:pointer}.mobile-toc .toc{padding-bottom:15px}.mobile-toc .toc a{min-height:44px;font-size:13px;align-items:center}.lecture-topbar{margin-inline:20px;padding-block:12px}.lecture-main{padding-inline:20px}.lecture-hero{padding-top:32px}.lecture-hero h1{font-size:clamp(28px,6vw,42px)}.lecture-main article{font-size:15px;line-height:1.9}.lecture-hero .lead{font-size:16px}.chapter .card{padding:16px}.chapter .glossary-grid{grid-template-columns:1fr}.chapter .glossary-term{font-size:14px}.chapter .controls select,.chapter input:not([type=range]){font-size:16px}.code-block pre{padding:16px;font-size:12px}.code-block figcaption{padding-inline:12px}.chapter .small{font-size:12px}.chapter .level-row{grid-template-columns:60px minmax(0,1fr) 50px;gap:7px;font-size:10px}}@media(max-width:400px){.lecture-topbar{flex-wrap:wrap;gap:10px}.lecture-topbar .top-actions{margin-left:auto}.lecture-main{padding-inline:16px}.chapter h2{font-size:22px}.chapter-head{gap:10px}.chapter .card{padding:13px}.chapter .diagram{padding:10px}.chapter .stat-row{grid-template-columns:1fr}.adjacent-lectures{gap:18px}}@media print{:root,:root[data-theme=dark],:root[data-theme=light]{color-scheme:light;--bg: #fff;--paper: #fff;--text: #21181c;--muted: #60515a;--accent: #7b263d;--accent-soft: #f5edf0;--line: #ccc;--line2: #eee;--code: #f6f3f4;--subtle: #f6f3f4;--syntax-string: #42552d;--syntax-comment: #63565d;--warn: #76551f}.lecture-layout{display:block}.lecture-aside,.lecture-topbar,.sticky-progress,.skip-link,.code-block button,.language-tabs,.controls,.tooltip-trigger,.adjacent-lectures,.expected-output>span{display:none!important}.lecture-main{padding:0}.lecture-hero{padding-top:0}.chapter{padding-top:28px}.chapter h2,.chapter h3{break-after:avoid}.language-examples [hidden]{display:block!important}.code-block{break-inside:avoid}.code-block pre{max-height:none;white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px}.chapter .diagram,.chapter .mini-table-wrap{overflow:visible}}.lecture-aside{background:var(--paper)}.lecture-brand .brand-symbol{position:relative;border-radius:10px 10px 3px;font:700 34px var(--sans);letter-spacing:-.06em}.lecture-brand .brand-symbol>span{position:absolute;top:3px;right:5px;opacity:1;font-size:14px}.lecture-brand strong{font:650 12px var(--mono)}.lecture-brand small{font-size:9px}.toc a{border-radius:5px}.lecture-hero{position:relative;padding-block:42px 35px}.lecture-hero h1{font:700 clamp(32px,3.8vw,53px) / 1.12 var(--sans);letter-spacing:-.045em;max-width:920px}.lecture-hero .kicker{display:inline-flex;padding:5px 9px;background:var(--accent-soft);border-radius:4px;font-size:9px;letter-spacing:.04em}.lecture-hero .lead{font-size:16px}.lecture-hero .lecture-unlock{border:0;text-align:left;cursor:pointer}.lecture-shell .chapter-head{align-items:center;gap:14px;border-bottom:1px solid var(--line2);padding-bottom:18px}.lecture-shell .chapter-index{flex:none;display:grid;place-items:center;min-width:32px;height:30px;background:var(--accent-soft);border-radius:5px;font-size:11px}.lecture-shell .chapter h2{font:650 clamp(23px,2.5vw,30px) / 1.25 var(--sans);letter-spacing:-.025em}.lecture-shell .chapter .term{border:0;border-bottom:1px dashed var(--accent);padding:0 0 2px}.lecture-shell .chapter .card{border-radius:8px}.lecture-shell .code-block{border-radius:7px}.lecture-shell .code-block figcaption{background:var(--subtle)}.lecture-shell .chapter .contest-case{position:relative;padding:22px 0 8px 22px;border-left:2px solid var(--accent-solid);margin:29px 0}.chapter .contest-case .application-label{color:var(--accent);font:9px/1.8 var(--mono);letter-spacing:.06em;margin-bottom:12px}.chapter .contest-case h3{font:650 21px/1.4 var(--sans);margin:0 0 13px;letter-spacing:-.02em}.chapter .contest-case p:not(.application-label){font:14px/1.9 var(--mono)}.constraint-checklist{padding-left:24px}.constraint-checklist>li{padding-left:6px;margin-bottom:18px}.constraint-checklist>li::marker{color:var(--accent)}.chapter .complexity-probe{margin:30px 0;font-family:var(--sans)}.chapter .probe-input input{font:500 29px/1.4 var(--mono);background:transparent;border:0;border-bottom:1px solid var(--border-strong);padding:7px 0;border-radius:0}.chapter .complexity-probe code{background:transparent;padding:0}.chapter .complexity-probe .probe-note{font:12px/1.85 var(--sans);margin:0}.chapter .complexity-probe .probe-row>span{font-size:12px}.chapter .complexity-probe .probe-row .probe-verdict{font-size:9px}.constraint-table-wrap{max-width:100%;overflow:auto;margin:22px 0;border:1px solid var(--line);border-radius:7px}.constraint-table{border-collapse:collapse;width:100%;min-width:560px;font:12px/1.9 var(--mono)}.constraint-table th,.constraint-table td{text-align:left;vertical-align:top;padding:14px 17px;border-bottom:1px solid var(--line)}.constraint-table th{background:var(--subtle);font-weight:500;color:var(--accent)}.constraint-table tr:last-child td{border-bottom:0}.chapter .practice-note{font:13px/1.9 var(--sans);color:var(--muted)}.practice-jumps{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0 30px}.practice-jumps a{display:inline-flex;align-items:center;gap:20px;border:1px solid var(--line);border-radius:6px;padding:10px 13px;min-height:44px;font:12px var(--mono);text-decoration:none}.practice-jumps a:hover{border-color:var(--accent);background:var(--accent-soft)}.practice-jumps span{color:var(--muted);font-size:10px}.practice-level{margin-top:36px;scroll-margin-top:25px}.practice-level-heading{display:flex;align-items:flex-start;gap:17px;margin-bottom:19px}.practice-level-heading>span{font:11px/1.9 var(--mono);color:var(--accent);border-top:2px solid var(--accent);padding-top:4px;min-width:28px}.chapter .practice-level-heading h3{font:650 24px/1.2 var(--sans);margin:0 0 9px;letter-spacing:-.02em}.chapter .practice-level-heading p{font:13px/1.8 var(--sans);color:var(--muted);margin:0}.chapter .practice-task-list{list-style:none;display:grid;gap:15px;padding:0;margin:0}.chapter .practice-task{padding:24px;border:1px solid var(--line);border-radius:9px;background:var(--paper);margin:0}.practice-task-heading>span{color:var(--muted);font:10px var(--mono)}.practice-task-heading a{display:flex;align-items:center;justify-content:space-between;gap:15px;color:var(--text);text-decoration:none;margin:13px 0 14px}.practice-task-heading a:hover{color:var(--accent)}.practice-task-heading h4{font:650 23px/1.3 var(--sans);letter-spacing:-.03em;margin:0}.practice-task-heading a>span{color:var(--accent);font-size:23px}.chapter .practice-task p{font:14px/1.9 var(--sans);margin-bottom:13px}.chapter .practice-task .task-constraints{font:12px/1.9 var(--mono);color:var(--muted)}.task-constraints strong{font-weight:500;color:var(--text)}.practice-task details{border-top:1px solid var(--line2);margin-top:17px}.practice-task summary{color:var(--accent);font:12px/1.8 var(--mono);cursor:pointer;min-height:44px;padding:12px 0 4px}.chapter .practice-task details p{font:13px/1.9 var(--mono);margin:13px 0 0}.practice-level.level-hard .practice-task{border-color:var(--border-strong);background:var(--accent-soft)}.chapter .practice-finish{margin:27px 0 0;font:13px/1.9 var(--sans);color:var(--muted)}@media(max-width:1000px){.lecture-brand strong{font-size:11px}}@media(max-width:800px){.lecture-hero h1{font-size:clamp(31px,7vw,42px)}.lecture-hero{padding-block:30px}.lecture-shell .chapter h2{font-size:26px}.lecture-shell .chapter .contest-case{padding:17px 0 4px 16px}.chapter .contest-case p:not(.application-label){font-size:14px}.chapter .practice-task{padding:20px}.practice-task-heading h4{font-size:23px}}@media(max-width:400px){.lecture-brand strong{font-size:11px}.lecture-brand small{font-size:8px}.back-link{max-width:95px}.chapter .practice-task{padding:17px}.practice-jumps{gap:7px}.practice-jumps a{gap:10px;font-size:11px;padding-inline:10px}}@media print{.lecture-aside,.probe-presets{display:none!important}.lecture-hero .kicker{background:transparent;padding:0}.complexity-probe{break-inside:avoid}.constraint-table{min-width:0;font-size:10px}.constraint-table-wrap{overflow:visible}.practice-task{break-inside:avoid}.practice-jumps{display:none}}.advanced-module-note{padding:.9rem;border-left:3px solid var(--accent);background:var(--accent-soft)}.terminal-game-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 16px;background:var(--accent-soft);color:var(--accent);font:11px var(--mono);border-bottom:1px solid var(--line)}.terminal-game-banner button{background:transparent;border:0;padding:4px;color:inherit;font:inherit;cursor:pointer}.lecture-shell .chapter h2{min-width:0;overflow-wrap:anywhere}.source-table-wrap{max-width:100%;overflow:auto;margin:22px 0}.source-table{width:100%;border-collapse:collapse;font:12px/1.8 var(--mono)}.source-table th,.source-table td{text-align:left;vertical-align:top;padding:12px 18px 12px 0;border-bottom:1px solid var(--line);min-width:110px}.source-table th{color:var(--accent);font-weight:500}.source-formula{max-width:100%;margin-block:20px}.source-formula .formula{white-space:pre-wrap;overflow-wrap:anywhere;font-size:clamp(13px,1.6vw,18px)}.algorithm-model{min-width:0}.model-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-block:15px}.model-slider{display:block;color:var(--muted);font:12px/1.8 var(--mono);min-width:0;margin-block:12px}.model-slider input{width:100%;display:block}.model-number{display:inline-flex;align-items:center;gap:8px;font:12px var(--mono)}.model-number input{width:76px;padding:8px}.algorithm-model select{min-height:44px;max-width:100%;padding:8px;font:12px var(--mono);background:var(--paper);color:var(--text);border:1px solid var(--line)}.algorithm-model .controls>label{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font:12px var(--mono)}.model-array{max-width:100%;display:flex;gap:5px;overflow:auto;margin:13px 0;padding-bottom:8px}.model-cell{flex:0 0 auto;text-align:center;min-width:42px}.model-cell>span{display:block;padding:10px 8px;border:1px solid var(--line);border-radius:4px;font:13px var(--mono);background:var(--code)}.model-cell>small{color:var(--muted);font:9px var(--mono)}.model-cell.is-active>span{background:var(--accent-soft);border-color:var(--accent)}.model-cell.is-done>span{border-color:var(--def);color:var(--def)}.model-tree-wrap,.model-network-wrap{max-width:100%;overflow:auto;margin:15px 0}.model-tree-wrap svg{display:block;width:100%;min-width:380px;max-height:380px;font:12px var(--mono)}.model-network-wrap svg{width:100%;min-width:380px;display:block;max-height:270px}.model-blocks{display:flex;flex-wrap:wrap;gap:5px}.model-blocks>span{display:inline-block;border:1px solid var(--line);background:var(--accent-soft);color:var(--accent);padding:4px 7px;font:10px var(--mono)}.model-parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.model-parts>div{min-width:0}.model-rank-bar{display:flex;height:35px;gap:2px;margin:20px 0}.model-rank-bar>span{flex:1;background:var(--line)}.model-rank-bar>span.is-done{background:var(--def);opacity:.6}.model-rank-bar>span.is-active{background:var(--accent);opacity:1}.model-groups{display:grid;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}.model-groups>div{min-width:0}.model-counts{display:flex;gap:5px;flex-wrap:wrap;margin-block:14px}.model-counts>span{display:grid;gap:4px;padding:6px;min-width:33px;text-align:center;border:1px solid var(--line);font:12px var(--mono)}.model-counts b{color:var(--muted);font-size:10px}.model-buckets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:15px 0}.model-buckets>div{border:1px solid var(--line);padding:8px;min-width:0}.model-buckets strong{display:block;color:var(--accent);font:11px var(--mono)}.model-buckets span{font:11px/1.8 var(--mono);overflow-wrap:anywhere}.model-intervals>div{font:11px/1.8 var(--mono);margin:14px 0}.model-intervals code{float:right}.model-interval-track{position:relative;height:15px;border:1px solid var(--line);background:var(--code);overflow:hidden;clear:both}.model-interval-track i{display:block;position:absolute;height:100%;background:var(--accent)}.model-plot{width:100%;max-height:230px;display:block}@media(max-width:700px){.model-controls,.model-groups,.model-parts{grid-template-columns:1fr}.model-buckets{grid-template-columns:repeat(2,minmax(0,1fr))}.algorithm-model select,.model-number input,.algorithm-model .text-input{font-size:16px}.model-intervals code{float:none;display:block}}@media print{.model-slider,.model-number,.model-controls,.algorithm-model select{display:none}.model-array{flex-wrap:wrap;overflow:visible}.source-table-wrap{overflow:visible}.source-table{font-size:10px}.source-table th,.source-table td{min-width:0}}.learning-notice,.chapter-lock,.checkpoint,.toc-state{display:none}:root[data-learning=enabled] .learning-notice,:root[data-learning=enabled] .checkpoint{display:block}:root[data-learning=enabled] .toc-state{display:inline}:root[data-learning=enabled] .chapter[data-locked=true] .chapter-body{display:none}:root[data-learning=enabled] .chapter[data-locked=true] .chapter-lock{display:flex}.learning-notice{padding:20px 24px;margin:0 0 36px;border:1px solid var(--line);border-left:3px solid var(--accent-solid);background:var(--paper)}.learning-notice p{margin:0 0 8px}.learning-notice [role=status]{font-size:13px;color:var(--muted)}.learning-notice button{margin:8px 0 0}.toc .toc-state{font:10px var(--mono);color:var(--muted)}.toc-locked{color:var(--muted)}.chapter-lock{flex-wrap:wrap;align-items:center;gap:8px 12px;padding:20px;border:1px dashed var(--line);color:var(--muted)}.chapter-lock p{margin:0}.chapter-lock a{flex-basis:100%}.checkpoint{margin-top:36px;padding:clamp(18px,3vw,28px);background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--accent-solid)}.assessment-card{margin:26px 0;padding:0;border:1px solid var(--accent);border-radius:12px;background:linear-gradient(130deg,var(--accent-soft),transparent 75%),var(--paper);box-shadow:0 6px 22px #0000000b;overflow:clip}.checkpoint.assessment-card{padding:0;border-top:1px solid var(--accent)}.assessment-card .assessment-toggle{display:flex;align-items:center;gap:14px;width:100%;min-width:0;min-height:76px;padding:16px 20px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.assessment-toggle:hover{background:var(--accent-soft)}.assessment-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.assessment-symbol{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:1px solid var(--accent);border-radius:9px;color:var(--accent);font:700 18px var(--mono)}.assessment-caption{display:grid;gap:5px;flex:1;min-width:0}.assessment-label{color:var(--accent);font:10px/1.4 var(--mono);letter-spacing:.06em}.assessment-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.5}.assessment-state{color:var(--muted);font:11px/1.4 var(--mono)}.assessment-chevron{color:var(--accent);font:20px var(--mono)}.assessment-body{padding:0 clamp(16px,3vw,25px) 22px;border-top:1px solid var(--line)}.assessment-body[hidden]{display:none!important}.assessment-body>h3{margin:18px 0}.assessment-card.is-passed{border-color:var(--success)}.checkpoint.assessment-card.is-passed{border-top-color:var(--success)}.assessment-card.is-passed .assessment-symbol{background:var(--success-soft);border-color:var(--success);color:var(--success)}.assessment-card.is-passed .assessment-state{color:var(--success)}.assessment-card.is-collapsed{margin-block:16px}.assessment-card.is-collapsed .assessment-toggle{min-height:58px;padding-block:10px}.assessment-card.is-collapsed .assessment-symbol{flex-basis:28px;width:28px;height:28px;font-size:16px}.assessment-card.is-collapsed .assessment-caption{gap:2px}.code-hints-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.code-hints-actions>span{color:var(--muted);font:11px var(--mono)}.code-hints ol{list-style:none;padding:0;margin:12px 0 0}.code-hints ol:empty{margin:0}.code-hints li{padding:12px;margin-top:8px;background:var(--accent-soft);border-radius:6px}.code-hints li strong{font-size:12px;color:var(--accent)}.code-hints li p{margin:6px 0 0}@media(max-width:520px){.assessment-card .assessment-toggle{gap:9px;padding-inline:13px}.assessment-state{font-size:10px}.assessment-title{font-size:12px}.assessment-label{font-size:9px}}.checkpoint.is-passed{border-top-color:var(--success)}.checkpoint.is-passed .checkpoint-heading>span:last-child{color:var(--success);background:var(--success-soft);padding:3px 8px;border-radius:3px}.toc .toc-state.is-passed{color:var(--success)}.checkpoint-heading{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;color:var(--accent);font:11px/1.6 var(--mono);letter-spacing:.05em}.checkpoint h3{font-size:18px;line-height:1.65;margin:16px 0 20px;text-wrap:initial}.checkpoint fieldset{min-width:0;margin:0 0 18px;padding:0;border:0}.checkpoint-option{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);padding:14px 16px;margin:9px 0;cursor:pointer}.checkpoint-option:hover,.checkpoint-option.is-selected{border-color:var(--accent);background:var(--accent-soft)}.checkpoint-option input{margin:6px 0 0;flex:0 0 auto;accent-color:var(--accent-solid)}.checkpoint-option span{min-width:0;overflow-wrap:anywhere}.checkpoint button,.learning-notice button{border:1px solid var(--line);padding:10px 14px;background:var(--subtle);color:var(--text)}.checkpoint .checkpoint-primary{background:var(--accent-solid);color:var(--on-accent);border-color:var(--accent-solid)}.checkpoint-bottom,.checkpoint-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.checkpoint-bottom{justify-content:flex-end;margin-top:18px;padding-top:16px;border-top:1px solid var(--line2)}.checkpoint-bottom>span{margin-right:auto;font:12px var(--mono);color:var(--muted)}.checkpoint-next{padding:8px 0 8px 8px;color:var(--success)}.checkpoint-feedback{margin-top:18px}.checkpoint-feedback:empty{margin:0}.checkpoint-feedback p{margin-bottom:0}.checkpoint-error{color:var(--error)}.checkpoint-success{color:var(--success)}.code-task label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}.python-editor{position:relative;border:1px solid var(--line);border-radius:3px;background:var(--code);min-width:0}.python-editor:focus-within{outline:2px solid var(--accent);outline-offset:3px}.checkpoint .python-editor textarea,.checkpoint .python-editor pre{margin:0;padding:16px;border:0;border-radius:3px;font:14px/1.7 var(--mono);font-variant-ligatures:none;letter-spacing:normal;-moz-tab-size:4;tab-size:4;white-space:pre;overflow-wrap:normal;word-break:normal}.checkpoint .python-editor pre{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;background:transparent}.python-editor code{font:inherit;background:transparent;padding:0}.checkpoint .python-editor textarea{position:relative;width:100%;display:block;resize:vertical;min-height:190px;max-height:65vh;background:transparent;color:transparent;-webkit-text-fill-color:transparent;caret-color:var(--text);outline:none}.python-editor textarea::selection{background:#7b263d66;color:transparent}.checkpoint-help{color:var(--muted);font-size:12px}.checkpoint-tests{display:grid;gap:10px;margin-top:18px}.checkpoint-tests>div{display:grid;gap:5px;padding:12px;border:1px solid var(--line);font-size:12px;min-width:0}.checkpoint-tests code{white-space:pre-wrap;overflow-wrap:anywhere}.checkpoint-tests .test-passed{border-left:3px solid var(--success);background:var(--success-soft)}.checkpoint-tests .test-passed strong{color:var(--success)}.checkpoint-tests .test-failed{border-left:3px solid var(--error)}.checkpoint-tests strong{font-size:12px}.checkpoint pre{max-width:100%;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:var(--code);font:12px/1.7 var(--mono)}@media(max-width:600px){.checkpoint-option{padding:12px}.checkpoint h3{font-size:16px}.learning-notice{padding:16px}}@media print{.learning-notice,.chapter-lock,.checkpoint,.toc-state{display:none!important}:root[data-learning=enabled] .chapter[data-locked=true]{display:none}}.activity{margin-block:1.5rem;padding-block-end:1.25rem;border-bottom:1px solid var(--line)}.activity h4{margin:0 0 .8rem;font-size:1rem}.activity-number{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.activity-number input{width:min(12rem,100%)}.activity input[type=text],.activity select,.teaching-task input[type=text],.teaching-task select,.activity-reflection textarea{background:var(--paper);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.65rem;font:inherit;max-width:100%}.activity-matches{display:grid;gap:.75rem}.activity-matches label{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.7rem;align-items:center}.activity-matches select{width:100%;min-width:0}.activity-order{padding-inline-start:1.5rem}.activity-order li{display:flex;align-items:center;gap:.4rem;margin-block:.5rem;padding:.5rem;background:var(--accent-soft);border-radius:5px}.activity-order li span{flex:1;min-width:0}.activity-order button{flex:none;min-width:2.5rem;min-height:2.5rem}.activity-reflection textarea{display:block;width:100%;min-height:7rem;resize:vertical;margin-block:.5rem;box-sizing:border-box}.teaching-task button,.activity-reflection button,.activity-order button,.code-hints button{cursor:pointer;color:var(--text);background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:.55rem .8rem}.teaching-task h3{margin-top:0}.teaching-task>button{margin-block-start:.8rem}.code-hints{margin-block:1rem;padding:.75rem;border-left:3px solid var(--accent)}.code-hints p{white-space:pre-wrap}.growth-row{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(0,2fr);gap:1rem;margin-block:.75rem;align-items:center;font-family:var(--mono)}.recursion-trace{max-height:22rem;overflow:auto;margin-block:1rem}.recursion-node{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;border-inline-start:2px solid var(--line);padding:.4rem .7rem}.recursion-node.active{background:var(--accent-soft);border-color:var(--accent)}.recursion-node.done{color:var(--success, #27ce79)}.learning-summary{margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:8px}.checkpoint fieldset{min-width:0}@media(max-width:560px){.activity-matches label{grid-template-columns:minmax(0,1fr)}.growth-row{grid-template-columns:minmax(0,1fr);gap:.25rem}}.lecture-card{grid-template-columns:53px minmax(0,1fr) 70px 30px}.lecture-progress{display:grid;align-self:center;gap:8px;min-width:0;color:var(--muted);text-align:right;font:13px var(--mono)}.lecture-progress strong{font-weight:500}.lecture-progress-track{display:block;height:3px;background:var(--line)}.lecture-progress-track>span{display:block;height:100%;background:var(--accent)}.lecture-card.is-started{background:var(--accent-soft);box-shadow:inset 2px 0 var(--accent-solid)}.lecture-card.is-complete{background:var(--success-soft);box-shadow:inset 3px 0 var(--success)}.lecture-card.is-complete .lecture-progress{color:var(--success)}.lecture-card.is-complete .lecture-progress-track>span{background:var(--success)}.lecture-additional{margin:48px 0;border:1px solid var(--line);background:var(--paper)}.lecture-additional>summary{padding:22px;cursor:pointer;color:var(--accent);font:600 18px/1.6 var(--sans)}.lecture-additional>summary small{display:block;margin-top:6px;color:var(--muted);font:12px/1.8 var(--mono)}.lecture-additional[open]>summary{border-bottom:1px solid var(--line)}.lecture-additional .chapter{padding:28px 22px;margin:0}.lecture-additional .chapter-index,.chapter[data-reference] .chapter-index{font-size:9px}.lecture-prompt{margin-top:42px;padding:28px;border:1px solid var(--line);border-top:3px solid var(--accent-solid);background:var(--paper)}.lecture-prompt h2{margin:12px 0;font:650 25px/1.3 var(--sans)}.lecture-prompt>p:not(.kicker){font-size:14px;color:var(--muted)}.prompt-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.prompt-actions button{padding:12px 16px;min-height:44px;border:1px solid var(--line);background:var(--subtle);color:var(--text)}.prompt-actions button:first-child{background:var(--accent-solid);color:var(--on-accent);border-color:var(--accent-solid)}.lecture-prompt label{display:grid;gap:10px;font-size:12px}.lecture-prompt textarea{width:100%;min-width:0;resize:vertical;padding:14px;border:1px solid var(--line);background:var(--code);color:var(--text);font:12px/1.7 var(--mono)}.reference-brand{color:var(--text);font:600 14px var(--mono);text-decoration:none}.reference-brand span{color:var(--accent);margin-inline:8px}.reference-hero{padding:60px 0 32px}.reference-hero h1{margin:16px 0 24px;font:700 clamp(30px,4vw,48px) / 1.2 var(--sans);letter-spacing:-.04em}.reference-hero>p:last-child{max-width:760px;color:var(--muted)}.reference-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px}.reference-filters label{display:grid;gap:9px;color:var(--muted);font:12px var(--mono);min-width:0}.reference-filters input,.reference-filters select{width:100%;min-width:0;min-height:48px;padding:10px 12px;background:var(--paper);color:var(--text);border:1px solid var(--line);font:14px var(--sans)}.reference-count{margin:24px 0;color:var(--muted);font:12px var(--mono)}.reference-terms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.reference-term{padding:24px;border:1px solid var(--line);background:var(--paper);min-width:0;scroll-margin-top:24px}.reference-term h2{margin:0 0 8px;font:600 21px/1.4 var(--sans);overflow-wrap:anywhere}.reference-term h2 a{color:var(--text);text-decoration:none}.reference-term h2 a:hover{color:var(--accent)}.reference-term>p{font:14px/1.85 var(--sans)}.reference-term .reference-english,.reference-term .reference-aliases{color:var(--muted);font:11px/1.7 var(--mono)}.reference-term nav{display:flex;flex-wrap:wrap;gap:8px 16px;padding-top:14px;border-top:1px solid var(--line)}.reference-term nav a{font:11px/1.7 var(--mono);overflow-wrap:anywhere}@media(max-width:760px){.reference-terms,.reference-filters{grid-template-columns:minmax(0,1fr)}.reference-hero{padding-top:36px}}@media(max-width:700px){.lecture-card{grid-template-columns:33px minmax(0,1fr) 40px 16px}.lecture-progress{font-size:11px}.lecture-prompt{padding:20px}.lecture-additional>summary{padding:18px;font-size:17px}.lecture-additional .chapter{padding:24px 16px}}@media(max-width:600px){.catalog-header{flex-wrap:wrap;padding-block:14px}.catalog-header nav{flex-wrap:wrap;width:100%;justify-content:space-between}.reference-filters input,.reference-filters select{font-size:16px}.reference-term{padding:20px}}@media print{.lecture-prompt,.reference-filters{display:none}.reference-terms{display:block}.reference-term{break-inside:avoid}}
