/* Photo gallery: a light masonry grid (CSS columns, no layout script), native lazy loading, a soft
   zoom on hover and a fade-up as photos scroll in. Colours follow the party theme. */

.gallery-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.gallery-meta span{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid color-mix(in srgb,var(--orange,#f26a00) 22%,#eee);color:#3a2f27;font-size:13px;font-weight:800}

.gallery-masonry{columns:4 260px;column-gap:16px}
.gallery-item{position:relative;display:block;margin:0 0 16px;break-inside:avoid;overflow:hidden;border-radius:18px;background:color-mix(in srgb,var(--orange,#f26a00) 8%,#f3efe9);box-shadow:0 10px 28px rgba(30,20,10,.08);cursor:zoom-in;isolation:isolate;text-decoration:none;transform:translateZ(0)}
.gallery-item img{display:block;width:100%;height:auto;min-height:140px;object-fit:cover;opacity:0;transform:scale(1.02);transition:opacity .5s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.gallery-item.is-loaded img{opacity:1;transform:scale(1)}
.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.06)}
.gallery-item:focus-visible{outline:3px solid var(--orange,#f26a00);outline-offset:3px}

/* Caption over the bottom of each photo; always visible on touch screens. */
.gallery-caption{position:absolute;inset:auto 0 0 0;display:grid;gap:3px;padding:44px 14px 12px;background:linear-gradient(180deg,transparent,rgba(10,8,6,.78));color:#fff;transform:translateY(8px);opacity:.92;transition:transform .35s ease,opacity .35s ease}
.gallery-caption b{font-size:15px;line-height:1.3}
.gallery-caption span{font-size:12.5px;line-height:1.4;color:#efe8e1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gallery-item:hover .gallery-caption,.gallery-item:focus-visible .gallery-caption{transform:none;opacity:1}
.gallery-zoom-hint{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.88);color:#1d1814;opacity:0;transform:scale(.85);transition:opacity .25s ease,transform .25s ease}
.gallery-item:hover .gallery-zoom-hint,.gallery-item:focus-visible .gallery-zoom-hint{opacity:1;transform:none}

/* Fade-up reveal, only when the script is running and motion is allowed. */
.gallery-masonry.has-reveal .gallery-item{opacity:0;transform:translateY(18px)}
.gallery-masonry.has-reveal .gallery-item.is-in{opacity:1;transform:none;transition:opacity .6s ease var(--reveal-delay,0ms),transform .6s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}

/* Caption inside the open photo viewer. */
.pswp__gallery-caption{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:grid;gap:4px;width:min(720px,calc(100% - 32px));padding:12px 16px;border-radius:14px;background:rgba(0,0,0,.55);color:#fff;text-align:center;font-family:"Noto Sans Devanagari",Poppins,Arial,sans-serif;backdrop-filter:blur(6px)}
.pswp__gallery-caption b{font-size:15px}
.pswp__gallery-caption span{font-size:13px;color:#e8e2dc}

@media (max-width:767px){
  .gallery-masonry{columns:2 150px;column-gap:10px}
  .gallery-item{margin-bottom:10px;border-radius:14px}
  .gallery-caption{padding:30px 10px 9px;transform:none;opacity:1}
  .gallery-caption b{font-size:13px}
  .gallery-caption span{display:none}
  .gallery-zoom-hint{display:none}
}
@media (prefers-reduced-motion:reduce){
  .gallery-item img,.gallery-caption,.gallery-zoom-hint{transition:none}
  .gallery-item:hover img{transform:none}
}
