/* Shared rendering: the same photo composition at every preview size. */
.photo-canvas { position:relative; width:100%; aspect-ratio:var(--photo-aspect,1); overflow:hidden; background:#fff; }
.photo-canvas > img { position:absolute; inset:0; width:100%; height:100%; max-height:none; object-fit:contain; display:block; border-radius:0; transform:translate(var(--photo-x,0%),var(--photo-y,0%)) scale(var(--photo-zoom,1)); transform-origin:center; }
.customer-page .hero .customer-photo-frame { height:auto; aspect-ratio:var(--photo-aspect,1); }
.customer-page .hero .customer-photo-frame > img { height:100%; max-height:none; }
