.gallery-page{min-height:100vh;background:var(--color-bg)}.gallery-page .gallery-content{padding:0 var(--space-inline) clamp(2rem,5vw,4.5rem)}.gallery-page .gallery-content .container{max-width:1200px;margin:0 auto}.gallery-page .gallery-content .filters{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.gallery-page .gallery-content .filters-label{color:var(--color-text-muted);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;flex-shrink:0}.gallery-page .gallery-content .filter-chips{display:flex;flex-wrap:wrap;gap:.5rem}.gallery-page .gallery-content .filter-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:.8rem;font-weight:500;letter-spacing:.01em;position:relative;transition:background .18s ease,border-color .18s ease,color .18s ease}.gallery-page .gallery-content .filter-chip:hover{border-color:var(--color-primary);color:var(--color-text);background:var(--color-primary-a12)}.gallery-page .gallery-content .filter-chip.active{background:var(--color-primary);color:#000;border-color:var(--color-primary);font-weight:600}.gallery-page .gallery-content .filter-chip:focus-visible{outline:none}.gallery-page .gallery-content .filter-chip:not(.filter-chip--all){padding-right:1.7rem}.gallery-page .gallery-content .filter-chip--all{padding-right:.85rem}.gallery-page .gallery-content .filter-chip__icon{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);opacity:0;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease;pointer-events:none}.gallery-page .gallery-content .filter-chip--all .filter-chip__icon--clear{position:static;transform:none;opacity:0;transition:opacity .15s ease}.gallery-page .gallery-content .filter-chip--all.active .filter-chip__icon--clear{opacity:.6}.gallery-page .gallery-content .filter-chip:not(.active):not(.filter-chip--all) .filter-chip__icon--add{opacity:.45}.gallery-page .gallery-content .filter-chip.active:not(.filter-chip--all) .filter-chip__icon--remove{opacity:.6}.gallery-page .gallery-content .filter-chip.active:not(.filter-chip--all) .filter-chip__icon--add{opacity:0}.gallery-page .gallery-content .filter-chip:not(.active):not(.filter-chip--all) .filter-chip__icon--remove{opacity:0}.gallery-page .gallery-content .filter-chip.active:hover{background:color-mix(in srgb,var(--color-primary) 85%,black 15%);border-color:color-mix(in srgb,var(--color-primary) 85%,black 15%)}.gallery-page .gallery-content .gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.gallery-item{display:flex;flex-direction:column;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);cursor:pointer;transition:opacity .25s ease,transform .25s ease}.gallery-item.hidden{display:none}.gallery-img-wrap{position:relative;aspect-ratio:1;overflow:hidden}.gallery-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.gallery-img-wrap:hover img{transform:scale(1.05)}.gallery-overlay{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s ease}.gallery-img-wrap:hover .gallery-overlay{opacity:1}.btn-expand{background:#fff;color:#000;border:none;padding:.5rem .875rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;cursor:pointer;transition:transform .2s ease;display:flex;align-items:center;gap:.25rem}.btn-expand:hover{transform:scale(1.05)}.gallery-meta{padding:.75rem;display:flex;flex-wrap:wrap;gap:.4rem;background:#fff;border-top:1px solid var(--color-border)}.gallery-tag{padding:.2rem .55rem;border-radius:var(--radius-pill);font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:#0000000f;color:var(--color-text-muted);border:1px solid rgba(0,0,0,.15);white-space:nowrap}.lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.lightbox[aria-hidden=false]{opacity:1;visibility:visible}.lightbox-backdrop{position:absolute;inset:0;background:#000000e6;backdrop-filter:blur(4px)}.lightbox-close,.lightbox-nav{position:absolute;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;transition:all .2s ease;z-index:10}.lightbox-close{top:1.5rem;right:1.5rem;width:44px;height:44px;border-radius:50%}.lightbox-close:hover,.lightbox-nav:hover{background:#ffffff40}.lightbox-nav{top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%}.lightbox-prev{left:1.5rem}.lightbox-next{right:1.5rem}.lightbox-content{position:relative;z-index:5;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;align-items:center}.lightbox-content img{max-width:100%;max-height:75vh;object-fit:contain;border-radius:var(--radius-md)}.lightbox-meta{margin-top:1rem;display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.lightbox-meta .gallery-tag{background:#ffffff26;color:#fff;border-color:#ffffff4d}.load-more-wrap{display:flex;justify-content:center;margin-top:2.5rem}.load-more-btn{padding:.75rem 2rem;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.load-more-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-a14)}.load-more-btn.hidden,.lightbox-reel,.lightbox-swipe-hint{display:none}@media(max-width:1024px){.gallery-page .gallery-content{padding:0 var(--space-5) clamp(1.25rem,3vw,2rem)}.gallery-page .gallery-content .filters{margin-bottom:1.5rem;padding-bottom:1rem}.gallery-page .gallery-content .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.875rem}.gallery-meta{padding:.6rem}.load-more-wrap{margin-top:1.5rem}}@media(max-width:768px){.lightbox-nav,.lightbox-content{display:none}.lightbox-reel{display:block;position:absolute;inset:0;z-index:5;overflow-y:scroll;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch}.lightbox-reel-slide{width:100%;height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem 5rem;box-sizing:border-box}.lightbox-reel-slide img{max-width:100%;max-height:75dvh;object-fit:contain;border-radius:var(--radius-md);user-select:none;pointer-events:none}.lightbox-reel-slide .lightbox-meta{margin-top:1rem}.lightbox-swipe-hint{display:flex;align-items:center;gap:.4rem;position:absolute;bottom:2rem;left:50%;transform:translate(-50%);z-index:20;background:#ffffff1f;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:.8rem;padding:.45rem .9rem;border-radius:var(--radius-pill);backdrop-filter:blur(8px);animation:hintFadeOut .4s ease 2.5s forwards;pointer-events:none}.lightbox-close{top:.75rem;right:.75rem;z-index:25}.gallery-page .gallery-content{padding:var(--space-4) var(--space-4) var(--space-5)}.gallery-page .gallery-content .filters{margin-bottom:1.25rem;padding-bottom:.875rem;gap:.75rem}.gallery-page .gallery-content .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.gallery-meta{padding:.5rem}.gallery-tag{font-size:.6rem}.load-more-wrap{margin-top:1.25rem}.load-more-btn{padding:.6rem 1.5rem;font-size:.9rem}}.lightbox-swipe-hint.hint-hide{display:none!important}@keyframes hintFadeOut{to{opacity:0;transform:translate(-50%) translateY(6px)}}@media(min-width:769px)and (max-width:1100px){.gallery-page .gallery-content .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
