/* Shared visual treatment for work cards and the photographic archive. */
.project-card{background:#202321;border:1px solid #353a34;border-radius:6px;overflow:hidden;translate:0 0;box-shadow:0 2px 5px #00000012;transition:translate .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s ease,border-color .3s ease}
.project-card .project-info{padding:19px 20px 22px}
.project-card .project-image img{transition:transform .45s ease,filter .3s ease}
.project-image::before{content:"";position:absolute;inset:0;background:#fff;opacity:0;z-index:1;pointer-events:none;transition:opacity .3s ease}
.project-index,.project-view{z-index:2}
.project-card:has(:focus-visible){translate:0 -8px;box-shadow:0 18px 32px #0006;border-color:#626b5d}
.project-card:has(:focus-visible) .project-image::before{opacity:.12}
.project-card:has(:focus-visible) .project-image img{filter:saturate(.95) brightness(1.08);transform:scale(1.025)}
@media(hover:hover) and (pointer:fine){
 .project-card:hover{translate:0 -8px;box-shadow:0 18px 32px #0006;border-color:#626b5d}
 .project-card:hover .project-image::before{opacity:.12}
 .project-card:hover .project-image img{filter:saturate(.95) brightness(1.08);transform:scale(1.025)}
 .project-card:hover .project-view{opacity:1;transform:translateY(0)}
}
.award-card,.paris-gallery figure,.yaowang-gallery figure,.yaowang-recognition{background:#202321;border:1px solid #353a34;border-radius:6px;overflow:hidden}
.award-grid,#on-location .paris-gallery,.yaowang-gallery,.yaowang-layout{gap:22px}
.award-card .photo-open{height:255px;padding:18px;background:#252824}
.award-card .award-date{margin:17px 19px 7px;font-size:10px;letter-spacing:.08em}
.award-card h3{margin:0 19px 7px;font-size:18px}
.award-card .award-sub{margin:0 19px 20px;font-size:11px}
.photo-expand{width:30px;height:30px;right:13px;bottom:13px;border-color:#d6d8cb66;background:#171918a6;font-size:14px}
#on-location .paris-gallery{grid-template-columns:repeat(2,minmax(0,1fr));max-width:980px;align-items:stretch}
#on-location .paris-gallery figure{grid-column:auto}
#on-location .paris-gallery .photo-open{width:100%;height:auto;max-width:none;max-height:none;aspect-ratio:16/10;margin:0}
#on-location .paris-portrait img{object-position:50% 38%}
/* Paris reads as an editorial contact sheet, with a clear lead photograph. */
#on-location .paris-gallery{grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}
#on-location .paris-gallery .paris-main{grid-column:1/9;grid-row:1}
#on-location .paris-gallery .paris-portrait{grid-column:9/13;grid-row:1/3;display:flex;flex-direction:column}
#on-location .paris-gallery .paris-venue{grid-column:1/5;grid-row:2}
#on-location .paris-gallery .paris-team{grid-column:5/9;grid-row:2}
#on-location .paris-main .photo-open{height:260px;aspect-ratio:auto}
#on-location .paris-gallery .paris-portrait .photo-open{flex:1;min-height:390px;aspect-ratio:auto}
#on-location .paris-portrait img{position:absolute;inset:0;object-position:50% 50%}
#on-location .paris-venue .photo-open,#on-location .paris-team .photo-open{height:175px;aspect-ratio:auto}
#on-location .paris-gallery figcaption,.yaowang-gallery figcaption{padding:13px 16px 15px;margin:0;max-width:none;font-size:11px;line-height:1.7;color:var(--muted)}
#on-location .paris-gallery figcaption span,.yaowang-gallery figcaption span{display:block;color:var(--accent);font-size:9px;letter-spacing:.08em;margin:0 0 5px}
.yaowang-layout{grid-template-columns:.9fr 1.1fr;align-items:start;max-width:980px;margin-inline:auto}
.yaowang-gallery{grid-template-columns:1fr;gap:18px}
.yaowang-gallery .photo-open{height:170px}
.yaowang-recognition{display:block;margin:0;padding:0}
.yaowang-recognition .photo-open{height:245px;aspect-ratio:auto}
.yaowang-star-copy{padding:19px 20px 22px}
.yaowang-star-copy .eyebrow{margin-bottom:9px}
.yaowang-star-copy h3{font-size:23px;margin-bottom:10px}
.milestone .photo-open{border:1px solid #353a34;border-radius:6px;overflow:hidden}
/* Align archive edges while retaining each group's own composition. */
.award-grid,.milestone,#on-location .paris-gallery,.yaowang-layout{width:100%;max-width:1100px;margin-inline:auto}
@media(max-width:700px){
 .project-card .project-info{padding:16px}
 .award-grid{gap:18px}
 .award-card .photo-open{height:260px}
 #on-location .paris-gallery{grid-template-columns:1fr;gap:18px}
 #on-location .paris-gallery figure{grid-column:auto!important;grid-row:auto!important}
 #on-location .paris-gallery .photo-open{aspect-ratio:16/10}
 #on-location .paris-gallery .paris-portrait .photo-open{flex:auto;min-height:0;aspect-ratio:4/3}
 #on-location .paris-portrait img{position:static;object-position:50% 38%}
 #on-location .paris-gallery figcaption,.yaowang-gallery figcaption{font-size:10px;padding:12px 14px}
 .yaowang-layout{grid-template-columns:1fr;gap:18px}
 .yaowang-gallery{grid-template-columns:1fr 1fr;gap:12px}
 .yaowang-gallery .photo-open{height:145px}
 .yaowang-gallery figcaption span{font-size:8px}
 .yaowang-recognition .photo-open{height:auto;aspect-ratio:16/10}
 .yaowang-star-copy{padding:16px}
}
@media(prefers-reduced-motion:reduce){
 .project-card{translate:none!important;transition:translate .16s ease,box-shadow .16s ease!important}
 .project-card:has(:focus-visible){translate:0 -3px!important}
 @media(hover:hover) and (pointer:fine){.project-card:hover{translate:0 -3px!important}}
 .project-card .project-image img{transform:none!important;transition:none!important}
 .project-image::before{transition:none!important}
}
