/* Full-viewport viewer. Source images and their page layout remain untouched. */
[data-image-opener]{cursor:zoom-in}
[data-image-opener]:focus-visible{outline:2px solid #5d8ef7;outline-offset:4px}
dialog.portfolio-lightbox{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgb(8 8 10 / .96);color:#fff;overflow:hidden;overscroll-behavior:contain;font:400 12px/18px 'IBM Plex Mono',monospace;letter-spacing:0;box-sizing:border-box}
dialog.portfolio-lightbox::backdrop{background:transparent}
.portfolio-lightbox .plb-stage{position:absolute;inset:max(56px,env(safe-area-inset-top)) 12px max(44px,env(safe-area-inset-bottom));overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
.portfolio-lightbox .plb-content{position:absolute;left:50%;top:50%;transform-origin:center;cursor:zoom-in}
.portfolio-lightbox.is-zoomed .plb-content{cursor:grab}
.portfolio-lightbox.is-zoomed .plb-content:active{cursor:grabbing}
.portfolio-lightbox .plb-content>img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:fill;border:0;border-radius:0;background:none;pointer-events:auto;-webkit-user-drag:none}
.portfolio-lightbox .plb-toolbar{position:absolute;z-index:3;right:max(12px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top));display:flex;gap:8px}
.portfolio-lightbox .plb-button{display:grid;place-items:center;width:44px;height:44px;flex:none;margin:0;padding:0;border:1px solid #ffffff5c;border-radius:50%;background:#101014bf;color:#fff;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color 140ms ease-out,opacity 140ms ease-out}
.portfolio-lightbox .plb-button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.portfolio-lightbox .plb-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.portfolio-lightbox .plb-previous,.portfolio-lightbox .plb-next{position:absolute;top:50%;z-index:3;transform:translateY(-50%)}
.portfolio-lightbox .plb-previous{left:max(12px,env(safe-area-inset-left))}
.portfolio-lightbox .plb-next{right:max(12px,env(safe-area-inset-right))}
.portfolio-lightbox .plb-caption{position:absolute;bottom:max(8px,env(safe-area-inset-bottom));left:16px;right:16px;display:flex;justify-content:center;gap:16px;align-items:center;min-height:24px;text-align:center;color:#d9dee4;pointer-events:none}
.portfolio-lightbox [data-plb-count]{flex:none;font-variant-numeric:tabular-nums}
.portfolio-lightbox [data-plb-caption]{max-width:80ch;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.portfolio-lightbox .plb-status{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;max-width:80%;text-align:center;color:#fff;pointer-events:none}
.portfolio-lightbox .plb-retry{position:absolute;left:calc(50% - 22px);top:calc(50% + 32px)}
.portfolio-lightbox [hidden]{display:none!important}
.portfolio-lightbox .plb-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.portfolio-lightbox .plb-diagram{width:100%!important;height:100%!important;max-width:none!important;overflow:hidden;cursor:inherit}
.portfolio-lightbox .plb-diagram>.goat-art-0{transform:scale(var(--plb-diagram-scale))!important}
@media(hover:hover){.portfolio-lightbox .plb-button:hover{background:#34343de6}}
@media(max-width:600px){.portfolio-lightbox .plb-stage{left:6px;right:6px}.portfolio-lightbox .plb-caption{font-size:10px;gap:8px}.portfolio-lightbox .plb-previous{left:8px}.portfolio-lightbox .plb-next{right:8px}.portfolio-lightbox .plb-previous,.portfolio-lightbox .plb-next{width:44px;height:44px;background:#101014a6}}
@media(prefers-reduced-motion:reduce){.portfolio-lightbox *{animation:none!important;transition:none!important}}
