.ifv-feed{display:grid;gap:12px;grid-template-columns:repeat(var(--ifv-cols,3),1fr);width:100%;box-sizing:border-box}
@media(max-width:860px){.ifv-feed{--ifv-cols:2!important}}
@media(max-width:480px){.ifv-feed{--ifv-cols:1!important}}
.ifv-item{position:relative;border-radius:6px;overflow:hidden;background:#111}
.ifv-link{display:block;text-decoration:none;color:inherit}
.ifv-wrap{position:relative;width:100%;padding-bottom:100%;overflow:hidden}
.ifv-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.ifv-item:hover .ifv-thumb{transform:scale(1.06)}
.ifv-overlay{position:absolute;inset:0;background:rgba(0,0,0,0);display:flex;align-items:center;justify-content:center;transition:background .25s}
.ifv-item:hover .ifv-overlay{background:rgba(0,0,0,.42)}
.ifv-zoom{opacity:0;font-size:1.5rem;transition:opacity .25s}
.ifv-item:hover .ifv-zoom{opacity:1}
.ifv-badge{position:absolute;top:7px;right:7px;background:rgba(0,0,0,.6);color:#fff;font-size:.7rem;padding:2px 7px;border-radius:20px}
.ifv-cap{margin:5px 4px 4px;font-size:.8rem;color:#555}
p.ifv-empty{padding:18px;border:2px dashed #ddd;border-radius:6px;text-align:center;color:#888}
p.ifv-error{padding:12px;background:#fff3f3;border:1px solid #f5c6cb;border-radius:6px;color:#c0392b}
#ifv-lb{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center}
.ifv-lb-bg{position:absolute;inset:0;background:rgba(0,0,0,.9);cursor:pointer}
.ifv-lb-box{position:relative;z-index:1;max-width:90vw;text-align:center}
.ifv-lb-img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:5px;display:block;margin:0 auto}
.ifv-lb-cap{color:#ddd;font-size:.9rem;margin:10px 0 0}
.ifv-lb-close,.ifv-lb-prev,.ifv-lb-next{position:fixed;background:rgba(255,255,255,.15);border:none;color:#fff;cursor:pointer;border-radius:50%;width:42px;height:42px;font-size:1.2rem}
.ifv-lb-close{top:14px;right:14px}
.ifv-lb-prev{left:10px;top:50%;transform:translateY(-50%)}
.ifv-lb-next{right:10px;top:50%;transform:translateY(-50%)}
