/* Masonry gallery + full image lightbox, inspired by Tran Tattoo layout */
.gallery-masonry-picker{display:block!important;columns:4 220px;column-gap:16px;width:min(1280px,calc(100% - 28px));margin:34px auto 120px}.masonry-photo-card{break-inside:avoid;margin:0 0 16px;display:block;position:relative;overflow:hidden;border-radius:22px;background:#111;border:1px solid rgba(255,255,255,.1);cursor:pointer;box-shadow:0 18px 50px rgba(0,0,0,.25);animation:galleryFade .55s ease both}.masonry-photo-card img{width:100%;height:auto;min-height:170px;object-fit:cover;transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .35s}.masonry-photo-card:hover img{transform:scale(1.06);filter:brightness(.82)}.masonry-photo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82),transparent 52%);opacity:.82;pointer-events:none}.masonry-photo-card b{position:absolute;left:16px;right:74px;bottom:14px;z-index:3;color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 10px rgba(0,0,0,.55)}.masonry-photo-card span{z-index:4}.photo-zoom{position:absolute;top:14px;left:14px;z-index:5;width:42px;height:42px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(0,0,0,.42);backdrop-filter:blur(12px);color:#fff;font-size:22px;line-height:1;cursor:pointer;opacity:0;transform:scale(.85);transition:.28s}.masonry-photo-card:hover .photo-zoom{opacity:1;transform:scale(1)}.photo-zoom:hover{background:linear-gradient(135deg,#ffe37a,#d4af37);color:#090909}.photo-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.94);backdrop-filter:blur(18px);display:none;align-items:center;justify-content:center;padding:72px 84px}.photo-lightbox.active{display:flex}.photo-lightbox img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:18px;box-shadow:0 30px 100px rgba(0,0,0,.65)}.lightbox-close,.lightbox-nav{position:absolute;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.1);color:#fff;border-radius:50%;cursor:pointer;backdrop-filter:blur(12px);transition:.25s}.lightbox-close{top:24px;right:26px;width:48px;height:48px;font-size:30px}.lightbox-nav{top:50%;transform:translateY(-50%);width:58px;height:58px;font-size:42px}.lightbox-nav.prev{left:24px}.lightbox-nav.next{right:24px}.lightbox-close:hover,.lightbox-nav:hover{background:rgba(212,175,55,.9);color:#090909}.lightbox-meta{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;gap:14px;align-items:center;max-width:calc(100% - 40px);padding:12px 18px;border-radius:999px;background:rgba(10,10,10,.72);border:1px solid rgba(255,255,255,.12);color:#fff}.lightbox-meta b{max-width:52vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lightbox-meta span{color:#d4af37;font-weight:800}@keyframes galleryFade{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.gallery-masonry-picker{columns:3 170px;column-gap:12px}.photo-lightbox{padding:64px 18px}.lightbox-nav{width:48px;height:48px;font-size:34px}.lightbox-nav.prev{left:10px}.lightbox-nav.next{right:10px}}@media(max-width:560px){.gallery-masonry-picker{columns:2 140px;width:calc(100% - 16px);column-gap:8px}.masonry-photo-card{border-radius:14px;margin-bottom:8px}.masonry-photo-card b{font-size:11px;left:10px;right:54px}.photo-zoom{opacity:1;width:34px;height:34px;top:9px;left:9px;font-size:18px}.photo-lightbox img{border-radius:10px}.lightbox-meta{bottom:14px;font-size:12px}.lightbox-close{top:14px;right:14px}}
.heart-pick{position:absolute!important;right:14px;bottom:12px;z-index:6!important;width:46px!important;height:46px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:rgba(0,0,0,.48)!important;border:1px solid rgba(255,255,255,.24)!important;color:#fff!important;font-size:25px!important;line-height:1!important;cursor:pointer;backdrop-filter:blur(12px);transition:.25s!important;margin:0!important;text-transform:none!important;letter-spacing:0!important}.heart-pick:hover{transform:scale(1.08);background:rgba(212,175,55,.9)!important;color:#090909!important}.masonry-photo-card input:checked ~ .heart-pick{background:linear-gradient(135deg,#ffe37a,#d4af37)!important;color:#090909!important;box-shadow:0 12px 30px rgba(212,175,55,.34)}.masonry-photo-card input:checked ~ .heart-pick::before{content:'♥';position:absolute}.masonry-photo-card input:checked ~ .heart-pick{font-size:0!important}.masonry-photo-card input{position:absolute;opacity:0;pointer-events:none}
/* Star favorite refinements */
.heart-pick{background:rgba(0,0,0,.36)!important;color:rgba(255,255,255,.88)!important;font-size:28px!important;text-shadow:0 2px 12px rgba(0,0,0,.55)}
.heart-pick:hover{background:rgba(0,0,0,.58)!important;color:#ffe37a!important;box-shadow:0 0 0 1px rgba(212,175,55,.38),0 10px 26px rgba(0,0,0,.35)!important}
.masonry-photo-card input:checked ~ .heart-pick{background:rgba(0,0,0,.5)!important;color:#ffd84d!important;box-shadow:0 0 18px rgba(255,216,77,.55),0 0 0 1px rgba(255,216,77,.5)!important}
.masonry-photo-card input:checked ~ .heart-pick::before{content:'★';position:absolute;text-shadow:0 0 16px rgba(255,216,77,.85)}
.lightbox-heart{position:absolute;right:92px;top:24px;z-index:20;width:58px;height:58px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(0,0,0,.42);color:#fff;font-size:34px;line-height:1;cursor:pointer;backdrop-filter:blur(14px);transition:.25s;box-shadow:0 14px 40px rgba(0,0,0,.32)}
.lightbox-heart:hover{transform:scale(1.06);color:#ffe37a;border-color:rgba(255,216,77,.48)}
.lightbox-heart.active{color:#ffd84d;background:rgba(0,0,0,.5);border-color:rgba(255,216,77,.55);box-shadow:0 0 24px rgba(255,216,77,.6),0 14px 40px rgba(0,0,0,.36)}
@media(max-width:560px){.lightbox-heart{top:14px;right:70px;width:48px;height:48px;font-size:28px}}
/* Keep selected/starred photos bright and visible */
.masonry-photo-card::after{opacity:.38!important;background:linear-gradient(to top,rgba(0,0,0,.58),rgba(0,0,0,.08) 58%,transparent 100%)!important}
.masonry-photo-card:hover::after{opacity:.22!important}
.masonry-photo-card.picked::after{opacity:.18!important}
.masonry-photo-card img{filter:brightness(.96) contrast(1.02)!important}
.masonry-photo-card:hover img,.masonry-photo-card.picked img{filter:brightness(1.05) contrast(1.04)!important}
.masonry-photo-card.picked{border-color:rgba(255,216,77,.8)!important;box-shadow:0 0 0 2px rgba(255,216,77,.28),0 18px 50px rgba(0,0,0,.25)!important}
.heart-pick{background:rgba(0,0,0,.18)!important;border-color:rgba(255,255,255,.36)!important;box-shadow:0 8px 22px rgba(0,0,0,.18)!important}
.masonry-photo-card input:checked ~ .heart-pick{background:rgba(0,0,0,.22)!important;color:#ffd84d!important;box-shadow:0 0 18px rgba(255,216,77,.55),0 8px 22px rgba(0,0,0,.18)!important}
/* Final selected-star visibility fix */
.masonry-photo-card input:checked ~ .heart-pick{font-size:0!important;background:rgba(8,8,8,.16)!important;color:#ffd84d!important;border-color:rgba(255,216,77,.7)!important;box-shadow:0 0 12px rgba(255,216,77,.45)!important}
.masonry-photo-card input:checked ~ .heart-pick::before{content:'★'!important;position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;font-size:30px!important;line-height:1!important;color:#ffd84d!important;text-shadow:0 0 12px rgba(255,216,77,.9)!important}
.masonry-photo-card:not(.picked)::after{opacity:.34!important}.masonry-photo-card.picked::after{opacity:.08!important;background:linear-gradient(to top,rgba(0,0,0,.32),transparent 62%)!important}.masonry-photo-card.picked img{filter:none!important;opacity:1!important}.masonry-photo-card.picked .photo-zoom{background:rgba(0,0,0,.28)!important}
/* Mobile masonry image proportions: remove black empty area on landscape photos */
.masonry-photo-card{min-height:0!important;background:transparent!important}
.masonry-photo-card img{display:block!important;height:auto!important;min-height:0!important;background:#111!important}
@media(max-width:560px){
  .gallery-masonry-picker{columns:2 150px!important;column-gap:10px!important;width:calc(100% - 20px)!important}
  .masonry-photo-card{min-height:0!important;margin-bottom:10px!important;border-radius:18px!important;background:#111!important}
  .masonry-photo-card img{width:100%!important;height:auto!important;min-height:0!important;object-fit:contain!important}
  .masonry-photo-card b{bottom:10px!important;left:10px!important;right:58px!important;font-size:12px!important}
  .heart-pick{right:9px!important;bottom:9px!important;width:42px!important;height:42px!important;font-size:26px!important;background:rgba(0,0,0,.22)!important}
}
