/* Photo-based views. Black garments stay true to the supplied artwork. */
.product-photo{position:relative;width:100%;height:100%;min-height:0;outline-offset:3px}
.product-photo>svg{display:block;width:100%;height:100%}
.product-photo.garment-stage{touch-action:pan-y;cursor:grab}
.garment-stage.is-dragging{cursor:grabbing}.garment-stage:focus-visible{outline:1px solid var(--ink)}
.product-view-count{position:absolute;top:20px;right:22px;color:var(--muted);font-size:10px;letter-spacing:1px;font-variant-numeric:tabular-nums}
.product-photo-tools{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:58px;padding-top:14px}
.product-photo-caption{font-size:10px;letter-spacing:.6px;color:var(--muted);line-height:1.8}
.product-photo-tools .views{flex-wrap:wrap}.product-photo-tools .views button{font-size:11px;padding:9px 10px;min-height:40px}
.photo-layer{width:100%;height:100%;display:grid;place-items:center;pointer-events:none}
.photo-layer svg{display:block;width:100%;height:100%;max-height:100%;transform-origin:center;user-select:none}
.photo-enlarge{display:inline-flex;align-items:center;gap:15px;min-height:40px;padding:8px 13px;border:1px solid #cbcbc7;background:transparent;font:inherit;font-size:11px;color:var(--ink);transition:background .25s,color .25s,border-color .25s;white-space:nowrap}
.photo-enlarge:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.concept-image{position:relative;width:100%;padding:22px;border:0;border-radius:0;aspect-ratio:3/2;background:#ececea;color:var(--ink);cursor:zoom-in;overflow:hidden}
.concept-image .photo-layer{height:100%}.concept-image svg{width:100%;height:100%}
.concept-zoom-label{position:absolute;bottom:14px;right:16px;display:flex;gap:15px;align-items:center;font-size:10px;letter-spacing:.2px;padding:7px 9px;background:#f7f7f5e8;border:1px solid #d8d8d4;pointer-events:none}
.concept-view-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0 0}
.concept-view-controls>span{font-size:10px;color:var(--muted)}
.photo-dialog{position:fixed;inset:0;width:min(1000px,calc(100vw - 32px));height:min(860px,calc(100dvh - 32px));max-width:none;max-height:none;margin:auto;padding:0;border:1px solid #d7d7d3;background:var(--paper);color:var(--ink);overflow:hidden}
.photo-dialog[open]{display:flex;flex-direction:column;animation:photo-open .28s var(--ease-soft)}
.photo-dialog::backdrop{background:#10101066;backdrop-filter:blur(4px)}
.photo-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 24px;border-bottom:1px solid var(--line);flex-shrink:0}
.photo-dialog-header .eyebrow{font-size:9px;color:var(--muted);margin:0 0 7px}.photo-dialog-header h2{font-size:23px;letter-spacing:-.8px;margin:0}
.photo-dialog-stage{flex:1;position:relative;min-height:0;padding:22px;background:#ececea;overflow:hidden;touch-action:pan-y;outline-offset:-4px}
.photo-dialog-stage.is-zoomed{cursor:grab;touch-action:none}.photo-dialog-stage.is-panning{cursor:grabbing}
.photo-dialog-stage svg{transition:transform .3s var(--ease-soft)}.photo-dialog-stage.is-panning svg{transition:none}
.photo-dialog-stage.is-panning .photo-layer{filter:blur(.45px)}
.photo-dialog-footer{padding:15px 24px 20px;border-top:1px solid var(--line);flex-shrink:0}
.photo-dialog-views{display:flex;gap:6px;flex-wrap:wrap;padding-bottom:14px}
.photo-dialog-views button{font:inherit;font-size:11px;padding:8px 12px;min-height:38px;border:1px solid var(--line);background:transparent;color:var(--muted);transition:background .2s,color .2s,border-color .2s}
.photo-dialog-views button[aria-pressed=true],.photo-dialog-views button:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.photo-dialog-tools{display:flex;align-items:center;justify-content:space-between;gap:15px}
.photo-dialog-tools p{margin:0;color:var(--muted);font-size:11px;line-height:1.7}
.photo-zoom-controls{display:flex;align-items:center;gap:6px}.photo-zoom-controls button{min-width:39px;min-height:39px;padding:8px 11px;background:transparent;border:1px solid var(--line);color:var(--ink);font:inherit;font-size:12px}
.photo-zoom-controls button:hover:enabled{background:var(--ink);color:#fff;border-color:var(--ink)}.photo-zoom-controls button:disabled{opacity:.3;cursor:default}.photo-zoom-controls output{font-size:11px;min-width:38px;text-align:center;font-variant-numeric:tabular-nums}
.photo-enlarge:focus-visible,.concept-image:focus-visible,.photo-dialog button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@keyframes photo-open{from{opacity:.25;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes photo-hover{0%{transform:scale(1);filter:blur(0)}40%{filter:blur(.65px)}100%{transform:scale(1.025);filter:blur(0)}}
@media(hover:hover) and (pointer:fine){.concept-image .photo-layer,.product-photo .photo-layer{transition:transform .55s var(--ease-soft)}.concept-image:hover .photo-layer,.product-photo:hover .photo-layer{transform:scale(1.025);animation:photo-hover .55s var(--ease-soft) forwards}.lookbook-card:hover .lookbook-image img{animation:photo-hover .65s var(--ease-soft) forwards}}
@media(max-width:700px){.product-photo-tools{gap:10px}.product-photo-tools .views button{padding:9px;font-size:11px}.product-photo-caption{font-size:9px}.concept-image{padding:17px}.concept-zoom-label{bottom:10px;right:10px}.concept-view-controls>span{font-size:9px}.photo-dialog{width:calc(100vw - 20px);height:calc(100dvh - 20px)}.photo-dialog-header{padding:15px 17px}.photo-dialog-header h2{font-size:21px}.photo-dialog-stage{padding:17px}.photo-dialog-footer{padding:13px 15px 17px}.photo-dialog-views{gap:5px}.photo-dialog-views button{font-size:10px;padding:8px 10px}.photo-dialog-tools{align-items:flex-start}.photo-dialog-tools p{max-width:130px;font-size:10px}.photo-zoom-controls{gap:4px}.photo-zoom-controls button{min-width:35px;padding:8px}.photo-zoom-controls output{min-width:32px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.photo-dialog::backdrop{backdrop-filter:none}.photo-dialog-stage.is-panning .photo-layer{filter:none}.concept-image:hover .photo-layer,.product-photo:hover .photo-layer,.lookbook-card:hover .lookbook-image img{animation:none;transform:none;filter:none}.photo-layer,.photo-layer svg{transition:none!important}}
