html{scrollbar-gutter:stable}
.image-zoom-stage{position:relative;overflow:hidden;border-radius:0}
.image-zoom-stage>img{transition:filter 240ms ease}
.image-zoom-button{position:absolute;inset:0;display:grid;place-items:center;width:100%;height:100%;padding:0;border:0;border-radius:0;background:rgba(20,20,20,.15);color:#fff;cursor:zoom-in;opacity:0;transition:opacity 240ms ease}
.image-zoom-button svg{width:44px;height:44px;filter:drop-shadow(0 1px 5px rgba(0,0,0,.35));transform:scale(.92);transition:transform 240ms ease}
.image-zoom-stage:has(.image-zoom-button:focus-visible)>img{filter:blur(2px)}
.image-zoom-button:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:-5px}
.image-zoom-button:focus-visible svg{transform:scale(1)}
@media(hover:hover){.image-zoom-stage:hover>img{filter:blur(2px)}.image-zoom-stage:hover .image-zoom-button{opacity:1}.image-zoom-stage:hover .image-zoom-button svg{transform:scale(1)}}
@media(hover:none){.image-zoom-button{opacity:1;background:transparent;place-items:end;padding:12px}.image-zoom-button svg{width:32px;height:32px;padding:5px;background:rgba(20,20,20,.45);transform:none}}
#image-lightbox{position:fixed;inset:0;box-sizing:border-box;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:72px 5vw 32px;border:0;background:transparent;color:#fff;overflow:auto;opacity:0;transition:opacity 240ms ease}
#image-lightbox[open]{display:flex;align-items:center;justify-content:center}
#image-lightbox::backdrop{background:rgba(15,15,15,.65);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity 240ms ease}
#image-lightbox.is-visible,#image-lightbox.is-visible::backdrop{opacity:1}
.image-lightbox-content{margin:0;max-width:100%;min-width:0;transform:translateY(8px) scale(.985);transition:transform 240ms ease;pointer-events:none}
.is-visible .image-lightbox-content{transform:none}
#image-lightbox .image-lightbox-content img{width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 180px);object-fit:contain;margin:0 auto;border-radius:0;pointer-events:auto}
#image-lightbox.has-grey-stage img{background:var(--image-half-lotus,#C8C1B5)}
#image-lightbox figcaption{max-width:90ch;margin:16px 0 0;text-align:left;color:#eee;font-size:14px;line-height:1.5}
.image-lightbox-close{position:fixed;top:16px;right:20px;display:grid;place-items:center;width:44px;height:44px;padding:10px;border:0;border-radius:0;background:transparent;color:#fff;cursor:pointer;transition:color 180ms ease}
.image-lightbox-close:hover{background:transparent;color:var(--accent)}
.image-lightbox-close svg{width:24px;height:24px}
@media(max-width:600px){#image-lightbox{padding:72px 16px 24px}#image-lightbox figcaption{font-size:13px}.image-lightbox-close{right:16px}}
@media(prefers-reduced-motion:reduce){.image-zoom-stage>img,.image-zoom-button,.image-zoom-button svg,#image-lightbox,#image-lightbox::backdrop,.image-lightbox-content,.image-lightbox-close{transition:none}.image-lightbox-content{transform:none}}

/* Match Cut & Run's page framing in the full-size viewer. */
.image-lightbox-frame{display:contents}
#image-lightbox:is(.has-prototype-crop,.has-technical-crop) .image-lightbox-frame{display:block;position:relative;overflow:hidden;max-width:100%}
#image-lightbox.has-prototype-crop .image-lightbox-frame{width:min(90vw,calc((100dvh - 180px)*2.4666));aspect-ratio:2400/973}
#image-lightbox.has-technical-crop .image-lightbox-frame{width:min(90vw,calc((100dvh - 180px)*1.4235));aspect-ratio:2820/1981}
#image-lightbox:is(.has-prototype-crop,.has-technical-crop) .image-lightbox-frame img{position:absolute;height:auto;max-width:none;max-height:none;margin:0}
#image-lightbox.has-prototype-crop .image-lightbox-frame img{left:0;top:-27.75%;width:100%}
#image-lightbox.has-technical-crop .image-lightbox-frame img{left:-2.12766%;top:-4.745%;width:105.5674%}

/* Ducanta uses the same surface and assembly framing in both views. */
#image-lightbox.has-ducanta-surface img{background:var(--ducanta-render-surface)}
#image-lightbox.has-ducanta-assembly .image-lightbox-frame{display:block;width:min(80vw,calc((100dvh - 180px)*.75));aspect-ratio:3/4;overflow:hidden;background:var(--ducanta-render-surface)}
#image-lightbox.has-ducanta-assembly .image-lightbox-frame img{display:block;width:100%;height:100%;max-height:none;object-fit:cover;object-position:var(--ducanta-crop-position);margin:0}
#image-lightbox.has-ducanta-assembly .image-lightbox-content{width:min(80vw,calc((100dvh - 180px)*.75))}

#image-lightbox.has-image-surface img{background-color:var(--image-surface)}
#image-lightbox.has-image-surface .image-lightbox-frame{background-color:var(--image-surface)}

#image-lightbox.has-image-surface img{background-image:var(--image-surface-gradient, none)}
