.image-zoom-button{position:relative;display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;overflow:hidden;cursor:zoom-in;text-align:inherit}.case-showcase .image-zoom-button{height:100%}.image-zoom-button>img{transition:transform .45s cubic-bezier(.22,1,.36,1);transform-origin:50% 50%}.image-zoom-hint{position:absolute;right:15px;bottom:15px;width:38px;height:38px;display:grid;place-items:center;border:1px solid #ffffff70;border-radius:50%;background:#141414cc;color:#fff;font-size:24px;font-weight:300;pointer-events:none}.image-zoom-button:focus-visible{outline:2px solid currentColor;outline-offset:5px}.image-viewer{position:fixed;inset:0;max-width:100vw;max-height:100dvh;width:100%;height:100dvh;margin:0;border:0;padding:0;background:#101010;color:#eeede9;overflow:hidden;overscroll-behavior:contain;z-index:200}.image-viewer::backdrop{background:#101010f2}.image-viewer:not([open]){display:none}.image-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.viewer-tools{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:18px 24px;z-index:1;background:#101010}.viewer-tools button{height:44px;min-width:44px;padding:0 12px;border:1px solid #555;background:transparent;color:inherit;font:inherit;font-size:13px}.viewer-tools button:disabled{opacity:.3;cursor:default}.viewer-tools button:focus-visible{outline:2px solid #fff;outline-offset:3px}.viewer-tools output{min-width:46px;text-align:center;font:12px monospace}.viewer-tools [data-action=close]{margin-left:15px}.viewer-stage{display:flex;align-items:center;justify-content:center;overflow:hidden;padding:20px;cursor:zoom-in;min-height:0}.viewer-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-select:none;transition:transform .12s ease-out}.viewer-hint{font-size:12px;line-height:1.6;color:#bbb;text-align:center;margin:0;padding:16px 20px 22px;background:#101010;z-index:1}
@media(hover:hover) and (pointer:fine){.image-zoom-button:hover>img{transform:scale(1.8)}}
@media(max-width:650px){.viewer-tools{gap:5px;padding:12px}.viewer-tools button{padding:0 9px}.viewer-tools [data-action=close]{margin-left:auto}.viewer-stage{padding:10px}.viewer-hint{font-size:11px}.image-zoom-hint{width:34px;height:34px;right:10px;bottom:10px}}
@media(prefers-reduced-motion:reduce){.image-zoom-button>img,.viewer-image{transition:none}}
