/* Scott's actual product photographs are the product surface. */
.assembly { background:#efeee7; }
.assembly .scene-sticky { padding-top:38px; padding-bottom:26px; }
.assembly .scene-top { min-height:126px; }
.assembly .drawing-stamp { color:#56634f; }
.assembly-diagram.real-assembly { width:100%; min-height:340px; display:grid; align-items:stretch; justify-items:stretch; grid-template-columns:minmax(0,1fr) 240px; gap:35px; margin:0; padding:0; overflow:hidden; }
.real-assembly-image { position:relative; width:100%; height:100%; min-width:0; overflow:hidden; }
.real-assembly-photos { position:absolute; inset:0 0 28px; background:#efeee7; }
.real-study-photo { mix-blend-mode:multiply; position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:0; transform:scale(.985); transition:opacity .45s ease,transform .7s cubic-bezier(.16,1,.3,1); }
.real-study-photo.active { opacity:1; transform:scale(1); }
.real-assembly-credit { position:absolute; left:0; right:0; bottom:9px; display:flex; justify-content:space-between; gap:16px; font-size:8px; letter-spacing:.08em; color:#606e58; }
.real-study-tabs { display:flex; flex-direction:column; justify-content:center; }
.real-study-tab { background:#efeee7; display:grid; grid-template-columns:20px 1fr 54px; gap:10px; align-items:center; text-align:left; padding:19px 0; min-height:78px; border-top:1px solid #cbd0c2; opacity:.6; transition:opacity .2s; }
.real-study-tab:last-child { border-bottom:1px solid #cbd0c2; }
.real-study-tab.active,.real-study-tab:hover { opacity:1; }
.real-study-tab.active { border-top-color:#a4482d; }
.study-number { align-self:start; margin-top:5px; color:#a4482d; font-size:9px; }
.real-study-tab strong { display:block; font-family:var(--display); font-size:23px; line-height:1.05; font-weight:600; }
.real-study-tab small { display:block; font-size:9px; margin-top:7px; line-height:1.5; }
.real-study-tab img { width:54px; height:54px; object-fit:cover; mix-blend-mode:multiply; }
.assembly-inspect { position:absolute; bottom:42px; right:8px; font-size:10px; padding:10px 12px; background:#f5f4ed; border:1px solid #d4d8cb; }
.assembly-inspect svg { width:15px; height:15px; }
.assembly-bottom { padding-top:22px; }
.inspect-canvas { background:#f7f6ef; }
.inspect-canvas #inspect-drawing { position:absolute; inset:0; height:100%; width:100%; padding:0; }
.inspect-canvas .canvas-corner { z-index:3; background:#f7f6efe8; padding:5px 8px 5px 0; }
.inspect-canvas .canvas-note { display:block; bottom:19px; right:20px; z-index:2; font-size:8px; }
.photo-inspector-frame { background:#f7f6ef; position:absolute; inset:0; overflow:hidden; }
.photo-inspector-image { display:block; width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; transform-origin:center; user-select:none; -webkit-user-drag:none; }
.photo-inspector-meta { position:absolute; left:20px; right:20px; bottom:65px; z-index:2; display:flex; justify-content:space-between; gap:16px; color:#66715b; pointer-events:none; font-size:8px; letter-spacing:.05em; }
.photo-inspector-error { position:absolute; inset:20%; display:grid; place-items:center; text-align:center; font-size:14px; }
.photo-inspector[data-photo-view="field"] .photo-inspector-image { object-fit:cover; mix-blend-mode:normal; }
.photo-inspector[data-photo-view="field"] .photo-inspector-meta { color:#fff; text-shadow:0 1px 3px #000; }
.photo-inspector:focus-visible { outline:2px solid var(--rust); outline-offset:-4px; }
.photo-inspector.is-zoomed { cursor:grab; }
.photo-inspector.is-dragging { cursor:grabbing; }
.photo-inspector-image { transition:opacity .18s; }
.photo-inspector.is-loading .photo-inspector-image { opacity:.35; }
.photo-inspector-tools { display:flex; gap:10px; margin-top:18px; }
.photo-inspector-tools button { display:flex; align-items:center; justify-content:center; gap:8px; min-height:40px; border:1px solid #bcc5b1; font-size:11px; padding:7px 12px; flex:1; }
.photo-inspector-tools button:hover { background:#dce1d2; }
.photo-inspector-tools svg { width:14px; height:14px; }
.photo-help { font-size:10px; color:#5e6c54; line-height:1.6; margin:12px 0 0; }
.photo-slider { padding-top:20px; border-top:1px solid #c9cfbf; }
.photo-slider label { display:flex; justify-content:space-between; gap:20px; font-size:11px; }
.photo-slider input { width:100%; accent-color:var(--rust); margin:13px 0 0; }
.photo-thumbnails { display:flex; gap:8px; padding:14px 0 0; }
.photo-thumbnails button { flex:1; min-width:0; aspect-ratio:1.3; padding:3px; border:1px solid #c8cebf; opacity:.65; }
.photo-thumbnails button:hover,.photo-thumbnails button.active { opacity:1; border-color:#9f482f; }
.photo-thumbnails img { display:block; width:100%; height:100%; object-fit:cover; mix-blend-mode:multiply; }
.part-detail .detail-feature { margin-bottom:20px; }
@media(max-width:1050px) and (min-width:761px){
 .assembly-diagram.real-assembly { grid-template-columns:minmax(0,1fr) 205px; gap:24px; }
 .real-study-tab { grid-template-columns:16px 1fr 40px; gap:8px; }
 .real-study-tab img { width:40px; height:40px; }
 .real-study-tab strong { font-size:20px; }
}
@media(max-width:760px){
 .assembly .scene-sticky { padding:28px 5% 24px; min-height:800px; }
 .assembly .scene-top { min-height:165px; }
 .assembly-diagram.real-assembly { width:100%; min-height:340px; display:flex; flex-direction:column; gap:0; margin:0; }
 .real-assembly-image { flex:1; width:100%; min-height:250px; }
 .real-assembly-photos { inset:0 0 23px; }
 .real-study-tabs { flex-direction:row; flex:0 0 70px; gap:0; }
 .real-study-tab { flex:1; min-width:0; display:flex; flex-direction:column; justify-content:flex-start; align-items:flex-start; padding:9px 4px 8px; min-height:0; gap:5px; }
 .real-study-tab:last-child { border-bottom:0; }
 .real-study-tab img,.real-study-tab small { display:none; }
 .real-study-tab strong { font-size:16px; line-height:1.05; }
 .study-number { font-size:8px; margin:0; }
 .real-assembly-credit { font-size:6px; bottom:9px; letter-spacing:.03em; }
 .assembly-inspect { bottom:29px; right:0; padding:8px; font-size:9px; }
 .assembly-bottom { padding-top:20px; }
 .assembly .part-caption p { font-size:11px; }
 .inspect-canvas { min-height:400px; }
 .inspect-canvas .canvas-corner { left:12px; right:12px; top:12px; }
 .photo-inspector-meta { font-size:7px; left:12px; right:12px; bottom:74px; }
 .inspect-canvas .canvas-note { right:12px; bottom:19px; max-width:108px; font-size:7px; }
 .photo-thumbnails { gap:7px; }
 .photo-inspector-tools button { min-height:44px; }
 .photo-slider { display:block; }
}
@media(prefers-reduced-motion:reduce){
 .real-study-photo { transition:none; transform:none; }
 .photo-inspector-image { transition:none; }
}

.canvas-corner #view-label { display:block; }

/* A continuous exploded view, built from four viewports onto the original photo. */
.assembly { height:460vh; }
.assembly-diagram.real-assembly { display:flex; flex-direction:column; gap:0; min-height:320px; overflow:visible; }
.rod-motion-stage { flex:1; position:relative; width:100%; min-height:230px; }
.rod-motion-svg { display:block; position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
/* Blend each cutout before stacking so its white photo matte cannot cover another part. */
.rod-photo-piece { mix-blend-mode:multiply; }
.rod-datum,.rod-joints path { stroke:#858585; stroke-width:.65; stroke-dasharray:3 5; fill:none; }
.rod-section-label { pointer-events:none; stroke:none; }
.rod-label-name { font-family:var(--body); font-size:11px; fill:#333; letter-spacing:.04em; }
.rod-label-detail { font-family:var(--body); font-size:11px; fill:#777; }
.rod-assembly-credit { position:absolute; left:0; right:0; bottom:3px; display:flex; justify-content:space-between; font-size:11px; letter-spacing:.08em; color:#6b6b6b; }
.rod-assembly-tools { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:10px; font-size:11px; color:#646464; }
.rod-assembly-tools>div { display:flex; gap:3px; }
.rod-assembly-tools button { padding:8px 14px; min-height:44px; border:1px solid #ddd; font-size:11px; color:#222; }
.rod-assembly-tools button[aria-pressed="true"] { background:#161616; color:white; border-color:#161616; }
.rod-sections-key { display:flex; margin-top:12px; border-top:1px solid #ddd; }
.rod-sections-key button { flex:1; display:flex; align-items:center; justify-content:flex-start; gap:10px; padding:12px 8px 7px; font-size:11px; color:#333; }
.rod-sections-key button>span { color:#888; font-size:11px; }
.rod-sections-key svg { width:12px; height:12px; margin-left:auto; }
.rod-sections-key button:hover { color:#000; background:#f4f4f4; }
@media(max-width:760px){
 .assembly { height:520vh; }
 .assembly .scene-sticky { min-height:800px; }
 .assembly .scene-top { min-height:150px; }
 .assembly-diagram.real-assembly { min-height:350px; }
 .rod-motion-stage { min-height:255px; }
 .rod-label-name { font-size:11px; letter-spacing:.04em; }
 .rod-label-detail { font-size:11px; }
 .rod-assembly-credit { font-size:11px; }
 .rod-assembly-tools { gap:10px; font-size:11px; margin-top:9px; }
 .rod-assembly-tools>span { max-width:145px; }
 .rod-assembly-tools button { padding:7px 10px; min-height:44px; }
 .rod-sections-key { display:grid; grid-template-columns:1fr 1fr; margin-top:6px; }
 .rod-sections-key button { font-size:11px; padding:7px 4px; min-height:36px; }
}
@media(prefers-reduced-motion:reduce){.assembly { height:auto; }}

/* Individual photographic parts retain the same source throughout disassembly. */
.rod-component-label{stroke:none;fill:#333;font:11px var(--body);letter-spacing:.025em}
.rod-component-leaders path{fill:none;stroke:#777;stroke-width:.65;stroke-dasharray:3 5}
.rod-assembly-tools>div{gap:3px}.rod-assembly-tools button{padding:8px 12px}
@media(max-width:760px){
 .rod-assembly-tools{align-items:flex-start;flex-direction:column;gap:10px}
 .rod-assembly-tools>span{max-width:none}
 .rod-assembly-tools>div{width:100%}.rod-assembly-tools button{flex:1;padding:8px 9px}
 .rod-motion-stage{min-height:285px}
 .assembly-diagram.real-assembly{min-height:440px}
 .rod-assembly-credit{flex-wrap:wrap;gap:6px;font-size:11px;letter-spacing:0}
 .rod-assembly-credit span:last-child{text-align:right}
}
