/* Rotating workshop stage, shared by the overview and project pages. */
html:has(.workshop-stage){overflow-x:clip}
.workshop-stage{overflow-x:clip}
.workshop-stage .header-link-arrow{display:block;flex:none;transition:transform .18s ease}
.workshop-stage .professional-link:hover .header-link-arrow{transform:translate(2px,-2px)}
.workshop-stage .workshop{max-width:1800px;padding-inline:clamp(16px,3vw,56px)}
.workshop-stage .back-to-projects{margin:10px 0 26px}
.workshop-stage .bench-scene{border:0;box-shadow:none;background:transparent}
.workshop-stage .project-detail .bench-scene{animation:none}
.workshop-stage .back-wall,.workshop-stage .bench-front,.workshop-stage .bench-edge,.workshop-stage .project-tray{display:none}
.workshop-stage .bench-top{position:relative;height:620px;background:radial-gradient(ellipse at 41% 44%,#1d3436 0%,#111b1d 40%,#0c1213 74%);box-shadow:none;border-block:1px solid #253537}
.workshop-stage .bench-top:before{content:"";position:absolute;inset:0 13%;background-image:linear-gradient(#7baba909 1px,transparent 1px),linear-gradient(90deg,#7baba909 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(ellipse,#000 30%,transparent 75%);pointer-events:none}
.workshop-stage .center-object{left:39%;top:75px;bottom:auto;width:43%;height:390px;transform:translateX(-50%)}
.workshop-stage .center-object.is-changing{opacity:0;transform:translateX(-47%)}
.workshop-stage .object-frame{height:100%;background:transparent;border-color:#56777329;box-shadow:none}
.workshop-stage .object-frame:before{display:none}
.workshop-stage .frame-corner{width:12px;height:12px;border-color:#668b8755}
.workshop-stage .project-copy{left:63%;right:auto;top:140px;bottom:auto;width:23%;max-width:340px;transition:none}
.workshop-stage .project-copy h1,.workshop-stage .is-owl-project .project-copy h1{font-size:clamp(32px,3.9vw,60px);font-weight:500;line-height:1.02;margin:0 0 24px;letter-spacing:-.055em}
.workshop-stage .project-copy p{max-width:none;font-size:13px;line-height:1.8;color:#aabbb8}
.workshop-stage .project-link{font-size:9px;line-height:1.6}
.workshop-stage .project-reels{margin-top:28px;gap:13px}
.workshop-stage .project-reels a{font-family:var(--sans);font-size:11px;line-height:1.6;letter-spacing:0}
.workshop-stage .project-reels-featured{max-width:none;margin-top:24px;margin-bottom:16px}
.workshop-stage .project-reels-featured a{display:flex;align-items:center;gap:12px;min-height:52px;padding:13px 18px;border:1px solid #91c5bf;border-radius:4px;background:#91c5bf;color:#102321;font-size:15px;font-weight:600;text-decoration:none;transition:background .18s,color .18s}
.workshop-stage .project-reels-featured a:hover{background:#b2ded7;color:#102321;border-color:#b2ded7}
.workshop-stage .project-reels-featured a:focus-visible{outline:2px solid #d9f2ed;outline-offset:4px}
.workshop-stage .project-reels-featured a span:last-child{margin-left:auto}
.workshop-stage .project-reels-featured .video-play-icon{font-size:13px}
.workshop-stage .project-reels-series .project-reels-label{font:500 12px/1.4 var(--sans);letter-spacing:.06em;color:#d3e5e1;margin-bottom:3px}
.workshop-stage .project-reels-series a{font-size:12px;font-weight:500;min-height:44px;padding:10px 14px;gap:10px}
.workshop-stage .project-reels-featured .video-play-icon,.workshop-stage .project-reels-featured a span:last-child{flex-shrink:0}
.workshop-stage .project-detail .bench-scene .viewer-controls{left:39%;right:auto;bottom:32px;transform:translateX(-50%);display:flex;justify-content:center;gap:12px;max-width:55%;z-index:7;flex-wrap:wrap}
.workshop-stage .viewer-controls .control-label{display:none}
.workshop-stage .owl-view-controls{display:flex;gap:2px;padding:3px;border:1px solid #56777366;border-radius:5px;background:#101b1bcc}
.workshop-stage .owl-view-controls[hidden]{display:none}
.workshop-stage .owl-view-controls button{border:0;border-radius:3px;padding:10px 12px;background:transparent;color:#aabbb8;font:11px var(--mono);cursor:pointer}
.workshop-stage .owl-view-controls button[aria-pressed=true]{background:#91c5bf24;color:#c4e5df}
.workshop-stage .owl-view-controls button:hover{background:#91c5bf18}
.workshop-stage .owl-view-controls button:focus-visible{outline:2px solid #91c5bf;outline-offset:2px}
.workshop-stage .owl-view-controls button:disabled{opacity:.5;cursor:wait}
.workshop-stage .spin-toggle{background:transparent;border-color:transparent;color:#839c97;min-height:44px;height:auto;padding:8px 10px;font-size:9px;letter-spacing:.06em;border-radius:3px;box-shadow:none}
.workshop-stage .spin-toggle[aria-pressed=true]{background:transparent;border-color:transparent;color:#a3bcb6}
.workshop-stage .spin-toggle:hover{background:#a0c9c40a;border-color:#56777338;color:#d8e8e3}
.workshop-stage .spin-toggle:focus-visible{outline:2px solid #91c5bf;outline-offset:3px}
.workshop-stage .lid-controls{border-left-color:#35525360}
.workshop-stage #lid-position{appearance:none;-webkit-appearance:none;width:78px;height:32px;background:transparent;accent-color:#78938b;opacity:.75}
.workshop-stage #lid-position::-webkit-slider-runnable-track{height:2px;background:#456158;border-radius:2px}
.workshop-stage #lid-position::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;margin-top:-4px;border-radius:50%;background:#91aaa2}
.workshop-stage #lid-position::-moz-range-track{height:2px;background:#456158;border-radius:2px}
.workshop-stage #lid-position::-moz-range-thumb{width:10px;height:10px;border:0;border-radius:50%;background:#91aaa2}
.workshop-stage #lid-position:hover,.workshop-stage #lid-position:focus-visible{opacity:1}
.workshop-stage .lid-drag-hint{display:none}
.workshop-stage .neighbor-preview{position:absolute;top:160px;width:13%;height:265px;z-index:8;border:0;background:transparent;color:#7d9794;padding:0;cursor:pointer;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:18px;transition:color .25s,transform .25s}
.workshop-stage .neighbor-prev{left:0;transform:perspective(700px) rotateY(14deg)}
.workshop-stage .neighbor-next{right:0;transform:perspective(700px) rotateY(-14deg)}
.workshop-stage .neighbor-preview img{width:100%;height:150px;object-fit:contain;filter:saturate(.55) brightness(.65);opacity:.7;transition:filter .25s,opacity .25s;pointer-events:none}
.workshop-stage .neighbor-direction{font:9px var(--mono);letter-spacing:.08em;color:#708885}
.workshop-stage .neighbor-name{font:500 12px/1.45 var(--sans);max-width:155px}
.workshop-stage .neighbor-next .neighbor-direction{text-align:right}
.workshop-stage .neighbor-preview:hover,.workshop-stage .neighbor-preview:focus-visible{color:#daebe6;transform:none}
.workshop-stage .neighbor-preview:hover img,.workshop-stage .neighbor-preview:focus-visible img{filter:saturate(.9) brightness(1);opacity:1}
.workshop-stage .neighbor-preview:focus-visible{outline:1px solid #91c5bf;outline-offset:8px}
.workshop-stage .project-story{display:block;margin:0 auto;padding:56px 0 64px;width:74%;border:0;background:none}
.workshop-stage .project-story h2{font-size:30px;font-weight:500;margin-bottom:24px}
.workshop-stage .project-story .project-story-copy{max-width:720px}
.workshop-stage #bench-artifacts{position:static;width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;transform:none}
.workshop-stage #bench-artifacts [data-artifact=model]{display:none!important}
.workshop-stage #bench-artifacts .artifact-item{display:flex;flex-direction:column;align-items:stretch;gap:16px;height:auto;min-width:0;padding:0;border:0;background:none;box-shadow:none;transform:none}
.workshop-stage #bench-artifacts .artifact-item img{display:block;width:100%;height:210px;object-fit:contain;background:#101719;border:1px solid #293b3b;filter:none}
.workshop-stage #bench-artifacts .artifact-copy{padding:0;gap:8px;font-size:10px;color:#cadbd7}
.workshop-stage #bench-artifacts .artifact-copy small{font-size:8px;color:#829c97}
.workshop-stage .image-viewer{position:fixed;inset:8vh 10vw;z-index:30;box-shadow:0 0 0 100vmax #050909b8,0 20px 80px #0008}
.workshop-stage .overview-card-model .overview-card-image{background:radial-gradient(ellipse at 50% 60%,#223437,#101719 75%)}
.workshop-stage .overview-card-model .overview-card-image img{background:transparent;filter:none;object-fit:cover}
@media(max-width:1050px){
 .workshop-stage .bench-top{height:590px}
 .workshop-stage .center-object{left:38%;width:44%;height:340px;top:95px}
 .workshop-stage .project-copy{left:62%;width:23%;top:120px}
 .workshop-stage .project-copy h1,.workshop-stage .is-owl-project .project-copy h1{font-size:35px}
 .workshop-stage .project-copy p{font-size:11px}
 .workshop-stage .neighbor-preview{width:12%;top:170px}
 .workshop-stage .neighbor-preview img{height:110px}
 .workshop-stage .neighbor-name{font-size:10px}
 .workshop-stage #bench-artifacts .artifact-item img{height:160px}
}
@media(max-width:700px){
 .workshop-stage .bench-top{height:auto;display:flex;flex-direction:column;padding:75px 18px 30px}
 .workshop-stage .center-object{position:relative;left:auto;top:auto;bottom:auto;width:100%;height:300px;transform:none;margin:0}
 .workshop-stage .center-object.is-changing{transform:translateX(12px)}
 .workshop-stage .project-copy{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:100%;max-width:none;margin:34px 0 0;order:3}
 .workshop-stage .project-copy p{font-size:13px}
 .workshop-stage .project-detail .bench-scene .viewer-controls{position:relative;left:auto;right:auto;bottom:auto;transform:none;max-width:100%;margin:25px 0 0;order:2}
 .workshop-stage .neighbor-preview{top:15px;height:42px;width:43%;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;transform:none}
 .workshop-stage .neighbor-prev{left:8px}.workshop-stage .neighbor-next{right:8px;justify-content:flex-end}
 .workshop-stage .neighbor-preview img{width:48px;height:40px}
 .workshop-stage .neighbor-name{display:none}
 .workshop-stage .neighbor-next img{order:-1}
 .workshop-stage .project-story{width:100%;padding:36px 8px}
 .workshop-stage #bench-artifacts{grid-template-columns:1fr;gap:26px}
 .workshop-stage #bench-artifacts .artifact-item img{height:250px}
 .workshop-stage .image-viewer{inset:5vh 3vw}
}
@media(prefers-reduced-motion:reduce){.workshop-stage .neighbor-preview,.workshop-stage .neighbor-preview img{transition:none}}

/* Navigation sits above the oversized interactive canvas. */
.workshop-stage .back-to-projects{position:relative;z-index:20;width:max-content;padding:12px 0}
.workshop-stage .project-detail .project-copy{z-index:9}
.workshop-stage .details-cue{position:relative;z-index:9;display:flex;align-items:center;justify-content:center;gap:16px;width:100%;padding:20px;border:0;border-bottom:1px solid #253537;background:#0c1213;color:#91aaa5;font:10px var(--mono);letter-spacing:.07em;cursor:pointer}
.workshop-stage .details-cue span{font:22px var(--sans);transition:transform .2s}
.workshop-stage .details-cue:hover{color:#d3e7e1}
.workshop-stage .details-cue:hover span{transform:translateY(3px)}
.workshop-stage .details-cue:focus-visible{outline:2px solid #91c5bf;outline-offset:-4px}
.workshop-stage .project-story{scroll-margin-top:28px}
@media(min-width:701px){
 .workshop-stage .center-object{left:36%;width:40%}
 .workshop-stage .project-copy{left:60%;width:23%;max-width:340px}
 .workshop-stage .neighbor-next{width:12%;padding-left:20px;border-left:1px solid #354b474d;transform:none}
 .workshop-stage .neighbor-next .neighbor-direction{text-align:left}
 .workshop-stage .project-detail .bench-scene .viewer-controls{left:36%}
}

/* Animate isolated artwork; never rotate the oversized WebGL canvas or its UI. */
.workshop-stage .stage-transition{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:clip}
.workshop-stage .is-stage-preparing .neighbor-preview,.workshop-stage .is-stage-preparing #project-copy{opacity:0!important}
.workshop-stage .is-stage-preparing #project-copy{visibility:hidden}
.workshop-stage #owl-model::part(default-progress-bar){display:none}
.workshop-stage #owl-model::part(default-progress-mask){background:transparent}

/* Images share the model's translucent workbench instead of a black panel. */
.workshop-stage .overview-card .overview-card-image{background:radial-gradient(ellipse at 50% 60%,#223437,#101719 75%)}
.workshop-stage .overview-card .overview-card-image img{background:transparent}
.workshop-stage .project-detail.is-reference-view .object-frame{background:transparent;border-color:#56777329;box-shadow:none}
.workshop-stage .project-detail.is-reference-view .frame-corner{display:block}
.workshop-stage #bench-artifacts .artifact-item img{background:linear-gradient(135deg,#91c5bf0a,#13272838);border-color:#56777340}
.workshop-stage .image-viewer{background:linear-gradient(135deg,#213739b8,#0c1719cc);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:#789e9666;box-shadow:0 0 0 100vmax #05090970,0 20px 80px #0005}
.workshop-stage .image-viewer-stage{background:transparent}


/* One persistent viewer or image per project, positioned around the stage. */
.workshop-stage .stage-media{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:visible}
.workshop-stage .stage-media-item{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none;will-change:transform,opacity}
.workshop-stage .stage-media-item[hidden]{display:none!important}
.workshop-stage .stage-media-item.is-current{pointer-events:auto}
.workshop-stage .is-stage-moving .stage-media-item{pointer-events:none}
.workshop-stage .stage-media .project-model{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;transform:scale(var(--model-pop,1))!important;transform-origin:center center;background:transparent}
.workshop-stage .project-model::part(default-progress-bar){display:none}
.workshop-stage .project-model::part(default-progress-mask){background:transparent}
.workshop-stage .project-model.is-over-lid::part(default-progress-mask){cursor:grab}
.workshop-stage .stage-media .project-photo{display:block;width:100%;height:100%;object-fit:contain;background:transparent;pointer-events:none}
.workshop-stage .stage-media .is-loading{visibility:hidden}
.workshop-stage .media-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#8ba6a1;font:11px var(--mono);text-align:center}
.workshop-stage .media-status[hidden]{display:none}
.workshop-stage .neighbor-artwork{display:block;width:100%;height:150px;flex-shrink:0;pointer-events:none}
.workshop-stage .neighbor-prev{transform:none}
@media(max-width:1050px){.workshop-stage .neighbor-artwork{height:110px}}
@media(max-width:700px){.workshop-stage .neighbor-artwork{width:48px;height:40px}.workshop-stage .neighbor-next .neighbor-artwork{order:-1}}

.workshop-stage .project-photo-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px}
.workshop-stage .project-photo-button{padding:0;border:0;background:transparent;color:#aabbb8;text-align:left;cursor:zoom-in;font:11px var(--mono)}
.workshop-stage .project-photo-button img{display:block;width:100%;height:440px;object-fit:contain;background:#91c5bf08;border:1px solid #56777340;margin-bottom:16px}
.workshop-stage .project-photo-button:focus-visible{outline:2px solid #91c5bf;outline-offset:6px}
@media(max-width:700px){.workshop-stage .project-photo-gallery{grid-template-columns:1fr}.workshop-stage .project-photo-button img{height:auto;max-height:520px}}

/* Vector controls avoid platform emoji substitutions. */
.workshop-stage .ui-icon{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.18em;flex-shrink:0}
