/* Diagrams keep their labels as real text at every viewport. */
.cp-presentation-nav .btn{width:auto;min-width:44px;flex:0 0 auto}.cv-array+.cv-result strong:focus-visible{outline:3px solid #ac6422;outline-offset:3px}
.course-visual .cv-array{display:flex;gap:8px}.cv-array .cv-letter{flex:0 0 auto;min-width:72px;width:max-content;padding:8px 7px}.cv-array+.cv-result{display:block}.cv-array+.cv-result strong{display:block;max-width:100%;overflow:auto;white-space:pre;font-size:18px;line-height:1.7;letter-spacing:normal;margin-top:6px}
.cv-array .cp-fixed{border-bottom:4px solid #176e70;background:#e9f4ef}.cv-array .cp-discarded{border:1px dashed #687e8d;background:repeating-linear-gradient(135deg,#edf0f2,#edf0f2 5px,#e2e8ec 5px,#e2e8ec 6px);color:#284453}.cv-array .cp-cell-state{display:block;font-size:13px;font-weight:700;line-height:1.5;padding:4px 2px 0;white-space:nowrap}
.cp-foundation-path{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0;margin:0 0 20px}
.cp-foundation-path li{position:relative;border-top:3px solid #176e70;background:#edf6f3;padding:12px;min-width:0}
.cp-foundation-path li+li:before{content:'→';position:absolute;left:-17px;top:35px;color:#176e70;font-weight:800}
.cp-foundation-path span{display:block;font-size:15px;font-weight:700;margin-bottom:8px}.cp-foundation-path code{display:block;overflow:auto;white-space:pre;font-size:17px;line-height:1.7;padding-bottom:4px}
.cp-prediction{border-block:1px solid #bdd4d0;background:#f0f7f4;padding:20px;margin:0 0 24px;color:#17324d}.cp-prediction h3{font-size:23px;margin:0 0 14px}.cp-prediction label{display:grid;gap:14px;font-size:18px;line-height:1.6}.cp-prediction textarea{width:100%;min-height:100px;border:1px solid #8caeac;background:white;border-radius:8px;padding:12px;color:#17324d;font-family:inherit;font-size:17px;line-height:1.5;resize:vertical}.cp-prediction small{display:block;font-size:14px;line-height:1.5;margin:10px 0}.cp-prediction .btn{min-height:44px;margin-top:8px;white-space:normal}.cp-prediction p{font-size:18px!important;line-height:1.65;margin-top:16px}.cp-prediction [hidden]{display:none}
.study-speed{display:flex;align-items:center;gap:8px;font-size:16px;white-space:nowrap}.study-speed select{font:inherit;min-width:90px;min-height:44px;padding:8px;border:1px solid #9fbabf;border-radius:8px;background:white;color:#17324d}
.study-lab .study-player .btn{font-size:15px}.study-lab .study-program{max-width:100%;overflow:auto}.study-lab .study-program li code{white-space:pre;overflow-wrap:normal;word-break:normal}.study-lab .study-flow code{display:block;white-space:pre;overflow:auto;font-size:16px}.study-lab .study-flow small{font-size:13px}.study-lab .study-flow{flex-wrap:wrap}.study-lab .study-flow>div{flex-basis:130px}.study-lab .study-flow svg{width:22px}
@media(max-width:600px){.cp-foundation-path{grid-template-columns:1fr;gap:16px}.cp-foundation-path li+li:before{content:'↓';left:50%;top:-22px}.cp-prediction{padding:16px 10px}.study-lab .study-flow{display:grid;grid-template-columns:1fr}.study-lab .study-flow svg{transform:rotate(90deg);justify-self:center}.study-lab .study-player .btn{font-size:15px!important}}
@media(min-width:900px){body.cp-presenting .cv-scene>.cp-foundation-path{grid-column:1/-1}body.cp-presenting .cv-scene>.cv-memory,body.cp-presenting .cv-scene>.cv-groups,body.cp-presenting .cv-scene>.cv-ribbon,body.cp-presenting .cv-scene>.cv-dice{grid-column:1}body.cp-presenting .cv-scene>.cv-result{grid-column:1}}
.cp-diagram{margin:18px 0;max-width:640px;margin-inline:auto;color:#17324d;font-size:17px;line-height:1.45}
.course-visual .cv-speed{flex:0 0 auto;white-space:nowrap}
.cp-node{border:1px solid #b9cbd1;border-radius:10px;background:#fff;padding:12px;min-width:0;text-align:center}
.cp-node>span{display:block;font-size:13px;font-weight:650;color:#496474;margin-bottom:5px}
.cp-node>strong{font-size:17px;font-weight:700;overflow-wrap:break-word;display:block}
.cp-active{border:2px solid #176e70;background:#e8f5ee!important;padding:11px}
.cp-active>span{color:#12594e}.cp-arrow{display:flex;flex-direction:column;align-items:center;gap:2px;color:#425f6d;font-size:14px;padding:4px 0;text-align:center}
.cp-arrow svg{width:24px;height:25px;stroke:#527789;stroke-width:2;fill:none;flex-shrink:0}
.cp-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;position:relative;border-top:2px solid #b9cbd1;padding-top:8px}
.cp-branch{min-width:0}.cp-path-label{display:block;text-align:center;font-weight:750;font-size:15px;line-height:1.45;color:#395769}
.cp-selected>.cp-path-label{color:#12594e}.cp-return{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;color:#176e70;font-size:14px;font-weight:700}
.cp-return svg{width:40px;height:32px;stroke:currentColor;stroke-width:2;fill:none;flex-shrink:0}
.cp-cycle{border-left:3px solid #aac5c4;padding-left:12px;border-radius:16px 0 0 16px}.cp-observation{border-top:1px solid #cadbdc;margin:16px 0 0;padding-top:12px;font-weight:650;text-align:center;font-size:17px!important}
.cp-cascade{list-style:none;padding:0;margin:0}.cp-cascade li{padding:0;margin:0 0 10px}.cp-cascade-result{text-align:center;font-size:16px;padding:8px 4px}.cp-skipped{border-left:2px dashed #9aafb7;padding-left:10px!important}
.cp-local{border:2px solid #829fba;background:#f1f5fa;border-radius:12px;padding:14px;text-align:center}.cp-local h4{font-size:19px;margin:0 0 10px}.cp-local p{font-size:17px!important;margin:6px 0;line-height:1.5!important}.cp-parameter{padding-bottom:10px;border-bottom:1px solid #bccdd8}
.cp-summary{margin-top:26px;padding:22px;border-block:1px solid #b9d5cd;background:#eff6f1;color:#17324d}.cp-summary h2{font-size:25px;margin:0 0 12px}.cp-summary ol{padding-left:24px;margin:0;display:grid;gap:12px}.cp-summary li{padding-left:4px;font-size:18px;line-height:1.6}.cp-transfer{border-top:1px solid #bfd5cc;margin-top:20px;padding-top:16px}.cp-transfer h3{font-size:20px;margin:0 0 8px}.cp-transfer p{font-size:18px;line-height:1.6}.cp-transfer .btn{margin:12px 8px 0 0;white-space:normal;min-height:44px}
.cp-chapter-art{margin:24px 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.65fr);align-items:center;gap:20px;background:#faf9f5;border-radius:12px;overflow:hidden}.cp-illustration{display:block;width:100%;height:auto;max-height:230px;object-fit:contain}.cp-chapter-art figcaption{font-size:21px;line-height:1.4;font-weight:700;padding:12px 20px 12px 0;color:#17324d}.cp-thumbnail{width:96px;height:64px;object-fit:cover;border-radius:9px;flex:0 0 96px}.campus-course:has(.cp-thumbnail){gap:16px}
.cp-presentation-nav{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:30;background:#faf9f5;border-bottom:1px solid #b9cbd1;padding:10px 0;margin-bottom:18px}.cp-presentation-nav[hidden]{display:none}.cp-presentation-nav>span{flex:1;font-size:18px;font-weight:700}.cp-presentation-nav .btn{min-height:44px}
body.cp-presenting .lesson-content>.tag,body.cp-presenting .study-tabs,body.cp-presenting .pro-footer,body.cp-presenting .source-note,body.cp-presenting #lesson-main>details{display:none!important}
body.cp-presenting .lesson-content>h1{font-size:clamp(25px,3vw,38px)!important}body.cp-presenting .lesson-objective{font-size:23px}
body.cp-presenting [data-study-pane="understand"]>*{display:none!important}
body.cp-presenting [data-presentation-step="0"] [data-study-pane="understand"]>.pro-notice,body.cp-presenting [data-presentation-step="0"] [data-study-pane="understand"]>.cp-chapter-art,body.cp-presenting [data-presentation-step="1"] [data-study-pane="understand"]>.course-visual,body.cp-presenting [data-presentation-step="4"] [data-study-pane="understand"]>.cp-summary{display:block!important}
body.cp-presenting .cp-diagram{max-width:800px}body.cp-presenting .cp-node>strong,body.cp-presenting .cp-summary li{font-size:23px}body.cp-presenting .cp-node>span,body.cp-presenting .cp-path-label{font-size:17px}body.cp-presenting .cp-chapter-art .cp-illustration{max-height:320px}
body.cp-presenting [data-to-pane]{display:none!important}
body.cp-presenting [data-presentation-step]:not([data-presentation-step="0"]) .lesson-objective{display:none}
body.cp-presenting .course-visual .cv-heading,body.cp-presenting .course-visual .cv-intro{display:none}
body.cp-presenting .course-visual{margin:12px auto;padding:12px}
@media(min-width:900px){
 body.cp-presenting .course-visual .cv-scene{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:24px;align-items:start;padding:12px;margin:10px 0}
 body.cp-presenting .cv-scene>h3{grid-column:1/-1;margin-bottom:8px}
 body.cp-presenting .cv-scene>.cp-diagram{grid-column:1;grid-row:2/5;width:100%;margin:0}
 body.cp-presenting .cv-scene>.cv-code-shell,body.cp-presenting .cv-scene>p{grid-column:2}
 body.cp-presenting .cp-node{padding:8px}.cp-presenting .cp-node.cp-active{padding:7px}
 body.cp-presenting .cp-arrow{padding:0}
 body.cp-presenting .cp-node>span{font-size:15px;margin-bottom:2px}
 body.cp-presenting .cp-node>strong{font-size:21px}
 body.cp-presenting .cp-diagram .cp-local p{font-size:21px!important}
 body.cp-presenting .cv-scene p{margin-top:8px!important}
}
@media(max-width:720px){.cp-chapter-art{grid-template-columns:1fr;gap:0}.cp-illustration{max-height:180px}.cp-chapter-art figcaption{font-size:18px;padding:8px 12px 14px}.cp-summary{padding:18px 10px;margin-inline:0}.cp-diagram{font-size:17px}.cp-node{padding:10px 6px}.cp-node.cp-active{padding:9px 5px}.cp-branches{gap:8px}.cp-cycle{padding-left:8px}.cp-node>strong{font-size:17px}.cp-return{flex-direction:column;gap:2px}.cp-presentation-nav{gap:5px;flex-wrap:wrap}.cp-presentation-nav>span{font-size:16px}.cp-presentation-nav .btn{padding:8px}.cp-thumbnail{width:64px;height:54px;flex-basis:64px}.campus-course:has(.cp-thumbnail){gap:10px}body.cp-presenting .cp-node>strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){.cp-diagram *{animation:none!important;transition:none!important}body.cp-presenting{scroll-behavior:auto}}
@media print{.cp-presentation-nav{display:none!important}.cp-summary{break-inside:avoid}.cp-chapter-art{break-inside:avoid}.cp-thumbnail{display:none}}
