/* An industrial frame becomes a shared space for nine components. */
.parts-gallery{position:relative}
.parts-gallery-top{display:flex;align-items:center;justify-content:space-between;gap:22px;border-top:1px solid var(--story-line);padding:24px 0 28px}
.parts-gallery-top>p{font-size:21px;font-weight:500;letter-spacing:-.02em;line-height:1.5}.parts-hint{font-size:14px;line-height:1.6;color:#617164}.touch-hint{display:none}
.parts-workshop{background:#0b0e0f;color:#e8edeb;padding:0 20px 20px;border:1px solid #22292b;position:relative;isolation:isolate;box-shadow:0 30px 70px #1729221c}
.workshop-heading,.workshop-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 14px;font-size:12px;line-height:1.6;letter-spacing:.08em;color:#a8b4af}.workshop-heading>span:last-child{font-size:14px;letter-spacing:.02em;color:#c3fa10}.workshop-footer{padding:26px 18px 10px;color:#899a91;letter-spacing:.02em;font-size:14px}
.parts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;row-gap:20px;padding:0 4.5%;position:relative;isolation:isolate}
.rack-structure{position:absolute;inset:0;z-index:-1;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:20px;pointer-events:none}
.rack-bay{border:30px solid transparent;border-image-source:url('/assets/industrial-display-rack.webp');border-image-slice:110 130 160 130 fill;border-image-width:35px 32px 63px 32px;border-image-repeat:stretch}.rack-bay:nth-child(n+4){display:none}
.part-card{display:block;padding:35px 0 75px;background:none;border:0;text-align:left;touch-action:pan-y pinch-zoom;min-width:0;color:#e6eeea;cursor:pointer;position:relative;z-index:1}
.part-card.is-active{cursor:grab}.part-card.is-active:active{cursor:grabbing}.parts-gallery.is-image-preview .part-card{cursor:pointer}
.part-card:focus-visible{outline:1px solid #c3fa10;outline-offset:0;border-radius:0}
.part-media{display:block;position:relative;aspect-ratio:1.27;overflow:hidden;border:0;isolation:isolate;background:radial-gradient(ellipse at 50% 58%,#b8c8bc08,transparent 64%)}
.part-media:before{content:"";position:absolute;inset:6%;border:1px solid #c3fa1045;border-radius:50%;opacity:0;transform:scale(.8);transition:opacity .45s,transform .6s;z-index:0}
.part-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:6%;filter:drop-shadow(0 17px 12px #0009);transition:transform .65s cubic-bezier(.16,1,.3,1),opacity .3s;z-index:1}
.part-card[data-part="servo"] .part-poster,.part-card[data-part="gearbox"] .part-poster,.part-card[data-part="gripper"] .part-poster{padding:0}
.part-index{position:absolute;top:5px;left:5px;font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums;color:#89988f;z-index:5;letter-spacing:.06em}
.part-info{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:15px 5px 0;min-height:51px}.part-name{font-size:21px;line-height:1.5;font-weight:500;letter-spacing:-.025em}.part-category{font-size:13px;line-height:1.6;color:#8d9d94;white-space:nowrap}
.part-card.is-active .part-poster{transform:scale(1.12)}.part-card.is-active .part-media:before{opacity:.7;transform:scale(1)}.part-card.is-active .part-name{color:#c3fa10}
.parts-gallery.is-exploring .part-card:not(.is-active) .part-media{opacity:.82}.part-media{transition:opacity .4s}
.parts-live-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;z-index:2;opacity:0;transition:opacity .3s;filter:drop-shadow(0 15px 12px #0008)}
.has-live .parts-live-canvas{opacity:1}.has-live .part-poster{opacity:0}.has-live.is-returning .parts-live-canvas{opacity:0}.has-live.is-returning .part-poster{opacity:1;transform:none}.is-restored .part-poster{transition:transform .65s cubic-bezier(.16,1,.3,1),opacity 0s}
.parts-note{font-size:12px;line-height:1.8;color:#647668;margin-top:16px}
.rack-signature{display:none}
@media(hover:hover){.part-card:hover .part-poster{transform:scale(1.12)}}
@media(max-width:1000px){.part-info{display:block}.part-category{display:block;margin-top:4px}.part-name{font-size:20px}.parts-grid{column-gap:20px}.part-card{padding-bottom:77px}.parts-gallery-top{display:block}.parts-hint{display:block;margin-top:10px}.part-info{min-height:69px}}
@media(max-width:600px){
 .parts-gallery-top{padding:23px 0 24px}.parts-gallery-top>p{font-size:19px}.desktop-hint{display:none}.touch-hint{display:inline}.parts-hint{font-size:14px;margin-top:7px}
 .parts-workshop{margin-inline:calc(-1 * var(--gutter));padding:0 12px 16px;border-left:0;border-right:0}.workshop-heading{padding:24px 5px 20px;font-size:12px;letter-spacing:.035em}.workshop-heading>span:last-child{display:none}.workshop-footer{font-size:12px;padding:22px 6px 2px}
 .parts-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;row-gap:14px;padding:0 7%}.rack-structure{grid-template-rows:repeat(5,minmax(0,1fr));gap:14px}.rack-bay:nth-child(n+4){display:block}.rack-bay{border-image-width:25px 18px 46px 18px}
 .part-card{padding:28px 0 51px}.part-media{aspect-ratio:1.1}.part-index{top:4px;left:2px;font-size:12px}.part-poster{padding:4%}.part-info{padding:10px 1px 0;min-height:64px}.part-name{font-size:18px;line-height:1.45}.part-category{font-size:12px;margin-top:5px}
 .rack-signature{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;padding:25px 12px 55px;color:#899b89;min-width:0;font-size:12px;line-height:1.6;letter-spacing:.03em}.rack-signature img{width:90%;max-width:135px;opacity:.75}
}
@media(max-width:360px){.parts-grid{column-gap:11px;padding:0 7%}.part-name{font-size:17px}.part-info{min-height:61px}}
@media(prefers-reduced-motion:reduce){.part-poster,.part-media,.part-media:before,.parts-live-canvas{transition:none}.part-card:hover .part-poster,.part-card.is-active .part-poster{transform:none}.is-restored .part-poster{transition:none}}

@media(pointer:coarse){.parts-live-canvas{filter:none}}
