:root{--paper:#f8f5eb;--ink:#264864;--muted:#697f8e;--line:#8299a65c;--accent:#c8754e;--accent-dark:#ae5f3d;--green:#264864;--bg:var(--paper);font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{min-width:300px}body{margin:0;padding:25px 48px 34px;min-height:100vh;background-image:linear-gradient(#3b739c09 1px,transparent 1px),linear-gradient(90deg,#3b739c09 1px,transparent 1px);background-size:24px 24px}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}button:disabled{opacity:.35;cursor:default}a{color:inherit;text-decoration:none}button,a,input,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,pre:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:hover,a:hover{color:var(--accent-dark)}svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.shell{max-width:1580px;margin:0 auto;position:relative}.shell:before,.shell:after{content:'';position:absolute;width:14px;height:14px;border:1px solid #7e99aa66;pointer-events:none}.shell:before{top:-12px;left:-17px;border-right:0;border-bottom:0}.shell:after{bottom:-14px;right:-17px;border-left:0;border-top:0}.topbar{height:76px;border-bottom:1.5px solid #345c76;display:flex;align-items:center;gap:22px;position:relative}.topbar:after{content:'';position:absolute;top:77px;left:3px;right:-2px;height:1px;background:#345c7638;transform:rotate(-.08deg);transform-origin:left;pointer-events:none}.wordmark{font:500 23px 'Space Grotesk',sans-serif;letter-spacing:-.6px;display:flex;align-items:center;gap:9px;white-space:nowrap}.wordmark img{width:43px;height:43px;margin-right:4px}.brand-slash{color:#8b9ca6;margin:0 4px}.wordmark .brand-lab{font:11px 'JetBrains Mono',monospace;letter-spacing:1.4px}.top-navigation{display:flex;align-items:center;gap:29px;margin-left:auto;font:11px 'JetBrains Mono',monospace}.top-navigation>button{padding:12px 0;position:relative}.top-navigation sup{font-size:8px;margin-left:3px;color:#8196a4}.top-navigation .nav-current:after{content:'';position:absolute;left:-3px;right:-3px;bottom:3px;height:5px;border-bottom:1.5px solid var(--accent);border-radius:50%;transform:rotate(-2deg)}.top-navigation .icon-button{width:30px;display:grid;place-items:center}.top-navigation svg{width:17px;height:17px}.top-actions{display:flex;gap:4px;align-items:center}.quiet-btn{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px;font-size:12px}.quiet-btn svg{width:17px;height:17px}.mobile-menu{display:none}.saved,.stage-stamp,.board-callouts,.rail,.edition,.site-footer{display:none!important}.lesson-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:34px 0 26px}.lesson-heading-main{display:flex;align-items:center;gap:16px;min-width:0}.lesson-number{font:11px 'JetBrains Mono',monospace;color:var(--accent-dark);white-space:nowrap;flex-shrink:0}.heading-dash{font:14px 'JetBrains Mono',monospace;color:#8a9ea9}h1{font:500 clamp(29px,3.2vw,46px)/1.2 'Space Grotesk',sans-serif;letter-spacing:-1.8px}h1>span{color:var(--ink)}.heading-controls{display:flex;align-items:center;gap:13px;flex-shrink:0}.heading-controls>button{width:30px;height:38px;font-size:22px}.course-progress{min-width:105px;max-width:125px;margin-right:8px}.course-progress strong{font:11px 'JetBrains Mono',monospace}.course-progress em{font-style:normal;color:#7b909c;font-size:9px}.progress-track{height:2px;background:#cfdae0;margin-top:8px;overflow:hidden}#progress-bar{display:block;width:0;height:100%;background:var(--accent);transition:width .4s}.workbench{display:grid;grid-template-columns:minmax(0,1fr) 326px;gap:34px;height:min(62vh,660px);min-height:550px}.scene-panel{position:relative;min-width:0;isolation:isolate;background:none}.scene-panel:before{content:'';position:absolute;inset:0 0 50px 0;border-top:1px solid #526f8530;border-bottom:1px solid #526f8530;pointer-events:none}.scene-panel:after{content:'+';font:22px/1 'JetBrains Mono',monospace;position:absolute;left:-9px;bottom:39px;color:#728a9b80;pointer-events:none}.scene-top{position:absolute;top:12px;left:8px;z-index:3}.scene-view-toggle{display:flex;align-items:center;gap:10px;font:10px 'JetBrains Mono',monospace}.scene-view-toggle>span{color:#9eb0ba}.scene-view-toggle button{color:#8a9fab;padding:7px 3px}.scene-view-toggle button.selected{color:var(--ink);border-bottom:1px solid var(--ink)}#scene{position:absolute;inset:24px 0 48px;touch-action:none}#scene canvas{display:block;width:100%;height:100%}.scene-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;font:11px 'JetBrains Mono',monospace;color:#788e9b}.scene-loading>span{width:18px;height:18px;border:1px solid #a5b5be;border-top-color:#345c76;border-radius:50%;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scene-bottom{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:15px;z-index:4}.interaction-hint{font:8px 'JetBrains Mono',monospace;color:#879ca9}.touch-hint{display:none}.view-controls{display:flex;gap:6px;align-items:center;border:1px solid #708c9c;background:var(--paper);padding:4px 8px;position:relative}.view-controls:before{content:'';position:absolute;inset:2px -3px -3px 2px;border:1px solid #708c9c3d;pointer-events:none;transform:rotate(-.25deg)}.view-controls button{width:27px;height:31px;display:grid;place-items:center;color:#5e7e93}.view-controls button:hover{color:var(--accent);background:#f1e7d9}.view-controls button.on{color:var(--accent-dark);background:#eee4d6}.view-controls svg{width:16px;height:16px}.view-controls>span{height:17px;width:1px;background:#9aafba66;margin:0 2px}.lesson-panel{min-width:0;min-height:0;border-left:1px solid #6d889d90;position:relative;padding:0 0 0 28px;display:flex;flex-direction:column;background:transparent}.lesson-panel:before{content:'';position:absolute;left:4px;top:4px;bottom:0;border-left:1px solid #6d889d30;transform:rotate(.25deg);pointer-events:none}.panel-tabs{display:flex;gap:27px;border-bottom:1px solid #6d889d60;flex-shrink:0}.panel-tabs button{font:11px 'JetBrains Mono',monospace;padding:11px 0 13px;color:#869aa7;position:relative}.panel-tabs button.active{color:var(--ink)}.panel-tabs button.active:after{content:'';position:absolute;bottom:-2px;left:-2px;right:-3px;height:5px;border-bottom:2px solid var(--accent);transform:rotate(-1deg);border-radius:50%}.lesson-content{padding:22px 3px 14px 0;overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:#bac8cf transparent;min-height:0}.lesson-content h2{font:500 23px/1.3 'Space Grotesk',sans-serif;letter-spacing:-.6px;margin:0 0 14px}.lesson-kicker{display:flex;align-items:center;gap:7px;color:#8196a4;font:9px 'JetBrains Mono',monospace;margin-bottom:12px}.lesson-kicker svg{width:12px;height:12px}.lesson-description{font-size:13px;line-height:1.75;color:#607888}.overview-intro{font:500 23px/1.35 'Space Grotesk',sans-serif;letter-spacing:-.5px;margin-bottom:21px}.content-divider{border:0;border-top:1px solid #7c96a442;margin:20px 0}.section-label{font:9px 'JetBrains Mono',monospace;letter-spacing:.4px;color:#7a92a1;margin-bottom:12px}.objective{display:flex;align-items:flex-start;gap:10px;margin:13px 0;font-size:12px;line-height:1.65;color:#637c8c}.objective svg{width:15px;height:15px;flex-shrink:0;margin-top:2px;color:#819cae}.objective strong{font-weight:600;color:#355c77}.objective-number{font:9px 'JetBrains Mono',monospace;padding:2px 2px 4px;min-width:18px;color:#8ca0ac;border-bottom:1px solid #a3b3bb;flex-shrink:0}.field-note{margin:18px 0 0;padding:11px 0 10px 12px;border-left:2px solid #be805d77;display:flex;gap:9px;font-size:11px;line-height:1.7;color:#718897}.field-note svg{width:15px;height:15px;flex-shrink:0;margin-top:2px;color:#a7795b}.field-note b{display:block;font-weight:500;font-size:11px;color:#637a89;margin-bottom:3px}.lesson-footer{padding:13px 0 3px;flex-shrink:0}.sim-status{display:none;align-items:center;gap:7px;font:9px 'JetBrains Mono',monospace;color:#8095a3;margin-bottom:10px}.sim-status:has(.running){display:flex}.sim-status>i{width:5px;height:5px;background:#7e9f80;border-radius:50%}.guided-label{display:none}.run-button{border:1.5px solid var(--accent-dark);background:var(--accent);color:#fff7ea;display:flex;align-items:center;gap:12px;padding:14px 15px;font:11px 'JetBrains Mono',monospace;width:100%;min-height:47px;position:relative;transform:rotate(-.2deg)}.run-button:before{content:'';position:absolute;inset:2px -3px -4px 1px;border:1px solid #b05e3b66;pointer-events:none}.run-button:hover{background:#bb6843;color:#fff7ea}.run-button>span:first-child svg{width:15px;height:15px}.run-button kbd{margin-left:auto;font:8px 'JetBrains Mono',monospace;color:#f4ceb9}.run-button.is-running{background:#355a72;border-color:#264864}.run-button.is-running:before{border-color:#355a7266}.run-button.is-running kbd{color:#a5becd}.lesson-shelf{margin-top:30px;position:relative;padding-top:34px}.shelf-heading{position:absolute;top:0;right:0}.shelf-actions{display:flex;align-items:center;gap:8px}.shelf-actions>button:first-child{font:10px 'JetBrains Mono',monospace;padding:5px 0;margin-right:10px}.shelf-actions>button:first-child span{font-size:16px;margin-left:12px}.shelf-arrow{width:26px;height:26px;display:grid;place-items:center}.shelf-arrow svg{width:13px;height:13px}.lesson-cards{display:flex;gap:16px;overflow:auto;scrollbar-width:none;padding:4px 0 8px;scroll-behavior:smooth;scroll-snap-type:x proximity;position:relative;background:linear-gradient(#7f9aad70,#7f9aad70) 0 18px/100% 1px no-repeat}.lesson-cards::-webkit-scrollbar{display:none}.lesson-card{position:relative;display:flex;flex-direction:column;align-items:center;flex:0 0 calc((100% - 96px)/7);min-width:130px;max-width:195px;padding:0;background:none;border:0;scroll-snap-align:start;text-align:center}.card-art{width:100%;height:100px;display:flex;align-items:center;justify-content:center;position:relative;padding-top:27px}.card-art>svg{width:86px;height:62px;filter:drop-shadow(2px 3px 1px #34586e12);transition:transform .2s}.lesson-card:hover .card-art>svg{transform:translateY(-3px)}.card-num{position:absolute;left:50%;top:0;transform:translateX(-50%);width:28px;height:28px;border:1px solid #8aa1af;border-radius:50%;display:grid;place-items:center;font:9px 'JetBrains Mono',monospace;background:var(--paper);color:#8198a7;z-index:1}.lesson-card.active .card-num{border-color:#bd6c49;color:#b96644}.lesson-card.active .card-num:before{content:'';position:absolute;inset:-3px -4px -2px -3px;border:1px solid #c8806055;border-radius:50%;transform:rotate(-15deg)}.card-tag{display:none}.card-copy{padding:0 6px 3px;width:100%}.card-copy strong{display:block;font-weight:400;font-size:11px;line-height:1.5;color:#728997}.lesson-card.active .card-copy strong{color:#355a73}.card-copy>span{display:none}.card-copy svg{width:12px;height:12px}.hover-tip{position:absolute;max-width:245px;background:var(--paper);color:var(--ink);border:1px solid #375a73;padding:14px 16px;box-shadow:3px 3px 0 var(--paper),4px 4px 0 #375a7350;pointer-events:none;z-index:8;transform:rotate(-.4deg)}.hover-tip>strong{font:12px 'JetBrains Mono',monospace;display:block;margin-bottom:7px}.hover-tip>span{display:block;font-size:11px;line-height:1.6;color:#607888}.hover-tip>small{display:block;font:8px 'JetBrains Mono',monospace;color:#9a7056;border-top:1px dashed #8094a866;padding-top:8px;margin-top:10px}.inspector{position:absolute;bottom:65px;left:14px;width:285px;max-width:calc(100% - 28px);background:var(--paper);border:1px solid #375a73;padding:19px;box-shadow:4px 4px 0 var(--paper),5px 5px 0 #375a734d;z-index:9}.inspector .close{position:absolute;right:7px;top:7px;width:30px;height:30px;display:grid;place-items:center}.inspector .close svg{width:14px;height:14px}.eyebrow{font:8px 'JetBrains Mono',monospace;color:#8197a5;letter-spacing:.6px}.inspector .eyebrow{padding-right:20px}.inspector h3{font:500 22px 'Space Grotesk',sans-serif;letter-spacing:-.5px;margin:10px 0}.inspector p{font-size:12px;line-height:1.65;color:#627d8f}.inspector dl{display:grid;grid-template-columns:1fr 1fr;font-size:10px;gap:9px;margin:15px 0 0;border-top:1px dashed #8094a866;padding-top:12px}.inspector dt{color:#8399a7}.inspector dd{margin:0;text-align:right}.inspector .tip{font-size:10px;border-top:1px solid #8094a83d;padding-top:10px;margin-top:12px}.schematic-panel{position:absolute;inset:58px 8px 66px;z-index:5;background:var(--paper);padding:20px;overflow:auto;border:1px solid #a0b3be}.schematic-panel h3{font:500 24px 'Space Grotesk',sans-serif;letter-spacing:-.6px}.schematic-panel>p{font-size:12px;line-height:1.75;color:#738b9b;margin:10px 0 16px}.circuit-line{display:grid;grid-template-columns:1fr 40px 1.4fr;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #90a5b33a;font:11px 'JetBrains Mono',monospace}.circuit-line>i{height:1px;background:#809aad;position:relative}.circuit-line>i:before,.circuit-line>i:after{content:'';position:absolute;top:-3px;width:6px;height:6px;border:1px solid #63859c;border-radius:50%;background:var(--paper)}.circuit-line>i:after{right:0}.circuit-line small{grid-column:1/-1;font:11px/1.6 'DM Sans',sans-serif;color:#7f94a1}.pinout-table{width:100%;border-collapse:collapse;font-size:11px}.pinout-table th{text-align:left;font:8px 'JetBrains Mono',monospace;color:#849aa8;padding:9px 0;border-bottom:1px solid #829cab60}.pinout-table td{padding:12px 8px 12px 0;vertical-align:top;line-height:1.6;border-bottom:1px solid #829cab35}.pinout-table td:first-child{font:10px/1.7 'JetBrains Mono',monospace;color:#40677f}.pinout-table td small{display:block;font-size:10px;color:#8096a4;margin-top:3px}.spec-row{display:flex;justify-content:space-between;gap:15px;font-size:11px;line-height:1.5;padding:10px 0;border-bottom:1px solid #829cab35}.spec-row>span{color:#8499a6}.spec-row strong{font-weight:500;text-align:right}.code-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.code-actions>span{font:10px 'JetBrains Mono',monospace;color:#6c8798}.code-actions>div{display:flex;gap:6px}.code-actions button{font-size:10px;display:flex;align-items:center;gap:5px;padding:5px}.code-actions svg{width:14px;height:14px}pre{margin:0;overflow:auto;white-space:pre;font:10.5px/1.9 'JetBrains Mono',monospace;tab-size:2;color:#355d77;padding:13px 0;border-top:1px solid #8097a980;border-bottom:1px solid #8097a980;background:none;scrollbar-width:thin;scrollbar-color:#c1cdd3 transparent}.code-comment{color:#92a5ae}.code-keyword{color:#bd724e}.code-string{color:#66896f}.code-number{color:#698c84}.code-note{font-size:11px;line-height:1.7;color:#78909f;margin:13px 0}.overview-code,.code-preview{margin-top:20px}.steps{padding:0;list-style:none;counter-reset:step}.steps li{display:flex;gap:11px;font-size:12px;line-height:1.75;color:#718b9b;margin:13px 0;counter-increment:step}.steps li:before{content:counter(step,decimal-leading-zero);font:9px/1.8 'JetBrains Mono',monospace;color:#8a9fab;flex-shrink:0;padding-top:2px}.details-block{margin-top:19px;border-top:1px solid #8097a960;padding-top:13px}.details-block summary{display:flex;align-items:center;justify-content:space-between;list-style:none;font:10px 'JetBrains Mono',monospace;cursor:pointer;min-height:28px}.details-block summary:after{content:'+';color:#8ea3b1;font-size:16px}.details-block[open] summary:after{content:'−'}.complete-button{display:flex;gap:9px;align-items:center;justify-content:center;border:1px solid #8aa2b0;width:100%;padding:11px 8px;margin-top:17px;font:10px 'JetBrains Mono',monospace;min-height:42px;line-height:1.6}.complete-button svg{width:15px;height:15px;flex-shrink:0}.complete-button:hover{background:#e9eef0}.control-box{border-top:1px solid #a2b3be66;border-bottom:1px solid #a2b3be66;padding:14px 0 15px;margin:18px 0}.control-box label{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;margin-bottom:12px}.control-box output{font:10px 'JetBrains Mono',monospace;color:#ab7454}input[type=range]{width:100%;height:17px;margin:0;accent-color:#bb7855;cursor:pointer}.experiment-button{width:100%;padding:12px 9px;border:1px solid #829dad;background:#eef0ea;color:#456d84;font:11px 'JetBrains Mono',monospace;min-height:44px;touch-action:none;user-select:none}.experiment-button:active{background:#dce4e5}.piano-keys{display:flex;gap:3px;margin-top:12px}.piano-keys button{border:1px solid #829dad;border-radius:0 0 2px 2px;min-height:65px;background:#fcfaf4;flex:1;min-width:0;padding:23px 0 10px;font:10px 'JetBrains Mono',monospace;touch-action:none}.piano-keys button:active{background:#dce4e5}.serial{margin-top:18px;border:1px solid #829dad;background:#edf0ec}.serial header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid #829dad60;font:8px 'JetBrains Mono',monospace}.serial header span{color:#8da1ae;font-size:7px}.serial-lines{max-height:110px;overflow:auto;padding:9px 12px;font:9px/1.85 'JetBrains Mono',monospace}.serial-lines p{white-space:pre-wrap;word-break:break-word}dialog{background:var(--paper);color:var(--ink);border:1px solid #4c6c83;padding:29px;width:780px;max-width:calc(100vw - 32px);max-height:90dvh;box-shadow:5px 5px 0 var(--paper),6px 6px 0 #375a7377}dialog::backdrop{background:#273e4c66;backdrop-filter:blur(3px)}.dialog-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:1px solid #7894a55e;margin-bottom:22px}.dialog-top h2{font:500 29px 'Space Grotesk',sans-serif;letter-spacing:-1px;margin-top:8px}.dialog-top>button{height:33px;width:33px;display:grid;place-items:center;border:1px solid #9bafbc}.dialog-top svg{width:15px;height:15px}.dialog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 24px}.dialog-grid .lesson-card{min-width:0;max-width:none;width:100%;padding:11px 8px 15px;border-bottom:1px solid #98aebc5b}.dialog-grid .card-art{height:106px}.dialog-grid .card-copy>span{display:flex;align-items:center;justify-content:center;gap:10px;color:#8b9fab;font-size:9px;margin-top:7px}.part-card{padding:17px 0 20px;text-align:left;border-bottom:1px solid #98aebc5b}.part-card>svg{width:25px;height:25px;color:#7796aa;margin-bottom:13px}.part-card strong{display:block;font:500 16px 'Space Grotesk',sans-serif}.part-card small{display:block;font-size:10px;line-height:1.6;color:#7e97a7;margin-top:7px}.modal-copy{font-size:13px;line-height:1.85;color:#6d8797}.modal-copy p+p{margin-top:13px}.modal-copy h3{font:500 21px 'Space Grotesk',sans-serif;letter-spacing:-.4px;color:#385f77;margin:23px 0 11px}.modal-copy ul{padding-left:20px}.modal-copy kbd{font:10px 'JetBrains Mono',monospace;border:1px solid #a4b6bf;padding:2px 5px}.settings-row{padding:18px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;border-bottom:1px solid #8aa3b35b}.settings-row small{display:block;font-size:11px;line-height:1.7;color:#8299a7;margin-top:5px}.settings-row button{font:10px 'JetBrains Mono',monospace;border:1px solid #8aa3b3;padding:10px 12px;white-space:nowrap}.settings-row input{accent-color:#b77954;width:18px;height:18px;flex-shrink:0}.quiz-options{display:grid;gap:12px;margin-top:21px}.quiz-options button{border:1px solid #91a8b8;text-align:left;padding:16px;font-size:13px;line-height:1.6;background:#f9f7ef}.quiz-options button.correct{border-color:#74927a;background:#edf3e7}.quiz-options button.wrong{border-color:#b87c5b;background:#f4e8dc}.quiz-feedback{font-size:13px;line-height:1.7;color:#6d8797;margin-top:18px}.next-button{background:var(--accent);color:#fff7ea;border:1px solid #ad653f;font:11px 'JetBrains Mono',monospace;padding:13px 16px;margin-top:20px;min-height:44px}.next-button:hover{color:#fff7ea;background:#b36543}#toast{position:fixed;bottom:23px;left:50%;transform:translate(-50%,12px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;background:var(--paper);color:var(--ink);border:1px solid #567a93;box-shadow:3px 3px 0 var(--paper),4px 4px 0 #375a734d;padding:12px 18px;font-size:12px;max-width:calc(100vw - 32px);width:max-content;z-index:100}#toast.visible{opacity:1;transform:translate(-50%,0)}.noscript{position:fixed;inset:0;display:grid;place-items:center;background:var(--paper);padding:40px;font-size:20px;z-index:99}body.dialog-open,body.workbench-expanded{overflow:hidden}.scene-panel.expanded{position:fixed;inset:20px;z-index:70;background-color:var(--paper);background-image:linear-gradient(#3b739c09 1px,transparent 1px),linear-gradient(90deg,#3b739c09 1px,transparent 1px);background-size:24px 24px;box-shadow:0 0 0 40px #273e4c99}.scene-panel.expanded #scene{inset:36px 15px 65px}.scene-panel.expanded .scene-top{top:18px;left:24px}.scene-panel.expanded .scene-bottom{left:24px;right:24px;bottom:15px}.scene-panel.expanded:after{display:none}.scene-panel.expanded:before{inset:10px;border:1px solid #8299a65c}.kbd-hint{font:9px 'JetBrains Mono',monospace;color:#8ba0ad}@media(min-width:1700px){body{padding-left:65px;padding-right:65px}.workbench{grid-template-columns:minmax(0,1fr) 360px;gap:42px;height:64vh;max-height:740px}.lesson-content{padding-top:27px}.lesson-description{font-size:14px}.objective{font-size:13px}.card-art{height:115px}.card-art>svg{height:72px;width:100px}.card-copy strong{font-size:12px}}@media(max-width:1180px){body{padding:22px 30px 28px}.top-navigation{gap:20px}.topbar{gap:13px}.wordmark{font-size:21px}.wordmark img{width:37px;height:37px}.wordmark .brand-lab{font-size:10px}.workbench{grid-template-columns:minmax(0,1fr) 305px;gap:24px;min-height:540px}.lesson-panel{padding-left:21px}.interaction-hint{font-size:7px}.view-controls{gap:4px;padding:4px 6px}.view-controls button{width:24px}.lesson-heading-main{gap:13px}h1{font-size:39px}.course-progress{min-width:95px;max-width:108px;margin-right:0}.heading-controls{gap:7px}.lesson-card{min-width:120px;flex-basis:calc((100% - 80px)/6)}}@media(max-width:960px){body{padding:20px 23px 25px}.top-navigation{gap:15px;font-size:10px}.topbar{gap:8px}.wordmark .brand-lab{font-size:9px;letter-spacing:.8px}.wordmark{gap:6px;font-size:20px}.wordmark img{margin-right:1px}.brand-slash{margin:0 2px}.top-actions #help-button{display:none}.workbench{grid-template-columns:minmax(0,1fr) 280px;gap:20px;min-height:515px}.lesson-panel{padding-left:18px}.lesson-heading{padding:30px 0 24px;gap:14px}.lesson-heading-main{gap:9px}.lesson-number{font-size:9px}.heading-dash{font-size:11px}h1{font-size:32px;letter-spacing:-1.4px}.course-progress{min-width:84px;max-width:95px}.course-progress strong{font-size:10px}.course-progress em{font-size:8px}.heading-controls>button{width:24px}.interaction-hint{display:none}.scene-bottom{justify-content:center}.panel-tabs{gap:24px}.panel-tabs button{font-size:10px}.lesson-description{font-size:12px}.lesson-content h2{font-size:22px}.objective{font-size:11px}.run-button{font-size:10px}.lesson-card{min-width:110px}.card-copy strong{font-size:10px}.card-art{height:94px}.card-art>svg{width:79px;height:57px}}
@media(max-width:760px){body{padding:16px 19px 29px;background-size:20px 20px}.shell:before{top:-7px;left:-9px;width:10px;height:10px}.shell:after{right:-8px;bottom:-12px}.topbar{height:55px;gap:10px}.topbar:after{top:57px}.wordmark{font-size:19px;gap:7px;letter-spacing:-.5px}.wordmark img{width:32px;height:32px;margin-right:0}.wordmark .brand-lab{font-size:8px;letter-spacing:.8px}.wordmark .brand-slash{margin:0 1px}.top-navigation{display:none}.top-actions{margin-left:auto;gap:2px}.top-actions #help-button{display:none}.mobile-menu{display:flex;width:38px;min-height:44px;padding:8px}.mobile-menu svg{width:19px;height:19px}.lesson-heading{padding:27px 0 21px;gap:8px;align-items:center}.lesson-heading-main{gap:9px;flex:1}.lesson-number{font-size:10px}.heading-dash{display:none}h1{font-size:30px;letter-spacing:-1.3px;line-height:1.22}.heading-controls{display:none}.workbench{display:flex;flex-direction:column;gap:25px;min-height:0;height:auto}.scene-panel{height:395px;min-width:0;width:100%;flex-shrink:0}.scene-panel:before{bottom:55px}.scene-panel:after{bottom:44px;left:-8px}.scene-top{top:10px;left:0}.scene-view-toggle{font-size:9px;gap:9px}.scene-view-toggle button{min-height:35px;padding:7px 3px}#scene{inset:27px -6px 54px}.scene-bottom{bottom:0;justify-content:center;gap:10px}.interaction-hint{display:none}.desktop-hint{display:none}.touch-hint{display:inline}.view-controls{padding:0 5px;gap:2px}.view-controls button{width:43px;height:43px}.view-controls svg{width:16px;height:16px}.view-controls>span{margin:0;width:1px;height:18px}.lesson-panel{border:0;padding:0;min-height:0}.lesson-panel:before{display:none}.panel-tabs{gap:33px;border-top:1px solid #6d889d60}.panel-tabs button{font-size:11px;min-height:47px;padding:14px 0}.lesson-content{padding:21px 2px 10px 0;max-height:none;overflow:visible}.lesson-content h2{font-size:24px;line-height:1.3}.lesson-description{font-size:13px;line-height:1.7}.overview-intro{font-size:24px;line-height:1.3}.objective{font-size:12px;margin:12px 0}.lesson-kicker{font-size:9px}.field-note{font-size:11px}.lesson-footer{padding:9px 1px 3px}.run-button{font-size:12px;min-height:48px;padding:14px 15px}.run-button kbd{display:none}.run-button:after{content:'↵';margin-left:auto;color:#f0bfa3;font-size:20px;line-height:1}.sim-status{font-size:9px}.lesson-shelf{margin-top:30px;padding-top:31px}.shelf-actions>button:first-child{font-size:10px;margin-right:0}.shelf-actions>button:first-child span{margin-left:8px}.shelf-arrow{display:none}.lesson-cards{gap:14px;padding-bottom:4px}.lesson-card{min-width:95px;flex-basis:95px}.card-art{height:92px}.card-art>svg{width:72px;height:56px}.card-copy{padding:0 2px 3px}.card-copy strong{font-size:10px;white-space:nowrap}.card-num{width:27px;height:27px;font-size:9px}.hover-tip{display:none!important}.inspector{left:6px;bottom:66px;max-width:calc(100% - 16px);width:285px;padding:18px}.inspector .close{width:34px;height:34px}.inspector h3{font-size:21px}.inspector p{font-size:11px}.inspector dl{font-size:10px}.inspector .tip{font-size:10px}.schematic-panel{inset:53px 0 62px;padding:16px}.schematic-panel h3{font-size:21px}.schematic-panel>p{font-size:11px}.circuit-line{grid-template-columns:1fr 25px 1.3fr;gap:8px;font-size:9px}.circuit-line small{font-size:10px}.pinout-table{font-size:12px}.pinout-table td:first-child{font-size:10px}.spec-row{font-size:12px}.code-actions button{min-height:36px;padding:7px}.code-actions>span{font-size:11px}pre{font-size:11px;max-width:100%}.code-note{font-size:11px}.details-block summary{min-height:44px;font-size:11px}.steps li{font-size:12px}.complete-button{min-height:44px;font-size:11px}.control-box label{font-size:13px}.control-box output{font-size:11px}input[type=range]{height:24px}.experiment-button{font-size:11px;min-height:47px}.serial-lines{font-size:10px}.serial header{font-size:9px}.serial header span{font-size:7px}dialog{padding:22px 18px;max-width:calc(100vw - 24px);max-height:90dvh}.dialog-top{padding-bottom:18px;margin-bottom:18px}.dialog-top h2{font-size:25px;letter-spacing:-.8px}.dialog-top>button{width:36px;height:36px}.dialog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.dialog-grid .lesson-card{padding:8px 5px 14px;min-width:0;max-width:none}.dialog-grid .card-copy strong{white-space:normal;font-size:11px}.dialog-grid .card-art{height:98px}.part-card strong{font-size:16px}.part-card small{font-size:11px}.settings-row{gap:12px;font-size:12px}.settings-row small{font-size:10px}.settings-row button{font-size:9px;padding:10px}.modal-copy{font-size:12px}.scene-panel.expanded{inset:10px}.scene-panel.expanded #scene{inset:34px 0 69px}.scene-panel.expanded .scene-top{left:12px;top:14px}.scene-panel.expanded .scene-bottom{left:11px;right:11px;bottom:14px}.scene-panel.expanded .interaction-hint{display:none}}
@media(max-width:380px){body{padding:14px 14px 25px}.wordmark{font-size:18px;gap:6px}.wordmark .brand-lab{font-size:7px;letter-spacing:.6px}.wordmark img{width:29px;height:29px}h1{font-size:27px;letter-spacing:-1px}.lesson-number{font-size:9px}.lesson-heading-main{gap:8px}.scene-panel{height:365px}.view-controls{padding:0 3px;gap:0}.view-controls button{width:39px;height:43px}.view-controls svg{width:15px}.dialog-grid{gap:11px}.lesson-card{min-width:88px;flex-basis:88px}.card-copy strong{font-size:9px}.card-art>svg{width:65px;height:51px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
#lesson-position{font:10px 'JetBrains Mono',monospace;color:#7b92a1;white-space:nowrap}.heading-controls .course-progress{margin-right:16px}.board-facts{margin:20px 0 23px;counter-reset:fact}.board-facts p{position:relative;padding-left:30px;margin:0 0 15px;color:#637c8c;font-size:12px;line-height:1.7;counter-increment:fact}.board-facts p:before{content:counter(fact,decimal-leading-zero);position:absolute;left:0;top:0;font:9px/1.8 'JetBrains Mono',monospace;color:#8b9fab;border-bottom:1px solid #a3b3bb;padding:0 2px}.board-facts b{font-weight:600;color:#355c77}.code-preview{margin-top:24px}.code-preview .code-actions{margin-bottom:8px}.code-preview .code-actions>button{font:9px 'JetBrains Mono',monospace;min-height:25px;padding:5px 0 5px 8px;color:#8b735d}.code-preview pre{font-size:10px;line-height:1.8;padding:12px 0}.audio-toggle{justify-content:flex-start;min-height:40px;font:10px 'JetBrains Mono',monospace;text-decoration:underline;text-underline-offset:5px;padding:8px 0}.audio-toggle[aria-pressed=true]{color:#a66b45}.instructions summary{font-size:10px}@media(max-width:1180px){.heading-controls .course-progress{display:none}}@media(max-width:760px){.board-facts p{font-size:12px;padding-left:29px;margin-bottom:13px}.board-facts{margin:20px 0 23px}.code-preview{margin-top:21px}.code-preview pre{font-size:11px;line-height:1.9}.code-preview .code-actions>button{font-size:10px;min-height:34px}.audio-toggle{min-height:44px;font-size:11px}.instructions summary{font-size:11px}}
/* Course navigation stays above the experiment. */
.lesson-shelf{margin:14px 0 0;padding:0 0 12px;display:grid;grid-template-columns:minmax(0,1fr) 94px;gap:14px;align-items:center;border-bottom:1px solid #8299a65c;min-width:0;height:112px}.shelf-heading{position:static;grid-column:2;grid-row:1;align-self:center;min-width:0}.shelf-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.shelf-actions>button:first-child{margin:0 0 5px;width:100%;font-size:10px;min-height:26px;white-space:nowrap}.shelf-actions>button:first-child span{margin-left:5px}.shelf-arrow{display:grid;width:34px;height:34px;border:1px solid #91a9b456}.shelf-arrow:hover{background:#efe9dc}.lesson-cards{grid-column:1;grid-row:1;gap:13px;padding:4px 10px 6px;min-width:0;height:99px;background-position:0 15px;scroll-padding-inline:10px;mask-image:linear-gradient(to right,transparent 0,#000 9px,#000 calc(100% - 12px),transparent 100%)}.lesson-cards>.lesson-card{flex:0 0 116px;min-width:116px;max-width:116px;min-height:86px}.lesson-cards .card-art{height:68px;padding-top:20px}.lesson-cards .card-art>svg{width:60px;height:45px;flex-shrink:0}.lesson-cards .card-num{width:22px;height:22px;font-size:8px}.lesson-cards .card-copy{padding:1px 3px 0}.lesson-cards .card-copy strong{font-size:12px;line-height:1.3;white-space:nowrap;color:#58758a}.lesson-cards .lesson-card.active .card-copy strong{color:var(--accent-dark);font-weight:600}.lesson-heading{padding:23px 0 24px}.heading-controls{display:flex;gap:5px}.heading-controls>button{min-width:40px;min-height:42px}.heading-controls #choose-lesson{display:flex;align-items:center;justify-content:center;gap:10px;width:auto;padding:0 12px;border:1px solid #819bac70;font-size:14px;white-space:nowrap;min-height:40px}#lesson-position{font-size:11px;color:#4f6d81}.heading-controls .course-progress{margin-right:17px}#choose-lesson:hover{background:#eeeade}.workbench{height:clamp(575px,65vh,760px);min-height:575px;grid-template-columns:minmax(0,1fr) 360px;gap:32px}.lesson-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;padding-left:25px}.lesson-content{min-height:0;overflow-y:auto;overflow-x:hidden;flex:initial;padding:22px 13px 30px 0;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#8aa0ae #dce3e440;overscroll-behavior:contain}.lesson-content::-webkit-scrollbar{width:7px}.lesson-content::-webkit-scrollbar-track{background:#dce3e440}.lesson-content::-webkit-scrollbar-thumb{background:#8aa0ae;border-radius:3px}.lesson-content:after{content:'';display:block;height:7px}.lesson-footer{position:relative;padding:15px 3px 5px 0;border-top:1px solid #819aaa66;background:var(--paper);z-index:1;min-height:65px}.lesson-description,.board-facts p,.objective,.field-note,.code-note,.steps li,.spec-row,.pinout-table,.lesson-learning p,.learning-section p,.learning-section li,.try-it p{font-size:13px;line-height:1.75;color:#526f82}.board-facts p{font-size:13px}.lesson-content h2{font-size:25px}.control-box label{font-size:13px}.control-box output{font-size:12px}.panel-tabs button{font-size:12px;min-height:45px}.code-preview pre,pre{font-size:12px;line-height:1.85}.code-preview .code-actions>button,.code-actions>span,.code-actions button{font-size:11px}.details-block summary,.instructions summary{font-size:12px;min-height:40px}.complete-button{font-size:11px;min-height:44px}.run-button{font-size:12px;min-height:47px}.lesson-content pre{max-width:100%;overflow:auto}.lesson-content .code-preview{min-width:0}.view-controls button{position:relative}.view-controls button[data-tooltip]:is(:hover,:focus-visible):after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);background:var(--paper);border:1px solid #577b92;padding:7px 9px;color:#365a71;font:10px/1.4 'JetBrains Mono',monospace;white-space:nowrap;pointer-events:none;z-index:15}.view-controls button[data-tooltip]:last-child:is(:hover,:focus-visible):after{left:auto;right:0;transform:none}.view-controls button[data-tooltip]:first-child:is(:hover,:focus-visible):after{left:0;transform:none}.lesson-learning{margin-top:24px}.learning-section{padding-top:17px;margin-top:18px;border-top:1px solid #7e98aa55}.learning-section h3,.try-it h3{font:500 19px/1.35 'Space Grotesk',sans-serif;letter-spacing:-.35px;margin-bottom:10px;color:#345a73}.learning-section ul,.learning-section ol{margin:10px 0 0;padding-left:19px}.learning-section li+li{margin-top:8px}.learning-section code,.try-it code{font:11px 'JetBrains Mono',monospace;color:#aa6a48}.try-it{margin-top:20px;border-left:2px solid #bf805a88;padding:3px 0 3px 13px}.try-it h3{font-size:17px}.try-it p{margin:0}.try-it strong{color:#355b73}.lesson-learning>p+p,.learning-section p+p{margin-top:10px}#scene-action-hint{position:absolute;top:14px;right:8px;max-width:60%;font:10px/1.5 'JetBrains Mono',monospace;text-align:right;color:#8c6e55;pointer-events:none;z-index:3;background:#f8f5ebcc;padding:5px 8px}.scene-panel.expanded #scene-action-hint{top:21px;right:24px}.scene-top{z-index:4}.scene-panel:has(#scene-action-hint:not([hidden])) #scene{top:42px}
@media(min-width:1700px){.workbench{grid-template-columns:minmax(0,1fr) 395px;height:clamp(620px,66vh,790px);max-height:none}.lesson-cards>.lesson-card{flex-basis:135px;min-width:135px;max-width:135px}}
@media(max-width:1180px){.workbench{grid-template-columns:minmax(0,1fr) 335px;gap:23px;min-height:575px}.lesson-cards>.lesson-card{flex-basis:110px;min-width:110px;max-width:110px}.lesson-cards .card-copy strong{font-size:11px}.lesson-panel{padding-left:20px}.heading-controls .course-progress{display:none}}
@media(max-width:960px) and (min-width:761px){.lesson-heading{align-items:flex-start}.lesson-heading-main{padding-top:5px}h1{font-size:32px}.workbench{grid-template-columns:minmax(0,1fr) 315px;gap:18px;min-height:575px}.lesson-panel{padding-left:17px}.lesson-content{padding-right:9px}.heading-controls #choose-lesson{gap:5px;padding:0 7px}.heading-controls>button{min-width:32px}.lesson-shelf{grid-template-columns:minmax(0,1fr) 79px;gap:10px}.shelf-actions>button:first-child{font-size:9px}.shelf-arrow{width:31px;height:31px}}
@media(max-width:760px){.lesson-shelf{height:99px;margin-top:12px;padding-bottom:8px;grid-template-columns:minmax(0,1fr) 34px;gap:6px}.shelf-heading{align-self:center}.shelf-actions{gap:5px}.shelf-actions>button:first-child{display:none}.shelf-arrow{display:grid;width:32px;height:36px;border-color:#91a9b45e}.shelf-arrow svg{width:12px;height:12px}.lesson-cards{height:88px;padding:3px 9px 4px;gap:9px;background-position-y:13px;mask-image:linear-gradient(to right,transparent 0,#000 7px,#000 calc(100% - 10px),transparent 100%)}.lesson-cards>.lesson-card{flex-basis:106px;min-width:106px;max-width:106px;min-height:78px}.lesson-cards .card-art{height:59px;padding-top:17px}.lesson-cards .card-art>svg{height:39px;width:53px}.lesson-cards .card-num{width:20px;height:20px;font-size:8px}.lesson-cards .card-copy{padding:3px 1px 0}.lesson-cards .card-copy strong{font-size:11px;line-height:1.3}.lesson-heading{display:flex;flex-wrap:wrap;gap:13px;padding:22px 0 18px}.lesson-heading-main{flex-basis:100%;gap:10px;align-items:baseline}.lesson-heading h1{font-size:30px;line-height:1.2}.lesson-number{font-size:11px}.heading-controls{display:flex;gap:7px;align-items:center;width:100%;justify-content:space-between}.heading-controls .course-progress{display:none}.heading-controls>button{min-height:42px;min-width:44px;width:44px;border:1px solid #819bac55}.heading-controls #choose-lesson{flex:1;min-height:42px;min-width:0;max-width:none;gap:13px;font-size:15px;border-color:#819bac70}#lesson-position{font-size:12px}.workbench{display:flex;flex-direction:column;height:auto;min-height:0;gap:22px}.scene-panel{height:385px}#scene{inset:34px 0 55px}.scene-panel:has(#scene-action-hint:not([hidden])) #scene{top:51px}.lesson-panel{display:flex;flex-direction:column;padding:0;border:0;min-height:0}.panel-tabs{order:1}.lesson-content{order:3;overflow:visible;scrollbar-gutter:auto;padding:20px 0 15px;min-height:0;max-height:none;flex:initial}.lesson-footer{order:2;border-top:0;border-bottom:1px solid #819aaa44;padding:14px 3px 16px 0;background:none;min-height:0}.panel-tabs button{font-size:12px;min-height:47px}.lesson-description,.board-facts p,.objective,.field-note,.code-note,.steps li,.spec-row,.pinout-table,.lesson-learning p,.learning-section p,.learning-section li,.try-it p{font-size:13px;line-height:1.75}.lesson-content pre,.code-preview pre{font-size:12px;line-height:1.85}.code-preview .code-actions>button,.code-actions>span,.code-actions button{font-size:11px}.control-box label{font-size:13px}.control-box output{font-size:12px}.instructions summary,.details-block summary{font-size:12px;min-height:44px}.complete-button{font-size:11px}.run-button{min-height:48px;font-size:12px}.view-controls button[data-tooltip]:is(:hover,:focus-visible):after{display:none}#scene-action-hint{top:12px;right:0;max-width:64%;font-size:9px;line-height:1.5;padding:5px 0 5px 8px}.learning-section h3{font-size:19px}.try-it h3{font-size:18px}.scene-panel.expanded #scene-action-hint{top:13px;right:14px}.scene-panel.expanded #scene{inset:51px 0 69px}.lesson-shelf:before{display:none}}
@media(max-width:380px){.lesson-heading h1{font-size:27px}.lesson-heading{padding-top:20px}.lesson-cards>.lesson-card{flex-basis:101px;min-width:101px;max-width:101px}.scene-panel{height:365px}.lesson-cards .card-copy strong{font-size:10px}.heading-controls>button{min-height:42px;min-width:42px}.heading-controls #choose-lesson{min-height:42px}#scene-action-hint{max-width:61%;font-size:8px}}
/* Run is adjacent to the scene; learning and code retain their own scroll area. */
.lesson-panel{grid-template-rows:auto auto minmax(0,1fr)}.lesson-panel>.lesson-footer{grid-row:1;order:0;padding:0 3px 17px 0;border:0;background:none;min-height:0}.lesson-panel>.panel-tabs{grid-row:2;order:1;gap:0;justify-content:space-between}.lesson-panel>.panel-tabs button{flex:0 1 auto;padding-inline:0;min-width:0;font-size:11px}.lesson-panel>.lesson-content{grid-row:3;order:2}.lesson-learning h3{font:500 20px/1.35 'Space Grotesk',sans-serif;letter-spacing:-.35px;margin-bottom:11px;color:#345a73}.interaction-cue{color:#745b49;font-size:12px;line-height:1.7;margin:14px 0;padding-left:11px;border-left:2px solid #bd805a88}.interaction-cue b,.interaction-cue strong{font-weight:600;color:#73533e}#scene-action-hint.interaction-cue{margin:0;border:0}.learning-section:first-child{margin-top:0}.lesson-learning{margin-top:0}.lesson-learning ol,.lesson-learning ul{padding-left:20px}.lesson-learning li{font-size:13px;line-height:1.75;color:#526f82}.lesson-learning li+li{margin-top:8px}.lesson-learning code{font:11px 'JetBrains Mono',monospace;color:#aa6a48}.lesson-learning pre code{font:inherit;color:inherit}#open-learn{border-bottom:1px solid #aa785c;font:11px 'JetBrains Mono',monospace;padding:7px 0 5px;color:#9c694c;min-height:34px}#open-learn:hover{color:#75452e}.lesson-content>button#open-learn{margin:14px 0 4px}.lesson-learning .try-it p{font-size:13px;line-height:1.75}
@media(max-width:760px){.lesson-panel>.lesson-footer{order:0;padding:0 3px 18px 0;border:0;background:none}.lesson-panel>.panel-tabs{order:1;gap:0;justify-content:space-between}.lesson-panel>.panel-tabs button{font-size:12px;padding:14px 0;min-height:47px}.lesson-panel>.lesson-content{order:2;padding-top:20px}.lesson-learning h3{font-size:20px}.interaction-cue{font-size:12px}#open-learn{font-size:11px;min-height:42px}}
@media(max-width:380px){.lesson-panel>.panel-tabs button{font-size:11px}}
/* A fixed expanded workbench must release the mobile section's explicit size. */
.scene-panel.expanded{height:auto;width:auto;min-height:0}
.scene-panel.expanded #scene canvas{touch-action:none!important}
.piano-keys button.is-pressed{background:#dce4e5;transform:translateY(2px)}
.learning-section p+p{margin-top:12px}.takeaway{border-left:2px solid #bf805e;padding-left:14px;font-size:13px;line-height:1.8}
#scene{touch-action:pan-y}
.scene-panel.expanded #scene{touch-action:none}

/* Desktop is one viewport. Only the lesson and schematic reading areas scroll. */
@media (min-width:761px) {
  html { height:100%; overflow:hidden; }
  body {
    height:100dvh;
    min-height:0;
    overflow:hidden;
    padding:clamp(12px,1.8dvh,22px) clamp(24px,3vw,48px) 16px;
  }
  .shell {
    height:100%;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  .shell:after { bottom:-9px; }
  .topbar {
    height:clamp(48px,6.5dvh,68px);
    min-height:0;
    flex:0 0 auto;
  }
  .topbar:after { top:calc(100% + 1px); }
  .wordmark img { width:36px; height:36px; }
  .top-navigation>button,.top-actions>button { min-height:44px; }
  .shell>main {
    flex:1 1 0;
    min-width:0;
    min-height:0;
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr);
  }
  .lesson-shelf {
    height:clamp(84px,10.8dvh,112px);
    min-height:0;
    margin-top:10px;
    padding:0 0 8px;
  }
  .lesson-cards {
    height:100%;
    min-height:0;
    padding:3px 10px 4px;
    align-items:stretch;
    overflow-y:hidden;
  }
  .lesson-cards>.lesson-card { min-height:0; }
  .lesson-cards .card-art {
    height:auto;
    flex:1 1 0;
    min-height:42px;
    padding-top:20px;
  }
  .lesson-cards .card-art>svg {
    height:clamp(29px,4.3dvh,45px);
    width:60px;
  }
  .lesson-cards .card-copy { flex:0 0 auto; padding:2px 3px 0; }
  .lesson-cards .card-copy strong { font-size:11px; line-height:1.4; }
  .lesson-heading {
    min-height:0;
    align-items:center;
    padding:clamp(12px,1.8dvh,20px) 0;
  }
  .lesson-heading h1 {
    font-size:clamp(25px,2.7vw,42px);
    line-height:1.12;
    letter-spacing:-1.2px;
  }
  .heading-controls { align-items:center; }
  .heading-controls>button,
  .heading-controls #choose-lesson { min-height:44px; }
  .workbench {
    height:100%;
    min-height:0;
    max-height:none;
    min-width:0;
    align-items:stretch;
  }
  .scene-panel:not(.expanded) { height:100%; min-height:0; }
  #scene { top:40px; bottom:48px; }
  .scene-top { top:5px; }
  .scene-view-toggle button { min-height:34px; }
  #scene-action-hint { top:6px; }
  .scene-bottom { min-height:46px; }
  .view-controls { padding:0 5px; }
  .view-controls button { width:40px; height:44px; }
  .interaction-hint { min-width:0; max-width:180px; line-height:1.6; }
  .lesson-panel {
    height:100%;
    min-height:0;
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr);
  }
  .lesson-panel>.lesson-footer { padding:0 3px 12px 0; }
  .run-button { min-height:44px; }
  .lesson-panel>.panel-tabs button { min-height:44px; padding:11px 0; }
  .lesson-panel>.lesson-content {
    min-height:0;
    max-height:none;
    overflow:auto;
    overscroll-behavior:contain;
    padding-top:17px;
    padding-bottom:24px;
    scrollbar-gutter:stable;
  }
  .schematic-panel {
    inset:48px 0 60px;
    min-height:0;
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:#8aa0ae #eee9dd;
  }
  .inspector { max-height:calc(100% - 104px); overflow:auto; }
}

/* Keep the same hierarchy on short laptop windows; retain full-size controls. */
@media (min-width:761px) and (max-height:700px) {
  body { padding-top:10px; padding-bottom:10px; }
  .shell:before { top:-6px; }
  .shell:after { bottom:-5px; }
  .topbar { height:44px; }
  .wordmark { font-size:21px; }
  .wordmark img { width:32px; height:32px; }
  .lesson-shelf { height:78px; margin-top:6px; padding-bottom:6px; }
  .lesson-cards { padding-top:2px; padding-bottom:2px; background-position-y:11px; }
  .lesson-cards .card-art { min-height:39px; padding-top:16px; }
  .lesson-cards .card-art>svg { height:30px; }
  .lesson-cards .card-num { width:19px; height:19px; font-size:8px; }
  .lesson-cards .card-copy { padding-top:1px; }
  .lesson-heading { padding:8px 0; }
  .lesson-heading h1 { font-size:clamp(24px,2.4vw,34px); }
  .lesson-panel>.lesson-footer { padding-bottom:8px; }
  .lesson-panel>.lesson-content { padding-top:13px; }
  .sim-status { margin-bottom:5px; }
}

/* Small, accessible links in the workbench header. */
.social-links { display:flex; align-items:center; gap:2px; }
.social-link {
  display:grid;
  place-items:center;
  width:38px;
  height:44px;
  flex:0 0 38px;
  color:#58758a;
  border-radius:3px;
}
.social-link svg { width:18px; height:18px; }
.social-link:hover { color:var(--accent-dark); background:#ece6d950; }
.social-link:focus-visible { outline:2px solid var(--accent-dark); outline-offset:1px; }
@media (max-width:359px) {
  .wordmark .brand-lab,.wordmark .brand-slash { display:none; }
}

/* Assembly entry and the Blink control-to-code connection. */
.top-navigation { gap:20px; }
#build-root { flex:1 1 0;min-width:0;min-height:0; }
.build-launch { display:flex;align-items:center;justify-content:space-between;width:100%;border:1px solid var(--line);padding:12px 14px;margin-top:12px;min-height:44px;font-size:12px;color:var(--accent-dark); }
.build-launch:hover { background:#c8754e0b; }
.control-constant { font:9px 'JetBrains Mono',monospace;color:var(--muted);margin-left:8px; }
.control-note { color:var(--muted);font-size:11px;line-height:1.5;margin:8px 0 0; }
@media (max-width:1100px) and (min-width:761px) { .top-navigation {gap:12px;font-size:10px;} .topbar {gap:16px;} }
