/* A single contained factory stage; all moving photographs share its plane. */
body{background:#0b0e10;overflow-x:clip}body::before{display:none}
main,body>footer{width:100%;max-width:none;border:0;box-shadow:none;background:#0b0e10}
header{background:#101416f5;z-index:60;box-shadow:0 2px 15px #0004}
.production-rail,.production-rim,.robot-hint{display:none!important}
.hero-main,.section:not(.portfolio),.portfolio>.section-title,.portfolio>.archive-top{padding-left:max(6%,calc((100vw - 1260px)/2));padding-right:max(6%,calc((100vw - 1260px)/2))}
.hero h1{font-size:clamp(70px,8vw,130px);max-width:900px}.hero-lead{max-width:400px}
.portfolio{padding:76px 0 0;background:#171b1d}.portfolio>.archive-top{margin-bottom:0;padding-top:24px;padding-bottom:24px}.portfolio>.section-title{margin-bottom:34px}
.archive-layout[hidden]{display:none!important}
.conveyor-scroll{position:relative;width:100%;height:360svh;margin:0}
.conveyor-viewport{position:sticky;top:80px;height:calc(100svh - 80px);overflow:hidden;isolation:isolate;background:#555b58 url('factory-floor-conveyor.webp') center / 100% 100% no-repeat;box-shadow:inset 0 25px 35px #0006,inset 0 -30px 35px #0005}
.conveyor-track{position:absolute;inset:0;background:none;border:0;clip-path:none;box-shadow:none;overflow:hidden}
.conveyor-track::before{display:none}
.conveyor-frame{position:absolute;top:0;left:50%;padding:0;border:0;max-width:none;background:transparent;box-shadow:none;transform-origin:0 0;will-change:transform;color:#f4f1e9;text-align:left;filter:drop-shadow(0 10px 5px #0009)}
.conveyor-frame .carrier-photo{position:absolute;inset:4.8% 4.8% 7%;width:90.4%;height:88.2%;max-height:none;aspect-ratio:auto;background:#151a1c;object-fit:contain}
.conveyor-frame .carrier-trim{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;background:transparent;pointer-events:none}
.conveyor-frame>span{position:absolute;bottom:11%;left:7%;right:7%;padding:6px 10px;background:#101719d9;display:block;font-size:14px;line-height:1.3;text-shadow:0 1px 3px #000;pointer-events:none}
.conveyor-frame>span::after{content:'+';float:right;color:#ebc178}
.conveyor-frame:focus-visible,.conveyor-frame.is-laser-target{outline:2px solid #e3b366;outline-offset:2px}
.conveyor-controls{position:absolute;left:20px;top:20px;z-index:32;width:210px;padding:12px 16px;background:#101619eb;border:1px solid #acb4b146;backdrop-filter:blur(12px)}
.conveyor-controls .collection-selector{display:block;border:0}.conveyor-controls .collection-tab{padding:11px 0;grid-template-columns:24px 1fr;width:100%;gap:6px}.conveyor-controls .collection-tab strong{font-size:14px;line-height:1.4}.conveyor-controls .collection-tab small{display:none}.conveyor-controls .collection-tab .tab-number{font-size:12px;padding-top:1px}.conveyor-controls .collection-tab[aria-pressed=true]{padding-left:5px}.conveyor-controls .collection-tab[aria-pressed=true]:before{display:none}
.conveyor-details{position:absolute;right:20px;top:20px;z-index:32;width:225px;padding:17px;background:#101619eb;border:1px solid #acb4b146;backdrop-filter:blur(12px)}
.conveyor-details .stage-bottom{padding:0;display:block}.conveyor-details h3{font:24px/1.15 Georgia,serif;margin-bottom:12px}.conveyor-details p{font-size:14px;line-height:1.5}.conveyor-details .stage-controls{margin-top:14px}.conveyor-details .archive-link{font-size:14px;margin-top:12px}
.conveyor-status{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:35;padding:8px 14px;background:#0f1518ed;border:1px solid #a7b0b245;color:#f5f1e7;font-size:14px;pointer-events:none;white-space:nowrap}
#robot-world{position:absolute;inset:0;z-index:28;pointer-events:none;overflow:hidden;transition:opacity .25s}#robot-canvas{width:100%;height:100%;display:block}#robot-world[hidden]{display:none}
.robot-ground-shadow{display:none}
#laser-point{position:fixed;z-index:90;width:5px;height:5px;background:#fff7da;border-radius:50%;box-shadow:0 0 0 3px #e9bd6744,0 0 12px 5px #ffb82f88;pointer-events:none;transform:translate(-50%,-50%);display:none}
html.laser-active #laser-point{display:block}html.laser-active .conveyor-track,html.laser-active .conveyor-track *{cursor:none!important}
.image-dialog::backdrop{background:#0910138c;backdrop-filter:blur(4px)}
.image-dialog{width:min(1060px,calc(100vw - 300px));max-height:90svh}.viewer-shell{border:1px solid #868e91;box-shadow:0 24px 90px #0007;background:#141a1e}
.viewer-media{padding:14px 25px;background:#080c0f}.viewer-media img{width:100%;height:58svh;max-height:58svh;object-fit:contain;border:0}.robot-lifted-image{border:0;box-shadow:0 12px 30px #0007}
.image-dialog #robot-world{position:fixed;inset:0;z-index:12}.viewer-foot{justify-content:space-between;gap:18px}.viewer-foot p{max-width:450px}
.robot-transit .viewer-shell{background:transparent;border-color:transparent;box-shadow:none}.robot-transit .viewer-media{background:transparent}.robot-transit .viewer-bar,.robot-transit .viewer-foot{opacity:0;pointer-events:none}
.vision{border-top:1px solid #bfc2ba;background:#1b2326;color:#f1efe7;grid-template-columns:1fr 1fr;gap:7%}.vision p,.vision .robot-stage-caption,.vision .mechanical-note{color:#c3c9c9}.vision .eyebrow,.vision h2 em,.vision-step b{color:#d8b56b}.vision .vision-path,.vision .vision-step,.vision .robot-stage-caption{border-color:#68737355}.vision .robot-stage{justify-content:center}.vision .robot-stage-caption{flex-direction:column;align-items:flex-start;gap:20px}.vision .robot-stage-caption>span{font-size:14px}.vision .motion-demo{background:#d8b56b;color:#101619}
.intro,.work-layout,.craft{grid-template-columns:1fr 1fr}.work-panel{min-height:460px}.contact-bottom{flex-direction:row;align-items:center}
@media(min-width:900px) and (max-width:1200px){.conveyor-controls{width:175px;left:12px;padding:8px 12px}.conveyor-details{width:175px;right:12px;padding:12px}.conveyor-details p{display:none}.conveyor-details h3{font-size:21px}.conveyor-controls .collection-tab strong{font-size:14px}.image-dialog{width:calc(100vw - 240px)}}
.conveyor-static{height:auto}.conveyor-static .conveyor-viewport{position:relative;top:0;height:auto;background:#262d30;padding:20px}.conveyor-static .conveyor-track{position:relative;inset:auto;padding:0;overflow:visible;display:grid;grid-template-columns:1fr 1fr;gap:25px}.conveyor-static .conveyor-frame{position:relative;left:auto;top:auto;width:100%;aspect-ratio:1.6;margin:0;transform:none}.conveyor-static .conveyor-controls,.conveyor-static .conveyor-details,.conveyor-static .conveyor-status{display:none}.conveyor-static #robot-world{display:none}
@media(max-width:899px){main,body>footer{width:100%}.hero h1{font-size:clamp(56px,11vw,88px)}.hero-main{padding-left:6%;padding-right:6%}.portfolio>.section-title{display:block}.portfolio>.section-title p{max-width:500px;margin-top:25px}.conveyor-static .conveyor-track{grid-template-columns:1fr}.conveyor-frame>span{font-size:14px}.vision,.intro,.work-layout,.craft{grid-template-columns:1fr}.image-dialog{width:96vw}.viewer-media img{height:auto;max-height:58svh}.viewer-media{padding:8px}.contact-bottom{flex-direction:column;align-items:flex-start}.hero-caption{bottom:140px}.hero-footer{left:6%;right:6%}}
@media(prefers-reduced-motion:reduce){#robot-world,#laser-point{display:none!important}}
.conveyor-frame .carrier-photo{inset:15.6% 7.6% 15.8%;width:84.8%;height:68.6%}.conveyor-frame>span{bottom:17%;left:8.5%;right:8.5%;padding:4px 9px}
.viewer-media{aspect-ratio:1.6;max-height:61svh;padding:0;background:transparent;position:relative;overflow:hidden}
.image-dialog .viewer-media #viewer-image,.robot-lifted-image .lifted-photo{position:absolute;left:7.6%;top:15.6%;width:84.8%;height:68.6%;max-height:none;object-fit:contain;background:#11181b}
.viewer-trim,.robot-lifted-image .lifted-trim{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:fill;pointer-events:none}
.robot-transit .viewer-media{visibility:hidden}.robot-lifted-image{background:transparent;filter:drop-shadow(0 14px 8px #0008);box-shadow:none}
@media(max-width:899px){.viewer-media{height:53svh;aspect-ratio:auto}.image-dialog .viewer-media #viewer-image{height:68.6%;max-height:none}}
.conveyor-frame{overflow:hidden}.conveyor-frame .carrier-trim,.image-dialog .viewer-media .viewer-trim,.robot-lifted-image .lifted-trim{left:-2.588%;top:-8.49%;width:105.24%;height:116.98%;max-height:none;max-width:none;object-fit:fill}
.conveyor-frame .carrier-photo,.image-dialog .viewer-media #viewer-image,.robot-lifted-image .lifted-photo{left:5.5%;top:10%;width:89%;height:80%;max-height:none;inset:auto;left:5.5%;top:10%;object-fit:contain}
.conveyor-frame>span{bottom:11%;left:6.5%;right:6.5%}.viewer-media{margin-inline:auto}.robot-lifted-image{overflow:hidden}
.conveyor-rollers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.conveyor-static .conveyor-rollers{display:none}
.viewer-foot{max-width:720px;margin-inline:auto;padding-inline:12px;position:relative;z-index:15}.viewer-foot p{font-size:14px;max-width:360px}.viewer-bar{z-index:15}
.conveyor-details p{display:none}
/* Refinement: readable collections, visible docking position and a restrained steel rim. */
.conveyor-frame>span{font-size:clamp(12px,1.05vw,16px);background:#11191ddf;padding:6px 10px}
.conveyor-controls{width:min(210px,17vw);background:#101619df}
.conveyor-details{width:min(225px,18vw);background:#101619df}
.conveyor-details .conveyor-album-note{display:block;color:#b6bdbb;font-size:11px;line-height:1.5;margin:12px 0 0}
.conveyor-frame[aria-current=true]{filter:drop-shadow(0 8px 7px #000b)}
.conveyor-status{font-size:12px;letter-spacing:.02em;bottom:12px}
.image-dialog .viewer-shell{overflow:visible}
.image-dialog .viewer-bar{position:relative}
.robot-transit .viewer-bar{opacity:1;pointer-events:auto;background:transparent;border:0}
.robot-transit .viewer-bar h2{visibility:hidden}
.robot-transit .viewer-bar button{background:#11171bf5}
@media(max-width:899px){.conveyor-static .conveyor-viewport{padding:22px 6% 38px}.conveyor-static .conveyor-track{gap:25px}.conveyor-frame>span{font-size:15px}.image-dialog .viewer-shell{overflow:auto}}

/* Slim photographic carrier, with the same aperture throughout the lift. */
.conveyor-frame .carrier-trim,.image-dialog .viewer-media .viewer-trim,.robot-lifted-image .lifted-trim{left:-2%;top:-2.2%;width:104%;height:106%;max-width:none;max-height:none}
.conveyor-frame .carrier-photo,.image-dialog .viewer-media #viewer-image,.robot-lifted-image .lifted-photo{left:2.6%;top:5.5%;width:95%;height:89%;max-height:none;object-fit:contain}
.conveyor-frame>span{bottom:6%;left:3.5%;right:3.5%;font-size:20px;padding:4px 10px}
.viewer-media{aspect-ratio:1.65}
@media(max-width:899px){.conveyor-frame>span{font-size:15px}.conveyor-static .conveyor-frame{aspect-ratio:1.65}.image-dialog .viewer-media{height:auto;aspect-ratio:1.4;min-height:220px}}

/* Service covers fill the same photographic aperture through every animation state. */
.conveyor-frame .carrier-photo,.image-dialog .viewer-media #viewer-image,.robot-lifted-image .lifted-photo{object-fit:cover;object-position:center}
.album-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.album-links[hidden],.album-links a[hidden]{display:none!important}
.album-links .archive-link{margin-top:12px}
.conveyor-details .conveyor-album-note{font-size:12px}
.conveyor-controls .collection-tab small{line-height:1.5}
.viewer-foot .album-links{align-items:stretch}
@media(max-width:899px){.viewer-foot .album-links{width:100%}}

/* Upright carriers: readable photographs retain their original proportions. */
.conveyor-frame .carrier-photo,.image-dialog .viewer-media #viewer-image,.robot-lifted-image .lifted-photo{object-fit:contain;object-position:center;background:#11181b}
.conveyor-frame>span{font-size:clamp(15px,1.3vw,19px);line-height:1.35;padding:8px 11px}
.viewer-media{width:min(100%,calc(61svh * 1.5));aspect-ratio:1.5}
.conveyor-static .conveyor-frame{aspect-ratio:1.5}
@media(max-width:899px){.image-dialog .viewer-media{width:100%;height:auto;aspect-ratio:1.5;min-height:0}.conveyor-frame>span{font-size:15px}}

/* Nine-slice photographic steel keeps the corners intact around a natural 3:2 photo. */
.conveyor-frame .carrier-trim,.image-dialog .viewer-media .viewer-trim,.robot-lifted-image .lifted-trim{
 left:0;top:0;width:100%;height:100%;max-width:none;max-height:none;
 border-style:solid;border-color:transparent;border-width:0;
 border-image-source:url('assets/carrier-upright-v3.webp');border-image-slice:150 100 190 100;
 border-image-width:5% 3% 6.5% 3%;border-image-repeat:stretch;pointer-events:none;
}
.conveyor-frame .carrier-photo,.image-dialog .viewer-media #viewer-image,.robot-lifted-image .lifted-photo{
 left:3%;top:5%;width:94%;height:88.5%;object-fit:contain;object-position:center;background:#11181b;
}
.conveyor-frame>span{bottom:7%;left:3.5%;right:3.5%}
.viewer-media{width:min(100%,calc(61svh * 1.42));aspect-ratio:1.42}
.conveyor-static .conveyor-frame{aspect-ratio:1.42}
@media(max-width:899px){.image-dialog .viewer-media{width:100%;height:auto;aspect-ratio:1.42;min-height:0}}

/* Compose the working gallery using the same camera and hierarchy as the reference. */
header{background:linear-gradient(105deg,#302d29f5,#161b1ef5 55%,#292824f5);border-bottom:1px solid #b8b2a66b}
header .brand>span{display:flex;gap:.5em;align-items:baseline}
header .brand strong{font-size:18px;letter-spacing:.16em}
header .brand small{font-size:14px;letter-spacing:.12em;color:#dfdcd1}
main#main{padding-top:80px}
.portfolio{padding:0;scroll-margin-top:80px}
.portfolio>.section-title,.portfolio>.archive-top{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.conveyor-scroll{height:300svh}
.conveyor-viewport{height:calc(100svh - 80px);min-height:460px;background-image:url('assets/factory-reference-v15.webp');background-size:100% 100%;box-shadow:inset 0 -90px 80px -70px #000b}
.conveyor-rollers{opacity:.24;mix-blend-mode:luminosity}
.conveyor-controls{top:auto;bottom:24px;left:24px;width:clamp(215px,23vw,300px);padding:20px 23px;background:#171a1ce6;border:1px solid #bdc0b66b;border-radius:6px;box-shadow:0 15px 35px #0004}
.conveyor-controls-title{margin:0 0 8px;font-size:12px;letter-spacing:.16em;line-height:1.5;color:#f1ede6}
.conveyor-controls .collection-tab{grid-template-columns:28px 1fr;padding:10px 0;gap:8px;transition:color .2s,border-color .2s}
.conveyor-controls .collection-tab strong{font-size:15px;line-height:1.2;font-weight:500}
.conveyor-controls .collection-tab .tab-number{font-size:14px}
.conveyor-controls .collection-tab[aria-pressed=true]{padding-left:0;border-bottom-color:#f4bd62;color:#fff4d8;background:transparent;box-shadow:0 2px 0 -1px #f4bd62}
.conveyor-controls .collection-tab[aria-pressed=true] .tab-number{color:#ffc46b}
.conveyor-details{top:auto;bottom:45px;left:50%;right:auto;transform:translateX(-50%);width:44%;max-width:680px;padding:12px 18px;background:#111719e8;border:1px solid #a2a29755;text-align:center;box-shadow:0 8px 20px #0003}
.conveyor-details .stage-bottom{display:flex;justify-content:center;align-items:center;gap:16px}
.conveyor-details h3{font:500 clamp(16px,1.4vw,23px)/1.25 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;margin:0}
.conveyor-details .stage-controls{margin:0;display:flex;gap:6px}
.conveyor-details .stage-controls button{width:32px;height:32px}
.conveyor-details .album-links{align-items:center;gap:3px}
.conveyor-details .archive-link{font-size:14px;margin-top:8px;padding-bottom:2px}
.conveyor-details .conveyor-album-note{font-size:12px;margin:7px 0 0;color:#bfc4c4}
.conveyor-status{bottom:9px;font-size:12px;padding:4px 10px;background:#101619c9;border:0}
.conveyor-frame>span{opacity:0;transition:opacity .2s}
.conveyor-frame:hover>span,.conveyor-frame:focus-visible>span{opacity:1}
.image-dialog::backdrop{background:#09101340;backdrop-filter:blur(1px)}
.image-dialog{width:min(1000px,calc(100vw - 360px))}
.image-dialog .viewer-shell{background:transparent;border:0;box-shadow:none}
.image-dialog .viewer-bar{width:min(100%,calc(61svh * 1.42));margin-inline:auto;background:#111719ed;border:1px solid #9e9e9270}
.image-dialog .viewer-foot{margin-top:12px;background:#111719ed;border:1px solid #9e9e9270}
@media(min-width:900px) and (max-width:1150px){
 header .brand strong{font-size:15px}header .brand small{font-size:12px}
 .conveyor-controls{left:12px;bottom:20px;width:220px;padding:14px}
 .conveyor-controls .collection-tab strong{font-size:14px}
 .conveyor-details{width:44%;padding:9px}
}
@media(max-width:899px){
 header .brand>span{display:block}header .brand strong{font-size:14px}header .brand small{font-size:12px}
 .portfolio{padding-top:32px}.portfolio>.section-title{position:static;width:auto;height:auto;clip-path:none;white-space:normal;padding:20px 6%;margin:0}
 .conveyor-static .conveyor-viewport{min-height:0;height:auto;background:#1a2226}
 .conveyor-frame>span{opacity:1}.image-dialog{width:96vw}
}

/* Layer the far jaw behind the load and the near jaw over its steel rim. */
html{scrollbar-gutter:stable}
#robot-rear-world{position:absolute;inset:0;z-index:18;pointer-events:none;overflow:hidden}
#robot-rear-world canvas{display:block;width:100%;height:100%}
#robot-rear-world[hidden]{display:none}
.image-dialog #robot-rear-world{position:fixed;inset:0;z-index:8}
.image-dialog .viewer-media{position:relative;z-index:10}
.conveyor-static #robot-rear-world{display:none}
@media(max-width:899px){#robot-rear-world{display:none}}
@media(prefers-reduced-motion:reduce){#robot-rear-world{display:none!important}}

/* Leave room for the bent forearms and wrist assemblies around the load. */
@media(min-width:900px){
 .image-dialog{width:min(760px,48vw);max-height:calc(100svh - 32px);overflow:visible}
 .image-dialog .viewer-media{width:min(100%,calc(53svh * 1.42));max-height:none}
 .image-dialog .viewer-bar{width:100%}
 .image-dialog .viewer-bar h2{font-size:clamp(16px,1.5vw,21px)}
 .image-dialog .viewer-foot{padding:14px;gap:12px}
 .image-dialog .viewer-foot p{font-size:14px}
}

/* The category opens its saved work archive without leaving the Site. */
#viewer-work[hidden]{display:none}
.stage-explore{margin:10px 0 0;min-height:44px;padding:8px 20px;background:#d8b56b;color:#11181c;border:1px solid #d8b56b;font-size:14px;font-weight:600}.stage-explore:hover{background:#e9cd95}
.viewer-foot{flex-wrap:wrap}.viewer-foot #viewer-note{flex:1 1 220px;margin:0}.viewer-foot #viewer-work{flex:0 1 260px;min-height:50px}
.work-archive{width:min(1180px,96vw);height:min(940px,94svh);max-height:94svh;padding:26px 30px;color:#eeeae1;background:#11181c;border:1px solid #9a9d92;box-shadow:0 24px 80px #0009;overflow:auto}
.work-archive::backdrop{background:#090d10e8;backdrop-filter:blur(5px)}
.archive-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}
.archive-heading p{font-size:12px;letter-spacing:.16em;color:#dfb971;margin:0 0 8px}.archive-heading h2{font-size:clamp(24px,3vw,36px);line-height:1.2;margin:0}
.archive-heading button,.archive-toolbar button,.archive-view-tabs button{background:transparent;border:1px solid #717d80;min-height:44px;padding:9px 16px;font-size:14px}
#archive-description{max-width:820px;color:#c1c9c9;margin:20px 0 14px}
.archive-view-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.archive-view-tabs button[aria-pressed=true]{color:#f3d391;border-color:#d8b56b;background:#d8b56b15}
.archive-photo-window{height:min(56svh,570px);overflow:auto;background:#080e11;border:1px solid #62696b;overscroll-behavior:contain}
.archive-photo-window img{display:block;width:100%;height:100%;object-fit:contain;max-width:none}
.archive-photo-window.is-zoomed img{width:1363px;height:936px;object-fit:contain}
.archive-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:12px}.archive-toolbar p{font-size:14px;line-height:1.5;margin:0;max-width:660px;color:#c0c6c7}.archive-toolbar button{white-space:nowrap}
.work-archive .archive-link{margin:14px 0 0;min-height:32px}
@media(max-width:899px){
 .image-dialog{padding:0;max-height:94svh}.image-dialog .viewer-shell{max-height:94svh}.image-dialog .viewer-bar{padding:12px;gap:10px}.image-dialog .viewer-bar h2{line-height:1.25}
 .viewer-foot #viewer-work{flex:auto;width:100%}.viewer-foot #viewer-note{flex:auto}
 .work-archive{padding:18px 14px}.archive-heading{align-items:flex-start;gap:12px}.archive-heading h2{font-size:25px}.archive-heading button{padding:9px 12px;flex-shrink:0}.archive-heading p{font-size:12px}
 #archive-description{font-size:16px}.archive-photo-window{height:45svh;min-height:240px}.archive-toolbar{align-items:flex-start;flex-direction:column;gap:12px}
 .archive-photo-window{height:auto;min-height:0}.archive-photo-window img{height:auto}.archive-photo-window.is-zoomed{height:50svh}.archive-photo-window.is-zoomed img{height:936px}
 .craft{grid-template-columns:minmax(0,1fr)}.craft>*{min-width:0}.craft h2{font-size:clamp(34px,9vw,44px);overflow-wrap:break-word}
 header .brand strong{font-size:13px;letter-spacing:.07em}header .brand small{font-size:12px;letter-spacing:.06em}header nav{gap:8px}
}
@media(min-width:900px) and (max-height:720px){
 .image-dialog .viewer-media{width:min(100%,calc(48svh * 1.42))}.image-dialog .viewer-bar{padding:8px 12px}.image-dialog .viewer-foot{margin-top:6px;padding:10px}
}
