.masonry{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.item{position:relative;overflow:hidden;border-radius:16px;background:var(--card-bg);border:1px solid var(--card-border);cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;aspect-ratio:1 / 1}.item:hover{transform:translateY(-5px);box-shadow:0 10px 24px #164f7314}.pswp-link{width:100%;height:100%;display:block}.item img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .3s ease}.overlay{position:absolute;inset:0;background:#0006;color:#fff;opacity:0;display:flex;flex-direction:column;justify-content:flex-end;padding:.75rem;transition:opacity .3s ease;pointer-events:none}.overlay *{pointer-events:auto}.item .overlay{display:none}@media(hover:hover){.item .overlay{display:block}.item:hover .overlay{opacity:1}}.author{font-weight:600;margin-bottom:.25rem}.author-link{color:#fff;text-decoration:none;transition:color .2s ease}.author-link:hover{color:#d9910b;text-decoration:underline}.comments{font-size:.85rem;line-height:1.3;max-height:4.5rem;overflow-y:auto}.hidden-caption-content{display:none}.pswp__custom-caption{position:absolute;bottom:0;width:100%;display:flex;justify-content:center;padding-bottom:1rem;z-index:1000;pointer-events:none}.pswp__custom-caption .lightbox-info{padding:1rem 1.25rem;background:linear-gradient(180deg,#0000,#ffffe1 50%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:none;border-radius:16px;box-shadow:0 8px 32px #164f7326;color:#0f172a;box-sizing:border-box;max-width:600px;width:90%;pointer-events:auto;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lightbox-author-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-weight:700;font-size:1.1rem;margin-bottom:.25rem;color:#0f172a}.lightbox-author-row svg{color:#035aa6}.lightbox-author-link{color:#0f172a;text-decoration:none;transition:color .2s ease;font-weight:700}.lightbox-author-link:hover{color:#035aa6;text-decoration:underline}.lightbox-category-hashtag{color:#fff;font-size:.85rem;font-weight:700;text-transform:lowercase;transition:all .3s ease;background:linear-gradient(135deg,#164f73,#035aa6);padding:.25rem .75rem;border-radius:8px;border:1px solid rgba(138,180,248,.5);box-shadow:0 0 10px #035aa699,0 0 20px #035aa666;display:inline-flex;align-items:center;text-decoration:none;margin-top:.4rem}.lightbox-category-hashtag:hover{background:linear-gradient(135deg,#035aa6,#4285f4);box-shadow:0 0 15px #4285f4cc,0 0 30px #035aa699;transform:translateY(-2px);color:#fff;border-color:#fffc}.lightbox-details-row{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem;width:100%}.lightbox-comments-row{display:flex;align-items:flex-start;gap:.5rem;font-size:.95rem;color:#475569;line-height:1.4;overflow-y:auto}.lightbox-comments-row svg{color:#d9910b;flex-shrink:0;margin-top:.2rem}.lightbox-logo{position:absolute;top:1.5rem;left:1.5rem;z-index:1010;pointer-events:none}.lightbox-logo img{height:54px;width:auto;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}@media(max-width:768px){.lightbox-logo{top:1rem;left:1rem}.lightbox-logo img{height:38px}}.pswp__bg{background-color:#070a13e6!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.pswp__button{color:#fff!important;border-radius:50%!important;width:44px!important;height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;margin:1rem!important}.pswp__button:hover{border-color:#fff!important;transform:scale(1.05)!important;opacity:1!important}.lightbox-likes-row{display:flex;align-items:center;margin-top:.75rem;margin-bottom:.25rem}.like-btn{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:1px solid rgba(217,145,11,.4);border-radius:20px;padding:.35rem .85rem;color:#475569;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease}.like-btn:hover{background:#d9910b1a;border-color:#d9910b;color:#0f172a}.like-icon{color:#94a3b8;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.like-btn.liked{border-color:#ef4444;background:#ef44440d;color:#ef4444}.like-btn.liked .like-icon{fill:#ef4444;color:#ef4444;animation:likePopIn .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes likePopIn{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}
