:root{--bg:#f5f6fa;--paper:#fff;--ink:#21263e;--muted:#606a80;--line:#dfe3ee;--primary:#4f46e5;--pale:#eeedff;--teal:#087f87;--green:#176d4e;--orange:#a44922;--shadow:0 8px 28px #1e254006;--side:238px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.8 "Segoe UI","Microsoft YaHei",system-ui,sans-serif}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(29px,3.1vw,42px);line-height:1.3;letter-spacing:-.035em;margin-bottom:17px}h2{font-size:23px;line-height:1.45;margin-bottom:14px}h3{font-size:18px;line-height:1.5;margin-bottom:10px}h4{font-size:16px;line-height:1.6}p{margin-bottom:14px}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{outline-offset:4px}*:focus-visible{outline:3px solid var(--primary)}button,.button{min-height:44px;border:1px solid var(--line);background:white;border-radius:9px;padding:9px 16px;cursor:pointer;transition:background .18s,transform .18s;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:14px;text-decoration:none}button:hover:not(:disabled),.button:hover{background:var(--pale);text-decoration:none}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:default}.primary{background:var(--primary);border-color:var(--primary);color:white}.primary:hover:not(:disabled){background:#3d35c1}.quiet{background:transparent;border-color:transparent;color:var(--muted)}.small{font-size:12px}.muted{color:var(--muted)}.mono,code,pre{font-family:Consolas,"SFMono-Regular",monospace;font-variant-numeric:tabular-nums}.positive{color:var(--green)}.negative{color:var(--orange)}.eyebrow,.sidebar-label{font-size:11px;letter-spacing:.12em;font-weight:700;color:var(--primary);margin-bottom:10px}.badge{display:inline-block;font-size:11px;padding:3px 9px;background:var(--pale);color:var(--primary);border-radius:20px;line-height:1.6}.badge.green{background:#e9f5ef;color:var(--green)}.badge.neutral{background:#eff1f6;color:var(--muted)}.badge.orange{background:#fff0e7;color:var(--orange)}.skip-link{position:absolute;top:-80px;left:20px;z-index:100;background:white;padding:10px}.skip-link:focus{top:8px}.site-header{height:78px;background:#fffffff5;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:18px;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;font-weight:750;font-size:17px;color:var(--ink)}.brand:hover{text-decoration:none}.brand-mark{width:37px;height:37px;display:grid;place-items:center;background:var(--primary);border-radius:11px;color:white;font-size:26px;font-family:serif}.brand small{display:block;font-size:10px;font-weight:400;color:var(--muted);letter-spacing:.05em}.header-right{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.header-right>a{margin-left:20px}.offline-dot{width:6px;height:6px;border-radius:50%;background:var(--green)}#menu-toggle{display:none}.site-layout{display:grid;grid-template-columns:var(--side) minmax(0,1fr)}.sidebar{position:sticky;top:78px;align-self:start;height:calc(100vh - 78px);overflow:auto;background:#fafbfe;border-right:1px solid var(--line);padding:28px 20px 22px;scrollbar-width:thin}.sidebar-label{color:#737b90;font-size:9px;letter-spacing:.14em;margin-left:10px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{min-height:43px;border-radius:8px;display:flex;align-items:center;padding:9px 11px;gap:12px;color:var(--muted);font-size:13px}.sidebar nav a>span{font-size:10px;color:#7a8196}.sidebar nav a>b{margin-left:auto;font-size:10px;background:#e8e7fa;padding:0 6px;border-radius:4px}.sidebar nav a:hover{text-decoration:none;background:#f0f0fb}.sidebar nav a.active{background:var(--pale);color:var(--primary);font-weight:650}.sidebar-divider{height:1px;background:var(--line);margin:24px 10px}.path-group{margin-bottom:15px}.path-group>a{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:6px 10px;font-size:12px;color:var(--ink)}.path-group small{color:var(--muted);font-size:10px}.path-children{padding-left:11px;display:grid;gap:1px}.path-children a{color:var(--muted);font-size:11px;padding:4px 10px;line-height:1.6;border-left:1px solid var(--line)}.path-children a.current{color:var(--primary);border-left:2px solid var(--primary)}.sidebar-bottom{border-top:1px solid var(--line);margin-top:20px;padding:20px 10px 0;font-size:11px;color:var(--muted)}.sidebar-bottom p{margin:15px 0}.sidebar-bottom a{font-size:11px}main{min-width:0;padding:37px clamp(22px,3.3vw,54px) 0;max-width:1600px;width:100%;margin:auto}main:focus{outline:none}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:28px}.page-head p{color:var(--muted);max-width:720px;margin-bottom:0}.page-head .button-row{flex-shrink:0}.button-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;margin-bottom:27px}.hero-main{padding:34px;background:#fff;border:1px solid var(--line);border-radius:17px;position:relative;overflow:hidden}.hero-main h1 span{color:var(--primary)}.hero-main p{color:var(--muted);max-width:540px;font-size:14px}.hero-main .button-row{margin-top:24px}.hero-diagram{background:var(--ink);border-radius:17px;padding:27px;color:white;display:flex;flex-direction:column;justify-content:center;min-width:0}.hero-diagram .eyebrow{color:#beb9ff}.hero-diagram p{color:#c9cfe4;font-size:12px;margin-bottom:20px}.hero-diagram svg{width:100%;height:auto}.hero-diagram .diagram-foot{border-top:1px solid #ffffff25;padding-top:14px;margin-top:18px;font-size:11px;color:#c9cfe4;display:flex;justify-content:space-between}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:30px 0 15px}.section-title h2{margin:0;font-size:20px}.section-title p{font-size:12px;margin:0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:28px}.stat{background:white;border:1px solid var(--line);border-radius:12px;padding:18px 20px}.stat>span{font-size:11px;color:var(--muted)}.stat strong{display:block;font-size:27px;font-weight:650;line-height:1.6;letter-spacing:-.04em}.stat small{font-size:11px;color:var(--muted)}.surface{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:25px;box-shadow:var(--shadow);min-width:0}.surface>p{color:var(--muted);font-size:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.stage-card{padding:23px;border:1px solid var(--line);border-radius:13px;background:white;display:flex;flex-direction:column;min-width:0}.stage-card .stage-num{font-size:11px;color:var(--primary);letter-spacing:.1em;margin-bottom:15px}.stage-card h3{font-size:18px;margin:0 0 10px}.stage-card p{color:var(--muted);font-size:13px;flex:1}.stage-card a{font-size:13px;margin-top:12px}.progress{height:5px;background:#e8eaf3;border-radius:5px;overflow:hidden}.progress span{display:block;background:var(--primary);height:100%;border-radius:5px}.progress-label{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-bottom:8px}.notice{background:#edf6f7;border-left:3px solid var(--teal);padding:13px 16px;border-radius:0 8px 8px 0;color:#28565e;font-size:13px;line-height:1.8;margin:18px 0}.notice.warning{background:#fff3e9;border-color:var(--orange);color:#81401d}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:23px;align-items:flex-end}.filters>label{flex:1;min-width:130px}.filters>label:first-child{flex:2;min-width:190px}label{font-size:13px;font-weight:500}label>input:not([type=checkbox]):not([type=radio]),label>select,label>textarea{display:block;margin-top:6px}input[type=text],input[type=search],input[type=date],input[type=number],select,textarea{width:100%;border:1px solid #cfd5e4;background:white;border-radius:8px;min-height:44px;padding:9px 11px}textarea{resize:vertical;min-height:88px;line-height:1.8}input[type=range]{width:100%;accent-color:var(--primary);height:33px;cursor:pointer}input[type=checkbox],input[type=radio]{accent-color:var(--primary);margin-top:5px;flex-shrink:0}input[type=file]{max-width:100%}.course-group{margin-bottom:29px}.course-group>h2{font-size:17px;display:flex;align-items:center;gap:10px}.course-list{display:grid;gap:10px}.course-card{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:16px;background:white;border:1px solid var(--line);border-radius:11px;padding:18px 20px;color:var(--ink)}.course-card:hover{text-decoration:none;border-color:#aaa3f0;box-shadow:var(--shadow)}.course-icon{display:grid;place-items:center;width:42px;height:42px;background:var(--pale);color:var(--primary);border-radius:10px;font-size:12px;font-weight:700}.course-card h3{font-size:15px;margin:0 0 5px}.course-card p{font-size:12px;color:var(--muted);margin:0}.course-status{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:200px}.course-status .badge{font-size:10px}.empty{padding:30px;text-align:center;color:var(--muted);background:white;border:1px dashed var(--line);border-radius:12px}.breadcrumbs{font-size:12px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:19px}.lesson-header{margin-bottom:25px}.lesson-header h1{font-size:clamp(27px,2.6vw,37px);max-width:950px}.lesson-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted);margin-bottom:15px}.lesson-header>p{font-size:14px;color:var(--muted)}.lesson-jump{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.lesson-jump a{background:#eeeff5;color:var(--muted);font-size:12px;padding:5px 12px;border-radius:6px}.lesson-overview{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;margin-bottom:27px}.goals{padding-left:21px;margin:0;font-size:14px;color:var(--muted)}.goals li{margin:7px 0}.learning-status{display:flex;gap:14px;flex-wrap:wrap;margin-top:15px}.check-label{display:flex;gap:9px;align-items:flex-start;min-height:44px;padding:9px 0;font-size:13px;font-weight:400;cursor:pointer}.lesson-section{margin-top:30px;scroll-margin-top:95px}.lesson-text{max-width:940px}.lesson-text p{font-size:15px;line-height:2;color:#414b62;margin:0 0 16px;white-space:normal;overflow-wrap:anywhere}.lesson-text h3{font-size:20px;margin:28px 0 13px}.example-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px}.example-grid p,.example-grid li{color:var(--muted);font-size:14px;overflow-wrap:anywhere}.example-grid ol{padding-left:21px}.example-label{color:var(--primary);font-size:11px;font-weight:700;letter-spacing:.05em;display:block;margin-bottom:7px}.code-block{background:#20253b;border-radius:10px;padding:20px;overflow:auto;color:#e5e9fa;font-size:12px;line-height:1.8;white-space:pre;tab-size:2;max-width:100%}.code-note{color:var(--muted);font-size:13px;white-space:pre-line}details{background:white;border:1px solid var(--line);border-radius:11px;margin:16px 0;padding:16px 20px}summary{cursor:pointer;min-height:30px;font-weight:600;font-size:14px}details[open]>summary{margin-bottom:15px}.lab-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:20px}.lab-heading h3{margin-bottom:0}.lab-heading .eyebrow{font-size:9px}.prediction-box{padding:15px 18px;border-radius:9px;background:#f4f4fc;margin-bottom:23px}.prediction-box p{font-size:12px;color:var(--muted);margin:5px 0 10px}.prediction-box textarea{font-size:13px;min-height:65px}.lab-columns{display:grid;grid-template-columns:minmax(205px,.8fr) minmax(0,1.5fr);gap:27px}.lab-controls{display:flex;flex-direction:column;gap:14px;min-width:0}.lab-controls label{font-size:12px}.range-label{display:flex;justify-content:space-between;gap:10px}.range-label output{color:var(--primary);font-weight:650}.lab-actions{display:flex;gap:7px;flex-wrap:wrap}.lab-actions button{font-size:12px;padding:8px 12px}.lab-result{padding:19px;background:#f8f9fd;border:1px solid var(--line);border-radius:10px;min-width:0;overflow-wrap:anywhere}.lab-result h4{font-size:16px;margin-bottom:17px}.lab-result p,.lab-result li{font-size:13px}.lab-result svg{max-width:100%;height:auto;display:block}.lab-result pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.lab-result .data-table{font-size:11px}.formula{font-family:Consolas,monospace;padding:13px 15px;background:var(--pale);color:#3933a0;border-radius:8px;font-size:13px;overflow-wrap:anywhere}.metric-row{display:flex;flex-wrap:wrap;gap:15px;margin:12px 0}.metric{flex:1;min-width:80px}.metric strong{display:block;font-size:24px;color:var(--primary)}.metric small{font-size:11px;color:var(--muted)}.flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.flow-node{padding:9px 12px;border-radius:8px;background:#e9ecf5;font-size:12px}.flow-node.active{background:var(--pale);color:var(--primary);box-shadow:inset 0 0 0 1px #b6b0fc}.bar-track{height:9px;background:#e4e7f0;border-radius:5px;margin:6px 0 13px;overflow:hidden}.bar-fill{height:100%;background:var(--primary);border-radius:5px}.experiment-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:23px 0 10px}.experiment-steps li{display:flex;gap:11px;align-items:flex-start;padding:11px 13px;background:#f4f5f9;border-radius:8px;font-size:12px;color:var(--muted)}.experiment-steps li.active{background:var(--pale);color:#3933a0}.step-dot{font-family:Consolas,monospace;font-size:11px;font-weight:700;flex-shrink:0}.quiz-list{display:grid;gap:15px}.quiz{background:white;border:1px solid var(--line);border-radius:11px;padding:19px 22px;min-width:0;margin:0}.quiz legend{float:left;width:100%;font-size:15px;font-weight:600;margin-bottom:12px}.quiz label{clear:both;display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border-radius:8px;font-size:14px;color:var(--muted);font-weight:400;cursor:pointer;min-height:44px}.quiz label:first-of-type{clear:both}.quiz label:hover{background:#f4f5fa}.quiz .feedback{font-size:13px;margin:12px 0 0;border-top:1px solid var(--line);padding-top:12px;clear:both}.quiz .option-selected{background:var(--pale)}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.practice-grid>div{min-width:0}.practice-grid p{font-size:14px;color:var(--muted)}.reference-list{padding-left:19px;font-size:13px}.reference-list li{margin:7px 0;overflow-wrap:anywhere}.lesson-bottom{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:22px;margin-top:33px}.week-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:23px 0}.week-tabs a{padding:7px 11px;border:1px solid var(--line);border-radius:7px;color:var(--muted);font-size:12px;background:white}.week-tabs a.active{background:var(--primary);color:white;border-color:var(--primary)}.week-top{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.week-top p{color:var(--muted);font-size:13px}.task-list{list-style:none;padding:0;margin:0}.task-list li{padding:6px 0;border-bottom:1px solid #eef0f6}.task-list li:last-child{border:0}.task-list .check-label{font-size:14px}.task-list input:checked+span{text-decoration:line-through;color:var(--muted)}.schedule-table,.data-table{border-collapse:collapse;width:100%;font-size:13px}.schedule-table th,.schedule-table td,.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.data-table th{color:var(--muted);font-weight:600}.table-scroll{overflow:auto;max-width:100%}.month-gates{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.note-save{font-size:11px;color:var(--muted);min-height:20px;margin:4px 0 0}.field-group{margin-bottom:19px}.field-group label{display:block}.workbench-section{margin-top:28px}.artifact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.artifact label{display:block;margin-bottom:8px;font-weight:650}.artifact p{font-size:12px;color:var(--muted)}.assessment-card{padding:22px;background:white;border:1px solid var(--line);border-radius:12px}.assessment-card p{font-size:13px;color:var(--muted)}.assessment-card h3{font-size:17px}.assessment-card label{display:block;margin:15px 0}.assessment-card select{font-size:13px}.assessment-card textarea{font-size:13px}.strengths{padding-left:20px;color:var(--muted);font-size:14px}.assessment-note{margin-bottom:24px}.resource-links{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.resource-link{background:white;border:1px solid var(--line);border-radius:11px;padding:20px}.resource-link p{color:var(--muted);font-size:12px;margin-bottom:0}.term{background:white;border-top:1px solid var(--line);padding:17px 0}.term h3{font-size:16px;margin:0 0 7px}.term p{font-size:13px;color:var(--muted);margin-bottom:7px}.term-links{display:flex;flex-wrap:wrap;gap:10px;font-size:12px}.source-document{font-size:14px;background:white;border:1px solid var(--line);border-radius:13px;padding:27px}.source-line{display:grid;grid-template-columns:35px 1fr;gap:10px;padding:4px 0;scroll-margin-top:100px}.source-line>small{font-family:Consolas,monospace;font-size:10px;color:#7c8497;user-select:none}.source-line .source-content{white-space:pre-wrap;overflow-wrap:anywhere;color:#414b62}.source-line.heading{padding-top:19px;font-weight:700}.source-line.heading .source-content{color:var(--ink)}.coverage-list{font-size:12px}.coverage-list .coverage-entry{padding:12px 0;border-bottom:1px solid var(--line)}.coverage-entry p{color:var(--muted);margin:5px 0;white-space:pre-wrap}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;background:var(--ink);color:white;padding:12px 20px;border-radius:10px;box-shadow:0 8px 30px #0002;font-size:13px;max-width:calc(100vw - 35px)}dialog{border:1px solid var(--line);border-radius:15px;padding:27px;max-width:560px;width:calc(100vw - 35px);color:var(--ink)}dialog::backdrop{background:#1e25405e}dialog h2{font-size:21px}dialog p{font-size:14px;color:var(--muted)}footer{margin-top:45px;padding:25px 0;border-top:1px solid var(--line);font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}.noscript{padding:30px;background:white}.inline-label{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.inline-label input{width:auto}.full-width{grid-column:1/-1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(min-width:1600px){main{padding-left:65px;padding-right:65px}}@media(max-width:1150px){:root{--side:210px}.sidebar{padding-left:13px;padding-right:13px}main{padding:29px 25px 0}.hero{grid-template-columns:1.3fr 1fr}.hero-main{padding:27px}.stats{gap:10px}.stat{padding:16px}.grid-3{gap:12px}.stage-card{padding:19px}.lab-columns{grid-template-columns:1fr 1.3fr;gap:18px}.header-right>a{margin-left:8px}.course-status{max-width:155px}}
@media(max-width:900px){:root{--side:190px}.brand small{display:none}.header-right>span{display:none}.hero{grid-template-columns:1fr}.hero-diagram{display:none}.grid-3{grid-template-columns:1fr}.stage-card{display:grid;grid-template-columns:120px 1fr;gap:8px 20px}.stage-card .stage-num{grid-row:span 2}.stage-card p{margin:0}.stage-card a{grid-column:2;margin:0}.lesson-overview,.lab-columns,.practice-grid,.example-grid{grid-template-columns:1fr}.grid-2{gap:15px}.stats{grid-template-columns:repeat(2,1fr)}.course-card{padding:15px;gap:12px}.course-status{display:none}.page-head{align-items:flex-start;flex-direction:column;gap:16px}.section-title p{max-width:230px;text-align:right}.lab-result{padding:17px}.assessment-card{padding:18px}}
@media(max-width:680px){:root{--side:0px}.site-header{height:68px;padding:0 16px}.brand{font-size:15px}.brand-mark{width:32px;height:32px;font-size:23px}.header-right{display:none}#menu-toggle{display:inline-flex;min-height:39px;font-size:12px;padding:6px 10px}.site-layout{display:block}.sidebar{display:none;position:fixed;top:68px;left:0;bottom:0;height:calc(100dvh - 68px);width:260px;z-index:19;box-shadow:20px 0 50px #1e254025}.sidebar.open{display:block}.sidebar-bottom{padding-bottom:25px}main{padding:26px 17px 0}.hero-main{padding:25px 22px}.hero-main h1{font-size:32px}.hero-main p{font-size:13px}.hero-main .button-row{gap:8px}.stats{gap:10px;margin-bottom:22px}.stat{padding:15px 17px}.stat strong{font-size:25px}.grid-2,.resource-links,.artifact-grid,.month-gates{grid-template-columns:1fr}.grid-3{gap:13px}.stage-card{display:flex;padding:22px}.stage-card .stage-num{margin-bottom:5px}.stage-card a{margin-top:10px}.stage-card h3{font-size:18px}.section-title{align-items:flex-start}.section-title h2{font-size:19px}.section-title p{max-width:145px;font-size:11px}.surface{padding:20px}.page-head{margin-bottom:22px}.page-head h1{font-size:29px}.page-head p{font-size:13px}.filters{gap:10px}.filters>label{min-width:115px}.course-card{grid-template-columns:35px 1fr auto;padding:14px 13px;gap:11px}.course-icon{width:33px;height:35px;font-size:10px;border-radius:7px}.course-card h3{font-size:14px}.course-card p{font-size:11px}.lesson-header h1{font-size:28px}.lesson-text p{font-size:15px;line-height:1.95}.lesson-text h3{font-size:19px}.experiment-steps{grid-template-columns:1fr}.lab-heading{flex-direction:column;gap:10px}.lab-columns{gap:20px}.lab-result .data-table{font-size:10px}.lab-result .data-table th,.lab-result .data-table td{padding:7px 5px}.quiz{padding:16px}.quiz legend{font-size:14px}.quiz label{font-size:13px;padding:9px 5px}.week-tabs{gap:6px}.week-tabs a{padding:7px 10px}.lesson-bottom{align-items:stretch}.lesson-bottom a{font-size:12px;padding:10px;flex:1}.source-document{padding:17px 12px}.source-line{grid-template-columns:25px 1fr;gap:6px;font-size:12px}.source-line>small{font-size:9px}.header-right>a{margin:0}.schedule-table{font-size:11px}.schedule-table td,.schedule-table th{padding:8px 7px}footer{font-size:10px;margin-top:32px}.inline-label{align-items:flex-start;flex-direction:column}.inline-label input{width:100%}.lesson-section{scroll-margin-top:80px}.code-block{font-size:11px;padding:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-header,.sidebar,.lesson-jump,.lab-actions,.button-row,.toast,footer{display:none!important}.site-layout{display:block}main{padding:0;max-width:none}body{background:white}.surface{box-shadow:none;break-inside:avoid}.lesson-section{break-inside:avoid}.code-block{white-space:pre-wrap;color:black;background:#eee}details{display:block}details>*{display:block}}

/* Four stages form two parallel rows; narrow layouts keep a single readable path. */
.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.grid-3{grid-template-columns:1fr}}

.coverage-entry,.coverage-entry p{min-width:0;overflow-wrap:anywhere}

.knowledge-questions p{border-top:1px solid #ffffff25;padding:12px 0;margin:0;font-size:13px}.knowledge-questions b{display:inline-block;width:30px;color:#beb9ff;font-family:Consolas,monospace}.topic-syllabus{display:grid;grid-template-columns:1fr 1fr;gap:17px}.syllabus-item p{font-size:12px}.syllabus-item .goals{font-size:13px}.stage-card h3 a{color:var(--ink)}.hero-main h1{font-size:clamp(28px,2.7vw,40px)}@media(max-width:900px){.topic-syllabus{grid-template-columns:1fr}}

/* Animation-first lessons: the canvas is the primary teaching surface. */
.visual-lesson-header{margin-bottom:15px}.visual-lesson-header h1{font-size:clamp(25px,2.5vw,34px);margin-bottom:12px}.visual-lesson-header .lesson-meta{margin-bottom:9px}.visual-lesson-header .lesson-jump{margin:10px 0}.visual-lesson-panel{margin-top:0!important;padding:22px}.visual-body{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:24px}.visual-main{min-width:0}.visual-canvas{width:100%;max-width:100%;overflow:auto;scrollbar-width:thin;border-radius:12px;background:#f8f9fe;overscroll-behavior-x:contain}.visual-canvas [data-scene]{line-height:0}.mechanism-svg{display:block;width:100%;min-width:700px;height:auto;color:var(--ink);font-family:"Segoe UI","Microsoft YaHei",sans-serif;overflow:hidden}.mechanism-svg text{fill:var(--ink);dominant-baseline:auto}.viz-node rect{fill:#eef0f7;stroke:#bdc5d9;stroke-width:1.6}.viz-node.active rect{fill:var(--pale);stroke:var(--primary);stroke-width:2.5}.viz-node.done rect{fill:#e3f4ef;stroke:var(--teal);stroke-width:2}.viz-node.blocked rect{fill:#fff0e9;stroke:var(--orange);stroke-width:2}.viz-node .viz-value{fill:var(--muted)}.viz-arrow{color:#a1abc0}.viz-arrow>path{stroke:currentColor;stroke-width:2.2}.viz-arrow.active{color:var(--primary)}.viz-arrow.active>path{stroke-width:3}.viz-arrow-label{paint-order:stroke;stroke:#f8f9fe;stroke-width:7;stroke-linejoin:round;fill:var(--muted)!important}.viz-token{fill:var(--primary);offset-distance:50%;opacity:.65}.visual-playing .viz-token{animation:viz-travel 1.15s linear infinite;opacity:1}@keyframes viz-travel{from{offset-distance:0%}to{offset-distance:100%}}.viz-cell{text-anchor:middle;font-variant-numeric:tabular-nums}.viz-bar-track{fill:#e5e9f3}.viz-bar{fill:var(--primary)}.viz-bar.negative{fill:var(--orange)}.viz-axis{stroke:#a5adc0;stroke-width:1.5}.viz-tick{text-anchor:end;fill:var(--muted)!important}.viz-line{stroke-width:3}.viz-line.series-0{stroke:var(--primary)}.viz-line.series-1{stroke:var(--teal)}.viz-line.series-2{stroke:var(--orange)}.viz-line.series-3{stroke:#8a4cc5}.viz-dot.series-0,.viz-legend.series-0{fill:var(--primary)}.viz-dot.series-1,.viz-legend.series-1{fill:var(--teal)}.viz-dot.series-2,.viz-legend.series-2{fill:var(--orange)}.viz-dot.series-3,.viz-legend.series-3{fill:#8a4cc5}.visual-caption{font-size:16px;font-weight:600;line-height:1.7;padding:14px 3px 8px;min-height:48px;overflow-wrap:anywhere}.visual-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:8px 0 12px}.visual-toolbar button{padding:8px 12px;font-size:13px}.speed-label{display:flex;gap:7px;align-items:center;font-size:12px;color:var(--muted);margin-left:auto}.speed-label select{width:auto;min-height:44px;padding:5px 7px;margin:0}.control-title{font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:0}.visual-lab .lab-controls{padding:15px;border-radius:10px;background:#f5f6fb;gap:11px;align-self:start}.visual-lab .lab-controls label{font-size:12px}.visual-lab .lab-controls input[type=range]{height:27px}.visual-stage-strip{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 6px}.visual-stage-strip li{padding:0;flex:1;min-width:80px;background:#f0f2f8;display:block}.visual-stage-strip li button{width:100%;font-size:11px;padding:7px 8px;min-height:43px;background:transparent;border:0;text-align:left;justify-content:flex-start;line-height:1.5;gap:7px}.visual-stage-strip li.active{background:var(--pale);box-shadow:inset 0 -2px var(--primary)}.visual-result-summary{font-size:11px;color:var(--muted);margin:8px 0 0;line-height:1.6}.visual-lab details{box-shadow:none;margin:12px 0 0;padding:12px 15px}.visual-lab details summary{font-size:12px;color:var(--muted);min-height:20px}.visual-lab .prediction-box{background:transparent}.visual-lab .prediction-box label{display:block;font-size:13px;margin-top:12px}.visual-lab .prediction-box textarea{margin-top:9px}.visual-data-details .lab-result{background:white;border:0;padding:15px 0}.visual-data-details .small{margin:12px 0 0}.learning-drawer{padding:15px 20px;margin:12px 0;background:white;scroll-margin-top:90px}.learning-drawer>summary{display:flex;align-items:center;gap:15px;justify-content:space-between;min-height:28px;font-size:14px}.learning-drawer>summary::before{content:'＋';color:var(--primary);font-weight:500;flex-shrink:0}.learning-drawer[open]>summary::before{content:'−'}.learning-drawer[open]>summary{border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:18px}.learning-drawer .drawer-hint{font-size:11px;color:var(--muted);margin-left:auto;font-weight:400}.learning-drawer .lesson-overview{margin:0}.lesson-readbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:8px 0 18px}.lesson-readbar .check-label{font-size:12px}.lesson-readbar .small{font-size:11px}.canvas-tools{display:none}.visual-canvas.fit .mechanism-svg{min-width:0}
@media(max-width:1180px){.visual-body{grid-template-columns:1fr}.visual-lab .lab-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px}.control-title{grid-column:1/-1}.visual-lab .lab-controls>button{align-self:end}.visual-canvas{max-height:none}}
@media(max-width:680px){.visual-lesson-panel{padding:14px}.visual-lesson-header h1{font-size:25px}.visual-lesson-header .lesson-jump{gap:5px}.visual-lesson-header .lesson-jump a{padding:5px 8px;font-size:11px}.visual-lab .lab-heading h3{font-size:16px}.visual-lab .lab-heading{margin-bottom:12px;flex-direction:row}.visual-lab .lab-heading .eyebrow{font-size:9px}.visual-lab .lab-heading .badge{font-size:10px;white-space:nowrap}.visual-body{gap:15px}.canvas-tools{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;color:var(--muted);font-size:10px}.canvas-tools button{font-size:11px;min-height:36px;padding:5px 8px}.visual-caption{font-size:14px;padding-top:10px;min-height:40px}.visual-toolbar{gap:5px}.visual-toolbar button{font-size:11px;padding:7px 9px}.visual-toolbar .speed-label{margin-left:0;font-size:10px;gap:4px}.visual-toolbar select{font-size:11px;min-height:40px}.visual-stage-strip li{min-width:75px}.visual-stage-strip li button{font-size:10px;padding:6px;gap:5px}.visual-lab .lab-controls{padding:13px;gap:10px 14px}.visual-lab .lab-controls label{font-size:11px}.learning-drawer{padding:13px 14px}.learning-drawer>summary{font-size:13px;gap:8px}.learning-drawer .drawer-hint{font-size:10px}.lesson-readbar{align-items:flex-start;flex-direction:column;gap:0;margin-bottom:10px}.lesson-readbar .check-label{font-size:11px}.lesson-readbar .small{font-size:10px}.visual-canvas.fit .mechanism-svg{min-width:0}.visual-result-summary{font-size:10px}}
@media(prefers-reduced-motion:reduce){.visual-playing .viz-token{animation:none}}
/* Refined interactive learning studio */
.learning-studio{--studio-blue:#5764e9;--studio-teal:#16847b;--studio-muted:#78869d}
.learning-studio .studio-heading{align-items:center;margin-bottom:20px;gap:16px;flex-direction:row}
.studio-title{display:flex;gap:12px;align-items:center;min-width:0}.studio-emblem{width:42px;height:42px;border:1px solid #e1e5fb;background:linear-gradient(145deg,#f4f5ff,#e9ecff);color:#5966d9;border-radius:12px;display:grid;place-items:center;flex-shrink:0}.studio-emblem svg{width:23px;height:23px}.learning-studio .eyebrow{font:600 10px/1.5 Consolas,monospace;color:#79849a;letter-spacing:.09em;margin-bottom:3px}.learning-studio .eyebrow i{font-style:normal;color:#b0b8ca;padding:0 5px}.learning-studio .lab-heading h3{margin:0;font-size:18px;letter-spacing:-.025em}
.studio-modes{display:flex;background:#f1f3f8;border:1px solid #e9ecf3;padding:4px;border-radius:11px;gap:3px;flex-shrink:0}.studio-modes button{border:0;border-radius:8px;background:transparent;min-height:38px;padding:7px 12px;font-size:12px;gap:6px;color:#788299;white-space:nowrap}.studio-modes button[aria-pressed=true]{background:#fff;color:#434eb6;box-shadow:0 2px 5px #2637690c}
.learning-studio .visual-body{grid-template-columns:minmax(0,1fr) 240px;gap:22px;align-items:start}.learning-studio .visual-main{border:1px solid #e2e7f1;border-radius:14px;padding:0 16px 12px;background:linear-gradient(180deg,#fcfdff,#fff);min-width:0;overflow:hidden}.canvas-heading{min-height:44px;display:flex;align-items:center;gap:12px;font-size:10px;color:#8992a4}.canvas-heading>span:nth-child(2){margin-left:auto}.canvas-live{display:flex;gap:6px;align-items:center}.canvas-live i{width:5px;height:5px;border-radius:50%;background:#1a9583;box-shadow:0 0 0 3px #e3f4ee}.canvas-heading .badge{color:#64708f;background:#edf0f7;font:11px/1.5 Consolas,monospace;padding:3px 8px}
.learning-studio .visual-canvas{background-color:#f7f9fd;background-image:radial-gradient(#b7c2d54d .65px,transparent .65px),radial-gradient(ellipse at 50% 20%,#fff,#f5f7fc);background-size:18px 18px,100% 100%;border:1px solid #edf0f7;border-radius:10px;scrollbar-color:#ccd3e4 transparent;scrollbar-width:thin}
.learning-studio .mechanism-svg{max-width:880px;margin:0 auto;min-width:680px;font-family:"Segoe UI","Microsoft YaHei",sans-serif}.learning-studio .mechanism-svg text{fill:#34415b}.learning-studio .viz-node rect{fill:#fff;stroke:#d8e0ee;stroke-width:1.2;filter:drop-shadow(0 3px 3px #24305706)}.learning-studio .viz-node.active rect{fill:#f0f2ff;stroke:#7783ec;stroke-width:1.7}.learning-studio .viz-node.done rect{fill:#f1faf7;stroke:#90c6b7;stroke-width:1.3}.learning-studio .viz-node.blocked rect{fill:#fff5ef;stroke:#dea285;stroke-width:1.4}.learning-studio .viz-node .viz-value{fill:#62718a;font-family:Consolas,"Microsoft YaHei",monospace}.learning-studio .viz-arrow{color:#a9b6ce}.learning-studio .viz-arrow>path{stroke-width:1.6}.learning-studio .viz-arrow.active{color:#7a81df}.learning-studio .viz-arrow.active>path{stroke-width:2.1}.learning-studio .viz-token{fill:#6776dc;filter:drop-shadow(0 0 3px #5e65dd45)}.learning-studio .viz-arrow-label{stroke:#f8fafe;stroke-width:5;font-size:12px;fill:#7c88a0!important}.learning-studio .viz-line{stroke-width:2.5}.learning-studio .viz-cell{font-family:Consolas,"Microsoft YaHei",monospace;font-weight:500}
.mechanism-svg [data-inspect-label],.mechanism-svg [data-set-control],.mechanism-svg [data-scene-command]{cursor:pointer;outline-offset:4px;transition:filter .18s ease}.mechanism-svg [data-inspect-label]:hover,.mechanism-svg [data-set-control]:hover{filter:drop-shadow(0 2px 5px #5564af25)}.mechanism-svg [data-inspect-label]:focus-visible,.mechanism-svg [data-set-control]:focus-visible,.mechanism-svg [data-scene-command]:focus-visible{outline:2px solid #6573d9;outline-offset:3px}.mechanism-svg .inspected>rect{stroke:#6372d5;stroke-width:2}.mechanism-svg [data-set-control].drop-ready{filter:drop-shadow(0 0 6px #6277ed80)}.mechanism-svg [data-drag-task]{cursor:grab;touch-action:none}.is-dragging [data-drag-task]{opacity:.55}.is-dragging .visual-canvas{box-shadow:inset 0 0 0 2px #c9d0fd}.task-drag-ghost{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;padding:9px 16px;background:#5663d8;color:white;box-shadow:0 6px 25px #4356a638;border:1px solid #8a9bf1;border-radius:10px;font:13px "Microsoft YaHei",sans-serif}
.studio-inspector{display:grid;grid-template-columns:28px minmax(0,1fr);gap:5px 8px;padding:12px 0 10px;min-height:72px;align-items:start;border-bottom:1px solid #edf0f6}.inspector-symbol{display:grid;place-items:center;background:#f0f3f9;width:26px;height:26px;color:#95a2b9;border-radius:8px;margin-top:2px}.studio-inspector strong{font-size:12px;font-weight:600;color:#61708c}.studio-inspector p{font-size:11px;color:#8a95a8;line-height:1.7;margin:2px 0 0;overflow-wrap:anywhere}.studio-inspector.has-selection .inspector-symbol{background:#ebefff;color:#5869d8}.studio-inspector.has-selection strong{color:#3f4f75}.studio-inspector.has-selection p{color:#70809b}.studio-inspector select{width:100%;grid-column:2;max-width:260px;padding:3px 8px;min-height:30px;font-size:11px;margin:3px 0 0;border:1px solid #e8ecf4;border-radius:6px;color:#8490a6;background:#fff}
.learning-studio .visual-caption{font-size:13px;line-height:1.7;color:#526180;font-weight:500;min-height:46px;padding:12px 1px 9px}.learning-studio .visual-stage-strip{gap:0;border:1px solid #e3e8f1;border-radius:8px;overflow:hidden;flex-wrap:nowrap;margin:0}.learning-studio .visual-stage-strip li{min-width:0;flex:1;background:#fff;border-right:1px solid #e9edf5;border-radius:0!important;box-shadow:none}.learning-studio .visual-stage-strip li:last-child{border:0}.learning-studio .visual-stage-strip li.active{background:#f0f2ff;box-shadow:inset 0 -2px #6875dc}.learning-studio .visual-stage-strip li button{font-size:10px;min-height:42px;padding:7px 8px;justify-content:center;color:#8994a9;gap:7px}.learning-studio .visual-stage-strip li.active button{color:#5363c8}.learning-studio .step-dot{width:17px;height:17px;border:1px solid #dbe1ee;border-radius:50%;display:inline-grid;place-items:center;flex-shrink:0;font:10px Consolas,monospace;background:white}.learning-studio .visual-stage-strip li.active .step-dot{border-color:#6978de;background:#6978de;color:#fff}
.learning-studio .visual-toolbar{gap:12px;margin:12px 0 2px;align-items:center}.transport-group{display:flex;align-items:center;gap:5px}.learning-studio .visual-toolbar button{font-size:11px;min-height:36px;padding:6px 10px;border-color:#e1e6f1;color:#7c88a0;border-radius:7px}.learning-studio .visual-toolbar .primary{background:#5867d8;border-color:#5867d8;color:white;box-shadow:0 2px 5px #5667c820;padding:7px 13px}.learning-studio .speed-label{margin-left:0;font-size:10px;gap:5px}.learning-studio .speed-label select{font-size:10px;min-height:34px;border-color:#e4e8f2;padding:4px 6px;border-radius:6px;color:#7c88a0}.learning-studio .pin-button{margin-left:auto;color:#6d7a99!important}.learning-studio .visual-result-summary{font-size:10px;color:#98a1b3;margin-top:9px}
.learning-studio .lab-controls{background:#fff;border:1px solid #e3e8f1;border-radius:12px;padding:17px;gap:16px}.learning-studio .control-title{border:0;padding:0 0 11px;border-bottom:1px solid #edf0f6}.control-title>span{display:flex;align-items:center;gap:7px;color:#556482;font-size:12px;font-weight:600}.control-title small{display:block;color:#98a2b5;font-size:10px;line-height:1.5;margin-top:6px}.learning-studio .lab-controls label{font-size:11px;color:#667590}.learning-studio .lab-controls select,.learning-studio .lab-controls input[type=text]{font-size:11px;min-height:39px;border-color:#dfe5f0;border-radius:8px;padding:7px 10px;margin-top:7px;background:#fcfdff}.learning-studio .lab-controls output{color:#5a6acc}.learning-studio .lab-controls>button{font-size:11px;border-color:#e4e8f0;color:#8a96ab;min-height:37px;margin-top:2px;gap:7px}.experiment-hint{display:flex;justify-content:space-between;border-top:1px solid #edf0f6;padding-top:14px;font:9px Consolas,monospace;color:#a0aac0}.experiment-hint b{font:10px "Microsoft YaHei",sans-serif;color:#8b96aa;margin-left:3px}
.studio-comparison{background:#f5f7ff;border:1px solid #dde4f9;border-radius:9px;padding:12px;margin-top:12px}.comparison-heading{display:flex;justify-content:space-between;gap:10px;align-items:center}.comparison-heading>span{display:flex;align-items:center;gap:6px;color:#6370ac;font-size:12px;font-weight:600}.comparison-heading button{min-height:30px;padding:3px 8px;font-size:10px;background:#ffffff80;border-color:#dfe5f6;color:#8c97b4}.comparison-inputs{font-size:11px;color:#7d8aa8;margin-top:8px;display:flex;flex-wrap:wrap;gap:8px 16px}.comparison-inputs b{font:12px Consolas,monospace;color:#6973a7}.comparison-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.comparison-metrics>div{background:#ffffffb0;border:1px solid #e6eafa;border-radius:6px;padding:7px 9px;min-width:0}.comparison-metrics span{display:block;font-size:9px;color:#939fb8;overflow-wrap:anywhere}.comparison-metrics b{font:12px Consolas,monospace;color:#6374b3;display:flex;gap:8px;margin-top:3px;overflow-wrap:anywhere}.comparison-metrics i{font-style:normal;color:#9ba9cb}
.is-challenge .visual-body,.is-challenge .prediction-box,.is-challenge .visual-data-details{display:none}.studio-kicker{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:#6470b2}.challenge-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}[data-challenge-panel]{padding:26px;border:1px solid #e3e8f5;border-radius:12px;background:radial-gradient(ellipse at 95% 0%,#edf0ff,transparent 50%),#fbfcff;min-height:390px}.learning-studio [data-challenge-panel] h3{font-size:20px;line-height:1.7;max-width:850px;margin-bottom:20px}.challenge-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.challenge-options button{justify-content:flex-start;text-align:left;font-size:13px;min-height:66px;padding:14px;line-height:1.65;border-color:#e2e7f0;background:#fff;gap:12px}.challenge-options button>span{display:grid;place-items:center;width:26px;height:26px;border:1px solid #e3e7f0;border-radius:7px;color:#929eb3;font:12px Consolas,monospace;flex-shrink:0}.challenge-options button>svg{margin-left:auto;flex-shrink:0}.challenge-options .answer-correct{border-color:#81beab;background:#eef9f4;color:#2e7d64}.challenge-options .answer-wrong{border-color:#deb59b;background:#fff6ef;color:#a06b47}.challenge-feedback{font-size:12px;line-height:1.8;color:#96a0b5;padding:18px 2px;min-height:72px}.challenge-feedback strong{font-size:13px;color:#5f6fa4}.challenge-feedback p{margin:6px 0 0;color:#75829b}.challenge-feedback.correct strong{color:#31806c}.challenge-feedback.retry strong{color:#aa774e}.challenge-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #e6eaf4;padding-top:16px}.challenge-footer span{font-size:10px;color:#a0a9ba}.challenge-footer button{font-size:12px;border-color:#dfe4ef;color:#6e7b9e;background:white}
@media(min-width:1600px){.learning-studio .visual-body{grid-template-columns:minmax(0,1fr) 255px}.learning-studio .visual-main{padding-left:22px;padding-right:22px}}
@media(max-width:1180px){.learning-studio .visual-body{grid-template-columns:1fr}.learning-studio .lab-controls{grid-template-columns:repeat(3,minmax(0,1fr));padding:16px;gap:16px}.learning-studio .control-title{grid-column:1/-1}.experiment-hint{grid-column:1/-1}.studio-modes button{padding:6px 9px}.studio-title{gap:8px}.studio-emblem{display:none}}
@media(max-width:680px){.learning-studio .studio-heading{flex-direction:column;align-items:stretch;gap:13px;margin-bottom:14px}.studio-title{gap:10px}.studio-emblem{display:grid;width:36px;height:36px;border-radius:10px}.learning-studio .lab-heading h3{font-size:16px}.studio-modes{align-self:flex-start}.studio-modes button{min-height:40px;padding:7px 13px}.learning-studio .visual-main{padding:0 10px 10px}.canvas-heading{min-height:38px;font-size:9px;gap:8px}.canvas-heading>span:nth-child(2){display:none}.canvas-heading .badge{margin-left:auto}.learning-studio .canvas-tools{margin:0 0 5px;font-size:9px}.learning-studio .canvas-tools button{min-height:36px}.learning-studio .mechanism-svg{min-width:650px}.learning-studio .visual-caption{font-size:12px;min-height:48px;padding:10px 1px}.studio-inspector{grid-template-columns:22px minmax(0,1fr);gap:5px 7px;padding:10px 0}.inspector-symbol{width:22px;height:22px;border-radius:6px}.inspector-symbol svg{width:15px}.studio-inspector strong{font-size:11px}.studio-inspector p{font-size:10px}.studio-inspector select{min-height:44px;font-size:11px}.learning-studio .visual-stage-strip{flex-wrap:wrap}.learning-studio .visual-stage-strip li{min-width:45%;border-bottom:1px solid #edf0f6}.learning-studio .visual-stage-strip li button{font-size:10px;min-height:44px;padding:7px}.learning-studio .visual-toolbar{gap:6px 9px;margin-top:10px}.transport-group{gap:4px}.learning-studio .visual-toolbar button{min-height:44px;padding:7px 10px;font-size:10px}.learning-studio .visual-toolbar .primary{padding:7px 10px}.learning-studio .speed-label{margin-left:auto}.learning-studio .speed-label select{min-height:44px;font-size:11px}.learning-studio .pin-button{margin-left:0!important}.learning-studio .lab-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}.learning-studio .lab-controls select,.learning-studio .lab-controls input[type=text],.learning-studio .lab-controls>button{min-height:44px}.control-title small{font-size:10px}.comparison-metrics{grid-template-columns:1fr}.comparison-metrics b{font-size:11px}.comparison-heading button{min-height:44px}[data-challenge-panel]{padding:16px}.challenge-top{margin-bottom:15px}.learning-studio [data-challenge-panel] h3{font-size:17px}.challenge-options{grid-template-columns:1fr;gap:8px}.challenge-options button{font-size:12px;padding:11px;min-height:60px}.challenge-footer{align-items:flex-start;flex-direction:column}.challenge-footer button{align-self:flex-end}.learning-studio .visual-data-details,.learning-studio .prediction-box{padding:11px 12px}}
@media(prefers-reduced-motion:reduce){.learning-studio *{animation:none!important;transition:none!important}}
.learning-studio .viz-meta{fill:#8995ab!important;text-anchor:start}.learning-studio .control-title label{font-size:12px}
@media(max-width:680px){.learning-studio[data-lesson=f01] .mechanism-svg{min-width:0;width:100%}.learning-studio[data-lesson=f01] .canvas-tools{display:none}}
.learning-studio .viz-meta[text-anchor=end]{text-anchor:end}
.learning-studio[data-lesson=f01].compact-lab .mechanism-svg{min-width:0;max-width:420px;width:100%}.learning-studio[data-lesson=f01].compact-lab .canvas-tools{display:none}
/* Course toolbox: stable navigation and a single reading surface. */
.lesson-toolbox{margin:28px 0 22px;scroll-margin-top:96px}.toolbox-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:17px}.toolbox-heading .eyebrow{color:#8a94aa;font-size:10px;margin:0 0 5px}.toolbox-heading h2{font-size:21px;margin:0;letter-spacing:-.025em}.toolbox-subtitle{font-size:11px;color:#8a96ac}.toolbox-layout{display:grid;grid-template-columns:205px minmax(0,1fr);align-items:start;gap:20px}.toolbox-nav{display:grid;gap:7px;position:sticky;top:96px;padding:8px;background:#eff1f7;border:1px solid #e5e9f2;border-radius:14px}.toolbox-nav button{justify-content:flex-start;text-align:left;gap:11px;min-height:68px;padding:12px 10px;background:transparent;border:1px solid transparent;border-radius:9px;width:100%;color:#72809a;line-height:1.5;transition:background .15s,border-color .15s}.toolbox-nav button:hover{background:#ffffffb0}.toolbox-nav button[aria-selected=true]{background:white;border-color:#dfe4f5;color:#4f5eca;box-shadow:0 3px 8px #36467908}.toolbox-icon{width:31px;height:31px;display:grid;place-items:center;background:#e7ebf4;border-radius:8px;flex-shrink:0}.toolbox-nav button[aria-selected=true] .toolbox-icon{background:#eef0ff;color:#6371d9}.toolbox-tab-copy{min-width:0}.toolbox-tab-copy b{display:block;font-size:13px;font-weight:600}.toolbox-tab-copy small{display:block;font-size:10px;font-weight:400;color:#929db0;margin-top:4px;line-height:1.5}.toolbox-tab-arrow{margin-left:auto;font-size:20px;color:#b2bbcc}.toolbox-nav button[aria-selected=true] .toolbox-tab-arrow{color:#7683de}.toolbox-panels{min-width:0;background:white;border:1px solid #dfe5f0;border-radius:14px;box-shadow:0 5px 24px #29385d03;overflow:hidden}.toolbox-ready .learning-drawer{border:0;border-radius:0;margin:0;padding:25px 28px;box-shadow:none;min-height:440px}.toolbox-ready .learning-drawer[hidden]{display:none!important}.toolbox-ready .learning-drawer>summary{display:none}.toolbox-panel-heading{display:flex;gap:12px;align-items:center;border-bottom:1px solid #edf0f6;margin-bottom:24px;padding-bottom:18px}.toolbox-section-number{font:12px Consolas,monospace;width:34px;height:34px;display:grid;place-items:center;background:#f1f3fa;color:#99a3b9;border-radius:9px}.toolbox-panel-heading h2{font-size:20px;margin:0 0 3px}.toolbox-panel-heading p{font-size:11px;color:#8e9ab0;margin:0}.toolbox-ready .lesson-text{max-width:76ch;margin:0}.toolbox-ready .lesson-text article+article{margin-top:30px;border-top:1px solid #edf0f5;padding-top:25px}.toolbox-ready .lesson-text h3{font-size:19px}.toolbox-ready .lesson-text p{font-size:15px;line-height:1.95;color:#53617b}.toolbox-ready .lesson-overview{grid-template-columns:1fr;gap:16px}.toolbox-ready .goals{list-style:none;padding:0;margin:0;display:grid;gap:10px}.toolbox-ready .goals li{position:relative;padding:14px 15px 14px 38px;background:#f7f9fd;border:1px solid #edf0f7;border-radius:9px;font-size:14px;line-height:1.8}.toolbox-ready .goals li::before{content:'✓';position:absolute;left:14px;color:#7184c9}.toolbox-ready .example-grid,.toolbox-ready .practice-grid{grid-template-columns:1fr;gap:22px}.toolbox-ready .quiz{margin-bottom:16px}.toolbox-ready .reference-list{padding-left:20px;line-height:2.2;overflow-wrap:anywhere}.toolbox-ready textarea{font-size:14px;line-height:1.8;min-height:130px;border-color:#dce3f0}.toolbox-ready .note-save{font-size:11px;color:#729185}.toolbox-panel-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #edf0f6;padding-top:20px;margin-top:28px}.toolbox-panel-footer button{font-size:12px;min-height:44px;border-color:#dfe5f0;color:#7f8ba2}.toolbox-panel-footer button.primary{color:white;margin-left:auto;background:#5d6bd5;border-color:#5d6bd5}.toolbox-ready .learning-drawer:focus-visible{outline-offset:-4px}
@media(max-width:1000px){.toolbox-layout{grid-template-columns:175px minmax(0,1fr);gap:13px}.toolbox-nav{padding:5px}.toolbox-nav button{padding:10px 8px;gap:8px}.toolbox-icon{width:27px;height:27px}.toolbox-subtitle{display:none}.toolbox-ready .learning-drawer{padding:20px}}
@media(max-width:680px){.lesson-toolbox{margin-top:23px;scroll-margin-top:80px}.toolbox-heading h2{font-size:19px;line-height:1.6}.toolbox-heading{margin-bottom:12px}.toolbox-layout{grid-template-columns:1fr;gap:13px}.toolbox-nav{position:static;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:5px;border-radius:12px}.toolbox-nav button{min-height:76px;gap:3px;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;text-align:center}.toolbox-icon{width:24px;height:24px;background:transparent!important}.toolbox-icon svg{width:16px;height:16px}.toolbox-tab-copy b{font-size:11px}.toolbox-tab-copy small{font-size:9px;margin-top:3px}.toolbox-tab-arrow{display:none}.toolbox-panels{border-radius:12px}.toolbox-ready .learning-drawer{padding:17px;min-height:350px}.toolbox-panel-heading{margin-bottom:20px;padding-bottom:16px;gap:10px}.toolbox-panel-heading h2{font-size:18px}.toolbox-panel-heading p{font-size:10px}.toolbox-ready .goals li{font-size:13px;padding:12px 12px 12px 33px}.toolbox-ready .goals li::before{left:12px}.toolbox-ready .lesson-text h3{font-size:18px}.toolbox-ready .lesson-text p{font-size:14px}.toolbox-ready .quiz{padding:13px}.toolbox-panel-footer{gap:8px;flex-wrap:wrap}.toolbox-panel-footer button{font-size:11px;padding:8px 10px}.toolbox-ready .code-block{max-width:100%}}
@media print{.toolbox-nav,.toolbox-heading,.toolbox-panel-footer{display:none!important}.toolbox-layout{display:block}.toolbox-ready .learning-drawer[hidden]{display:block!important}.toolbox-ready .learning-drawer{min-height:0}.toolbox-panels{border:0}}

/* Phone touch controls and safe areas; keep wide diagrams scrollable inside their canvas. */
#menu-backdrop[hidden]{display:none}
#menu-backdrop{position:fixed;inset:0;z-index:18;border:0;border-radius:0;padding:0;background:#1e254066;cursor:pointer;transform:none}
@media(max-width:680px){
 :root{--mobile-header:calc(68px + env(safe-area-inset-top,0px))}
 html{scroll-padding-top:calc(var(--mobile-header) + 12px)}
 body{ -webkit-text-size-adjust:100%;text-size-adjust:100%}
 body.menu-open{overflow:hidden}
 .site-header{height:var(--mobile-header);padding-top:env(safe-area-inset-top,0px);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));gap:10px}
 .brand{min-width:0}.brand-mark{flex-shrink:0}
 button,.button{min-width:44px}
 #menu-toggle{min-height:44px;flex-shrink:0}
 .sidebar{top:var(--mobile-header);height:calc(100vh - var(--mobile-header));height:calc(100dvh - var(--mobile-header));width:min(86vw,320px);overscroll-behavior:contain;padding-bottom:max(24px,env(safe-area-inset-bottom,0px))}
 .sidebar nav a,.path-group>a,.path-children a{min-height:44px;display:flex;align-items:center}
 main{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-bottom:env(safe-area-inset-bottom,0px);overflow-wrap:anywhere}
 #app input:not([type=checkbox]):not([type=radio]),#app select,#app textarea{font-size:16px;min-width:0;max-width:100%}
 #app input[type=range]{min-height:44px}
 .learning-studio .canvas-tools button,.studio-modes button,.learning-studio .studio-modes button,.lesson-jump a,.visual-lesson-header .lesson-jump a,.week-tabs a{min-height:44px;display:inline-flex;align-items:center}
 .button-row,.visual-toolbar,.transport-group{gap:8px}
 .learning-studio .canvas-tools{gap:8px;flex-wrap:wrap;font-size:11px}
 .learning-studio .studio-inspector p,.studio-inspector p{font-size:12px}
 .learning-studio .lab-controls label{font-size:13px}
 .visual-canvas{touch-action:pan-x pan-y;scroll-padding:12px}
 .grid-2>*,.stats>*,.course-card>*,.filters>label{min-width:0}
 .course-card{grid-template-columns:35px minmax(0,1fr)}
 .section-title{flex-wrap:wrap;gap:8px}
 .section-title p{max-width:none;text-align:left}
 .hero-main h1{font-size:clamp(26px,7.3vw,32px);text-wrap:pretty}
 .lesson-bottom{flex-wrap:wrap}
 .lesson-bottom a{min-width:min(100%,180px)}
 .toast{bottom:calc(16px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:360px){
 .hero-main,.surface{padding:18px}
 .learning-studio .lab-controls{grid-template-columns:minmax(0,1fr)}
 .learning-studio .visual-toolbar .speed-label{margin-left:0}
 .stat{padding:13px}
}
@media print{#menu-backdrop{display:none!important}}
