.gallery-filters{flex-wrap:wrap;gap:6px;max-width:1320px;margin:0 auto;padding:0 48px 40px;display:flex}.gallery-filter{font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--color-rule);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;padding:8px 18px;font-size:10px;transition:all .3s}.gallery-filter:hover,.gallery-filter.active{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-glow)}.gallery-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;grid-auto-flow:dense;gap:6px;max-width:1320px;margin:0 auto;padding:0 48px 80px;display:grid}.gallery-item.featured{grid-area:span 2/span 2}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}.gallery-item{cursor:pointer;background:var(--color-bg-secondary);position:relative;overflow:hidden}.gallery-item img{object-fit:cover;filter:grayscale(15%);width:100%;height:100%;transition:filter .5s,transform .5s;display:block}.gallery-item:hover img{filter:grayscale(0%);transform:scale(1.04)}.gallery-item.hidden{display:none}.gallery-overlay{opacity:0;background:linear-gradient(#0000 0%,#0000004d 60%,#000000d9 100%);flex-direction:column;justify-content:flex-end;padding:20px;transition:opacity .35s;display:flex;position:absolute;inset:0}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-overlay-cat{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--color-accent);margin-bottom:6px;font-size:9px}.gallery-overlay-caption{font-family:var(--font-serif);color:#fff;margin-bottom:4px;font-size:15px;font-weight:700;line-height:1.3}.gallery-item.featured .gallery-overlay-caption{font-size:22px}.gallery-item.featured .gallery-overlay{padding:32px}.gallery-overlay-date{font-family:var(--font-mono);color:#ffffff80;letter-spacing:1px;font-size:10px}.lightbox{z-index:10000;pointer-events:none;opacity:0;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.lightbox.open{pointer-events:all;opacity:1}.lightbox-backdrop{background:#000000f2;position:absolute;inset:0}.lightbox-content{z-index:2;flex-direction:column;align-items:center;max-width:90vw;max-height:85vh;display:flex;position:relative}.lightbox-content img{object-fit:contain;opacity:0;border:1px solid #ffffff0d;max-width:90vw;max-height:72vh;transition:opacity .3s,transform .3s;display:block;transform:scale(.97)}.lightbox.open .lightbox-content img{opacity:1;transform:scale(1)}.lightbox-info{text-align:center;max-width:560px;margin-top:20px}.lightbox-cat{font-family:var(--font-mono);letter-spacing:2.5px;text-transform:uppercase;color:var(--color-accent);margin-bottom:8px;font-size:9px;display:block}.lightbox-caption{font-family:var(--font-serif);color:var(--color-text-primary);margin-bottom:6px;font-size:20px;font-weight:700;line-height:1.3}.lightbox-date{font-family:var(--font-mono);color:var(--color-text-muted);letter-spacing:1px;margin-bottom:14px;font-size:10px;display:block}.lightbox-article-link{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--color-accent);align-items:center;gap:6px;font-size:10px;text-decoration:none;transition:gap .3s;display:inline-flex}.lightbox-article-link:hover{gap:12px}.lightbox-close,.lightbox-prev,.lightbox-next{z-index:3;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;transition:color .2s,transform .2s;position:absolute}.lightbox-close{padding:8px;font-size:32px;top:24px;right:32px}.lightbox-close:hover{color:#fff;transform:rotate(90deg)}.lightbox-prev,.lightbox-next{font-size:24px;font-family:var(--font-mono);padding:16px;top:50%;transform:translateY(-50%)}.lightbox-prev{left:24px}.lightbox-next{right:24px}.lightbox-prev:hover,.lightbox-next:hover{color:var(--color-accent)}.lightbox-counter{font-family:var(--font-mono);color:var(--color-text-muted);letter-spacing:2px;z-index:3;font-size:11px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}body.lightbox-open{overflow:hidden}@media (max-width:1024px){.gallery-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:200px;padding:0 24px 60px}.gallery-filters{padding:0 24px 32px}}@media (max-width:768px){.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px;gap:4px;padding:0 16px 48px}.gallery-filters{gap:4px;padding:0 16px 24px}.gallery-filter{padding:6px 12px;font-size:9px}.gallery-item.featured{grid-area:span 1/span 2}.gallery-item.tall{grid-row:span 1}.lightbox-prev{left:8px}.lightbox-next{right:8px}.lightbox-caption{font-size:16px}}
