/* Generic magnifier */
.magnifier-lens {
    position: absolute;
    pointer-events: none;
    z-index: 999999;
}

.lowres-image {
    position: absolute;
    visibility: hidden;
    top: 0;
    left: 0;
}

.zoom-lens {
    position: absolute;
    top: 25px;
    left: 25px;
    width: 244px;
    height: 244px;
    overflow: hidden;
    border-radius: 50%;
}

.highres-image {
    position: absolute;
    top: -25px;
    left: -25px;
    will-change: transform;
}

.lens-frame {
    position: absolute;
    top: 0;
    left: 0;
}

.loading-hires {
    filter: blur(1px);
    opacity: 0.92;
}

.hires-loaded {
    filter: none;
    opacity: 1;
}

.modal-image-frame {
    width: min(90vw, calc(90vh * var(--modal-ratio)));
    aspect-ratio: var(--modal-ratio);
    position: relative;
}

.modal-image-attribution {
    color: var(--tab-dim);
}

.modal-progressive-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}