.portrait-photo{position:relative;overflow:hidden}
.portrait-photo>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:64% 50%}
.portrait-photo:after{border:0;background:linear-gradient(transparent 65%,#07131dc9);inset:0}
.portrait-photo .photo-bottom{z-index:1;color:#fff;font-size:9px;letter-spacing:1px;right:20px;line-height:1.8;text-shadow:0 1px 6px #000}
.real-photo{position:relative;overflow:hidden;border-radius:5px}
.real-photo img,.card-cover img{display:block;width:100%;height:100%;object-fit:cover}
.feature-photo img{position:absolute;inset:0;object-position:50% 44%}
.feature-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 60%,#07131dbb);pointer-events:none}
.feature-photo .photo-bottom{z-index:1;color:#fff}
.card-cover{overflow:hidden}
.card-cover img{aspect-ratio:1.54;transition:transform .35s}
.card-cover:hover{opacity:1}.card-cover:hover img{transform:scale(1.035)}
.wide img{position:absolute;inset:0}
.gallery-card{flex-basis:calc((100% - 36px)/3)}
.gallery-image{aspect-ratio:3/2;border-radius:10px}
.gallery-image img{object-fit:contain}
.gallery-photo-open{display:block;width:100%;padding:0;border:0;border-radius:10px;background:none;cursor:zoom-in;text-align:inherit;color:inherit;touch-action:pan-x pan-y}
.gallery-dots{justify-content:start;max-width:240px;min-width:0;overflow-x:auto;scrollbar-width:none}
.gallery-dots::-webkit-scrollbar{display:none}
.gallery-dots button{flex-shrink:0;width:22px}
.gallery-track.dragging .gallery-photo-open{cursor:grabbing}
.gallery-arrow{top:calc((100% - 80px)/2)}
.photo-viewer{width:min(1320px,calc(100% - 32px));max-width:1320px;max-height:96dvh;padding:0;background:#070c12;border:1px solid #324555;overflow:auto}
.photo-viewer-top{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;gap:20px;border-bottom:1px solid var(--line)}
.photo-viewer-top span{color:var(--cyan);font-size:10px;letter-spacing:1.2px}
.photo-viewer button{border:1px solid #4a6273;background:#17232e;color:var(--ink);border-radius:5px;padding:8px 14px;font-size:12px}
.photo-viewer button:hover:not(:disabled){border-color:var(--orange);color:var(--orange)}
.photo-viewer button:disabled{opacity:.35;cursor:default}
.photo-viewer-stage{min-height:100px;display:grid;place-items:center;background:#060a0f}
.photo-viewer-stage img{display:block;max-width:100%;width:auto;height:auto;max-height:calc(96dvh - 170px);object-fit:contain}
.photo-viewer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px}
.photo-viewer-copy{flex:1}.photo-viewer-copy h2{font-size:18px;line-height:1.5;letter-spacing:-.4px}
.photo-viewer-copy p{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.8}
body.viewing-photo{overflow:hidden}
@media(max-width:1050px){.gallery-card{flex-basis:calc((100% - 18px)/2)}}
@media(max-width:760px){.gallery-card{flex-basis:88%}.gallery-arrow{top:calc((100% - 75px)/2)}.photo-viewer{width:calc(100% - 16px)}.photo-viewer-top{padding:12px}.photo-viewer-top span{font-size:8px}.photo-viewer-bottom{gap:12px;flex-wrap:wrap;padding:15px}.photo-viewer-copy{flex:1 1 100%;order:-1}.photo-viewer-copy h2{font-size:17px}.photo-viewer-stage img{max-height:calc(96dvh - 220px)}.portrait-photo>img{object-position:65% 50%}}
