/* Photographic collection: real images, quiet typography and a generous film viewer. */
.photo-collection{padding:100px 5% 90px;background:#101013;}
.photo-collection .collection-header{align-items:flex-end;border:0;padding-bottom:34px;}
.photo-collection .collection-header h2{font-family:var(--display);font-size:clamp(45px,5.8vw,86px);line-height:.95;font-weight:400;letter-spacing:-1.8px;margin:22px 0 0;}
.photo-collection .collection-header h2 em{font-style:normal;color:#aaa6a0;}
.photo-collection .collection-header>p{font-size:12px;line-height:1.8;color:#a9a6a0;max-width:340px;margin-bottom:3px;}
.collection-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px;border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff20;}
.photo-collection .collection-filters{gap:27px;overflow-x:auto;margin:0;}
.photo-collection .collection-filters button{font-size:11px;letter-spacing:.02em;min-height:58px;white-space:nowrap;position:relative;}
.photo-collection .collection-filters button:after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transition:transform .3s;}
.photo-collection .collection-filters button.active:after{transform:scaleX(1);}
#collection-status{font-size:9px;letter-spacing:.1em;color:#87858b;white-space:nowrap;}
.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px;}
.photo-collection .collection-item{display:block;padding:0;border:0;min-width:0;color:#eeeae5;background:transparent;text-align:left;}
.photo-collection .collection-item:hover,.photo-collection .collection-item:focus-visible{padding:0;color:#fff;}
.photo-collection .collection-item[hidden]{display:none;}
.collection-item .collection-photo{position:relative;display:block;aspect-ratio:4/3;width:100%;overflow:hidden;background:#17171b;isolation:isolate;}
.collection-photo>img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.86);transition:transform 1.2s cubic-bezier(.2,.65,.3,1),filter .7s;}
.photo-card:hover .collection-photo>img,.photo-card:focus-visible .collection-photo>img{transform:scale(1.045);filter:brightness(1);}
.collection-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,#0008);pointer-events:none;}
.collection-count{position:absolute;bottom:18px;left:18px;z-index:2;font-size:8px;letter-spacing:.16em;color:#fff;}
.collection-open{position:absolute;right:14px;bottom:12px;z-index:2;display:grid;place-items:center;width:36px;height:36px;color:#fff;border:1px solid #ffffff60;border-radius:50%;background:#0002;transition:background .3s,transform .5s;}
.collection-open svg{width:16px;height:16px;}
.photo-card:hover .collection-open{background:#ffffff15;transform:rotate(45deg);}
.photo-collection .collection-card-copy{position:relative;display:block;width:100%;padding:19px 26px 0 0;color:inherit;font-size:inherit;}
.photo-collection .collection-card-copy>small{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.16em;color:#aaa5ac;margin:0 0 8px;}
.collection-title{display:block;font-family:var(--display);font-size:clamp(24px,2.2vw,33px);line-height:1.08;letter-spacing:-.4px;color:#eeeae5;}
.collection-number{position:absolute;right:0;top:20px;font-size:8px;color:#74717a;}
.photo-collection .facebook-link{margin-top:45px;}
/* Lighting belongs only to selected stage images; original photograph bytes stay intact. */
.photo-lights{position:absolute;inset:0;display:none;overflow:hidden;pointer-events:none;mix-blend-mode:screen;z-index:1;}
.photo-light-active>.photo-lights{display:block;}
.photo-lights>i{position:absolute;bottom:17%;left:2%;width:48%;height:91%;transform-origin:50% 100%;background:linear-gradient(to top,rgba(var(--photo-light-color,150,210,255),.7),rgba(var(--photo-light-color,150,210,255),.12) 75%,transparent);clip-path:polygon(49.5% 100%,50.5% 100%,91% 0,9% 0);filter:blur(3px);opacity:.27;animation:photo-beam-sweep 9s ease-in-out infinite alternate;}
.photo-lights>i:nth-child(2){left:39%;height:100%;animation-delay:-4s;animation-duration:11s;opacity:.2;}
.photo-lights>i:nth-child(3){left:25%;width:33%;height:95%;animation-delay:-8s;animation-duration:13s;opacity:.15;}
.photo-lights>em{position:absolute;inset:22% 0 0;background:radial-gradient(ellipse at 50% 87%,rgba(var(--photo-light-color,150,210,255),.15),transparent 65%);animation:photo-wash 8s ease-in-out infinite alternate;}
@keyframes photo-beam-sweep{from{transform:rotate(-22deg)}to{transform:rotate(21deg)}}
@keyframes photo-wash{from{opacity:.35;transform:scale(.95)}to{opacity:.85;transform:scale(1.09)}}
/* Fullscreen viewer keeps portrait and landscape pictures complete. */
#project-dialog.photo-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:28px 4%;border:0;background:#0a0a0def;color:#f1eee9;overflow-y:auto;backdrop-filter:blur(18px);}
.photo-dialog .gallery-top{padding:0 0 20px;gap:20px;align-items:center;}
.photo-dialog #dialog-category{font-size:8px;color:#b0a4ad;letter-spacing:.15em;}
.photo-dialog #dialog-title{font-family:var(--display);font-size:clamp(27px,3vw,42px);font-weight:400;line-height:1.05;letter-spacing:-.5px;margin:8px 0 0;}
.photo-dialog .gallery-layout{display:block;min-height:0;}
.photo-dialog .gallery-frame{height:min(65dvh,820px);width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse,#1c1b20,#08080a 75%);touch-action:pan-y;}
.gallery-photograph{position:relative;max-width:100%;max-height:100%;width:100%;height:100%;isolation:isolate;overflow:hidden;}
#gallery-image{display:block;width:100%;height:100%;object-fit:contain;}
.photo-dialog .gallery-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:17px;}
.photo-dialog .gallery-controls{display:flex;gap:18px;padding:0;order:0;}
.photo-dialog .gallery-controls button{width:38px;height:38px;}
.photo-dialog #gallery-counter{font-size:10px;color:#d2cfd5;min-width:62px;letter-spacing:.12em;}
#gallery-motion{font-size:10px;color:#b9b3bd;border-bottom:1px solid #ffffff30;padding:8px 0;min-height:38px;}
#gallery-motion[hidden]{display:none;}
.photo-dialog .gallery-bottom .underlink{font-size:10px;margin:0;}
.photo-dialog #gallery-thumbs{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:9px;margin:19px 0 13px;padding:4px 1px 8px;scrollbar-width:thin;scrollbar-color:#5f5965 transparent;}
.photo-dialog #gallery-thumbs button{flex:0 0 76px;border:1px solid transparent;padding:3px;opacity:.48;transition:opacity .3s,border-color .3s;}
.photo-dialog #gallery-thumbs button:hover,.photo-dialog #gallery-thumbs button.active{opacity:1;}
.photo-dialog #gallery-thumbs button.active{border-color:#d9aab8;}
.photo-dialog #gallery-thumbs img{width:68px;height:47px;object-fit:cover;display:block;}
.gallery-details{border-top:1px solid #ffffff18;padding:13px 0 20px;max-width:760px;}
.gallery-details summary{font-size:10px;color:#a7a0ab;cursor:pointer;}
.gallery-details p{font-size:11px;line-height:1.85;color:#b4adb8;margin:13px 0 0;}
.motion-paused .photo-lights>i,.motion-paused .photo-lights>em{animation-play-state:paused;}
.motion-paused .collection-photo>img{transition:none;}
@media(min-width:1600px){.collection-grid{gap:44px 30px}.photo-collection{padding-left:7%;padding-right:7%}}
@media(max-width:1000px){.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-toolbar{gap:15px}.photo-collection .collection-header>p{font-size:11px}.photo-collection .collection-filters{gap:20px}#collection-status{display:none}.photo-dialog .gallery-frame{height:64dvh}}
@media(max-width:600px){.photo-collection{padding:65px 6%}.photo-collection .collection-header{display:block;padding-bottom:22px}.photo-collection .collection-header>p{margin-top:20px}.photo-collection .collection-header h2{font-size:50px}.photo-collection .collection-filters{gap:22px;width:100%}.photo-collection .collection-filters button{font-size:10px;min-height:50px}.collection-grid{grid-template-columns:1fr;gap:30px}.collection-item .collection-photo{aspect-ratio:4/3}.collection-title{font-size:30px}.photo-collection .collection-card-copy{padding-top:15px}.collection-number{top:17px}.photo-dialog .gallery-top{padding-bottom:17px}.photo-dialog #dialog-title{font-size:28px}.photo-dialog #dialog-category{font-size:7px}.photo-dialog .gallery-frame{height:56dvh}#project-dialog.photo-dialog{padding:20px 5%}.photo-dialog .gallery-bottom{display:grid;grid-template-columns:1fr auto;gap:8px 15px;margin-top:14px}.photo-dialog .gallery-controls{justify-content:flex-start;gap:8px}.photo-dialog .gallery-bottom .underlink{font-size:9px;grid-column:2;grid-row:1}.photo-dialog #gallery-motion{font-size:9px;grid-column:1/-1;width:max-content;min-height:30px;padding:4px 0}.photo-dialog #gallery-thumbs{margin-top:13px;gap:6px}.photo-dialog #gallery-thumbs button{flex-basis:65px}.photo-dialog #gallery-thumbs img{width:57px;height:41px}.photo-dialog .gallery-controls button{width:34px;height:34px}.photo-dialog #gallery-counter{min-width:53px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.photo-lights>i,.photo-lights>em{animation:none!important}.collection-photo>img,.collection-open{transition:none!important}.photo-card:hover .collection-photo>img,.photo-card:hover .collection-open{transform:none}}
