.gallery-card{-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:var(--space-lg);cursor:pointer;transition:transform var(--transition-slow);position:relative;overflow:hidden}.gallery-card:hover{z-index:1;transform:scale(1.06)}.gallery-card__image{filter:grayscale(15%);width:100%;height:auto;transition:filter var(--transition-slow);display:block}.gallery-card:hover .gallery-card__image{filter:grayscale(0%)}.gallery-card__overlay{padding:var(--space-xl) var(--space-md) var(--space-md);opacity:0;transition:opacity var(--transition-base);background:linear-gradient(#0000 0%,#000000bf 100%);position:absolute;bottom:0;left:0;right:0}.gallery-card:hover .gallery-card__overlay{opacity:1}.gallery-card__title{font-size:var(--text-caption);font-weight:var(--weight-medium);margin:0 0 2px}.gallery-card__location{font-size:var(--text-label);color:#f0f0f099;letter-spacing:.08em;margin:0}.gallery-card__category{font-size:var(--text-label);letter-spacing:var(--letter-spacing-ui);text-transform:uppercase;color:#f0f0f073;margin:var(--space-xs) 0 0}
.lightbox{z-index:var(--z-overlay);background:#000000f2;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox__close{top:var(--space-xl);right:var(--space-xl);color:var(--text-secondary);cursor:pointer;transition:color var(--transition-base);background:0 0;border:none;font-size:1.5rem;line-height:1;position:absolute}.lightbox__close:hover{color:var(--text-primary)}.lightbox__nav{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;width:44px;height:44px;font-family:var(--font-primary);transition:border-color var(--transition-base), color var(--transition-base);background:0 0;font-size:1.25rem;position:absolute;top:50%;transform:translateY(-50%)}.lightbox__nav:hover{border-color:var(--text-secondary);color:var(--text-primary)}.lightbox__nav--prev{left:var(--space-xl)}.lightbox__nav--next{right:var(--space-xl)}.lightbox__inner{align-items:center;gap:var(--space-5xl);width:100%;max-width:1200px;padding:var(--space-3xl);display:flex}.lightbox__image-wrap{flex:1;justify-content:center;align-items:center;max-height:80vh;display:flex}.lightbox__image{-o-object-fit:contain;object-fit:contain;max-width:100%;max-height:80vh}.lightbox__info{flex-shrink:0;width:240px}.lightbox__category{font-size:var(--text-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--text-muted);margin:0 0 var(--space-md)}.lightbox__title{font-size:var(--text-h2);font-weight:var(--weight-light);margin:0 0 var(--space-md);font-style:italic;line-height:1.3}.lightbox__location{font-size:var(--text-caption);color:var(--text-secondary);margin:0}@media (max-width:768px){.lightbox{align-items:flex-start}.lightbox__inner{flex-direction:column;align-items:stretch;gap:0;max-height:100%;padding:0 0 80px;overflow-y:auto}.lightbox__image-wrap{display:block}.lightbox__info{width:100%;padding:var(--space-xl) var(--page-padding);border-top:1px solid var(--border)}.lightbox__nav{top:auto;bottom:calc(var(--space-xl) + env(safe-area-inset-bottom,0px));transform:none}.lightbox__nav--prev{left:var(--space-xl)}.lightbox__nav--next{right:var(--space-xl)}}
.filter-bar{padding:var(--space-2xl) var(--page-padding);max-width:var(--max-width);gap:var(--space-md);flex-wrap:wrap;align-items:center;margin:0 auto;display:flex}@media (max-width:768px){.filter-bar{-webkit-overflow-scrolling:touch;padding-bottom:var(--space-md);flex-wrap:nowrap;overflow-x:auto}.filter-bar__label,.filter-btn{flex-shrink:0}.gallery-grid{padding-top:var(--space-xl)}}.filter-bar__label{font-size:var(--text-label);letter-spacing:var(--letter-spacing-ui);text-transform:uppercase;color:var(--text-muted);margin-right:var(--space-sm)}.filter-btn{font-family:var(--font-primary);font-size:var(--text-label);letter-spacing:var(--letter-spacing-ui);text-transform:uppercase;color:var(--text-secondary);padding:var(--space-xs) var(--space-md);cursor:pointer;transition:color var(--transition-base), border-color var(--transition-base);background:0 0;border:1px solid #0000}.filter-btn:hover{color:var(--text-primary);border-color:var(--border)}.filter-btn--active{color:var(--text-primary);border-color:var(--text-secondary)}.gallery-grid{-moz-columns:1;columns:1;-moz-column-gap:var(--space-lg);column-gap:var(--space-lg);padding:0 var(--page-padding) var(--space-5xl);max-width:var(--max-width);margin:0 auto}@media (min-width:640px){.gallery-grid{-moz-columns:2;columns:2}}@media (min-width:1024px){.gallery-grid{-moz-columns:3;columns:3}}
