:root{color-scheme:light;--paper:#f7f5f0;--ink:#262b28;--muted:#62665e;--line:#d9d9ce;--accent:#38624f;--rail:420px;--header:88px;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.44}button,a,summary,input,select{outline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid var(--accent)}[hidden]{display:none!important}a{color:var(--accent)}
.school-header{height:var(--header);position:fixed;inset:0 0 auto;display:flex;align-items:center;gap:32px;padding:0 30px;background:var(--paper);border-bottom:1px solid var(--line);z-index:5}.brand{font:500 27px 'Cormorant Garamond',Georgia,serif;letter-spacing:.045em;white-space:nowrap}.brand>span{color:#788172}.brand small{display:inline-block;border-left:1px solid var(--line);padding-left:22px;margin-left:20px;font:400 12px Inter,Arial,sans-serif;letter-spacing:0;color:var(--muted)}.build-picker{display:flex;align-items:center;gap:14px;margin-left:auto}.build-picker>span{font-size:11px;color:var(--muted)}select{height:44px;max-width:310px;min-width:270px;border:1px solid #bbbfb2;border-radius:5px;color:var(--ink);background:#fffef9;padding:0 35px 0 13px;font-size:12px}.text-button{background:transparent;color:var(--muted);font-size:11px;padding:10px 0;text-decoration:underline;text-underline-offset:4px}
.lesson-panel{position:fixed;left:0;top:var(--header);bottom:0;width:var(--rail);background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:3}.lesson-scroll{overflow:auto;overscroll-behavior:contain;padding:35px 32px 24px;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:#c4c5b8 transparent}.lesson-eyebrow{display:flex;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}#lessonPhase{color:var(--accent)}h1{font:500 37px/1.04 'Cormorant Garamond',Georgia,serif;margin:18px 0 16px;letter-spacing:-.02em}h1:focus{outline:none}.lesson-intro{font-size:12px;line-height:1.7;color:#596157;margin:0 0 25px}.tools{font-size:11px;line-height:1.65;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:23px}.tools strong{display:block;font-weight:600;margin-bottom:5px;color:var(--ink)}.instructions{list-style:none;counter-reset:instruction;padding:0;margin:0}.instructions li{position:relative;counter-increment:instruction;padding-left:29px;font-size:12px;line-height:1.75;margin:0 0 20px}.instructions li:before{content:counter(instruction,decimal-leading-zero);position:absolute;left:0;top:1px;font-size:9px;color:var(--accent);font-weight:600}.checks{margin-top:22px}.checks h2{font-size:12px;font-weight:600;margin:0 0 18px}.checks ul{list-style:none;padding:0;margin:0}.checks li{font-size:12px;line-height:1.75;margin:0 0 20px;padding-left:25px;position:relative}.checks li:before{content:'✓';position:absolute;left:0;color:var(--accent)}.warning{font-size:10px;line-height:1.7;color:#73502b;background:#efe9dc;border-left:2px solid #aa8c5d;padding:12px 14px;margin:24px 0 12px}.lesson-detail{border-top:1px solid var(--line);margin-top:24px;padding-top:17px;font-size:11px;line-height:1.7}.lesson-detail summary{cursor:pointer;color:var(--muted);font-size:10px;min-height:28px}.lesson-detail p{margin:10px 0}.lesson-detail a{display:inline-block;margin-top:10px;font-size:11px}
.lesson-dock{padding:0 32px 23px;background:var(--paper);flex:none}.progress{height:2px;background:#dddcd2}.progress>span{height:100%;display:block;width:0;background:var(--accent);transition:width .2s ease}.progress-copy{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);min-height:43px}.action-row{display:flex;gap:9px}.primary,.secondary{min-height:44px;border-radius:4px;font-size:11px;padding:11px 15px;line-height:1.5}.primary{background:#315b48;color:white;display:flex;align-items:center;justify-content:space-between;gap:20px;flex:1}.primary:hover:not(:disabled){background:#224635}.secondary{background:transparent;border:1px solid #c6c9bc;color:#525c4f}.secondary:hover:not(:disabled){background:#eaece2}.check-label{font-size:11px;display:flex;align-items:center;gap:10px;min-height:44px;margin:0 0 12px;cursor:pointer}.check-label input{width:18px;height:18px;accent-color:var(--accent);margin:0}
.model-panel{position:fixed;top:var(--header);left:var(--rail);bottom:0;right:0;background:#e2e4dc}#vp{position:absolute;inset:0;overflow:hidden}#rigCanvas{display:block;width:100%;height:100%;touch-action:none}.model-caption{position:absolute;pointer-events:none;top:29px;left:32px;display:flex;flex-direction:column;gap:9px;max-width:70%;color:#3c4940}.small-label{font-size:9px;font-weight:500;letter-spacing:.16em}#modelPart{font:500 24px 'Cormorant Garamond',Georgia,serif}.model-controls{position:absolute;bottom:54px;left:50%;transform:translateX(-50%);display:flex;padding:4px;border:1px solid #b9c1b6;background:#f6f6eecf;border-radius:6px;gap:4px;white-space:nowrap}.model-controls button{background:transparent;color:#596252;border-radius:3px;font-size:10px;padding:12px 17px;min-height:40px}.model-controls button[aria-pressed=true]{background:#3e5945;color:white}.model-hint{position:absolute;bottom:17px;left:0;right:0;pointer-events:none;text-align:center;font-size:9px;letter-spacing:.02em;color:#63705e;margin:0}.model-hint span{margin:0 9px}
dialog{width:min(610px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow:auto;border:1px solid #bfc5b7;border-radius:6px;background:var(--paper);color:var(--ink);padding:27px 32px}dialog::backdrop{background:#1b282961;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}dialog h2{font:500 39px 'Cormorant Garamond',Georgia,serif;margin:21px 0 18px}dialog h3{font-size:12px;margin-top:28px}dialog p{font-size:12px;line-height:1.8}dialog .guide-safety{font-size:11px;color:#67573d;border-left:2px solid #b8a784;padding-left:14px}dialog .guide-note{font-size:10px;color:var(--muted)}.outline{padding-left:25px}.outline li{font-size:12px;padding:7px 0;color:var(--muted)}.outline li[data-state=current]{color:var(--accent);font-weight:600}.outline li[data-state=done]{color:#637f6b}.outline li span{font-size:10px;float:right}#lessonFinish p{font-size:12px;line-height:1.8;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-80px;left:20px;z-index:20;padding:12px;background:var(--paper)}.skip-link:focus{top:10px}
@media(min-width:761px) and (max-width:1030px){.school-header{padding:0 22px;gap:20px}.brand small{display:none}.build-picker>span{display:none}}
@media(max-width:760px){:root{--header:96px;--rail:100%}.school-header{height:96px;padding:13px 20px;display:grid;grid-template-columns:1fr auto;grid-template-rows:22px 40px;gap:7px 16px}.brand{font-size:22px}.brand small{display:inline;font-size:9px;border:0;margin:0 0 0 10px;padding:0}.build-picker{grid-row:2;grid-column:1/-1;margin:0;display:block}.build-picker>span{display:none}select{height:37px;min-width:0;max-width:none;width:100%;font-size:11px}#lessonHelp{grid-row:1;grid-column:2;padding:5px 0;font-size:10px}.model-panel{top:96px;left:0;bottom:400px}.model-caption{top:17px;left:20px;gap:5px}.small-label{font-size:8px}#modelPart{font-size:20px}.model-controls{bottom:29px;padding:3px}.model-controls button{padding:8px 14px;min-height:34px;font-size:9px}.model-hint{font-size:8px;bottom:10px}.model-hint span{margin:0 4px}.lesson-panel{top:auto;bottom:0;height:400px;border-top:1px solid var(--line);border-right:0}.lesson-scroll{padding:21px 23px 16px}.lesson-eyebrow{font-size:9px}h1{font-size:29px;margin:10px 0 12px}.lesson-intro{font-size:11px;margin-bottom:17px}.tools{font-size:10px;padding:12px 0;margin-bottom:17px}.instructions li,.checks li{font-size:11px;margin-bottom:16px}.warning{font-size:10px}.lesson-detail{margin-top:18px}.lesson-dock{padding:0 23px max(13px,env(safe-area-inset-bottom))}.progress-copy{min-height:31px;font-size:9px}.progress-copy .text-button{padding:8px 0;font-size:9px}.primary,.secondary{min-height:42px;font-size:11px}.check-label{font-size:10px;min-height:32px;margin-bottom:7px}dialog{padding:22px}.outline li{font-size:11px}}
@media(max-width:760px) and (max-height:700px){.lesson-panel{height:355px}.model-panel{bottom:355px}.model-caption{top:10px}.model-controls{bottom:23px}.model-hint{bottom:6px}.lesson-scroll{padding-top:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
/* Captions and camera controls occupy their own strips, never the assembly image. */
#vp{top:82px;bottom:100px}.model-panel{background:#d7d6ce}.model-controls{bottom:42px}.model-hint{bottom:17px}
@media(max-width:760px){.lesson-panel{height:360px}.model-panel{bottom:360px}#vp{top:57px;bottom:77px}.model-controls{bottom:28px}.model-controls button{min-height:36px}.model-hint{bottom:9px}.primary,.secondary{min-height:44px}}
@media(max-width:760px) and (max-height:700px){#vp{top:48px;bottom:70px}.model-controls{bottom:24px}.model-hint{bottom:7px}#modelPart{font-size:18px}}
