#teaching-content *{box-sizing:border-box}
#teaching-content [hidden]{display:none!important}
#teaching-content{margin:0;background:var(--bg);color:var(--ink);line-height:1.6}
#teaching-content a{color:var(--plot);text-underline-offset:4px}
#teaching-content button,#teaching-content input,#teaching-content select,#teaching-content textarea{font:inherit}
#teaching-content button,#teaching-content select,#teaching-content input[type=number],#teaching-content textarea{border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--ink);padding:10px 12px;min-height:44px}
#teaching-content button{cursor:pointer;touch-action:manipulation}
#teaching-content button:hover:enabled{border-color:var(--plot);background:var(--surface)}
#teaching-content button:disabled{opacity:.45;cursor:not-allowed}
#teaching-content .primary{background:var(--blue);color:#fff;border-color:var(--blue)}
#teaching-content .primary:hover:enabled{background:#154a7d;color:#fff}
#teaching-content .quiet{border-color:transparent;color:var(--muted)}
#teaching-content select,#teaching-content input[type=number],#teaching-content textarea{width:100%;min-width:0}
#teaching-content input[type=range]{accent-color:var(--blue);min-width:0}
#teaching-content input[type=checkbox],#teaching-content input[type=radio]{accent-color:var(--blue);width:18px;height:18px;flex-shrink:0}
#teaching-content input[type=file]{max-width:100%;min-height:44px;font:inherit;color:var(--muted)}
#teaching-content :focus-visible{outline:3px solid var(--plot);outline-offset:4px}
#teaching-content .skip{position:absolute;left:16px;top:-80px;background:var(--bg);padding:12px;z-index:5}
#teaching-content .skip:focus{top:4px}
#teaching-content .site-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px max(3vw,20px);border-bottom:1px solid var(--line)}
#teaching-content .brand{font-size:25px;font-weight:750;text-decoration:none;color:var(--plot);white-space:nowrap}
#teaching-content .brand span{font-size:14px;border-left:1px solid var(--line);padding-left:16px;margin-left:14px;font-weight:500}
#teaching-content .header-actions{display:flex;align-items:center;gap:18px}
#teaching-content .service-status{font-size:14px;color:var(--muted);max-width:440px}
#teaching-content .service-status[data-state=error]{color:var(--ink)}
#teaching-content main{max-width:1440px;margin:auto;padding:0 32px}
#teaching-content h1,#teaching-content h2,#teaching-content h3{line-height:1.3;text-wrap:balance}
#teaching-content h1{font-size:clamp(30px,3vw,42px);margin:0;color:var(--plot);letter-spacing:-.025em}
#teaching-content h2{font-size:24px;margin:0}
#teaching-content h3{font-size:18px;margin:0 0 12px}
#teaching-content p{color:var(--muted);margin:12px 0}
#teaching-content .intro{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:28px 0 24px}
#teaching-content .intro p{margin:6px 0 0}
#teaching-content .eyebrow{font-size:14px;font-weight:600;letter-spacing:.09em;margin:0 0 6px!important;color:var(--muted)}
#teaching-content .instrument-meta{display:flex;flex-direction:column;text-align:right;font-size:14px;color:var(--muted)}
#teaching-content .instrument-meta strong{color:var(--plot)}
#teaching-content .workspace-nav{display:flex;gap:30px;border-bottom:1px solid var(--line);margin-bottom:26px;overflow-x:auto}
#teaching-content .workspace-nav a{padding:12px 0;text-decoration:none;white-space:nowrap;color:var(--muted);border-bottom:3px solid transparent;font-size:16px;font-weight:600}
#teaching-content .workspace-nav a[aria-current=page]{color:var(--plot);border-color:var(--plot)}
#teaching-content .workspace-nav a:hover{color:var(--plot)}
#teaching-content [id]{scroll-margin-top:20px}
#teaching-content .workflow{margin-bottom:24px}
#teaching-content .workflow-heading{display:flex;align-items:center;gap:14px;margin-bottom:16px}
#teaching-content .workflow-heading h2{font-size:17px}
#teaching-content .data-tag{font-size:14px;line-height:1.5;color:var(--plot);background:var(--surface);padding:4px 9px;border:1px solid var(--line);white-space:nowrap}
#teaching-content .progress-label{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
#teaching-content progress{accent-color:var(--blue);height:6px;width:80px}
#teaching-content #steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
#teaching-content #steps button{font-size:14px;text-align:left;width:100%;height:100%;border:0;border-top:3px solid var(--line);border-radius:0;padding:9px 2px 0;background:transparent;min-height:38px;color:var(--muted)}
#teaching-content #steps button:disabled{opacity:1}
#teaching-content #steps button[data-complete=true]{border-color:var(--plot)}
#teaching-content #steps button[aria-current=step]{border-color:var(--plot);color:var(--plot);font-weight:700}
#teaching-content .workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}
#teaching-content .task-panel{grid-column:2;grid-row:1;border:1px solid var(--line);padding:24px;background:var(--surface);min-width:0}
#teaching-content .panel h3{font-size:22px;margin-bottom:16px}
#teaching-content .panel p{font-size:15px}
#teaching-content .apparatus{grid-column:1;grid-row:1;min-width:0}
#teaching-content .bench-title,#teaching-content .section-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}
#teaching-content .bench-title h2{font-size:18px}
#teaching-content .bench-title>span,#teaching-content .section-heading>span{font-size:14px;color:var(--muted)}
#teaching-content .rig-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
#teaching-content .fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}
#teaching-content .fields label{font-size:14px;font-weight:600}
#teaching-content .fields label>*{display:block;margin-top:6px}
#teaching-content .task-panel .fields{grid-template-columns:1fr}
#teaching-content .buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0}
#teaching-content .message{border-left:3px solid var(--plot);background:var(--bg);padding:10px 14px;font-size:14px;margin:18px 0 0}
#teaching-content .message:empty{display:none}
#teaching-content .quiz-option{display:flex;gap:10px;align-items:flex-start;margin:12px 0;font-size:15px}
#teaching-content .quiz-option input{margin:3px 0 0}
#teaching-content .small{font-size:14px}
#teaching-content .complete{border:1px solid var(--plot);padding:16px}
#teaching-content .instrument-settings{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin:18px 0 0;padding-top:16px;gap:12px}
#teaching-content .instrument-settings dt{font-size:14px;color:var(--muted)}
#teaching-content .instrument-settings dd{margin:2px 0 0;font-size:16px;font-variant-numeric:tabular-nums}
#teaching-content .action-sequence{padding-left:22px;margin:16px 0}
#teaching-content .action-sequence li{padding:3px 0;font-size:15px}
#teaching-content .capture-sequence{list-style:none;padding:0;counter-reset:capture;display:grid;gap:12px}
#teaching-content .capture-sequence li{counter-increment:capture;display:flex;align-items:center;gap:10px;font-size:14px}
#teaching-content .capture-sequence li:before{content:counter(capture);display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:50%;flex-shrink:0}
#teaching-content .capture-sequence li[data-complete=true]:before{content:"✓";background:var(--blue);color:#fff}
#teaching-content #captureProgress{width:100%;height:8px}
#teaching-content .checklist{display:grid;gap:10px}
#teaching-content .checklist button{text-align:left}
#teaching-content .checklist button[data-complete=true]{border-color:var(--plot);color:var(--plot)}
#teaching-content canvas{display:block;width:100%;height:auto}
#teaching-content .view-options{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
#teaching-content .view-options label{display:flex;gap:8px;align-items:center;font-size:14px}
#teaching-content .view-options input[type=range]{width:100px}
#teaching-content details{border-top:1px solid var(--line);padding:16px 0;margin:18px 0}
#teaching-content summary{cursor:pointer;font-size:15px;font-weight:600;min-height:24px}
#teaching-content .compact-details{margin:0;padding:12px 0}
#teaching-content .compact-details p{font-size:14px;max-width:900px}
#teaching-content .results,#teaching-content .records{margin-top:30px;border-top:1px solid var(--line);padding-top:24px}
#teaching-content .records h2{font-size:18px}
#teaching-content .records p{font-size:14px;margin:4px 0}
#teaching-content .records .buttons{margin:0}
#teaching-content .plots{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:24px 0 12px}
#teaching-content .plots h3{font-size:16px}
#teaching-content .plot-legend{font-size:14px;color:var(--muted);display:flex;gap:24px;flex-wrap:wrap}
#teaching-content .line-key:before{content:"";display:inline-block;width:24px;border-top:2px solid var(--plot);vertical-align:middle;margin-right:8px}
#teaching-content .line-key.dashed:before{border-top:2px dashed var(--other)}
#teaching-content .quality{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px;margin:18px 0}
#teaching-content .quality>div{border-left:2px solid var(--line);padding-left:14px;font-size:14px;color:var(--muted)}
#teaching-content .quality strong{display:block;font-size:25px;line-height:1.4;color:var(--plot);font-variant-numeric:tabular-nums}
#teaching-content .quality small{font-size:14px}
#teaching-content .table-scroll{overflow-x:auto}
#teaching-content table{width:100%;border-collapse:collapse;font-size:14px;margin:16px 0}
#teaching-content caption{text-align:left;font-size:17px;font-weight:600;margin-bottom:12px}
#teaching-content th,#teaching-content td{padding:12px;text-align:left;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
#teaching-content th{font-size:14px;background:var(--surface)}
#teaching-content #trials>p{border-bottom:1px solid var(--line);padding:10px 0;font-size:14px}
#teaching-content #log{max-height:280px;overflow:auto;padding-left:24px;font-size:14px}
#teaching-content #log li{padding:6px 0;border-bottom:1px solid var(--line)}
#teaching-content .tool-page{padding:8px 0 24px}
#teaching-content .tool-page>.section-heading{margin-bottom:28px}
#teaching-content .design-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:32px}
#teaching-content .design-layout h3{margin:0}
#teaching-content .design-layout output{font-size:14px;font-variant-numeric:tabular-nums}
#teaching-content .design-layout output[data-invalid=true]{font-weight:700;text-decoration:underline}
#teaching-content .input-table th,#teaching-content .input-table td{padding:10px 6px}
#teaching-content .input-table input{min-width:70px;padding:9px 6px}
#teaching-content .tool-results{border-left:1px solid var(--line);padding-left:28px;min-width:0}
#teaching-content .tool-results>p{margin-top:0;font-size:14px}
#teaching-content .check-option{display:flex;gap:8px;align-items:center;font-size:14px}
#teaching-content .file-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px}
#teaching-content .file-pair label{border:1px solid var(--line);padding:24px;display:grid;gap:16px;min-width:0}
#teaching-content .file-pair strong{font-size:20px}
#teaching-content .file-pair span{font-size:15px;color:var(--muted)}
#teaching-content #guide,#teaching-content #theory{margin:28px 0 36px}
#teaching-content #guide h2,#teaching-content #theory h2{margin-bottom:24px}
#teaching-content .guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
#teaching-content .guide-grid article{border-top:1px solid var(--line);padding-top:20px}
#teaching-content .guide-grid p{font-size:15px;max-width:720px}
#teaching-content .equation{background:var(--surface);padding:18px;font-size:16px;line-height:2;overflow-x:auto}
#teaching-content #pythonSource{max-height:440px;overflow:auto;font-size:14px;line-height:1.6;background:var(--surface);padding:18px}
#teaching-content footer{border-top:1px solid var(--line);padding:22px 0;margin-top:30px;display:flex;justify-content:space-between;gap:20px;font-size:14px;color:var(--muted)}
#teaching-content .physical-rig{position:relative;aspect-ratio:1100/480;background:#fafafa;border:1px solid var(--line);margin-top:20px;min-width:620px;isolation:isolate}
#teaching-content .physical-rig>svg{display:block;width:100%;height:100%}
#teaching-content .physical-rig button{position:absolute;min-height:0;padding:0;font-size:clamp(11px,1.1vw,15px);color:#003366;touch-action:none}
#teaching-content .rig-target{border:2px dashed #8b9aaa;background:transparent;z-index:1}
#teaching-content .rig-target.port{padding-top:26px}
#teaching-content .rig-part{border:0;background:transparent;z-index:3;cursor:grab}
#teaching-content .rig-part[aria-pressed=true]{outline:3px solid #003366;outline-offset:3px;background:#dde8f0}
#teaching-content .part-label{display:block;white-space:nowrap;font-size:14px;line-height:1.2}
#teaching-content .sample-disc{display:block;width:55px;height:55px;margin:auto;border-radius:50%;background:#d6d9dd;border:3px solid #555;font-size:40px;color:#444;line-height:47px;box-shadow:5px 4px 0 #9a9fa7}
#teaching-content .sample-disc.sealed{border:5px solid #b8a88e}
#teaching-content .microphone{display:block;width:80%;height:95%;background:linear-gradient(90deg,#4b535b,#dedfe1,#606870);border:2px solid #333;border-radius:4px;color:#003366;font-weight:bold;margin:auto;padding-top:12px}
#teaching-content .tape-roll{font-size:58px;line-height:1;color:#aa9b82}
#teaching-content .rig-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
#teaching-content #rigStatus{font-size:14px;color:var(--plot)}
#teaching-content .physical-rig{margin-top:16px;min-width:0;width:100%}
#teaching-content .physical-rig button{font-size:14px}
#teaching-content .rig-tools{gap:6px;margin:12px 0}
#teaching-content .rig-tools button{padding:8px 10px;font-size:14px}
#teaching-content .rig-tools button:disabled{opacity:.45}
#teaching-content #rigStatus{font-size:14px;min-height:20px;margin:8px 0 14px}
#teaching-content .rig-part{user-select:none}
#teaching-content .rig-part:hover:enabled,#teaching-content .rig-target:hover:enabled{background:rgba(0,51,102,.06)}
html[data-theme=dark] #teaching-content .physical-rig{border-color:#526170}
html[data-theme=dark] #teaching-content .physical-rig button{color:#003366}
#teaching-content .physical-rig button:focus-visible{outline-color:#003366}
#teaching-content .task-panel .quality{gap:12px;grid-template-columns:1fr 1fr}
#teaching-content .task-panel .quality strong{font-size:22px}
@media(max-width:1100px){#teaching-content main{padding:0 24px}
#teaching-content .workspace{grid-template-columns:minmax(0,1fr) 300px;gap:20px}
#teaching-content .task-panel{padding:20px}
#teaching-content #steps{gap:6px}
#teaching-content #steps button{font-size:14px}
#teaching-content .design-layout{grid-template-columns:1fr}
#teaching-content .tool-results{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}
}
@media(max-width:800px){#teaching-content .workspace{grid-template-columns:1fr}
#teaching-content .task-panel,#teaching-content .apparatus{grid-column:auto;grid-row:auto}
#teaching-content .task-panel .fields{grid-template-columns:1fr 1fr}
#teaching-content .task-panel{padding:20px}
#teaching-content .workflow-heading{flex-wrap:wrap}
#teaching-content .progress-label progress{display:none}
#teaching-content #steps{display:flex;overflow-x:auto;padding-bottom:8px}
#teaching-content #steps li{flex:0 0 auto}
#teaching-content #steps button{padding-right:16px;font-size:14px}
#teaching-content .plots,#teaching-content .guide-grid{grid-template-columns:1fr}
#teaching-content .header-actions{gap:10px}
#teaching-content .service-status{font-size:14px;max-width:240px}
#teaching-content .instrument-meta{font-size:14px}
#teaching-content .file-pair{gap:16px}
#teaching-content .file-pair label{padding:18px}
}
@media(max-width:520px){#teaching-content main{padding:0 16px}
#teaching-content .site-header{padding:12px 16px;gap:10px}
#teaching-content .brand{font-size:22px}
#teaching-content .brand span{display:none}
#teaching-content .header-actions{gap:8px}
#teaching-content .service-status{max-width:170px}
#teaching-content .header-actions button{padding:8px}
#teaching-content .intro{padding:22px 0;align-items:flex-start}
#teaching-content .intro h1{font-size:30px}
#teaching-content .intro p:not(.eyebrow){font-size:14px}
#teaching-content .instrument-meta{max-width:110px}
#teaching-content .workspace-nav{gap:24px;margin-bottom:20px}
#teaching-content .workspace-nav a{font-size:14px}
#teaching-content .workflow-heading{gap:8px}
#teaching-content .workflow-heading h2{font-size:16px}
#teaching-content .workflow-heading .quiet{padding:8px;font-size:14px}
#teaching-content .progress-label{font-size:14px}
#teaching-content .data-tag{font-size:14px;padding:3px 6px}
#teaching-content .task-panel .fields,#teaching-content .file-pair{grid-template-columns:1fr}
#teaching-content .task-panel{padding:18px}
#teaching-content .section-heading{align-items:flex-start;flex-wrap:wrap}
#teaching-content .records .buttons{margin-top:12px}
#teaching-content .instrument-settings{gap:8px}
#teaching-content .instrument-settings dd{font-size:14px}
#teaching-content .input-table th,#teaching-content .input-table td{padding:8px 4px}
#teaching-content .input-table input{min-width:62px}
#teaching-content .tool-page h2{font-size:22px}
#teaching-content .file-pair strong{font-size:18px}
#teaching-content footer{flex-direction:column;gap:4px}
}
@media(prefers-reduced-motion:reduce){#teaching-content *{scroll-behavior:auto!important}
}
#teaching-content .quiz{border:0;padding:0;margin:20px 0}
#teaching-content .quiz legend{font-size:15px;font-weight:600}
#teaching-content .quiz p{font-size:14px;margin:6px 0}
#teaching-content .panel>.primary{margin-top:10px}
#teaching-content .rig-scroll{overflow-y:hidden}
#teaching-content .sample-disc{width:100%;max-width:55px;aspect-ratio:1;height:auto;font-size:clamp(22px,2.7vw,40px);line-height:1.1}
#teaching-content .part-label{font-size:14px}
@media(max-width:520px){#teaching-content .physical-rig{min-width:560px}
}
#teaching-content .physical-rig .rig-target{white-space:nowrap;font-size:clamp(9px,.85vw,12px)}
#teaching-content .input-table th:first-child,#teaching-content .input-table td:first-child{min-width:40px;width:40px;white-space:nowrap}
#teaching-content .intro-meta{display:grid;gap:10px}
#teaching-content .intro-meta .header-actions{justify-content:flex-end}
#teaching-content .intro-meta .instrument-meta{font-size:14px;flex-direction:row;gap:12px}
#teaching-content .intro-meta .header-actions button{min-height:36px;padding:4px 10px}
@media(max-width:520px){#teaching-content .intro{flex-wrap:wrap}
#teaching-content .intro-meta{width:100%;gap:8px}
#teaching-content .intro-meta .header-actions{justify-content:space-between}
#teaching-content .intro-meta .instrument-meta{max-width:none;text-align:left;flex-wrap:wrap}
#teaching-content .intro-meta .service-status{max-width:none}
}
