/* Chapter two extends the existing classroom typography and cobalt palette. */
.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}
.part-switch select{max-width:275px;background:#f3f5fa;border:1px solid #dde4f0;color:var(--ink);padding:10px 28px 10px 12px;border-radius:6px;font:500 14px var(--sans)}
.topbar-tools{gap:16px}.sidebar{overflow:auto}.sidebar-heading{padding-bottom:15px}.sidebar-heading h2{font-size:17px}.sidebar-bottom{padding-top:15px}.slide-title{letter-spacing:0}.slide-kicker{letter-spacing:1.2px}.slide-deck{max-width:none}.slide-body{min-height:initial}.slide::after{position:static;align-self:flex-end;margin-top:16px;font-size:12px;right:auto;bottom:auto;flex-shrink:0}
.teaching-points{list-style:none;margin:0;padding:0;display:grid;gap:17px}.teaching-points li{display:grid;grid-template-columns:25px 1fr;gap:12px;align-items:baseline}.teaching-points li>span{font:12px var(--mono);color:var(--blue)}.teaching-points p{font-size:17px;line-height:1.85;margin:0}.teaching-points code{word-break:break-word;font-size:.9em}.text-lesson .teaching-points{max-width:970px;margin:8px 0}.text-lesson .teaching-points li{border-bottom:1px solid var(--line);padding:0 0 17px}.text-lesson .teaching-points li:last-child{border:0}.text-lesson .teaching-points p{font-size:20px;line-height:1.8}
.code-lesson{display:grid;grid-template-columns:1.22fr 1fr;gap:28px;align-items:start}.code-lesson>*,.figure-lesson>*,.code-pair>*{min-width:0}.code-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.code-pair> :only-child{grid-column:1/-1}.code-lesson .teaching-points{gap:13px}.code-lesson .teaching-points p{font-size:15px;line-height:1.75}.code-panel pre{font-size:14px;line-height:1.7;max-height:410px;overflow:auto;tab-size:4}.code-line{min-height:1.7em}.code-header{font-size:13px;gap:15px}.code-header>span{line-height:1.6}.code-followup{margin-top:22px;display:grid;grid-template-columns:1.5fr 1fr;gap:25px}.code-followup .teaching-points p{font-size:15px}.code-followup .teaching-points{gap:10px}.output pre{font-size:14px;line-height:1.8;overflow:auto;white-space:pre-wrap;word-break:break-word}.output{margin-top:16px}
.figure-lesson{display:grid;grid-template-columns:.85fr 1.25fr;gap:26px;align-items:start}.figure-lesson .teaching-points p{font-size:15px;line-height:1.75}.figure-lesson .teaching-points{gap:13px}.original-figure{margin:0;min-width:0}.figure-open{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fafbfe;position:relative}.figure-open img{display:block;width:100%;max-height:385px;object-fit:contain}.figure-open>span{position:absolute;right:9px;bottom:8px;background:#fffefb;padding:5px 9px;border:1px solid #c5d2ed;border-radius:4px;color:var(--blue);font-size:12px;box-shadow:0 2px 8px #15224b10}.original-figure figcaption{font-size:13px;line-height:1.7;margin-top:10px;color:var(--muted)}
.chapter-table{width:100%;font-size:15px}.chapter-table th{font-size:14px;white-space:normal}.chapter-table td,.chapter-table th{padding:10px 13px;line-height:1.6}.chapter-table td{vertical-align:top}.table-wrap{overflow:auto}.table-points{margin-top:22px}.table-points .teaching-points{gap:10px;grid-template-columns:1fr 1fr}.table-points .teaching-points p{font-size:14px}.code-lesson .table-wrap{margin-top:17px}.code-lesson .chapter-table{font-size:14px}
.clarification,.lesson-expansion{border-top:1px solid var(--line);margin:22px 0 0;padding-top:12px;font-size:14px;line-height:1.8;color:#53617b}.clarification summary,.lesson-expansion summary{cursor:pointer;color:var(--blue);font-size:14px}.clarification p{margin:12px 0 0}.lesson-expansion .code-pair,.lesson-expansion .table-wrap{margin-top:16px}.read-notes{display:block}.read-source{margin-top:12px;font-size:14px;color:var(--blue);border-bottom:1px solid #adc0f7;padding:0 0 3px}.outline-search-label{display:block;color:var(--muted);font-size:13px;margin:8px 0 18px}.outline-search-label input{width:100%;display:block;margin-top:7px;font:16px var(--sans);padding:12px;border:1px solid #cad5e9;border-radius:6px}#outline-list .outline-item[hidden]{display:none}.outline-item{font-size:14px;line-height:1.6}#source-transcript{margin-top:20px;color:var(--blue);font-size:14px}#source-transcript summary{cursor:pointer}#source-text{white-space:pre-wrap;word-break:break-word;font:15px/1.85 var(--sans);color:var(--ink);background:#f4f6fa;padding:20px;border-radius:6px}#source-dialog{max-height:95dvh}.source-view img{background:#fff}.reading .slide{min-height:0}.reading .slide-body{min-height:0}.reading .code-panel pre{max-height:none}
.textbook{margin:0;max-height:365px;display:flex;flex-direction:column;align-items:center}.textbook img{max-height:330px;max-width:100%;object-fit:contain;box-shadow:0 15px 32px #15275118}.textbook figcaption{font-size:12px;color:var(--muted);margin-top:12px}.cover-route .route-item{color:var(--ink);font-size:14px}.cover-route .route-item:hover{color:var(--blue)}.cover .slide-body{min-height:0}.cover::after{margin-top:12px}.cover h1{font-size:59px}.cover-layout{grid-template-columns:1.3fr .7fr}.cover .cover-description{line-height:1.9;font-size:17px}
@media(min-width:1550px){.teaching-points p{font-size:21px}.code-lesson .teaching-points p,.figure-lesson .teaching-points p{font-size:18px}.code-panel pre{font-size:17px;max-height:540px}.figure-open img{max-height:480px}.chapter-table{font-size:18px}.table-points .teaching-points p{font-size:17px}.textbook{max-height:440px}.textbook img{max-height:400px}}
@media(max-height:760px) and (min-width:821px){.slide{padding:25px 30px 16px}.slide-deck{margin-bottom:18px}.slide::after{margin-top:12px}.teaching-points{gap:12px}.teaching-points p{font-size:16px;line-height:1.7}.text-lesson .teaching-points p{font-size:18px}.text-lesson .teaching-points li{padding-bottom:13px}.code-panel pre{font-size:13px;line-height:1.65;max-height:340px}.code-line{min-height:1.65em}.figure-open img{max-height:315px}.code-lesson .teaching-points,.figure-lesson .teaching-points{gap:10px}.code-lesson .teaching-points p,.figure-lesson .teaching-points p{font-size:14px;line-height:1.7}.chapter-table td,.chapter-table th{padding:8px 10px}.chapter-table{font-size:14px}.clarification,.lesson-expansion{margin-top:17px;padding-top:10px}.cover h1{font-size:52px}.cover .cover-description{font-size:15px}.textbook img{max-height:260px}.cover-route{margin-top:24px}.cover-route .route-item{font-size:13px}.sidebar .chapter-link{padding-top:9px;padding-bottom:9px}}
@media(max-width:1100px){.part-switch select{max-width:215px;font-size:13px}.brand-sub{letter-spacing:.6px}.topbar{padding:0 22px}.topbar-tools{gap:10px}.brand strong{font-size:15px}.code-lesson{gap:20px}.figure-lesson{grid-template-columns:1fr 1.2fr;gap:19px}.text-lesson .teaching-points p{font-size:18px}.table-points .teaching-points{grid-template-columns:1fr}}
@media(max-width:820px){.brand strong{font-size:13px}.part-switch select{max-width:195px;padding:8px 18px 8px 8px}.topbar-tools{gap:6px}.brand-mark{display:none}.code-lesson,.figure-lesson{gap:18px}.teaching-points p{font-size:16px}.textbook img{max-height:250px}.slide-kicker{font-size:10px}.slide-title{font-size:28px}}
@media(max-width:600px){.topbar{height:auto;min-height:100px;flex-wrap:wrap;gap:8px;padding:10px 12px}.brand{width:100%}.brand strong{font-size:14px}.topbar-tools{width:100%;justify-content:space-between}.part-switch select{max-width:210px;font-size:12px}.main{height:calc(100dvh - 100px)}.slide{padding:22px 20px}.slide-title{font-size:25px}.code-lesson,.figure-lesson,.code-pair,.code-followup{grid-template-columns:minmax(0,1fr);gap:22px}.figure-lesson .explanation{order:2}.figure-open img{max-height:none}.teaching-points p,.text-lesson .teaching-points p{font-size:16px;line-height:1.85}.code-lesson .teaching-points p,.figure-lesson .teaching-points p{font-size:15px}.code-panel pre{font-size:12px;max-height:none}.chapter-table{min-width:530px}.table-points .teaching-points{grid-template-columns:1fr}.clarification p{font-size:14px}.cover-layout{grid-template-columns:1fr}.textbook{display:none}.cover h1{font-size:44px}.cover-route{display:grid;grid-template-columns:1fr 1fr}.cover-route .route-item{font-size:14px}.source-view img{min-width:850px}.reading .main{height:auto}.original-figure figcaption{font-size:13px}.slide::after{margin-top:16px}#source-dialog{padding:12px}#source-transcript{font-size:13px}}
