.project-art.has-photo{position:relative;height:auto;aspect-ratio:2.25}
.project-art.has-photo img{height:100%;width:100%;object-fit:cover}
.project-art.has-photo .project-image-note{position:absolute;bottom:10px;right:12px;padding:3px 7px;font:400 10px/1.5 Plex,Arial,sans-serif;letter-spacing:0;background:#ffffffbf;color:#344f62}
.gallery-trigger{background:#eef3f6;border-color:#b6c8d4;color:var(--blue);gap:18px}
.project-gallery-dialog{padding:0;border:1px solid #ffffffa0;border-radius:0;background:#f5f7f9ee;backdrop-filter:blur(24px);color:var(--ink);width:min(1120px,calc(100vw - 64px));max-width:none;max-height:calc(100svh - 48px);box-shadow:0 30px 110px #071c3266;overflow:auto;overscroll-behavior:contain}
.project-gallery-dialog::backdrop{background:#10202dd1;backdrop-filter:blur(10px)}
.gallery-shell{padding:30px 38px 26px}
.gallery-header{display:flex;align-items:start;justify-content:space-between;gap:24px;padding-bottom:24px;border-bottom:1px solid #b9c7d2}
.gallery-header h2{font-size:clamp(1.45rem,2.8vw,2.15rem);line-height:1.12;max-width:740px;letter-spacing:-.035em}
.gallery-close{display:flex;align-items:center;gap:18px;padding:7px 12px;min-height:38px;font-size:12px;color:var(--ink);border:1px solid #b8c5cf;background:#ffffff85;flex-shrink:0}
.gallery-close span{font-size:22px;line-height:1}
.card-deck-carousel{display:flex;align-items:center;flex-direction:column;gap:24px;padding:60px 34px 0;outline-offset:8px;overflow:hidden}
.gallery-deck{position:relative;width:min(100%,720px);aspect-ratio:1.5;max-height:49svh;touch-action:pan-y;user-select:none}
.gallery-card{position:absolute;inset:0;overflow:hidden;background:#dbe4ec;border-radius:0;box-shadow:0 2px 2px #102e4210,0 30px 60px -30px #0c2a4273;border:1px solid #fff;transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .4s,filter .4s;will-change:transform;pointer-events:none}
.gallery-card[data-top="1"]{cursor:grab;pointer-events:auto}
.gallery-card[data-drag="1"]{cursor:grabbing;transition:none}
.gallery-card[data-fly="1"]{transition:transform .45s cubic-bezier(.3,.5,.3,1),opacity .45s}
.gallery-card[data-snap="1"]{transition:none}
.gallery-card img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;background:#e6edf2;pointer-events:none;user-select:none}
.gallery-meta{display:flex;align-items:center;gap:20px;width:min(100%,720px)}
.gallery-arrow{width:42px;height:42px;border:1px solid #aebfcb;background:#ffffff70;color:var(--blue);flex:none;font-size:22px;line-height:1;backdrop-filter:blur(12px)}
.gallery-arrow:hover{background:var(--blue);color:white}
.gallery-arrow:disabled{opacity:.35;cursor:default}
.gallery-caption{flex:1;min-width:0}
.gallery-slide-title{font-size:19px;line-height:1.2;font-weight:500}
.gallery-slide-caption{margin-top:5px;font-size:12px;line-height:1.4}
.gallery-count{font-size:12px;font-variant-numeric:tabular-nums;color:#607888;white-space:nowrap}
.gallery-tools{display:flex;justify-content:space-between;align-items:center;gap:18px;width:min(100%,720px);border-top:1px solid #c1ced7;padding-top:16px}
.gallery-tools p{font-size:11px;line-height:1.5}
.gallery-tools button{font-size:11px;color:var(--blue);background:transparent;border:0;border-bottom:1px solid #a2b6c5;padding:5px 0;white-space:nowrap}
@media(max-width:700px){
 .project-gallery-dialog{width:calc(100vw - 24px);max-height:calc(100svh - 24px)}
 .gallery-shell{padding:20px 16px}.gallery-header{padding-bottom:18px;gap:14px}.gallery-header h2{font-size:24px}
 .gallery-close{gap:8px;padding:5px 8px;font-size:10px}.card-deck-carousel{padding:48px 12px 0;gap:20px}
 .gallery-deck{max-height:46svh;aspect-ratio:1.2}.gallery-meta{gap:12px}.gallery-arrow{width:36px;height:36px;font-size:20px}
 .gallery-slide-title{font-size:16px}.gallery-count{font-size:10px}.gallery-tools{align-items:start;gap:12px}
 .gallery-tools p{font-size:10px;max-width:160px}.gallery-tools button{font-size:10px;white-space:normal;text-align:right;max-width:130px}
}
@media(prefers-reduced-motion:reduce){.gallery-card,.gallery-card[data-fly="1"]{transition:none}}
