.gallery-icon{color:var(--accent);vertical-align:.12em;margin-right:.15em;font-size:.62em}.gallery-total{font-size:.9rem}.gallery-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;font-size:.82rem;display:flex}.masonry{column-count:1;column-gap:1rem}@media (min-width:560px){.masonry{column-count:2}}@media (min-width:900px){.masonry{column-count:3}}.masonry-item{break-inside:avoid;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .25s,transform .35s var(--ease);margin-bottom:1rem;position:relative;overflow:hidden}.masonry-item.clickable{cursor:zoom-in}.masonry-item.clickable:hover{border-color:var(--accent-line);transform:translateY(-3px)}.masonry-item.clickable:hover .masonry-img{transform:scale(1.03)}.masonry-item.clickable:hover .masonry-caption{opacity:1;transform:none}.masonry-img{width:100%;height:auto;transition:transform .6s var(--ease)}.masonry-skeleton{aspect-ratio:4/3;background:linear-gradient(100deg,var(--surface)30%,var(--surface-2)50%,var(--surface)70%)0 0/300% 100%;place-items:center;animation:1.4s linear infinite shimmer;display:grid}.masonry-skeleton .retry-text{color:var(--dim);font-size:.75rem}@keyframes shimmer{to{background-position:-150% 0}}.masonry-failed{aspect-ratio:4/3;width:100%;color:var(--dim);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-size:.78rem;display:flex}.masonry-failed:hover{color:var(--accent)}.masonry-caption{color:#e8f2eb;opacity:0;transition:opacity .3s,transform .3s var(--ease);background:linear-gradient(transparent,rgba(4,7,5,.88));flex-direction:column;align-items:flex-start;gap:.4rem;padding:2.5rem .9rem .85rem;font-size:.82rem;line-height:1.45;display:flex;position:absolute;top:auto;bottom:0;left:0;right:0;transform:translateY(6px)}.masonry-caption .tag{color:#7ee787;background:rgba(4,7,5,.6);border-color:rgba(255,255,255,.15)}.masonry-caption p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (hover:none){.masonry-caption{opacity:1;transform:none}}.gallery-more{justify-content:center;margin-top:1.5rem;display:flex}.gallery-done{text-align:center;color:var(--dim);margin-top:1.5rem;font-size:.82rem}.lightbox{z-index:300;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#e8f2eb;background:rgba(4,7,5,.94);grid-template-rows:auto 1fr auto;animation:.2s palette-fade;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.lightbox .icon-btn{color:#e8f2eb;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}.lightbox .icon-btn:hover{color:#7ee787;border-color:#7ee787}.lightbox .dim{color:#6b8573}.lightbox .bright{color:#e8f2eb}.lightbox-top{justify-content:space-between;align-items:center;padding:.9rem 1rem;font-size:.82rem;display:flex}.lightbox-stage{flex-direction:column;justify-content:center;align-items:center;gap:.9rem;min-height:0;padding:0 4.5rem;display:flex}@media (max-width:640px){.lightbox-stage{padding:0 1rem}}.lightbox-img{object-fit:contain;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.1);max-width:100%;max-height:calc(100vh - 230px);box-shadow:0 30px 80px -20px rgba(0,0,0,.8)}.lightbox-caption{text-align:center;color:#b9c8be;flex-direction:column;align-items:center;gap:.45rem;max-width:720px;font-size:.9rem;display:flex}.lightbox-caption .tag{color:#7ee787;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px!important;height:44px!important}.lightbox-nav.prev{left:1rem}.lightbox-nav.next{right:1rem}@media (max-width:640px){.lightbox-nav{top:auto;bottom:6.5rem;transform:none}}.film-strip{scrollbar-width:thin;justify-content:safe center;gap:.5rem;padding:.9rem 1rem 1.1rem;display:flex;overflow-x:auto}.film-thumb{object-fit:cover;opacity:.5;cursor:pointer;border:2px solid transparent;border-radius:6px;flex-shrink:0;width:72px;height:52px;transition:opacity .2s,border-color .2s}.film-thumb:hover{opacity:.85}.film-thumb.active{opacity:1;border-color:#7ee787}
